如何挂钩全球糊状事件?

net*_*tos 5 c# events hook

我正在开发一个软件,需要知道何时发生PASTE EVENT(通过上下文菜单或ctrl + V)(仅适用于文件/目录).或多或少,TeraCopy或Copy Handler会发生类似的事情.复制然后粘贴时,TeraCopy会处理粘贴.
我或多或少知道如何捕获COPY EVENT,你只需要设置一个ClipboardViewer并捕获所有全局COPY EVENTS(实际上称为:WM_DRAWCLIPBOARD).你可以在这里学到:http: //www.radsoftware.com.au/articles/clipboardmonitor.aspx但是ClipBoardViewer没有为你提供捕捉PASTE EVENT的能力.

And*_*ant 1

通过“粘贴”更改状态的过程特定于各个应用程序,因此没有神奇的方法可以发现访问剪贴板后应用程序的状态是否发生变化。

您能做的最好的事情就是检测应用程序是否已从剪贴板检索数据。同样,我们无法知道应用程序如何处理这些数据。这就像知道有人打开了前门,却不知道他们去了哪里(如果有的话)。

如果您确实想尝试此操作,可以执行诸如挂钩 GetClipboardData 函数之类的操作。有关如何放置系统范围的 API 挂钩的信息,请查看 Micrsoft Detours 中的示例 - http://research.microsoft.com/sn/detours