Risposte:
Che ne dici di usare il msg
comando integrato di Windows in questo modo?
msg * "Message you would like to send"
È possibile aggiungere altri parametri come /TIME:x
dove x è il numero di secondi in cui si desidera visualizzare il messaggio. Naturalmente, msg /?
ti mostrerà tutte le opzioni disponibili.
Ciò implica Windows XP e versioni successive come sistema in cui si desidera visualizzare il messaggio. Se hai una Home Edition del sistema operativo applicabile, sei sfortunato. Vedi http://ss64.com/nt/msg.html per i parametri disponibili.
Se hai una Home Edition, il seguente script batch farà apparire un messaggio usando il metodo PopUp di VBSCript:
@echo off
::See http://msdn.microsoft.com/en-us/library/x83z1d9f(v=vs.84).aspx
::for an explanation of the PopUp method
::
::Use the directory from whence script was called as working directory
set CWD=%~dp0
::Use a random file name for the temporary VBScript.
set usrmsg=%CWD%%random%.vbs
::First parameter is the timeout in seconds. 0 = wait forever
set _timeout=%~1
::Second parameter is the message, enclosed in quotes.
set _Message=%~2
::Third parameter is the title of the window, enclosed in quotes.
set _Title=%~3
::This last variable is used to display a button/icon on the window.
::Setting this to 4096 sets the window to Modal (on top of everything else)
set _nType=4160
::Create the temp script using the provided information.
ECHO Set wshShell = CreateObject( "WScript.Shell" )>%usrmsg%
ECHO wshShell.Popup "%_Message%" ^& vbCrLf, %_Timeout%, "%_Title%", %_nType%>>%usrmsg%
::Run the script.
WSCRIPT.EXE %usrmsg%
::Delete the script.
DEL %usrmsg%
::Exit the batch file
exit /b
Spero che sia di aiuto!
Aggiunto: Gregg menziona nei commenti che per farlo funzionare in Windows 10, devi usare "/ time: 0" se vuoi che il messaggio rimanga sullo schermo per più di 60 secondi.
/TIME:0
. Questo è su Win10 x64 v1607 Enterprise LTSB. Mi chiedevo perché la mia sceneggiatura fosse andata a buon fine, ma non ho mai ricevuto messaggi quando ho inserito l'Utilità di pianificazione. Spina vergognosa: serverfault.com/a/931932/131761
Vedi anche https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . In caso di morte del link, riassumo qui:
/ C TITLE [Il tuo titolo qui] & ECHO. & ECHO. & ECHO [Il tuo messaggio qui] & ECHO. & ECHO. & TIMEOUT [timeout]
Questo genererà una finestra della console con il testo dato, che apparirà IN ALTO della finestra corrente, ma non ruberà automaticamente lo stato attivo (puoi continuare a interagire con la finestra corrente come al solito).
Questa è stata la migliore soluzione che ho trovato, spero che aiuti qualcuno!
Utilizzare msgbox
in vbs. come questo:
Set filesys = CreateObject("Scripting.FileSystemObject")
Set shell = CreateObject("Shell.Application")
Set wshShell = WScript.CreateObject( "WScript.Shell" )
PCName = wshShell.ExpandEnvironmentStrings( "%COMPUTERNAME%" )
msgbox "Dear user on " & PCName & vbcrlf & " " & vbcrlf & "This is a message box on top of all other windows.", &h51000, "I am msgbox"
shell.Open "C:\Users"
Il codice &h51000
si accerterà che msgbox sia centrale che in cima a tutte le altre finestre per tutto il tempo.
Se vuoi solo programmare un msgbox, puoi semplicemente usare l'utilità di pianificazione, c'è una funzione integrata per pianificare un messaggio. vedere la posizione di [avvia un programma] nell'utilità di pianificazione.
Display a Message
è deprecato e il msg
comando non ha funzionato per me in Windows 10 1703. Sto usando powershell
per visualizzare la finestra di messaggio da un'attività pianificata, usare questo come argomento per definire l'azione:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
È un brutto AF, ma funziona.
powershell
soluzione appare una finestra di messaggio. Quando si utilizza la msg
soluzione non accade nulla, come dichiaro nel mio commento.
powershell -WindowStyle hidden -File "<path to script>"
ma non funziona, funziona solo con -Command
argomento, quindi: powershell -WindowStyle hidden -Command "& '<path to script>'"
msg
? Non ottengo nulla se provo a eseguirlo dalla casella Esegui o dal prompt dei comandi.