如何使用Qt从系统剪贴板内容粘贴到任意窗口

时间:2011-12-06 22:40:07

标签: c++ qt clipboard

我与this有同样的问题,但在Qt。

如何将剪贴板内容粘贴到Qt中的任意位置*****(模拟CTRL + V)?

*****将剪贴板粘贴到Qt应用程序之外,而不按CTRL + V

2 个答案:

答案 0 :(得分:1)

您需要使用QClipboard课程。

但我不确定这个问题。 “任意位置”是什么意思?是否要将剪贴板粘贴到Qt应用程序之外? (我不认为X11和ICCCMEWMH可以实现这一点。

答案 1 :(得分:1)

我很确定你不得不求助于平台细节。

首先,您将以某种方式获得先前活动应用程序的id /句柄。在Windows中,可以使用GetWindow()完成此操作,如here所述。在EWMH窗口管理器中,您可以使用_NET_CLIENT_LIST_STACKING属性。

其次,您必须要求该窗口执行粘贴操作。同样,在Windows中,SendMessage(window, WM_PASTE, 0, 0)[SendMessage]WM_PASTE的文档)。我实际上不确定你将如何在X11中实现这一目标。

有大约7万个案例,其中上述方法不起作用,但也许它可以让你开始?