指定されたテキストを、1つまたは複数のボタン(YesやNoなど)を含む小さなウィンドウに表示します。
MsgBox Text, Title, Options Result := MsgBox(Text, Title, Options)
型:文字列
If omitted and "OK" is the only button present, it defaults to the string "Press OK to continue.". If omitted in any other case, it defaults to an empty string. Otherwise, specify the text to display inside the message box.
エスケープシーケンスは、特殊文字を表すために使用することができます。例えば、`nは改行文字を示し、現在の行を終了して新しい行を開始します。したがって、text1`n`ntext2
を使用すると、text1とtext2の間に空白行ができる。
Textが長い場合、継続セクションによっていくつかの短い行に分割することができ、読みやすさと保守性を向上させることができるかもしれません。
型:文字列
省略したときは、A_ScriptNameの現在の値がデフォルトとなります。Otherwise, specify the title of the message box.
型:文字列
If blank or omitted, it defaults to 0 (only an OK button is displayed). Otherwise, specify a combination (sum) of values or a string of one or more options from the tables below to indicate the type of message box and the possible button combinations.
さらに、以下のオプションを0個以上指定することができます:
Owner:メッセージボックスのオーナーウィンドウを指定するには、Ownerという単語の直後にHWND(ウィンドウID)を使用します。
T:タイムアウト。指定した時間内にユーザーがメッセージボックスを閉じなかった場合、自動的に閉じるようにするには、文字Tの後にタイムアウトを秒単位で指定します(小数点以下も可)。この値が2147483(24.8日)を超えた場合、2147483に設定されます。メッセージボックスがタイムアウトした場合、戻り値はTimeoutという文字になります。
Optionsパラメータには、以下のグループからの数値の組み合わせ(合計)をオペレーティングシステムのMessageBox関数に直接渡すか、0個以上の大文字小文字を区別しないオプションを少なくとも1つのスペースまたはタブで区切った文字列を指定することができます。また、1つ以上の数値オプションを文字列に含めることができます。
メッセージボックスに表示されるボタンを指示するために、以下の値のいずれかを追加します:
関数 | 十進法 | 十六進法 | 文字列 |
---|---|---|---|
OK | 0 | 0x0 | OK またはO |
OK、キャンセル | 1 | 0x1 | OKCancel 、O/C またはOC |
中止(A)、再試行(R)、無視(I) | 2 | 0x2 | AbortRetryIgnore 、A/R/I またはARI |
はい(Y)、いいえ(N)、キャンセル | 3 | 0x3 | YesNoCancel 、Y/N/C またはYNC |
はい(Y)、いいえ(N) | 4 | 0x4 | YesNo 、Y/N またはYN |
再試行(R)、キャンセル | 5 | 0x5 | RetryCancel 、R/C またはRC |
キャンセル、再実行(T)、続行(C) | 6 | 0x6 | CancelTryAgainContinue 、C/T/C またはCTC |
メッセージボックスにアイコンを表示するには、次の値のいずれかを追加します:
関数 | 十進法 | 十六進法 | 文字列 |
---|---|---|---|
Icon Hand (stop/error) | 16 | 0x10 | Iconx |
Icon Question | 32 | 0x20 | Icon? |
Icon Exclamation | 48 | 0x30 | Icon! |
Icon Asterisk (info) | 64 | 0x40 | Iconi |
デフォルトのボタンを示すには、以下の値のいずれかを追加します:
関数 | 十進法 | 十六進法 | 文字列 |
---|---|---|---|
第2ボタンをデフォルトにする | 256 | 0x100 | Default2 |
第3ボタンをデフォルトにする | 512 | 0x200 | Default3 |
第4ボタンをデフォルトにする (ヘルプボタンがあることが必要です) |
768 | 0x300 | Default4 |
ダイアログボックスのモダリティを示すために、以下の値のいずれかを追加します:
関数 | 十進法 | 十六進法 | 文字列 |
---|---|---|---|
システムモーダル(常に上部に表示される) | 4096 | 0x1000 | 該当なし |
Task Modal | 8192 | 0x2000 | 該当なし |
常時トップ(スタイル WS_EX_TOPMOST) (システムモーダル同様、タイトルバーアイコンが省略されています) |
262144 | 0x40000 | 該当なし |
その他のオプションを指定する場合は、以下の値を1つ以上追加してください:
関数 | 十進法 | 十六進法 | 文字列 |
---|---|---|---|
ヘルプボタンを追加します(下記備考参照) | 16384 | 0x4000 | 該当なし |
テキストを右寄せにします | 524288 | 0x80000 | 該当なし |
ヘブライ語/アラビア語の右から左への読み方 | 1048576 | 0x100000 | 該当なし |
型:文字列
この関数は、ユーザーがどのボタンを押したかを表すために、以下の文字列のいずれかを返します:
ダイアログを表示できなかった場合は、空文字列が返されます。これは通常、MsgBoxの制限に達した場合にのみ発生しますが、その他の異常なケースでも発生する可能性があります。
オプションが無効な場合、MsgBoxの制限に達した場合、またはその他の理由でメッセージボックスを表示できなかった場合など、失敗するとErrorがスローされます。
メッセージボックスは通常このように表示されます:
ユーザーがどのボタンを押したかを判断するには、関数の戻り値を使用します。事例:
Result := MsgBox("Would you like to continue?(press Yes or No)",, "YesNo") if Result = "Yes" MsgBox "You pressed Yes." else MsgBox "You pressed No." if MsgBox("Retry or cancel?",, "R/C") = "Retry" MsgBox("You pressed Retry.")
To customize the names of the buttons, see Changing MsgBox's Button Names.
注意:メッセージボックスがアクティブな状態でCtrl+Cを押すと、そのテキストがクリップボードにコピーされます。これは、AutoHotkeyで作成されたメッセージボックスだけでなく、すべてのメッセージボックスに適用されます。
GUIウィンドウでMsgBoxを使用:GUIウィンドウは、OwnDialogsオプションにより、モーダルメッセージボックスを表示することができる。モーダルメッセージボックスは、メッセージボックスが解除されるまで、ユーザーがGUIウィンドウと対話することを妨げます。この場合、上表からシステムモード、タスクモードのオプションを指定する必要はありません。
OwnDialogsオプションが有効でない場合、Task Modalオプション(8192)を使用すると、ユーザーがメッセージボックスを解除するまで、スクリプトのすべてのウィンドウを無効にすることができます。
OwnerHWND
オプションが指定されている場合は、他の設定より優先されます。HWNDには、スクリプトが所有していないウィンドウのHWNDも指定することができます。
ヘルプボタン:Optionsでヘルプボタンオプション(16384)がある場合、以下の両方が成立していないと、ヘルプボタンを押しても効果がありません:
OnMessage(0x0053, WM_HELP)
。WM_HELP関数が呼び出されると、別のウィンドウやメッセージボックスを表示するなどの手段でユーザーを誘導することができる。閉じるボタン(メッセージボックスのタイトルバー内):メッセージボックスはOSの組み込み機能なので、そのXボタンは特定のボタンが存在する場合にのみ有効になります。OKボタンしかない場合は、XボタンをクリックするとOKを押したのと同じになります。それ以外の場合は、キャンセルボタンがない限りXボタンは無効で、その場合はXをクリックするとキャンセルを押したのと同じことになります。
最大で7回の通話が可能:メッセージボックスを表示しているスレッドは、通常、中断することができ、前の呼び出しが戻る前に新しいスレッドが独自のメッセージボックスを表示することができます。MsgBoxの呼び出しは最大7回まで可能ですが、7回目を超えるとErrorが投げられます。中断されたスレッドでMsgBoxを呼び出すと、スレッドが再開されるまで戻ることができないことに注意してください。
InputBox、FileSelect、DirSelect、ToolTip、Guiオブジェクト
特定のテキストを含むメッセージボックスを表示します。情報を素早く簡単に表示する方法です。ユーザーはOKボタンを押すことでメッセージボックスを閉じ、実行を継続することができます。
MsgBox "This is a string."
デフォルトのテキストでメッセージボックスを表示します。主にデバッグ用途で、スクリプトにブレークポイントを素早く設定する場合などに便利です。
MsgBox ; "Press OK to continue."
特定のテキスト、タイトル、情報アイコンを含むメッセージボックスが表示されます。そのほか、複数行のテキストをよりわかりやすく表示するために、コンティニュアスセクションを使用しています。
MsgBox " ( 最初のパラメーターがメッセージとして表示される。 2番目のパラメータはウィンドウのタイトルになります。 3番目のパラメータはメッセージボックスのタイプを決定します。 )", "ウィンドウタイトル", "iconi"
戻り値から、ユーザーがメッセージボックスのどのボタンを押したかを判断します。この場合、MsgBox関数呼び出しは括弧で指定する必要があることに注意してください。
result := MsgBox("Do you want to continue?(Press YES or NO)",, "YesNo") if (result = "No") return