web-dev-qa-db-ja.com

タイムアウト付きのメッセージボックスを表示するWindows [cmd.exe]コマンド

注:これはquestion-with-answerですおそらく他の人のより良い解決策に気付くために。コメントとして批評や質問を自由に追加してください。また、追加の回答を自由に追加してください。 :)


単一のWindowsコマンドを入力してmessageboxを表示するにはどうすればよいですか? [スタート]メニューのRunダイアログ、または[cmd.exe]コマンドインタープリター

13

1つの方法は、明らかに文書化されていない機能を使用することです。つまり、Windows .hta HTMLアプリケーションのランタイムエンジンである[mshta.exe]は、コマンドライン引数としてjavascript:プロトコルURL:

mshta "javascript:var sh=new ActiveXObject( 'WScript.Shell' ); sh.Popup( 'Message!', 10, 'Title!', 64 );close()"

The resulting messagebox

このコマンドは、たとえば[cmd.exe]]、または[スタート]メニューのRunダイアログで、おそらくschtasksコマンドと組み合わせて、tea-タイマー…

上記のメッセージボックスは10秒後にタイムアウトしますが、0秒のタイムアウトを指定すると「タイムアウトしない」ことを意味し、通常の永続的なメッセージボックスが生成されます。

シンプルなメッセージボックスの場合、代わりにMSHTAホストが提供するalert関数を使用できます。

26

コマンドプロンプトで:

msg %username% Message

興味深いパラメーターは次のとおりです。

/w        (wait for user) 
/time:<seconds>
7
Stephan

Msg.exeをWin7 ProマシンからWin7 Homeマシンにコピーすると動作することがわかりました。 msg.exeをC:\ Windows\System32フォルダーとの間でコピーします。

1
user4641788

表示するメッセージを使用して小さなVBScriptを作成するとどうなりますか?つまりコンテンツを含む「Message.vbs」という名前のeファイルを作成します。

MsgBox "Some info here", 0, "Message Title"

次のように呼び出します:

cscript.exe PATH\Message.vbs

1
Panayotis