C++ 通过调用win api实现一下逻辑1 备份Clipboard的所有类型的数据保存到一个全局结构2 操作其他东西3 恢复Clipboard的所有数据
实现代码如下:
#include <windows.h>
// 备份Clipboard数据的结构
struct ClipboardData {
HANDLE hData;
UINT format;
};
// 备份Clipboard的所有数据
void backupClipboardData(ClipboardData* pData, int& count) {
if (!OpenClipboard(NULL)) {
return;
}
count = 0;
// 遍历所有格式的数据,保存到结构中
UINT format = 0;
while ((format = EnumClipboardFormats(format))) {
HANDLE hData = GetClipboardData(format);
if (hData != NULL) {
pData[count].hData = hData;
pData[count].format = format;
count++;
}
}
CloseClipboard();
}
// 恢复Clipboard的所有数据
void restoreClipboardData(ClipboardData* pData, int count) {
if (!OpenClipboard(NULL)) {
return;
}
// 清空Clipboard
EmptyClipboard();
// 逐个格式写入数据
for (int i = 0; i < count; i++) {
SetClipboardData(pData[i].format, pData[i].hData);
}
CloseClipboard();
}
int main() {
// 备份Clipboard数据
ClipboardData data[10];
int count = 0;
backupClipboardData(data, count);
// 操作其他东西
// ...
// 恢复Clipboard数据
restoreClipboardData(data, count);
return 0;
}
``
原文地址: https://www.cveoy.top/t/topic/g74T 著作权归作者所有。请勿转载和采集!