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

时间:2018-12-02 19:37:21

标签: c++ windows winapi console-application clipboard

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

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

可悲的是,由于我正在开发控制台应用程序,因此我不能仅使用winmessage,因此我的应用程序没有自己的hwnd。

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

有什么建议吗?

1 个答案:

答案 0 :(得分:2)

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

  

将窗口添加到剪贴板格式侦听器列表后,只要剪贴板的内容发生更改,它就会在屏幕上发布WM_CLIPBOARDUPDATE消息。

没有GUI的应用程序可以创建message-only window来接收更改通知:

  

仅消息窗口使您可以发送和接收消息。它是不可见的。窗口只是调度消息。