2008-10-27 70 views
6

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

+0

难道他们只是检测按键ctrl + v而不是? – mmiika 2008-10-28 03:13:37

回答

1

通过“粘贴”进行状态更改的过程对于单个应用程序是特定的,因此在访问剪贴板后没有找到应用程序状态是否改变的神奇方法。

您可以做的最好的检测应用程序是否从剪贴板检索数据。同样,无法知道应用程序如何处理这些数据。这类似于知道有人在不知道他们去哪里的情况下打开他们的前门,如果有的话。

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

-1

但是像Teracopy和Copy Handler这样的软件会检测粘贴事件。我需要几乎相同的,检测何时粘贴文件/目录。

-1

事实上,这个软件不仅适用于ctrl + v,而且当您点击上下文菜单中的粘贴选项(右键单击)时也是如此。