Команда Windows [cmd.exe] для отображения окна сообщения с тайм-аутом?
Примечание. Это вопрос с ответом для того, чтобы документировать методику, которая может оказаться полезной для других, и, возможно, для того, чтобы узнать о лучших решениях других. Не стесняйтесь добавлять критику или вопросы в качестве комментариев. Также не стесняйтесь добавлять дополнительные ответы. :)
Как отобразить окно сообщения, введя одну команду Windows, например, в диалоговом окне " Выполнить " из меню "Пуск" или в интерпретаторе команд [cmd.exe]?
4 ответа
Одним из способов является использование явно недокументированной функциональности, а именно, что [mshta.exe], механизм времени выполнения для HTML-приложений Windows.hta, принимает общий URL-адрес в качестве аргумента командной строки, включая javascript:
URL протокола:
mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"
Эту команду можно выполнить, например, в [cmd.exe]] или, например, в диалоговом окне " Выполнить " из меню "Пуск", возможно, в сочетании с schtasks
Команда для создания чайного таймера...
Вышеуказанное окно сообщения истекает через 10 секунд, но указание времени ожидания 0 секунд означает "не превышать время ожидания", создавая более обычный постоянный ящик сообщений.
Для более простого сообщения вы можете использовать вместо alert
функция, предоставляемая хостом MSHTA.
В командной строке:
msg %username% Message
Интересные параметры:
/w (wait for user)
/time:<seconds>
Обнаружил, что если вы копируете msg.exe с компьютера с Win7 Pro на компьютер с Win7 Home, это работает. Скопируйте файл msg.exe в папку C:\Windows\System32 и из нее.
Что если вы создадите небольшой VBScript с сообщением, которое хотите отобразить? Т.е. создать файл с именем "Message.vbs" с содержанием:
MsgBox "Some info here", 0, "Message Title"
и назовите это так:
cscript.exe PATH\Message.vbs