C++操作剪贴板

设置剪贴板

	std::string  TempBin = "123";
    HGLOBAL hMemBin = NULL;
    PCHAR   LockBin = NULL;
    OpenClipboard(NULL);
    EmptyClipboard();
    hMemBin = GlobalAlloc(GMEM_MOVEABLE, TempBin.size() + 1);
    LockBin = (PCHAR)GlobalLock(hMemBin);
    RtlMoveMemory(LockBin, TempBin.c_str(), TempBin.size() + 1);
    GlobalUnlock(hMemBin);
    LockBin = NULL;
    SetClipboardData(CF_TEXT, hMemBin);
    CloseClipboard();

这样,剪贴板的内容就设置成"123"了。

获取剪贴板

	HGLOBAL hMemBin = NULL;
    PCHAR   LockBin = NULL;
    PCHAR   TempBin = NULL;
    OpenClipboard(NULL);
    hMemBin = GetClipboardData(CF_TEXT);
    LockBin = (PCHAR)GlobalLock(hMemBin);
    TempBin = (PCHAR)malloc(GlobalSize(hMemBin));
    if (TempBin != NULL)
    {
    
    
        RtlMoveMemory(TempBin, LockBin, GlobalSize(hMemBin));
    }
    GlobalUnlock(hMemBin);
    LockBin = NULL;
    CloseClipboard();
    printf("%s", TempBin);
    if (TempBin != NULL)
    {
    
    
        free(TempBin);
        TempBin = NULL;
    }

TempBin里保存的就是剪贴板的内容,注意用完要释放内存。

猜你喜欢

转载自blog.csdn.net/qq_42814021/article/details/121084515
今日推荐