c++ - 在 Windows 10 October 2018 更新中绕过剪贴板历史记录
问题描述
我们有一个 C++ 应用程序,它大量使用剪贴板 APIOpenClipboard
等。
该应用程序经常保存剪贴板的内容,插入内容,粘贴然后恢复剪贴板。
随着 Windows 10 十月更新,这会导致大量剪贴板历史记录也可能在设备之间同步。
是否有新api
的绕过新的剪贴板历史记录?
解决方案
终于找到了一种方法来做到这一点 - 微软支持并最终记录在这里:Cloud Clipboard and Clipboard History Formats
您需要先获取几个格式 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
}
}
推荐阅读
- python - 在单条线上绘制表面颜色变化
- matplotlib - 我怎么知道 plt.colorbar 必须“吃掉” ax.pcolor?
- c# - QBO ReportService C# 输出
- android - 如何使用 android 意图/市场 URI 打开任何商店
- ios - 如何从 MKMapView didSelect 注释更新封装的 SwiftUI 视图
- node.js - 如何从自身杀死实际运行的节点应用程序
- c++ - c ++类似的重复输入具有不同的输出
- kotlin - Mockito:使用 OK HTTP Client 模拟 HTTP 调用
- javascript - 如何从数组中提取特定值并将这些值分配给变量以在下一个邮递员请求中使用它
- c++ - macOS 更新到 Catalina 后找不到 CLion C++ 头文件