2010-12-12 22 views
1

私はC#WPFアプリケーションを持っています。これは、すべてのファイルで動作するように設計されています。現在は、コマンドライン引数を使って '入力'を受け付け、メインウィンドウのコントロールにドラッグアンドドロップすることもできます。しかし、理想的には、ファイル/複数のファイルを右クリックして、単に「これをうかがってください」をクリックするようにしてください。.NETとファイルのコンテキストメニューを組み合わせる推奨方法

私は数年前からコンテキストメニューの経験があるので、それはあまり現実的ではありません。このように、私はこの機能を実装するための最善の方法について助言を求めています。以下のすべての例は、私がW7を使って見るものに基づいています。

一般に、純粋レジストリとレジストリ+ COMオブジェクトの2つの方法があります。

私は特別なことはしたくないので、前者はそれに対してある種の優雅さを持っています。しかし、私がドキュメントで知ることから、これらのメニュー項目は常に、プライマリファイルアクション(オープン,プレビュー,プリント)と同じ場所に詰まります。しかし、私は自分のアイテムがトーテムポールの下に表示されるようにしたい。私がランダムファイルの私のコンテキストメニューを見ると、私はそれが 'スポット'にあることを望んでいるでしょうUltraEditMalwarebytes Anti-Malwareは自分自身をスティックします。 HKCR\*\shell\AwesomeTestの下に私のエントリをつけると、私はPositionのために何を選んでも、好きではない2つの異なる極端なものが得られます。TopBottomは、のプロパティの上に置きます。私はそれを間に入れたいとの共有これまでのバージョンのは、ほとんどの汎用ツールが家を見つけているように見えます。

さらにいくつかのレジストリの掘り下げは、COMオブジェクトルートを模倣したいアプリケーションを指摘しているようです。そしてそれは私をネイティブコードに戻すでしょう。これは、私が避けようとしている32ビットと64ビットの開発のすべての地獄をもたらすでしょう。

紛失しているものはありますか?同様に、私は見て、むしろ役に立たないことが判明したMSDN page regarding context menu handlers以外(この配置に関するより詳細な情報に飛び込むことなく多くを見ているように見えるので)、この問題に関する良い情報源はありますか?

私がまだ理解できなかったもう一つのことは、IDropTargetサポートを.NET WPFアプリケーションに正しく追加する方法です。その情報もまた歓迎されます。

誰かが即座に答えを出してくれれば、それはうまくいくかもしれませんが、私は主に行き止まりのパスで数日間無駄にすることなく正しい道を見つけることを試みています。どちらがたくさんあるようです。 :(

答えて

1

IContextMenu :: QueryContextMenu()。シェル拡張は

+0

。それis hereを使用するサンプルプロジェクト。、C#で、C++のドメインに返信してくれてありがとう必要な.NET 4.0非常に不愉快ですが、それはです私のWPFアプリをファイルのコンテキストメニューの特定の場所に置くことを望んでいます。私のファイルを表示/アクセス/ etcでWPFアプリケーションから持たないようにしています。そのための最良の方法は、32ビットと64ビットのコンテキストメニューハンドラdllを混在させて、適切な場所にアイテムを表示させることです。 – Stigma

+1

(精神ノート:悪いニュースの配信を停止する) –

関連する問題