如何挂钩全球糊状事件?

时间:2008-10-27 15:36:54

标签: 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的能力。

3 个答案:

答案 0 :(得分:1)

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

您可以做的最好的事情是检测应用程序是否已从剪贴板中检索数据。同样,无法知道应用程序对此数据的作用。它类似于知道有人打开他们的前门而不知道他们去哪里,如果在任何地方。

如果你想尝试这个,你可以做一些事情,比如挂钩GetClipboardData函数。有关如何使用系统范围的API挂钩的信息,请查看Micrsoft Detours中的示例 - http://research.microsoft.com/sn/detours

答案 1 :(得分:-1)

但像Teracopy和Copy Handler这样的软件检测到粘贴事件。我需要几乎一样,检测文件/目录的粘贴时间。

答案 2 :(得分:-1)

事实上,这个软件不仅适用于ctrl + v,而且还可以在上下文菜单中单击粘贴选项(右键单击)。