Команда 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

Другие вопросы по тегам