如何在 c++ 中捕获粘贴事件

How to capture paste event in c++

本文关键字:事件 c++      更新时间:2023-10-16

我知道我可以通过使用SetClipboardViewer将窗口句柄添加到剪贴板查看器链或与键盘挂钩来捕获复制事件。

但是,当粘贴发生时,似乎没有传播剪贴板消息(使用 ctrl+v、右键单击>粘贴或菜单编辑>粘贴)。

还有其他方法可以捕获粘贴事件吗?

没错,您无法通过查看剪贴板来检测粘贴。复制到剪贴板是写入操作,您可以在剪贴板查看器中看到(尽管您无法将它们与剪切区分开来)。

从剪贴板粘贴

是读取操作,因此您在剪贴板查看器中看不到它们,即使您这样做了,如果没有实际粘贴,也无法在"选择性粘贴"中区分粘贴和预览。

全球监控WM_PASTE可能会有所帮助。例如,使用记事本,您应该同时看到 Ctrl+V 粘贴和上下文菜单粘贴。但是有些应用程序不会使用此消息 - 它们没有义务这样做。