大雑把で恐縮ですがカスタマイズした内容の説明です。
HKEY_CLASSES_ROOT\CLSID\ 以下のキーのほとんどは、Windows7 の標準では編集できなくなっていますが、例外として、ごく一部はそのまま編集可能になっています。
コンピューター アイコンの右クリックメニュー
{20D04FE0-3AEA-1069-A2D8-08002B30309D}\shell
ごみ箱 アイコンの右クリックメニュー
{645FF040-5081-101B-9F08-00AA002F954E}\shell や shellex
これは、この部分に機能を追加する多くのアプリケーションとの互換性を考慮したものと思われます。 前々回にこの部分を使用したのも、煩わしい所有権の変更をする必要がないためです。(Findは見落としていましたが)
CLSID については、一部ですが、MSDN などに載っていますし、キーの既定値からおおよそ推測したりできます。
Shell の DevmgrやDiskmgmt キーなどは、好きな名前にできます。
右クリックメニューがこの順番で並びますので、a ,b ,c や 01 ,02 ,03 と付けてみるのもいいかもしれません。任意の順で並べ替えることもできますが、ここでは割愛します。
@devmgr.dll,-4 でDLLの中の文字列 (デバイス マネージャー)を指定しています。
リソースツールなどで日本語の文字列を探す場合は、devmgr.dll.mui を調べます。
日本語で「デバイス マネージャー」と入力しても同じ結果になります。
MUIVerb 値を追加するとそちらが優先して表示されます。
Icon 値でメニューのアイコンを指定しています。
DLLの中の文字列やアイコンはリソースツールなどで調べることもできますが、ほとんどは、Windows が初めから設定している、スタートメニューやレジストリを参考にしています。
例えば、デバイス マネージャーは以下のキーで設定されていますので、それを参考にしました。
Command キーの既定値のデータが実行されるコマンドです。
%SystemRoot%\system32\NOTEPAD.EXEなどにするとメモ帳が起動します。
この、Command キーの既定値や上のデバイスマネージャーの文字表示のところは、通常は文字列値 (REG_SZ)ではなく、展開可能な文字列値 (REG_EXPAND_SZ)になっています。
ブログに載せるのに都合が悪いので文字列値にしていますが、環境変数を使う場合は展開可能な文字列値 でないと動作しません。