指定されたテキストを、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の間に空白行ができる。
text1`n`ntext2
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
O
OKCancel
O/C
OC
AbortRetryIgnore
A/R/I
ARI
YesNoCancel
Y/N/C
YNC
YesNo
Y/N
YN
RetryCancel
R/C
RC
CancelTryAgainContinue
C/T/C
CTC
メッセージボックスにアイコンを表示するには、次の値のいずれかを追加します:
Iconx
Icon?
Icon!
Iconi
デフォルトのボタンを示すには、以下の値のいずれかを追加します:
Default2
Default3
Default4
ダイアログボックスのモダリティを示すために、以下の値のいずれかを追加します:
その他のオプションを指定する場合は、以下の値を1つ以上追加してください:
この関数は、ユーザーがどのボタンを押したかを表すために、以下の文字列のいずれかを返します:
ダイアログを表示できなかった場合は、空文字列が返されます。これは通常、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も指定することができます。
OwnerHWND
ヘルプボタン:Optionsでヘルプボタンオプション(16384)がある場合、以下の両方が成立していないと、ヘルプボタンを押しても効果がありません:
OnMessage(0x0053, 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 "This MsgBox has a custom title.", "A Custom Title"
デフォルトのテキストでメッセージボックスを表示します。主にデバッグ用途で、スクリプトにブレークポイントを素早く設定する場合などに便利です。
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
T(タイムアウト)オプションを使用すると、一定の秒数後にメッセージボックスを自動的に閉じます。
result := MsgBox("This MsgBox will time out in 5 seconds. Continue?",, "Y/N T5") if (result = "Timeout") MsgBox "You didn't press YES or NO within the 5-second period." else if (result = "No") return
メッセージに変数や部分式を含める。こちらも参照のこと:連結
var := 10 MsgBox "The initial value is: " var MsgBox "The result is: " var * 2 MsgBox Format("The result is: {1}", var * 2)