Gibt es eine gute Möglichkeit, ein Meldungsfeld zu einem festgelegten Zeitpunkt über anderen Fenstern anzuzeigen? Die Standardaktion "Nachricht anzeigen" wird unnötigerweise unter allem anderen angezeigt.
Gibt es eine gute Möglichkeit, ein Meldungsfeld zu einem festgelegten Zeitpunkt über anderen Fenstern anzuzeigen? Die Standardaktion "Nachricht anzeigen" wird unnötigerweise unter allem anderen angezeigt.
Wie wäre es, wenn Sie den in Windows integrierten msg
Befehl so verwenden?
msg * "Message you would like to send"
Sie können andere Parameter hinzufügen, z. B. /TIME:x
wobei x die Anzahl der Sekunden ist, die die Nachricht anzeigen soll. Natürlich msg /?
werden Ihnen alle verfügbaren Optionen angezeigt.
Dies impliziert Windows XP und höher als das System, auf dem Sie die Nachricht anzeigen möchten. Wenn Sie eine Home Edition des entsprechenden Betriebssystems haben, haben Sie kein Glück. Die verfügbaren Parameter finden Sie unter http://ss64.com/nt/msg.html .
Wenn Sie eine Home Edition haben, zeigt das folgende Batch-Skript eine Nachricht mit der PopUp-Methode von VBSCript an:
@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
Hoffe das hilft!
Hinzugefügt: Gregg erwähnt in den Kommentaren, dass Sie "/ time: 0" verwenden müssen, damit die Nachricht länger als 60 Sekunden auf dem Bildschirm bleibt, damit dies unter Windows 10 funktioniert.
msg
? Ich erhalte nichts, wenn ich versuche, es über das Feld Ausführen oder über die Eingabeaufforderung auszuführen./TIME:0
. Dies ist auf Win10 x64 v1607 Enterprise LTSB. Ich habe mich gefragt, warum mein Skript einwandfrei getestet wurde, aber beim Einfügen in den Taskplaner wurde keine Nachricht angezeigt. Schändlicher Plug: serverfault.com/a/931932/131761Siehe auch https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . Im Falle eines Link-Todes werde ich hier zusammenfassen:
Dadurch wird ein Konsolenfenster mit dem angegebenen Text generiert, das OBEN in Ihrem aktuellen Fenster angezeigt wird, aber nicht automatisch den Fokus stiehlt (Sie können wie gewohnt mit Ihrem aktuellen Fenster interagieren).
Dies war die beste Lösung, die ich gefunden habe, hoffe, es hilft jemandem!
quelle
Verwendung
msgbox
in vbs. so was:Der Code stellt
&h51000
sicher, dass sich msgbox immer in der Mitte und über allen anderen Fenstern befindet.Wenn Sie nur eine msgbox planen möchten, können Sie einfach den Taskplaner verwenden. Es gibt eine integrierte Funktion zum Planen einer Nachricht. Siehe Position von [Programm starten] im Taskplaner.
quelle
Display a Message
ist veraltet und dermsg
Befehl hat in Windows 10 1703 nicht funktioniert. Ich verwende ihnpowershell
, um das Meldungsfeld einer geplanten Aufgabe anzuzeigen. Verwenden Sie dies als Argumente beim Definieren der Aktion:Es ist hässlich AF, aber es funktioniert.
quelle
powershell
Lösung verwende, wird ein Meldungsfeld angezeigt. Bei Verwendung dermsg
Lösung passiert nichts, wie ich in meinem Kommentar feststelle.powershell -WindowStyle hidden -File "<path to script>"
aber es funktioniert nicht, es funktioniert nur mit-Command
Argumenten, also:powershell -WindowStyle hidden -Command "& '<path to script>'"