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

L. *_*nne 2 c++ windows clipboard winapi console-application

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

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

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

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

有什么建议么?

IIn*_*ble 5

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

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

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

仅消息窗口使您能够发送和接收消息。它是不可见的[...]。窗口只是发送消息。