0

ソフトウェア Dropbox は、特定のフォルダ内のすべてのファイルにコンテキスト メニュー項目を追加するシェル拡張機能を提供します。これらのいずれかにより、選択したファイルを表示するための公開リンクが生成されます。

C# ツールでは、ユーザーの操作なしでこのエントリを呼び出したいと考えています。ユーザーが選択したファイルのコンテキスト メニュー項目をクリックした場合と同じ動作を実現したいと考えています。

シェル拡張が DLL によって提供されていることは知っていますが、この DLL を呼び出して期待どおりの動作を実現することはできますか?

4

1 に答える 1

3

シェル拡張機能はIContextMenuを実装しており、メニューを表示せずにメニュー コマンドを実行できます ( IContextMenu の「ホスティング」の詳細については、このブログ投稿を参照してください)。

メニューを取得したら、IContextMenu::GetCommandString を呼び出して特定の動詞を探します。Dropbox に多少固有の動詞がない場合は、メニュー テキストだけで一致させるか、 Dropbox シェル拡張 dll を直接 (DllGetClassObject エクスポート)、すべてを偽装 (COM およびシェルのふりをする) または CLSID がわかっている場合は、少なくとも COM からヘルプを取得して、シェル部分だけを実行できます。

シェル メニュー/IContextMenu を操作できるrunmenuというフリーウェア ツールがあります (どこかにコピーがあるはずです)。

于 2010-10-01T07:37:11.720 に答える