[ヘルプTop] [戻る]
メニュー定義ファイル
メニュー定義ファイルは、TSV(タブ区切りテキスト)、文字コードはUNICODEのリトルエンディアン(UTF16LE)で記述します。
行頭のキーワードにより個々のメニューコマンドが定義されます。
※フルパスの記述には%Script_dir%、%User_dir%、%Menu_dir%、%App_Dir%、%CMD_Dir%、%Viewer_Dir%、%UserCmd_Dir%の置換マクロが使用できます。(置換の意味はコマンド定義ファイル、スクリプトコマンドと同様です)
※MENUITEM以外のIDを使用しないタイプのコマンドは、内部でIDを若い数字から採番していき、最大で700個まで追加できます。
DIRECTRYなどのように、大量に項目を追加するタイプのものの使用には、ご注意ください。
各コマンドIDは、こちらの「
全機能一覧」を参照ください。
オプションの「
メニュー定義」の編集方法が「簡易設定ダイアログで開く」を選択した場合や、メニュー定義ファイルで「MENUEDIT」を使用した場合に、こちらの「
メニュー編集」で編集することも可能です。
もちろんメモ帳や、テキストエディタを使用して編集しても構いません。
メニュー選択肢
MENUITEM<TAB>メニュー文字列<TAB>コマンドID
指定したIDを持つコマンドを実行します。
活性/非活性、チェックボックスやラジオボタンの表示と制御は、NONOTIFYがOFFの場合にのみ使用されます。
MULTIPLE<TAB>メニュー文字列<TAB>コマンドID,コマンドID,コマンドID・・・
MENUITEMと動きが良く似ていますが、こちらは複数のコマンドが記述できる違いがあります。
カンマで区切られたコマンドIDのコマンドを、先頭から順に連続実行します。
なお、このコマンドの難点は全般的に動作が遅いことです。
動作速度を求める場合は、同じ内容のことを実現するにしても、SCRIPTやMENUITEMなどを使用して記述した方が動作効率が良くなる場合があります。
TITLE<TAB>表題のテキスト
見出し用途です。
メニューから選択するとID:0(キャンセルと等価)するため動作しません。
MENUITEMコマンドを使用すると以下の記述と同じになります。
MENUITEM<TAB>タイトル表記のコマンド<TAB>0
※当コマンドの動作に作者が納得していないので、将来仕様変更される可能性があります。
※TITLEはVer.16.3.0.0で実装しました。
MESSAGE<TAB>メニュー文字列<TAB>メッセージボックスで表示する内容のテキスト
動作確認用で、指定されたテキストをメッセージボックスで表示します。
※MESSAGEはVer.17.1.4.0で正式公開されましたが、テスト用途のものが公開された形なので、もう少し前から実装しています。
メニューの構成
INCLUDE<TAB>ファイル名
読み込んだメニュー定義ファイルと同じパスにある、他のメニュー定義ファイルを読み込み展開します。
INCLUDEして読み込んだファイル内のINCLUDEは3階層まで展開します。
呼び出される側のメニュー定義に含まれるDIRECTORYは全て無視します。
MENUITEM以外のIDを使用しないタイプのコマンドの合計数は、全てのメニュー構成を合算しますのでIDが700個の制限を超えることはできません。
※INCLUDEはVer.16.3.0.0で実装しました。
POPUP<TAB>メニュー文字列 /END
POPUPとENDの間に括られたアイテムは、ポップアップメニューで表示されます。
入れ子で多段階層を表現することが可能です。
【例】
POPUP<TAB>ポップアップメニューのテスト
MENUITEM<TAB>適当な項目<TAB>1234
END
SEPARATOR
セパレータ。
いわゆる区切りのための横線です。
メニューの挙動
NONOTIFY<TAB>ON/OFF
OFFにすると本体に対して、コマンドが実行できるか否かで活性化状態を切り替えたり、状態を示すためにチェックボックスやラジオボタンが表示されるようになります。
またショートカットキーが割り当てられていれば表示されます。
デフォルトはONです。
MENUITEM以外のIDを持たないコマンド類は制御の対象外かつ挙動が遅くなるので、カスタマイズ用途の場合はONにしておくことを推奨します。
※指定文字列として「ON」以外は「OFF」の意になります。
POSITION<TAB>メニュー表示位置の算出元
ポップアップメニューの表示位置を指定します。
この指定はユーザー定義メニュー用に作られているものなので、標準添付しているメニュー定義には使用しないでください。
(標準添付しているメニュー定義は状態依存メニューであるため、意図した位置に表示されなくなります)
【表示位置の算出元】
DESKTOP | デスクトップ中央へ表示 |
PAERNT | 親ウィンドウ中央へ表示、ウィンドウを並べて表示などを使用すると分かりやすい |
MOUSE | マウス位置に表示 |
MAIN | メインウィンドウ中央へ表示、ユーザー定義メニューの初期値 |
LEFT | 親ウィンドウの左上に表示 |
※LEFTはVer.16.3.0.0で実装しました。
選択ファイルを送る
COPYTABLIST
選択アイテムを、任意のタブに「コピー」するためのアクティブタブを除くタブの一覧を生成します。
マウス操作でファイル整理などを行うのに適していますが、非同期転送なのでバックグラウンドで動作します。
DROPTABLIST
選択アイテムを、任意のタブに「送る」ためのアクティブタブを除くタブの一覧を生成します。
DROPTABLISTは、DROPOPENと同様にタブのアクティブペインにドロップする動作なので、対象のタブが実体を持つディレクトリならコピーかショートカットが作成されます。(実体を持つファイル:コピー、マイコンピュータなど実体を持たないもの:ショートカット)
MOVETABLIST
選択アイテムを、任意のタブに「移動」するためのアクティブタブを除くタブの一覧を生成します。
マウス操作でファイル整理などを行うのに適していますが、非同期転送なのでバックグラウンドで動作します。
コマンドの実行
DROPOPEN<TAB>メニュー文字列<TAB>選択アイテムをドロップされるターゲットのフルパス
選択アイテムをターゲットファイルにドロップオープンします。
※ドロップオープンなので、ターゲットにフォルダーを指定するとファイルの「コピー」に、また同一ドライブなら「移動」になるのでご注意ください。
OPEN<TAB>メニュー文字列<TAB>開く対象のフルパスファイル名
指定アイテムを関連付けされた実行のできる、シェル起動を行います。
関連付けがされてるものであれば、様々なものが開けます。(例えば、テキストやフォルダーなどの実行ファイル以外も指定可能)
また対象文字列のファイルが存在しない場合は、コマンドラインオプションが付与されていると判断してコマンド分解して実行を試みます。
コマンドラインオプションの指定がある場合に、実行ファイルのパスやオプションにスペースが含まれている場合は、ダブルクォーテーションで括ってください。
※リストの選択状態とは連動しません。連動が必要な場合はDROPOPENかSCRIPTコマンドを利用してください。
SCRIPT<TAB>メニュー文字列<TAB>フルパスのスクリプト
通常、スクリプトファイルはScriptCommand.txtに記述して、コマンドIDを割り振った上でMENUITEMで使用する事ができますが、IDの割り振りを省略してスクリプトファイルを指定する事ができます。
※フォルダーバー/インサイドツリーは、選択したアイテムをカレントフォルダーとし、選択したアイテムをコマンドライン連動対象とみなします。
フォルダーバー/インサイドツリーは以外は、リストの現在のフォルダーをカレントフォルダーとし、リストで選択しているアイテムをコマンドライン連動対象とみなします。
リストで指定フォルダーを開く
JUMP<TAB>メニュー文字列<TAB>ジャンプ先のフルパスフォルダー
指定フォルダーへ移動します。ファイル名は指定できません。
NEW<TAB>メニュー文字列<TAB>新しく開くフルパスフォルダー
指定フォルダーを新しく開きます。ファイル名は指定できません。
リストのアイテムの選択
WILDCARD<TAB>メニュー文字列<TAB>フィルタエリアに入力する文字列
アクティブリストのフィルターを指定し、一覧のフィルタリングを行います。
解除する場合は
WILDCARD<TAB>フィルタリング解除
このように「フィルタエリアに入力する文字列」を未指定にすると、フィルターを解除できます。
メニュー定義ファイルの編集
EDIT<TAB>メニュー文字列
呼び出したメニュー定義ファイルを、As/Rに登録されているエディタで編集します。
MENUEDIT<TAB>メニュー文字列
呼び出したメニュー定義ファイルを、As/Rに登録されている簡易設定画面で編集します。
NOTEPAD<TAB>メニュー文字列
呼び出したメニュー定義ファイルを、メモ帳で編集します。
notepad.exeの探し方は、通常のパスの探索ルートを使用するので普段は使用しないでください。
偽造されたnotepad.exeを通常のパスの探索ルート上に配置して、意図しないnotepad.exeを実行させるという攻撃を既に受けている場合に問題になります。
ディレクトリメニューの作成
DIRECTORY<TAB>フルパスのディレクトリ名
このコマンドの出現した時点で、ディレクトリ探索モードに切り替わります。
通常のメニュー定義があったとしても破棄され、指定されたフォルダー階層から選択するメニューを生成します。
【ディレクトリ探索モードの属性値】
属性 | 説明 | 書式 |
DIR_SCRIPT |
DIR_SCRIPT<TAB>スクリプトのフルパス |
ディレクトリ探索モードで、ファイルないしフォルダーが選択されたときに呼ばれるスクリプトを指定します。
未指定の場合は、シェル実行を行います。
初期値は未指定です。 |
DIR_FILE |
DIR_FILE<TAB>ON/OFF |
ファイル選択モードです。
ONにするとメニューにファイル名が表示され、ファイルの選択が可能になります。
初期値はONです。
※指定文字列として「ON」以外は「OFF」の意になります。
|
DIR_FOLDER |
DIR_FOLDER<TAB>ON/OFF |
フォルダー選択モードです。
ONにするとサブフォルダーの一覧に[Select Folder]が表示され、フォルダーの選択が可能になります。
初期値はOFFです。
※指定文字列として「ON」以外は「OFF」の意になります。 |
DIR_UP |
DIR_UP<TAB>ON/OFF |
上位階層の参照モードです。
ONにするとサブフォルダーの一覧に「..」が表示され、上位階層への参照ができます。
DIRECTORYで指定フォルダーより上位階層には行けません。
デフォルトはOFFです。
※指定文字列として「ON」以外は「OFF」の意になります。 |
HIDDEN_ITEM |
HIDDEN_ITEM<TAB>ON/OFF |
隠し属性を持つアイテムの表示制御を行います。
ONにすると隠し属性を持つものも表示されます。
デフォルトはOFFです。
※指定文字列として「ON」以外は「OFF」の意になります。 |
※ディレクトリモードのサンプルのメニュー定義
マウス位置にC:\をルートとした、階層メニューを作成し、選択したファイルを「エディタで開く」スクリプトで開きます。
同梱のメニュー定義ファイルや、ホームページ上で公開されているサンプルも参照ください。
POSITION<TAB>MOUSE
DIR_SCRIPT<TAB>%Script_dir%Editor.txt
DIR_FILE<TAB>ON
DIR_FOLDER<TAB>OFF
DIR_UP<TAB>ON
DIRECTORY<TAB>c:\
補足
コメント
上記文法にマッチしないものは全てコメントとみなします。
プレースホルダー
MENUITEMで指定したIDによって、まとめて置き換える系統のコマンドIDがいくつか存在しています。
これらは、動的に変化するメニュー項目なので、その内容をカスタマイズすることはできません。
※当該のコマンドIDをもつメニュー項目を記載することで、個々のコマンドを使用することは可能です。
ID | 説明 |
39990 | スクリプトコマンド一覧 IDの位置に有効なスクリプトコマンドが挿入されます。 MENUITEMのラベルはコメント扱いになり使用されません。 |
39991 | ナビゲーションありのスクリプトコマンド一覧 IDの位置に有効なナビゲーション有スクリプト挿入されます。 MENUITEMのラベルはコメント扱いになり使用されません。 |
39992 | ユーザーメニュー一覧 IDの位置に有効なユーザメニューコマンドが挿入されます。 MENUITEMのラベルはコメント扱いになり使用されません。 |
39993 | プラグインコマンド一覧 IDの位置に有効なプラグインコマンドが挿入されます。(ほぼ利用されていません) MENUITEMのラベルはコメント扱いになり使用されません。 |
39994 | 標準外部コマンド一覧 IDの位置に標準外部コマンドが挿入されます。 MENUITEMのラベルはコメント扱いになり使用されません。 |
39995 | ユーザー外部コマンド一覧 IDの位置に有効なユーザー外部コマンドコマンドが挿入されます。(ほぼ利用されていません) MENUITEMのラベルはコメント扱いになり使用されません。 |
39996 | タブセットの一覧 名称が有効になっているタブセットの一覧を表示します。 名称未定のタブセットが存在した場合に以降のタブセット名は表示対象から外れます。 |
39997 | ドッキングバーのポップアップメニュー 各種ドッキングバーに対する設定や操作を、各バーごとの機能がまとめてポップアップメニューとしてセットされます。 メニューのラベルはMENUITEMで記した内容になります。 |
メニュー文字列の特殊文字
文字 | 説明 |
& |
次に続く文字を、メニューのショートカットキーとして定義します。
必ず半角英数字の前に記述してください。
|
\t |
タブインデント文字で、規定文字分の空白になります。
主にアプリケーションのショートカットキーの記述に使われます。
例)コピー\tCtrl+C
→コピー Ctrl+C
|
※各メニューファイルには、一部専用のIDが割り振られていることがあります。
例)リストの空欄右クリックメニュー用の「新規作成」と置換されるプレースホルダ、詳細のヘッダの右クリックのカラムの表示の有無など
※47000~47999のIDを持つコマンドは、各種のドッキングバー専用のコマンドです。
ユーザー定義メニューとして使用できるものではないので動作しません。ご留意ください。