Existe-t-il un bon moyen de faire apparaître une boîte de message à une heure planifiée au-dessus d'autres fenêtres? L'action par défaut "Afficher un message" apparaît inutilement sous tout le reste.
la source
Existe-t-il un bon moyen de faire apparaître une boîte de message à une heure planifiée au-dessus d'autres fenêtres? L'action par défaut "Afficher un message" apparaît inutilement sous tout le reste.
Que diriez-vous d'utiliser la msg
commande intégrée de Windows comme ça?
msg * "Message you would like to send"
Vous pouvez ajouter d'autres paramètres tels que /TIME:x
où x est le nombre de secondes pendant lesquelles le message doit s'afficher. Bien sûr, msg /?
vous montrera toutes les options disponibles.
Cela implique Windows XP et supérieur comme système sur lequel vous souhaitez afficher le message. Si vous disposez d'une édition familiale du système d'exploitation applicable, vous n'avez pas de chance. Voir http://ss64.com/nt/msg.html pour les paramètres disponibles.
Si vous disposez d'une édition familiale, le script de commandes suivant affichera un message à l'aide de la méthode 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
J'espère que cela t'aides!
Ajouté: Gregg mentionne dans les commentaires que pour que cela fonctionne dans Windows 10, vous devez utiliser "/ time: 0" si vous souhaitez que le message reste à l'écran plus de 60 secondes.
msg
? Je ne reçois rien si j'essaye de l'exécuter à partir de la zone Exécuter ou à partir de l'invite de commandes./TIME:0
. C'est sur Win10 x64 v1607 Enterprise LTSB. Je me demandais pourquoi mon script avait bien fonctionné, mais je n'ai jamais reçu de message lorsque j'ai mis le Planificateur de tâches. Prise honteuse: serverfault.com/a/931932/131761Voir également https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . En cas de lien mort, je résumerai ici:
Cela générera une fenêtre de console avec le texte donné, qui apparaîtra EN HAUT de votre fenêtre actuelle, mais ne volera pas automatiquement le focus (vous pouvez continuer à interagir avec votre fenêtre actuelle comme d'habitude).
C'était la meilleure solution que j'ai trouvée, j'espère que cela aide quelqu'un!
la source
Utilisation
msgbox
en vbs. comme ça:Le code
&h51000
veillera à ce que msgbox soit toujours au centre et au-dessus de toutes les autres fenêtres.Si vous souhaitez uniquement planifier une msgbox, vous pouvez simplement utiliser le planificateur de tâches, il existe une fonction intégrée pour planifier un message. voir l'emplacement de [démarrer un programme] dans le planificateur de tâches.
la source
Display a Message
est obsolète et lamsg
commande n'a pas fonctionné pour moi dans Windows 10 1703. J'utilisepowershell
pour afficher la boîte de message d'une tâche planifiée, utilisez-la comme arguments lors de la définition de l'action:C'est laid AF, mais ça marche.
la source
powershell
solution, une boîte de message apparaît. Lorsque vous utilisez lamsg
solution, rien ne se passe, comme je le déclare dans mon commentaire.powershell -WindowStyle hidden -File "<path to script>"
mais cela ne fonctionne pas, cela ne fonctionne qu'avec-Command
argument, donc:powershell -WindowStyle hidden -Command "& '<path to script>'"