Menu
実行制御 | GUI表示 | 演算・変数 | メモリ・DLL操作 | 文字列操作 |
キーボード | マウス | シェル | ウィンドウ | ウィンドウグループ
ステータスバー | コントロール | サウンド | ファイル | INIファイル |
レジストリ | 環境変数 | AutoHotkey | その他 | 設定関係 | オブジェクト
Menu[編集]
ポップアップメニューを作成したり表示したりする。タスクトレイアイコンやツールチップの設定も行える。
Menu, MenuName, Cmd [, P3, P4, FutureUse]
Parameters[編集]
引数名 | 説明 |
---|---|
MenuName | TRAY とすると、タスクトレイの右クリックメニューを設定できる。それ以外は、カスタムメニュー名となる。 カスタムメニューは、Addコマンドで項目を登録したときに新規作成される。 |
Cmd, P3, P4 | 下記参照 |
FutureUse | 将来の拡張のために確保されている。今のところこの引数は無視される。 |
メニュー項目操作[編集]
Add , MenuItemName | MenuItemName で指定した表示名でメニュー項目を追加し、 MenuItemName で指定した名前のラベルを割り当てる。
|
Add , MenuItemName, Label | MenuItemName で指定した表示名でメニュー項目を追加し、 Label で指定した名前のラベルを割り当てる。
|
Add , MenuItemName, :Submenu | MenuItemName で指定した表示名でメニュー項目が追加され、選択すると Submenu で指定した名前のメニューが展開されるようになる。Submenu のメニューはあらかじめ作成しておく。サブメニュー名の前に : をつける必要がある。
|
Add , MenuItemName,[ Label],Pn | Pn のn でメニューを選択したときに実行されるスレッドの割り込み優先度を設定できる。(例: P10 )
|
Add | メニューに区切り線を追加する。 現在のところ、区切り線単体を削除することは出来ないので、DeleteAllで全削除してから追加しなおすしかない。 |
Delete [, MenuItemName] | MenuItemNameで指定した項目を削除する。 MenuItemNameが省略された場合、MenuNameのメニュー自体が削除される。 他のメニューにサブメニュー項目として登録されていた場合、その項目も削除される。 |
DeleteAll | メニュー内の項目を全て削除する。 メニュー自体は削除されない。 |
Rename, MenuItemName [, NewName] | MenuItemNameの項目名をNewNameに変更する。 NewNameが省略された場合、項目は区切り線に変わる。 他の項目名と同じ名前にすることはできない。 |
Check, MenuItemName | MenuItemNameの項目をチェックが付いた状態にする。 |
Uncheck, MenuItemName | MenuItemNameの項目をチェックの付いていない状態にする。 |
ToggleCheck, MenuItemName | MenuItemNameの項目のチェックの有無を切り替える。 |
Enable, MenuItemName | MenuItemNameの項目を有効化する。 |
Disable, MenuItemName | MenuItemNameの項目を無効化(選択不能状態)する。 |
ToggleEnable, MenuItemName | MenuItemNameの項目の有効・無効を切り替える。 |
Default [, MenuItemName] | メニューのデフォルト項目をMenuItemNameの項目に設定する。 デフォルト項目は太字で表示される。 タスクトレイメニューの場合、タスクトレイアイコンをダブルクリックしたときにデフォルト項目が実行される。 MenuItemNameが省略されたときは、NoDefaultと同じになる。 |
NoDefault | デフォルト項目の設定を解除し、デフォルト項目が無い状態にする。 |
Standard | タスクトレイメニューにあるような標準メニュー項目を追加する。 |
NoStandard | 標準メニュー項目を削除する。 |
AHKL AutoHotkeyでサポートされているあらゆる画像フォーマットをメニューアイコンとして利用できる。
Icon, MenuItemName, FileName [, IconNumber, IconWidth] | メニュー項目にアイコンを設定する。 詳細はAHKLで拡張されたメニューアイコンを参照のこと。 |
NoIcon, MenuItemName | メニュー項目に設定されているアイコンを削除する。 詳細はAHKLで拡張されたメニューアイコンを参照のこと。 |
タスクトレイ関係[編集]
MenuNameは TRAY
とすること
Icon, FileName [, IconNumber, Freeze] | タスクトレイアイコンを変更する。 FileNameにはアイコンを含むファイル(.ico,.dll,.exeなど)を指定する。 IconNumberにはアイコン番号を指定。省略時は 1 になる。FileNameを * にすると、スクリプトのデフォルトアイコンになる。ここでの設定は、InputBoxやProgressでのアイコンにも反映される。 A_IconNumberやA_IconFileとして現在の設定を取得できる。(デフォルトのときは空になる) Freezeに1を指定すると、トレイアイコンを固定し、PauseコマンドやSuspendコマンドでアイコンが変化しないようにすることができる。 Freezeを 0 にするとトレイアイコンの固定を解除できる。
|
Icon,,,1 | PauseやSuspendコマンドを実行したときにトレイアイコンが変わらないようにする。 |
Icon,,0 | Icon,,1の設定を解除 |
Icon | #NoTrayIcon でアイコンが非表示になっているとき、デフォルトのアイコンを表示する。 |
NoIcon | トレイアイコンを非表示にする。 スクリプト起動時にアイコンを非表示にしたい場合、#NoTrayIcon を使ったほうがよい。 アイコンが非表示かどうかはA_IconHidden変数で参照できる。( 0 なら表示、1 なら非表示)
|
Tip [, Text] | トレイアイコンにマウスを乗せたときに表示されるツールチップを変更する。 Textが省略された場合、スクリプトのデフォルトテキストになる。 A_IconTip変数で設定した内容を参照できる。(デフォルトのときは空) |
他[編集]
Show [,X ,Y] | MenuNameのメニューを表示する。 GUIウィンドウのメニューバーに関連付けられているメニューは表示できない。 X,Yに表示する座標を指定する。省略時はマウスカーソル位置。 座標の指定方法は、 CoordMode, Menu でアクティブウィンドウからの相対座標か、スクリーン全体での絶対座標かを設定できる。
|
Color, ColorValue[, Single] | メニューの背景色を変更する。 ColorValueにはRRGGBB形式のカラーコード(例: FF9900 )や色名(例:Red )を指定できる。ColorValueを省略するか Default を指定すると、システムで設定されたメニュー背景色に戻る。通常は、サブメニューの背景色も変更されるが、第3引数に Single を指定するとサブメニューは変更されない。このサブコマンドはWindows95/NTでは効果がない。 |
Click, ClickCount | トレイアイコンからメインウィンドウを表示するための操作を設定する。 ClickCountに 1 を指定すると、シングルクリックで表示される。2 を指定すると、ダブルクリックで表示される。デフォルトは 2 。
|
MainWindow | メニューからスクリプトのメインウィンドウを表示することを許す。 MenuNameは TRAY とする。EXE化されたスクリプトでのみ有効。 |
NoMainWindow | メニューからスクリプトのメインウィンドウを表示することを禁止する。 ListLines、ListVars、ListHotkeys、KeyHistoryコマンドが実行された場合は、ここでの設定にかかわらず表示される。 |
UseErrorLevel [, off] | 通常、Menuコマンド実行時に何らかのエラーがあったら、エラーダイアログが表示され、現在のスレッドは終了する。 UseErrorLevelを行うと、エラーダイアログを表示せず、ErrorLevel変数を 1 にする。引数に OFF をつけると、この設定をOFFにできる。この設定は、全てのメニューに影響する。 |
Remarks[編集]
メニューアイテム名に &a
のように &
に続いて英数字をつけたものがあると、その部分が下線付きの英数字として表示され、対応するキーを押すことでそのメニューアイテムを選択できるようになる。
メニューやメニュー項目名は最大260文字まで。
メニュー項目名は大文字小文字を無視してマッチする。
メニューアイテムは常に一番下に追加される。
トレイメニューの上に項目を追加したい場合、NoStandard
でいったん標準項目を削除して、Standard
で追加しなおす。
空のメニューは表示できない。
メニューアイテムはスレッドとして実行される。
メニューアイテムのスレッド実行中に別のスレッドが割り込むこともある。
優先度を設定し、低い優先度のスレッドの割り込みを禁止することもできる。
A_ThisMenuItem変数で一番最近実行された実行されたメニュー項目名を、 A_ThisMenuでメニュー名を参照できる。
ホットキーを使わず、メニューアイテムなどからのみアクションを実行するスクリプトの場合、#Persistent を記述して明示的に常駐状態にしなければならない。
Related[編集]
Threads, Gosub, Return, SetTimer, #Persistent
AHKL Menu,Icon
Example(s)[編集]
Menu, tray, add, Item1, MenuHandler Return MenuHandler: MsgBox You selected %A_ThisMenuItem% from menu %A_ThisMenu% Return; This test script demonstrates some of the various menu commands.
#Persistent #SingleInstance Menu, tray, add ; separator Menu, tray, add, TestToggle&Check Menu, tray, add, TestToggleEnable Menu, tray, add, TestDefault Menu, tray, add, TestStandard Menu, tray, add, TestDelete Menu, tray, add, TestDeleteAll Menu, tray, add, TestRename Menu, tray, add, Test Return;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TestToggle&Check: Menu, tray, ToggleCheck, TestToggle&Check Menu, tray, Enable, TestToggleEnable; Also enables the next test since it can't undo the disabling of itself.
Menu, tray, add, TestDelete; Similar to above.
Return TestToggleEnable: Menu, tray, ToggleEnable, TestToggleEnable Return TestDefault: If default = TestDefault { Menu, tray, NoDefault default = } Else { Menu, tray, Default, TestDefault default = TestDefault } Return TestStandard: If standard <> n { Menu, tray, NoStandard standard = n } Else { Menu, tray, Standard standard = y } Return TestDelete: Menu, tray, delete, TestDelete Return TestDeleteAll: Menu, tray, DeleteAll Return TestRename: If NewName <> renamed { OldName = TestRename NewName = renamed } Else { OldName = renamed NewName = TestRename } Menu, tray, rename, %OldName%, %NewName% Return Test: MsgBox, You selected "%A_ThisMenuItem%" in menu "%A_ThisMenu%". Return