コマンドプロンプトのワンライナーで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")
いつものダイアログですね。
※みうみうさんからツッコミを頂いたので追記しますね!
VB側が、なんか「プッwアイコンひとつ出せんのかw」ってあおられた気がしたから、豪華にしてやった。
mshta vbscript:execute("MsgBox ""いえーいくんすと氏~みてるぅ~w”” , 323:close") https://t.co/QIaydJLGE7
— 三浦一仁(一月アマゾンオーロラマン) (@kazuhito_m) 2015, 12月 16
③mshtaからExcelVBAを呼び出してそこからWin32APIのMessageBoxA関数を呼び出す
Excelがないと動きませんが…
mshta vbscript:execute("Set a=CreateObject(""Excel.Application""):a.ExecuteExcel4Macro(""CALL(""""user32"""",""""MessageBoxA"""",""""JJCCJ"""",""& 0 &"",""""hoge"""",""""fuga"""",""& &H40 &"")""):close()")
!マーク付き
参考サイト
コマンドプロンプトから,Win32 APIや任意のDLLを呼び出して実行しよう (コマンドプロンプトから画面キャプチャする方法の仕組みを理解) - 主に言語とシステム開発に関して
明日はりょー(@ryoana14)さんです。よろしくお願いします!