2011-08-12 14 views
2

Windowsエクスプローラでコンテキストメニュー項目を追加したいと思います。notepadd ++、winzip、winrarのようなものです。Windowsエクスプローラで特定のドライブのコンテキストメニュー項目を追加する

これらは私の要件は次のとおりです。

  • コンテキストメニュー項目(たとえば、特定のドライブのすべてのファイルに表示する必要がありますではなく、C :)
  • 文脈上:Dに表示されるべきです
  • は、検索のビットの後XP、Vistaでは、Windows 7(32ビットおよび64ビット)

で動作するはずです、それはように見えるパラメータとして、メニューは単に選択されたファイル(複数可)で、.NETプログラムを起動する必要があります私はHKEY_CLASSES_ROOT \ Folder \ shellレジストリキーを使用してここに自分自身をプラグインすることができますが、それはすべてかどうかのように見えます.D内のファイルのコンテキストメニューにはありません:C:

その他ソリューションはシェルエクステンションを書くことですが、これは.NETではお勧めできません。

私の問題を解決する最も簡単な方法は何ですか?

おかげ

+0

シェル拡張の記述は、少なくとも.net 4.0以降でサポートされています。ただし、アンマネージシェル拡張のより良い例があるかもしれません。そのため、アンマネージエクステンションを書くほうが簡単かもしれません。 – ForbesLindesay

+0

この http://stackoverflow.com/questions/27648332/how-i-can-add-a-entry-to-shell-menu-only-on-drive-c –

答えて

1

は、他のソリューションは、シェル拡張を書くことになりますが、これは.NETで落胆 で、手元の作業のためのビットやり過ぎに見えます。

どこを読んだのですか? Dino EspositoはC#でシェル拡張を行ったことのある本を書いています。それはgoogleのためです。

ShellExtensionでコードが実行され、表示する内容と実行時間を完全に制御できます。この場合。

レジストリにはShellExtensionの登録(および他のもの)が含まれていますので、この2番目のケースでは何が起こるのかを制御しにくいため、レジストリに手動で触れないでください。

+0

おかげダヴィデを参照してください、これはhttp://blogs.msdn.com/b/oldnewthing/archive/2006/12/18/1317290.aspx .NET 4.0ではこれがサポートされているように見えますが、.NETでも可能です4.0は現在主流と見なされていますか? –

+0

私のGoogleのスキルはあなたが話している本を見つけるのに失敗しています。 Dino EspositoはC++でWindowsシェルプログラミングに関する本を書いたが、C#?リンクがありますか?アマゾンで何もない... –

+0

申し訳ありませんが、私は本を混乱させる可能性があり、それはC++であった。これを確認してください:http://www.codeproject.com/KB/shell/csdoesshell1.aspx私はC#でシェル拡張に関する記事を読んでいることは分かります。 –