WSHを使って、ポップアップダイアログを表示するマクロです。 message文、question文との違いは以下になります。
execmacro文を使用し、他のマクロからこのマクロを呼び出し、戻り値を "getresultex(-1);"で、取得してください。 正常なら、選択したボタンを、エラーの場合は、""を返します。(詳細は戻り値を参照)
マクロフォルダに、「popup.mac」がある場合の例です。
execmacro "popup.mac", "メッセージ", "待ち時間(秒)", "タイトル", "オプション"; $popup = getresultex(-1);
呼び出すマクロと同じ場所に、「popup.mac」がある場合は、
execmacro currentmacrodirectory + "\\popup.mac", "メッセージ", "待ち時間(秒)", "タイトル", "オプション";
とした方が、確実です。
このマクロを、マクロの実行ダイアログから単独で実行しても、何も実行しません。 (引数がセットされていないので、エラーで終了します。)
待ち時間以降の引数は省略可能です。メッセージ
がないと、エラーで終了します。
メッセージ(必ず指定してください)
ダイアログに表示するメッセージ
以下の文字列を与えると、このマクロのバージョン情報を返します。
"%%GetVersionStr%%\n" :ファイル名と、バージョン情報
例) popup.macc Ver.1.0.0
"%%GetVersionNum%%\n" :数値に変換可能なバージョン情報
例) 100
待ち時間
タイトル
オプション
以下の数字の合計値 または、文字列をカンマ区切りで指定すること。 省略した場合は、[OK]ボタンのみの表示となる。
例) [はい]、[いいえ]、および [キャンセル] を表示し、問い合わせアイコンで、キャンセルにフォーカス。 数字で指定 execmacro "popup.mac", "テスト", "10", "", "547";//3 + 32 + 512 = 547 文字列で指定 execmacro "popup.mac", "テスト", "10", "", "YesNoCancel,Question,DefaultButton3"; // 表示するボタン 数字 指定する文字列 0 OKOnly [OK] ボタンのみを表示します。 1 OKCancel [OK] ボタンと [キャンセル] ボタンを表示します。 2 AbortRetryIgnore [中止]、[再試行]、および [無視] の 3 つのボタンを表示します。 3 YesNoCancel [はい]、[いいえ]、および [キャンセル] の 3 つのボタンを表示します。 4 YesNo [はい] ボタンと [いいえ] ボタンを表示します。 5 RetryCancel [再試行] ボタンと [キャンセル] ボタンを表示します。 // 表示するアイコン(「Question」を指定した場合、XP/Vista/7では、音が鳴りません。 OS側の設定で鳴らす事は可能だが、デフォルトで無音) 16 Critical 警告メッセージ アイコンを表示します。 32 Question 問い合わせメッセージ アイコンを表示します。 48 Exclamation 注意メッセージ アイコンを表示します。 64 Information 情報メッセージ アイコンを表示します。 // デフォルトのボタン 0 DefaultButton1 最初のボタンを既定にする 256 DefaultButton2 2 番目のボタンを既定にする 512 DefaultButton3 3 番目のボタンを既定にする // その他オプション 0 ApplicationModal アプリケーションをモーダルに設定します。 メッセージ ボックスに応答するまで、現在選択中のアプリケーションの実行を継続できません。 4096 SystemModal システムをモーダルに設定します。 メッセージ ボックスに応答するまで、すべてのアプリケーションが中断されます。 65536 MsgBoxSetForeground 最前面のウィンドウとして表示します。 524288 MsgBoxRight テキストを右寄せで表示します。 1048576 MsgBoxRtlReading ヘブライ語やアラビア語のシステムの場合、テキストを右から左の方向で表示します。
戻り値 = 押されたボタン になります。 有効な戻り値は以下になります。エラーがあった場合は、""を返します。 実際は数字ではなく、文字列に変換されています。("1"、"-1"等)
1 [OK] ボタン。 2 [キャンセル] ボタン。 3 [中止] ボタン。 4 [再試行] ボタン。 5 [無視] ボタン。 6 [はい] ボタン。 7 [いいえ] ボタン。 -1 タイムアウトした場合
WSHのShellオブジェクトにある"Popup"メソッドを、秀丸エディタのCOM機能を使って呼び出しているだけです。 execmacro文経由で再利用しやすいように、ラップしているだけなので、 WHSがわかるなら、直接記述したほうが、いいかもしれません。(メイン部分は10行程度)