以下是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;
}
``
C++ 通过调用win api实现一下逻辑1 备份Clipboard的所有类型的数据2 操作其他东西3恢复Clipboard的所有数据

原文地址: http://www.cveoy.top/t/topic/g74l 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录