くんすとの備忘録

IT系技術メモ

移転しました。

15秒後に自動的にリダイレクトします。

コマンドプロンプトのワンライナーでMessageBoxを表示する3つの方法

これは、コマンドプロンプト(cmd.exe) Advent Calendar 2015 - Qiitaの16日目の記事です。

Windows 10 Home 64bit 搭載のcmd.exeにて検証を行っています。


タイトルのとおりです

①msgコマンドを使う

msg.exeを使って、ユーザ名を自分の名前にすればポップアップメッセージを表示することができます。

C:\Users\kunst>msg /?
'msg' は、内部コマンドまたは外部コマンド、
操作可能なプログラムまたはバッチ ファイルとして認識されていません。

え……Windows 10には入ってないの??????


次へ行きます。

②mshtaからVBScriptのMsgBox関数を呼び出す

mshta vbscript:execute("MsgBox(""hogehoge""):close")

いつものダイアログですね。
f:id:kunst1080:20151216223649p:plain

※みうみうさんからツッコミを頂いたので追記しますね!



③mshtaからExcelVBAを呼び出してそこからWin32APIのMessageBoxA関数を呼び出す

Excelがないと動きませんが…

mshta vbscript:execute("Set a=CreateObject(""Excel.Application""):a.ExecuteExcel4Macro(""CALL(""""user32"""",""""MessageBoxA"""",""""JJCCJ"""",""& 0 &"",""""hoge"""",""""fuga"""",""& &H40 &"")""):close()")

!マーク付き
f:id:kunst1080:20151216224927p:plain