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

3

我和这个问题一样,只不过在Qt中。

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

***** 在不按CTRL+V的情况下将剪贴板粘贴到Qt应用程序之外的位置

2个回答

1

你需要使用QClipboard类。

但我不确定是否理解问题。"任意位置"是什么意思?您想在Qt应用程序之外粘贴剪贴板吗?(我认为X11和ICCCMEWMH不支持这样做)。


QClipboard类没有这样的功能,它只提供了剪贴板内容并允许您操作它,仅此而已。我想要的是在不实际按下键组合的情况下触发CTRL+V行为。 - destan

1

我相信你必须要使用特定于平台的方法来解决这个问题。

首先,你需要以某种方式获取先前活动应用程序的ID/句柄。在Windows中,可以使用 GetWindow() 来完成,如 此处 所述。在EWMH窗口管理器中,可以使用 _NET_CLIENT_LIST_STACKING 属性。

其次,您需要要求该窗口执行粘贴操作。同样,在Windows中,使用SendMessage(window, WM_PASTE, 0, 0)[SendMessage]WM_PASTE的文档)。实际上,我不确定您如何在X11中完成此操作。

以上方法可能有大约70,000个案例无法奏效,但也许可以帮助您入门?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接