c语言剪贴板

// Funciton:    
// 拷贝数据到剪切板   
// 从剪切板粘贴数据    
// Data:2011/4/8    
#include <windows.h>   
#include <stdio.h>   
void SetDataToClip(void)    
{   
    // 打开剪贴板   
    if (!OpenClipboard(NULL)|| !EmptyClipboard())    
    {   
        printf(“打开或清空剪切板出错!/n”);   
        return;   
    }   
       
    HGLOBAL hMen;   
    TCHAR strText[256] = “我被拷贝到剪切板!/n”;   
       
    // 分配全局内存    
    hMen = GlobalAlloc(GMEM_MOVEABLE, ((strlen(strText)+1)*sizeof(TCHAR)));    
       
    if (!hMen)   
    {   
        printf(“分配全局内存出错!/n”);    
        // 关闭剪切板    
        CloseClipboard();   
        return;         
    }   
       
    // 把数据拷贝考全局内存中   
    // 锁住内存区    
    LPSTR lpStr = (LPSTR)GlobalLock(hMen);    
       
    // 内存复制   
    memcpy(lpStr, strText, ((strlen(strText))*sizeof(TCHAR)));    
    // 字符结束符    
    lpStr[strlen(strText)] = (TCHAR)0;   
    // 释放锁    
    GlobalUnlock(hMen);   
       
    // 把内存中的数据放到剪切板上   
    SetClipboardData(CF_TEXT, hMen);   
    CloseClipboard();   
       
    return;   
}   
void GetDataFromClip()   
{   
    // 判断数据格式    
    if (!IsClipboardFormatAvailable(CF_TEXT) )   
    {   
        printf(“剪切板数据格式不是CF_TEXT/n”);   
        return;   
    }   
       
    if (!OpenClipboard(NULL))    
    {   
        printf(“打开剪切板出错!/n”);   
        return;   
    }   
    // 从剪切板获取数据    
    HGLOBAL hMem = GetClipboardData(CF_TEXT);   
    if (hMem)   
    {    
        //  获取字符串    
        LPSTR lpStr = (LPSTR)GlobalLock(hMem);     
        if (lpStr)   
        {   
            printf(lpStr);   
            // 释放内存锁    
            GlobalUnlock(hMem);    
        }   
    }    
    // 关闭剪切板    
    CloseClipboard();    
}   
int main(void)   
{   
    //SetDataToClip();   
    GetDataFromClip();    
    return 0;   
}  
————————————————
版权声明:本文为CSDN博主「ycc892009」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ycc892009/article/details/6521565

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值