在win32控制台应用程序中跟踪剪贴板更改数据



我目前正在用c++制作一个win32控制台应用程序。

现在,我必须对用户更改剪贴板内容做出反应。目前我只是在检查按下ctrl+c的用户,但显然这还不够,因为它不会跟踪右键点击->复制等。

遗憾的是,我不能只使用winmessage,因为我正在开发控制台应用程序,因此我的应用程序没有自己的hwnd。

我真的不想每秒复制10次左右的剪贴板数据。这势必会导致其他程序出现问题,因为我每次都必须锁定和解锁剪贴板。

有什么建议吗?

要监视剪贴板的更改,您可以使用AddClipboardFormatListener API:

当一个窗口被添加到剪贴板格式的侦听器列表中时,每当剪贴板的内容发生更改时,它就会发布一条WM_CLIPBOARDUPDATE消息。

没有GUI的应用程序可以创建一个仅限消息的窗口来接收更改通知:

仅限消息的窗口允许您发送和接收消息。它不可见[…]。窗口只是发送消息。

最新更新