【问题标题】:How to hook a global PASTE EVENT? [closed]如何挂钩全球 PASTE EVENT? [关闭]
【发布时间】:2012-01-05 16:08:06
【问题描述】:

我正在开发一个需要知道 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 的能力。

【问题讨论】:

  • 难道他们只是检测到按键 ctrl+v 而不是?

标签: c# events hook


【解决方案1】:

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

您能做的最好的事情是检测应用程序是否已从剪贴板检索数据。同样,无法知道应用程序对这些数据做了什么。这类似于知道有人打开了他们的前门,却不知道他们去了哪里,如果在任何地方。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-20
    • 1970-01-01
    • 2012-03-21
    • 1970-01-01
    • 2015-09-22
    • 2011-02-11
    • 2011-10-17
    相关资源
    最近更新 更多