Відповіді:
Як щодо використання такої вбудованої msg
команди Window ?
msg * "Message you would like to send"
Ви можете додати інші параметри, наприклад, /TIME:x
де x - кількість секунд, яке потрібно відобразити. Звичайно, msg /?
покаже вам всі доступні варіанти.
Це означає, що Windows XP і вище як система, де ви хочете відобразити повідомлення. Якщо у вас є домашня версія відповідної ОС, вам не пощастило. Дивіться http://ss64.com/nt/msg.html про доступні параметри.
Якщо у вас є домашнє видання, наступний пакетний скрипт спливає повідомлення за допомогою методу 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
Сподіваюся, це допомагає!
Додано: Грегг в коментарях зазначає, що для того, щоб це працювало в Windows 10, потрібно використовувати "/ time: 0", якщо ви хочете, щоб повідомлення залишалося на екрані довше 60 секунд.
/TIME:0
. Це на Win10 x64 v1607 Enterprise LTSB. Мені було цікаво, чому мій сценарій добре перевірений, але я ніколи не отримував повідомлення, коли я вводив Планувальник завдань. Ганебний Штепсель: serverfault.com/a/931932/131761
Також дивіться https://www.howtogeek.com/136894/how-to-create-popup-reminders-with-no-additional-software/ . У випадку загибелі зв'язку я підсумую тут:
/ C TITLE [Ваш заголовок тут] & ECHO. & ECHO. & ECHO [Ваше повідомлення тут] & ECHO. & ECHO. & TIMEOUT [timeout]
Це створить консольне вікно із заданим текстом, який з’явиться НА ТОПІ вашого поточного вікна, але фокус не викрадеться автоматично (ви можете продовжувати взаємодіяти з поточним вікном як завжди).
Це було найкращим рішенням, яке я знайшов, сподіваюся, що це комусь допоможе!
Використовувати msgbox
в vbs. подобається це:
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"
Код &h51000
завжди гарантуватиме msgbox в центральній та над усіма іншими вікнами.
Якщо ви хочете запланувати лише msgbox, ви можете просто використовувати планувальник завдань, є вбудована функція для планування повідомлення. див. розташування [запустити програму] в планувальнику завдань.
Display a Message
застаріло, і msg
команда не працювала для мене в Windows 10 1703. Я використовую powershell
для відображення поля повідомлень із запланованого завдання, використовуйте це як аргументи під час визначення дії:
-WindowStyle hidden -Command "& {[System.Reflection.Assembly]::LoadWithPartialName('System.Windows.Forms'); [System.Windows.Forms.MessageBox]::Show('<message body here>','<window title here>')}"
Це некрасиво АФ, але воно працює.
powershell
рішення, з'являється вікно повідомлень. При використанні msg
рішення нічого не відбувається, як я заявляю у своєму коментарі.
powershell -WindowStyle hidden -File "<path to script>"
але це не працює, він працює лише з -Command
аргументом, так: powershell -WindowStyle hidden -Command "& '<path to script>'"
msg
? Я нічого не отримую, якщо спробувати запустити його з поля Run або з командного рядка.