« シェル拡張-エクスプローラのコンテキストメニューを拡張 [1] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [3] »

2009年4月 9日 (木)

シェル拡張-エクスプローラのコンテキストメニューを拡張 [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ファイルを実行するとレジストリに登録され、すぐにコンテキストメニューが有効になる。

Contextmenu_sample_2_3 

ファイルタイプごとのコンテキストメニューも出ていることが分かる。

後は CtxMenu.cpp のカスタマイズということになる。

« シェル拡張-エクスプローラのコンテキストメニューを拡張 [1] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [3] »

ソフトウエア」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック


この記事へのトラックバック一覧です: シェル拡張-エクスプローラのコンテキストメニューを拡張 [2]:

« シェル拡張-エクスプローラのコンテキストメニューを拡張 [1] | トップページ | シェル拡張-エクスプローラのコンテキストメニューを拡張 [3] »