Respostas:
Que tal usar o msg
comando interno do Windows assim?
msg * "Message you would like to send"
Você pode adicionar outros parâmetros, como /TIME:x
onde x é o número de segundos que você deseja que a mensagem seja exibida. Obviamente, msg /?
mostrará todas as opções disponíveis.
Isso implica no Windows XP e superior como o sistema em que você deseja exibir a mensagem. Se você possui uma Home Edition do sistema operacional aplicável, está sem sorte. Consulte http://ss64.com/nt/msg.html para obter os parâmetros disponíveis.
Se você possui uma Home Edition, o seguinte script em lote exibirá uma mensagem usando o método PopUp do 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
Espero que isto ajude!
Adicionado: Gregg menciona nos comentários que, para que isso funcione no Windows 10, você deve usar "/ time: 0" se quiser que a mensagem permaneça na tela por mais de 60 segundos.
/TIME:0
. Isso está no Win10 x64 v1607 Enterprise LTSB. Fiquei me perguntando por que meu script testou bem, mas nunca recebi uma mensagem quando coloco no Agendador de tarefas. Plug vergonhoso: serverfault.com/a/931932/131761
Consulte também https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . Em caso de morte do link, resumirei aqui:
/ C TITLE [Seu título aqui] & ECHO. & ECHO. & ECHO [Sua mensagem aqui] & ECHO. & ECHO. & TIMEOUT [timeout]
Isso gerará uma janela do console com o texto fornecido, que aparecerá no topo da sua janela atual, mas não roubará o foco automaticamente (você pode continuar interagindo com a janela atual, como de costume).
Esta foi a melhor solução que encontrei, espero que ajude alguém!
Use msgbox
em vbs. como isso:
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"
O código &h51000
garantirá que o msgbox esteja centralizado e em cima de todas as outras janelas o tempo todo.
Se você deseja agendar apenas uma msgbox, pode simplesmente usar o agendador de tarefas, há uma função integrada para agendar uma mensagem. veja a localização de [iniciar um programa] no agendador de tarefas.
Display a Message
está obsoleta e o msg
comando não funcionou para mim no Windows 10 1703. Estou usando powershell
para exibir a caixa de mensagem de uma tarefa agendada, use isso como argumentos ao definir a ação:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
É AF feio, mas funciona.
powershell
solução, uma caixa de mensagem é exibida. Ao usar a msg
solução, nada acontece, como afirmo no meu comentário.
powershell -WindowStyle hidden -File "<path to script>"
, mas ele não funciona, ele funciona apenas com -Command
argumento, então: powershell -WindowStyle hidden -Command "& '<path to script>'"
msg
? Não recebo nada se tentar executá-lo na caixa Executar ou no prompt de comando.