ExtendedSubCommandsKeyの使い方
前回のSubcommands が HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\CommandStore からの参照だけなのに対して、ExtendedSubCommandsKey は参照先を指定できます。
参照先がHKEY_CLASSES_ROOTに変わっただけでほとんど Subcommands と同じで併用もできます。Shell コマンドだけというのも同様。
…だと思います。
かなり自信がありません。参考程度にお願いします。(文末に言い訳あり)
2014 年、おおよそ理解できたのでデスクトップのシェルメニューをサブメニューにするに ExtendedSubCommandsKey を使ったカスタマイズを追記しました。
例に挙げたものについては動作を確認しましたが、例1の他のキーは呼び出せない場合があります。例2については注意点がありますが大丈夫だと思います。
フォルダーの背景に ExtendedSubCommandsKey でメニューを追加してみます。
例1 既存のメニューを呼び出す。
フォルダーの背景に
myShell (適当な名前)キーを作成します。
HKEY_CLASSES_ROOT\directory\BackGround\shell\myShell
ExtendedSubCommandsKey(文字列値)を作成して、DesktopBackgroundにします。
Window 7 のデスクトップのメニューを呼び出しています。
HKEY_CLASSES_ROOT\DesktopBackground\Shell
例2 独自にメニューを設定しておく
HKEY_CLASSES_ROOT\MyTools (適当な名前)キーを作成して、Shellコマンドを設定しておきます。
フォルダー オプション を設定してみました。
control folders
この時、項目のキーの(既定)か MUIVerb 値で名前を設定しておかないと表示されません。
HKEY_CLASSES_ROOT\directory\BackGround\shell\myShell
ExtendedSubCommandsKey (文字列値)を作成して、MyToolsにします。
Subcommands のように ; (セミコロン)でメニューを並べることはできません。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\MyTools\shell\FolderOption]
"Icon"="%SystemRoot%\\system32\\imageres.dll,-166"
"MUIVerb"="@%SystemRoot%\\system32\\shell32.dll,-22985"
[HKEY_CLASSES_ROOT\MyTools\shell\FolderOption\command]
@="control folders"
;
[HKEY_CLASSES_ROOT\directory\BackGround\shell\myShell]
"ExtendedSubCommandsKey"="MyTools"