Czy istnieje fajny sposób, aby okno komunikatu wyskakiwało w zaplanowanym czasie na innych oknach? Domyślnie akcja „Wyświetl wiadomość” bezużytecznie pojawia się poniżej wszystkiego innego.
Czy istnieje fajny sposób, aby okno komunikatu wyskakiwało w zaplanowanym czasie na innych oknach? Domyślnie akcja „Wyświetl wiadomość” bezużytecznie pojawia się poniżej wszystkiego innego.
A co powiesz na użycie wbudowanego msg
polecenia Windows ?
msg * "Message you would like to send"
Możesz dodać inne parametry, takie jak /TIME:x
gdzie x to liczba sekund, przez którą ma być wyświetlany komunikat. Oczywiście msg /?
pokaże Ci wszystkie dostępne opcje.
Oznacza to, że Windows XP i wyższy jest systemem, w którym chcesz wyświetlić komunikat. Jeśli masz wersję Home odpowiedniego systemu operacyjnego, nie masz szczęścia. Dostępne parametry można znaleźć na stronie http://ss64.com/nt/msg.html .
Jeśli masz wersję Home Edition, następujący skrypt wsadowy wyskakuje komunikat przy użyciu metody PopUp 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
Mam nadzieję że to pomoże!
Dodano: Gregg wspomina w komentarzach, że aby to działało w systemie Windows 10, musisz użyć „/ time: 0”, jeśli chcesz, aby wiadomość pozostała na ekranie dłużej niż 60 sekund.
msg
? Nic nie dostaję, jeśli spróbuję uruchomić go z pola Uruchom lub z wiersza polecenia./TIME:0
. To jest na Win10 x64 v1607 Enterprise LTSB. Zastanawiałem się, dlaczego mój skrypt sprawdził się dobrze, ale nigdy nie dostałem wiadomości, gdy włączę Harmonogram zadań. Wstydliwa wtyczka: serverfault.com/a/931932/131761Zobacz także https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . W przypadku śmierci linku, streszczę tutaj:
Spowoduje to wygenerowanie okna konsoli z podanym tekstem, który pojawi się NA GÓRZE bieżącego okna, ale nie wykradnie automatycznie fokusa (możesz normalnie kontynuować interakcję z bieżącym oknem).
To było najlepsze rozwiązanie, jakie znalazłem, mam nadzieję, że to komuś pomoże!
źródło
Użyj
msgbox
w VBS. lubię to:Kod
&h51000
sprawi, że msgbox będzie cały czas w centralnej i nad wszystkimi innymi oknami.Jeśli chcesz tylko zaplanować msgbox, możesz po prostu użyć harmonogramu zadań, istnieje wbudowana funkcja do planowania wiadomości. zobacz lokalizację [uruchom program] w harmonogramie zadań.
źródło
Display a Message
jest przestarzałe, amsg
polecenie nie działało dla mnie w systemie Windows 10 1703. Używampowershell
do wyświetlania okna komunikatu z zaplanowanego zadania, użyj tego jako argumentu podczas definiowania akcji:To brzydki AF, ale działa.
źródło
powershell
rozwiązania, pojawia się okno komunikatu. Podczas korzystania zmsg
rozwiązania nic się nie dzieje, jak stwierdzam w moim komentarzu.powershell -WindowStyle hidden -File "<path to script>"
ale to nie działa, działa tylko z-Command
argumentem, więc:powershell -WindowStyle hidden -Command "& '<path to script>'"