C++ 通过调用win api实现一下逻辑1 备份Clipboard的所有类型的数据2 操作其他东西3恢复Clipboard的所有数据
以下是C++代码实现:
#include <Windows.h>
// 备份Clipboard的所有类型的数据
void backupClipboardData() {
if (!OpenClipboard(NULL)) {
return;
}
// 复制所有的数据格式
int formatCount = CountClipboardFormats();
UINT* formats = new UINT[formatCount];
for (int i = 0; i < formatCount; i++) {
formats[i] = EnumClipboardFormats(formats[i]);
}
// 保存所有的数据
HANDLE clipboardData;
for (int i = 0; i < formatCount; i++) {
clipboardData = GetClipboardData(formats[i]);
SetClipboardData(formats[i], clipboardData);
}
CloseClipboard();
}
// 恢复Clipboard的所有数据
void restoreClipboardData() {
if (!OpenClipboard(NULL)) {
return;
}
// 清空剪贴板
EmptyClipboard();
// 粘贴所有备份的数据
int formatCount = CountClipboardFormats();
HANDLE clipboardData;
for (int i = 0; i < formatCount; i++) {
clipboardData = GetClipboardData(formats[i]);
SetClipboardData(formats[i], clipboardData);
}
CloseClipboard();
}
int main() {
// 备份Clipboard的所有类型的数据
backupClipboardData();
// 操作其他东西,比如复制其他的数据到Clipboard
// 恢复Clipboard的所有数据
restoreClipboardData();
return 0;
}
``
原文地址: http://www.cveoy.top/t/topic/g74l 著作权归作者所有。请勿转载和采集!