Odpowiedzi:
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.
/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/131761
Zobacz także https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . W przypadku śmierci linku, streszczę tutaj:
/ C TITLE [Twój tytuł tutaj] i ECHO. & ECHO. & ECHO [Twoja wiadomość tutaj] i ECHO. & ECHO. & TIMEOUT [limit czasu]
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!
Użyj msgbox
w VBS. lubię to:
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"
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ń.
Display a Message
jest przestarzałe, a msg
polecenie nie działało dla mnie w systemie Windows 10 1703. Używam powershell
do wyświetlania okna komunikatu z zaplanowanego zadania, użyj tego jako argumentu podczas definiowania akcji:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
To brzydki AF, ale działa.
powershell
rozwiązania, pojawia się okno komunikatu. Podczas korzystania z msg
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>'"
msg
? Nic nie dostaję, jeśli spróbuję uruchomić go z pola Uruchom lub z wiersza polecenia.