以下是一个可能的实现:

#include <windows.h>

// 备份Clipboard数据的函数
void backupClipboardData() {
    // 打开Clipboard
    if (!OpenClipboard(NULL)) {
        return;
    }

    // 获取Clipboard的数据格式
    UINT format = EnumClipboardFormats(0);
    while (format) {
        // 获取该格式下的数据,并复制到自定义的备份区域
        HANDLE hData = GetClipboardData(format);
        if (hData) {
            // 获取数据大小
            SIZE_T size = GlobalSize(hData);
            // 分配备份区域
            HGLOBAL hBackupData = GlobalAlloc(GMEM_MOVEABLE, size);
            if (hBackupData) {
                // 复制数据
                void* pData = GlobalLock(hData);
                void* pBackupData = GlobalLock(hBackupData);
                memcpy(pBackupData, pData, size);
                GlobalUnlock(hBackupData);
                GlobalUnlock(hData);
                // 将备份区域保存到自定义数据结构中
                // ...
            }
        }
        // 获取下一个格式
        format = EnumClipboardFormats(format);
    }

    // 关闭Clipboard
    CloseClipboard();
}

// 恢复Clipboard数据的函数
void restoreClipboardData() {
    // 打开Clipboard
    if (!OpenClipboard(NULL)) {
        return;
    }

    // 获取备份的数据,并逐个格式将其写入Clipboard
    // ...
    // 关闭Clipboard
    CloseClipboard();
}

// 示例函数:在MessageBox中显示Clipboard的文本
void showMessageWithClipboardText() {
    // 备份Clipboard数据
    backupClipboardData();

    // 获取Clipboard中的文本
    if (OpenClipboard(NULL)) {
        HANDLE hTextData = GetClipboardData(CF_TEXT);
        if (hTextData) {
            char* pText = (char*)GlobalLock(hTextData);
            if (pText) {
                // 在MessageBox中显示文本
                MessageBoxA(NULL, pText, "Clipboard Text", MB_OK);
                GlobalUnlock(hTextData);
            }
        }
        CloseClipboard();
    }

    // 恢复Clipboard数据
    restoreClipboardData();
}

int main() {
    // 示例:在MessageBox中显示Clipboard的文本
    showMessageWithClipboardText();

    return 0;
}
``
C++ 通过调用win api实现一下逻辑1 备份Clipboard的所有数据2 操作其他东西3恢复Clipboard的所有数据

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

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