我们有一个 C++ 应用程序,它大量使用剪贴板 APIOpenClipboard等。
该应用程序经常保存剪贴板的内容、插入内容、粘贴然后恢复剪贴板。
在 Windows 10 十月更新中,这会导致大量剪贴板历史记录也可能在设备之间同步。
有没有新的api可以绕过新的剪贴板历史记录?
Mic*_*l T 12
终于找到了一种方法来做到这一点 - 由微软支持并最终记录在这里:云剪贴板和剪贴板历史格式
您需要先获取几个格式 ID
UINT clipboardHistoryFormat_ = RegisterClipboardFormat(L"CanIncludeInClipboardHistory");
UINT cloudClipboardFormat_ = RegisterClipboardFormat(L"CanUploadToCloudClipboard");
Run Code Online (Sandbox Code Playgroud)
然后,当您在 Windows 10 历史记录或云中向剪贴板写入不需要的任何内容时,您还需要将上述格式的值设置为DWORD0
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
}
}
Run Code Online (Sandbox Code Playgroud)