我目前正在用c++制作一个win32控制台应用程序。
现在,我必须对用户更改剪贴板内容做出反应。目前我只是在检查按下ctrl+c的用户,但显然这还不够,因为它不会跟踪右键点击->复制等。
遗憾的是,我不能只使用winmessage,因为我正在开发控制台应用程序,因此我的应用程序没有自己的hwnd。
我真的不想每秒复制10次左右的剪贴板数据。这势必会导致其他程序出现问题,因为我每次都必须锁定和解锁剪贴板。
有什么建议吗?
要监视剪贴板的更改,您可以使用AddClipboardFormatListener API:
当一个窗口被添加到剪贴板格式的侦听器列表中时,每当剪贴板的内容发生更改时,它就会发布一条WM_CLIPBOARDUPDATE消息。
没有GUI的应用程序可以创建一个仅限消息的窗口来接收更改通知:
仅限消息的窗口允许您发送和接收消息。它不可见[…]。窗口只是发送消息。