コンテキストメニュー(右クリックメニュー)の階層化

ファイルシステムオブジェクトのコンテキストメニューに「メニュー+コマンド」を追加

目標:ファイルを右クリックすると以下のコンテキストメニューが表示される。

f:id:rochelloid:20170906231612p:plain

 

Operation.1

レジストリエディタを起動する。

 

Operation.2

コンテキストメニュー「Test Menu」を追加する。

 

Operation.2-1

「HKEY_CLASSES_ROOT\*\shell」で右クリックし、「新規>キー」を選択する。

 

Operation.2-2

「HKEY_CLASSES_ROOT\*\shell」配下に新しいキーが作成されるため、「TestMenu」と名前を変更する。

 

Operation.2-3

「HKEY_CLASSES_ROOT\*\shell\TestMenu」で右クリックし、「新規>文字列値」を選択する。

 

Operation.2-4

文字列値を以下のように変更する。

 名前:MUIVerb

 データ:Test Menu

 

Operation.2-5

Operation.2-3と同様に「HKEY_CLASSES_ROOT\*\shell\TestMenu」で右クリックし、「新規>文字列値」を選択する。

 

Operation.2-6

文字列値を以下のように変更する。

 名前:SubCommands

 

Operation.2-7

エクスプローラを起動し、適当なファイルを右クリックすると「Test Menu」が表示される事を確認する。

「>」も表示されているが、ここまでの設定ではまだ階層化に至っていない。

 

Operation.3

「Test Menu」の配下にコマンド「Test Command 1」「Test Command 2」を追加する。

 

Operation.3-1

「HKEY_CLASSES_ROOT\*\shell\TestMenu」で右クリックし、「新規>キー」を選択する。

 

Operation.3-2

「HKEY_CLASSES_ROOT\*\shell\TestMenu」配下に新しいキーが作成されるため、「shell」と名前を変更する。

 

Operation.3-3

「HKEY_CLASSES_ROOT\*\shell\TestMenu\shell」で右クリックし、「新規>キー」を選択する。

 

Operation.3-4

「HKEY_CLASSES_ROOT\*\shell\TestMenu\shell」配下に新しいキーが作成されるため、「TestCommand1」と名前を変更する。

またデータを「Test Command 1」と変更する。

 

Operation.3-5

「HKEY_CLASSES_ROOT\*\shell\TestMenu\shell\TestCommand1」で右クリックし、「新規>キー」を選択する。

 

Operation.3-6

「HKEY_CLASSES_ROOT\*\shell\TestMenu\shell\TestCommand1」配下に新しいキーが作成されるため、「Command」と名前を変更する。

またデータを「cmd.exe /k "ECHO Test Command 1"」と変更する。

 

Operation.3-7

同様の手順で「Operation.3-4~3.6」を繰返し、「Test Command 1→Test Command 2」「TestCommand1→TestCommand2」と適宜置換する。

 

Operation.3-8

エクスプローラを起動し、適当なファイルを右クリックすると「Test Menu」の配下が表示される事を確認する。

「Test Command 1」を選択するとコマンドプロンプトが起動し、「Test Command 1」と出力される事を確認する。

 

Operation.3-9

レジストリエディタの階層は以下の通りになる(※当該個目の範囲外は省略)。

 

HKEY_CLASSES_ROOT
└*
 └shell
  └TestMenu
   └shell
    ├TestCommand1
    |└Command
    └TestCommand2
     └Command