シェル拡張-エクスプローラのコンテキストメニューを拡張 [2]
[1]に続いて、レジストリの設定方法。
SDKサンプル ShellExt はDllRegisterServer()を実装していないので、同サンプルのレジストリファイル ShellExt.reg を修正する。
(1) GUID をDLLで使っている値に置き換える
(2) InProcServer32 に作成したDLLのフルパスを記述する。
ディレクトリの区切りは \\ である。
(3) アプリケーション名 "Shell Extension Sample" を適当に置き換える。
拡張子 .GAK にコンテキストメニュー
元々のサンプル ShellExt は拡張子 .GAK のコンテキストメニューを拡張している。
その仕様のままの regファイル作成例は、
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}]
@="Test Shell Ext2"
[HKEY_CLASSES_ROOT\CLSID\{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}\InProcServer32]
@="D:\\*******\\TestShellExt2.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\.gak]
@="GAKFile"
[HKEY_CLASSES_ROOT\GAKFile]
@="Shell Extension file"
[HKEY_CLASSES_ROOT\GAKFile\shellex\ContextMenuHandlers]
@="GAKMenu"
[HKEY_CLASSES_ROOT\GAKFile\shellex\ContextMenuHandlers\GAKMenu]
@="{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}"="Test Shell Ext2"
すべてのファイルにコンテキストメニュー
REGEDIT4
[HKEY_CLASSES_ROOT\CLSID\{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}]
@="Test Shell Ext2"
[HKEY_CLASSES_ROOT\CLSID\{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}\InProcServer32]
@="D:\\*****\\TestShellExt2.dll"
"ThreadingModel"="Apartment"
[HKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\Test Shell Ext2]
@="{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Shell Extensions\Approved]
"{16FCCEF9-27E1-451c-ADBF-4E4AA4FAC14B}"="Test Shell Ext2"
regファイルを実行するとレジストリに登録され、すぐにコンテキストメニューが有効になる。
ファイルタイプごとのコンテキストメニューも出ていることが分かる。
後は CtxMenu.cpp のカスタマイズということになる。
« シェル拡張-エクスプローラのコンテキストメニューを拡張 [1] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [3] »
「ソフトウエア」カテゴリの記事
- PIC18用Cコンパイラ(PCH)メモ (3) 【const修飾子】(2015.05.10)
- PIC18用Cコンパイラ(PCH)メモ (2) 【関数ポインタ】(2015.05.10)
- PIC18用Cコンパイラ(PCH)メモ (1)(2015.05.06)
- PIC用Cコンパイラを開発元から直接購入(2015.05.04)
- オライリー「JavaScript」(2014.01.16)
« シェル拡張-エクスプローラのコンテキストメニューを拡張 [1] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [3] »
コメント