以下是一个示例代码,可以获取剪贴板上复制的文件路径并保存在char** selectedFiles中:

#include <windows.h>
#include <shellapi.h>

void GetClipboardFiles(char*** selectedFiles, int* fileCount) {
    if (!IsClipboardFormatAvailable(CF_HDROP)) {
        *fileCount = 0;
        return;
    }

    if (!OpenClipboard(NULL)) {
        *fileCount = 0;
        return;
    }

    HDROP hDrop = (HDROP)GetClipboardData(CF_HDROP);
    if (hDrop == NULL) {
        CloseClipboard();
        *fileCount = 0;
        return;
    }

    int count = DragQueryFile(hDrop, -1, NULL, 0);
    if (count <= 0) {
        CloseClipboard();
        *fileCount = 0;
        return;
    }

    *selectedFiles = new char*[count];
    for (int i = 0; i < count; i++) {
        int pathLen = DragQueryFile(hDrop, i, NULL, 0);
        if (pathLen > 0) {
            (*selectedFiles)[i] = new char[pathLen + 1];
            DragQueryFile(hDrop, i, (*selectedFiles)[i], pathLen + 1);
        }
    }

    *fileCount = count;

    CloseClipboard();
}

int main() {
    char** selectedFiles;
    int fileCount;

    GetClipboardFiles(&selectedFiles, &fileCount);

    for (int i = 0; i < fileCount; i++) {
        printf("%s\n", selectedFiles[i]);
        delete[] selectedFiles[i];
    }

    delete[] selectedFiles;

    return 0;
}

请注意,这段代码使用了Windows API来操作剪贴板和文件路径。在使用之前,请确保包含了windows.hshellapi.h头文件,并且链接了shell32.lib

c++ GetClipboardDataCF_HDROP 获取复制的文件并保存路径在char selectedFiles

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

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