2017-02-21 3 views
-2

IDropTarget :: Drop関数をフックする方法をドキュメントを探しています。 ターゲットアプリケーションにDLLをプラグインとして追加し、ドロップされたファイルを取得するためにIDropTarget :: Drop関数をフックしたいと思います。すでに同様の実装を行っている人はいますか?IDropTarget :: Dropをフックする方法

答えて

-1

レジストリで登録を引き継ぐ必要があるため、Windowsでは代わりにカスタムアプリケーションをアクティブにする必要があります。その後、実際のアプリケーションを生成し、CoRegisterClassObjectを呼び出して実際のアプリケーションに手動で接続し、ドロップをそのアプリケーションに転送する必要があります。これは初心者のCOMのものではなく、登録されたファイルタイプの.exeと起動での落とし穴を扱うだけです。アプリケーションウィンドウのドロップを処理するために、実際のアプリケーションでCreateProcessを呼び出したところに.dllを挿入することもできます。アプリケーションで古いWM_DROPFILESを代わりに使用している可能性も考慮する必要があります。

これは非常に複雑で、すべてが機能しても、ユーザーがスタートメニューからアプリケーションを起動してからウィンドウにファイルをドロップするケースは処理できません。このシナリオを処理するには、Image File Execution Optionsキーに自分自身をデバッガとして登録して、.dllを注入する必要があります。

この時点では、私たちは「悪」の領域にはまっています。このように他のアプリケーションを追い越すことは許されません。

唯一の本当の選択肢は、プラグインのサポートをアプリケーションに追加できるかどうかを元の作成者に尋ねることです。

関連する問題