[ヘルプ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>メニュー表示位置の算出元
ポップアップメニューの表示位置を指定します。
この指定はユーザー定義メニュー用に作られているものなので、標準添付しているメニュー定義には使用しないでください。 (標準添付しているメニュー定義は状態依存メニューであるため、意図した位置に表示されなくなります) 【表示位置の算出元】
選択ファイルを送る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>フルパスのディレクトリ名
このコマンドの出現した時点で、ディレクトリ探索モードに切り替わります。
通常のメニュー定義があったとしても破棄され、指定されたフォルダー階層から選択するメニューを生成します。 【ディレクトリ探索モードの属性値】
マウス位置にC:\をルートとした、階層メニューを作成し、選択したファイルを「エディタで開く」スクリプトで開きます。 同梱のメニュー定義ファイルや、ホームページ上で公開されているサンプルも参照ください。
POSITION<TAB>MOUSE 補足コメント
上記文法にマッチしないものは全てコメントとみなします。
プレースホルダー
MENUITEMで指定したIDによって、まとめて置き換える系統のコマンドIDがいくつか存在しています。
これらは、動的に変化するメニュー項目なので、その内容をカスタマイズすることはできません。 ※当該のコマンドIDをもつメニュー項目を記載することで、個々のコマンドを使用することは可能です。
メニュー文字列の特殊文字
※各メニューファイルには、一部専用のIDが割り振られていることがあります。 例)リストの空欄右クリックメニュー用の「新規作成」と置換されるプレースホルダ、詳細のヘッダの右クリックのカラムの表示の有無など ※47000~47999のIDを持つコマンドは、各種のドッキングバー専用のコマンドです。 ユーザー定義メニューとして使用できるものではないので動作しません。ご留意ください。 |