¿Hay una buena forma de que aparezca un cuadro de mensaje a una hora programada en la parte superior de otras ventanas? La acción predeterminada "Mostrar un mensaje" aparece inútilmente debajo de todo lo demás.
¿Hay una buena forma de que aparezca un cuadro de mensaje a una hora programada en la parte superior de otras ventanas? La acción predeterminada "Mostrar un mensaje" aparece inútilmente debajo de todo lo demás.
¿Qué hay de usar la ventana incorporada? msg
comando como asi?
msg * "Message you would like to send"
Puede agregar otros parámetros tales como /TIME:x
donde x es el número de segundos que desea que se muestre el mensaje. Por supuesto, msg /?
le mostrará todas las opciones disponibles.
Esto implica Windows XP y superior como el sistema donde desea mostrar el mensaje. Si tiene una edición doméstica del sistema operativo aplicable, no tiene suerte. Ver http://ss64.com/nt/msg.html Para los parámetros disponibles.
Si tiene una Home Edition, la siguiente secuencia de comandos por lotes mostrará un mensaje emergente utilizando el método PopUp de 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 esto ayude!
Agregado: Gregg menciona en los comentarios que para que esto funcione en Windows 10, debe usar "/ time: 0" si desea que el mensaje permanezca en pantalla más de 60 segundos.
msg
? No obtengo nada si intento ejecutarlo desde el cuadro Ejecutar o desde el símbolo del sistema./TIME:0
. Esto es en Win10 x64 v1607 Enterprise LTSB. Me preguntaba por qué mi script estaba bien, pero nunca recibí un mensaje cuando lo puse en el Programador de tareas Enchufe vergonzoso: serverfault.com/a/931932/131761Ver también https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . En caso de muerte de enlace, resumiré aquí:
Esto generará una ventana de consola con el texto dado, que aparecerá EN LA PARTE SUPERIOR de su ventana actual, pero no robará el enfoque automáticamente (puede seguir interactuando con su ventana actual como de costumbre).
Esta fue la mejor solución que encontré, ¡espero que ayude a alguien!
fuente
Utilizar
msgbox
en vbs. Me gusta esto:Código
&h51000
asegurará que msgbox esté en el centro y encima de todas las demás ventanas todo el tiempo.Si solo desea programar un msgbox, simplemente puede usar el programador de tareas, hay una función incorporada para programar un mensaje. ver la ubicación de [iniciar un programa] en el programador de tareas.
fuente
Display a Message
está en desuso, ymsg
El comando no funcionó para mí en Windows 10 1703. Estoy usandopowershell
para mostrar el cuadro de mensaje de una tarea programada, use esto como argumentos Al definir la acción:Es feo AF, pero funciona.
fuente
powershell
solución aparece un cuadro de mensaje. Al usar elmsg
La solución no pasa nada, como indico en mi comentario.powershell -WindowStyle hidden -File "<path to script>"
pero no funciona, funciona solo con-Command
argumento, entoncespowershell -WindowStyle hidden -Command "& '<path to script>'"