Menu

提供: AutoHotkey Wiki
移動: 案内検索

実行制御 | 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 Pnn でメニューを選択したときに実行されるスレッドの割り込み優先度を設定できる。(例: 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を * にすると、スクリプトのデフォルトアイコンになる。
ここでの設定は、InputBoxProgressでのアイコンにも反映される。
A_IconNumberA_IconFileとして現在の設定を取得できる。(デフォルトのときは空になる)
Freezeに1を指定すると、トレイアイコンを固定し、PauseコマンドやSuspendコマンドでアイコンが変化しないようにすることができる。
Freezeを 0にするとトレイアイコンの固定を解除できる。
Icon,,,1 PauseSuspendコマンドを実行したときにトレイアイコンが変わらないようにする。
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 メニューからスクリプトのメインウィンドウを表示することを禁止する。
ListLinesListVarsListHotkeysKeyHistoryコマンドが実行された場合は、ここでの設定にかかわらず表示される。
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