Windows 2018年10月10日更新中的绕过剪贴板历史记录

时间:2018-11-07 13:18:05

标签: c++ winapi

我们有一个C ++应用,大量使用剪贴板API OpenClipboard等。

该应用程序经常保存剪贴板的内容,插入内容,粘贴然后还原剪贴板。

在Windows 10月10日更新中,这导致了很多剪贴板历史记录,这些历史记录也可能在设备之间同步。

是否有新的api绕过新的剪贴板历史记录?

1 个答案:

答案 0 :(得分:0)

最后找到了一种方法来得到微软的支持。

您需要先获取几个格式ID

UINT clipboardHistoryFormat_ = RegisterClipboardFormat(L"CanIncludeInClipboardHistory");
UINT cloudClipboardFormat_ = RegisterClipboardFormat(L"CanUploadToCloudClipboard");

然后,当您在Windows 10历史记录或云中向剪贴板中写入不需要的内容时,还需要将上述格式设置为DWORD值为0

auto number_of_bytes = sizeof(DWORD);
auto hMem = GlobalAlloc(GMEM_MOVEABLE | GMEM_ZEROINIT, number_of_bytes);
if (hMem != nullptr)
{
    if (SetClipboardData(clipboardHistoryFormat_, hMem) == nullptr)
    {
        // something went wrong
    }
}