2017-10-12 84 views
0

我知道我可以通过使用SetClipboardViewer或通过在键盘上挂钩来添加窗口句柄到剪贴板查看器链,以捕获复制事件。如何在C++中捕获粘贴事件

但似乎当发生时没有剪贴板消息传播(使用CTRL + V,右键点击 - >粘贴或菜单编辑 - >粘贴。

有没有我们可以捕捉到任何其他方式paste事件?

+3

我不确定这是一个骗局,因为另一个问题是关于阻止粘贴。我们不知道为什么这个问题想要检测粘贴。当问题结束时,我是中间回答。我写的是:“没有真正的粘贴事件可以挂钩,粘贴是个别应用程序在剪贴板上访问数据时可以做的事情,因为某些应用程序出于其他原因访问剪贴板上的数据,所以没有办法让系统知道何时发生粘贴。“ –

+0

@AdrianMcCarthy:另一个问题是关于*检测*和*阻塞*粘贴。我给这个关于检测问题的答案也同样适用于这个问题。这就是为什么我将其标记为重复的原因。你写的答案同样适用于其他问题 –

+0

@RemyLebeau我无法找到你正在谈论的其他问题。你介意分享链接吗? –

回答

2

这是正确的,你无法通过查看剪贴板粘贴检测。 复制到剪贴板是写操作,你在你的剪贴板查看器看(虽然你不能从切割区分开来)。

从剪贴板粘贴是读取操作,所以你不这样做在剪贴板查看器中查看它们,即使您做了,也无法在没有实际粘贴的情况下区别粘贴和预览“粘贴特殊”。

全局监控WM_PASTE可能会有所帮助。例如在记事本中,您应该通过Ctrl + V粘贴和上下文菜单粘贴来看到它。但有些应用程序不会使用此消息 - 他们没有义务。