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



我们有一个C++应用程序,它大量使用剪贴板APIOpenClipboard等。

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

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

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

终于找到了一种方法来做到这一点-得到了微软的支持,并最终在这里进行了记录:云剪贴板和剪贴板历史记录格式

你需要先获得几个格式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
}
}

相关内容

最新更新