5

PASTE EVENT(コンテキストメニューまたはctrl + Vを介して)がいつ発生するかを知る必要があるソフトウェアを開発しています(ファイル/ディレクトリのみ)。多かれ少なかれ、TeraCopyまたはコピーハンドラーで発生するようなものです。コピーして貼り付ける場合、貼り付けを処理するのはTeraCopyです。
COPY EVENTをキャプチャする方法は多かれ少なかれ知っています。ClipboardViewerを設定するだけで、すべてのグローバルCOPY EVENT(実際にはWM_DRAWCLIPBOARDと呼ばれます)をキャッチできます。これについては、 http://www.radsoftware.com.au/articles/clipboardmonitor.aspxで学ぶことができます 。 ただし、ClipBoardViewerには、過去のイベントをキャッチする機能はありません。

4

1 に答える 1

1

「貼り付け」による状態変更のプロセスは個々のアプリケーションに固有であるため、クリップボードにアクセスした後にアプリケーションの状態が変更されたかどうかを検出する魔法の方法はありません。

最善の方法は、アプリケーションがクリップボードからデータを取得したかどうかを検出することです。繰り返しますが、アプリケーションがこのデータで何をしたかを知る方法はありません。それは、誰かがどこに行ったのかを知らずに玄関のドアを開けたことを知っているようなものです。

これを試してみたい場合は、GetClipboardData 関数をフックするなどの方法があります。システム全体の API フックを配置する方法については、Micrsoft Detours のサンプルを確認してください - http://research.microsoft.com/sn/detours

于 2008-10-27T18:58:02.167 に答える