首页 > 代码库 > 剪切板操作SetClipboardData GetClipboardData

剪切板操作SetClipboardData GetClipboardData

转载:http://blog.csdn.net/ycc892009/article/details/6521565

Code: 01.// Funciton:    02.// 拷贝数据到剪切板   03.// 从剪切板粘贴数据    04.// Data:2011/4/8    05.#include <windows.h>   06.#include <stdio.h>   07.void SetDataToClip(void)    08.{   09.    // 打开剪贴板   10.    if (!OpenClipboard(NULL)|| !EmptyClipboard())    11.    {   12.        printf("打开或清空剪切板出错!/n");   13.        return;   14.    }   15.       16.    HGLOBAL hMen;   17.    TCHAR strText[256] = "我被拷贝到剪切板!/n";   18.       19.    // 分配全局内存    20.    hMen = GlobalAlloc(GMEM_MOVEABLE, ((strlen(strText)+1)*sizeof(TCHAR)));    21.       22.    if (!hMen)   23.    {   24.        printf("分配全局内存出错!/n");    25.        // 关闭剪切板    26.        CloseClipboard();   27.        return;         28.    }   29.       30.    // 把数据拷贝考全局内存中   31.    // 锁住内存区    32.    LPSTR lpStr = (LPSTR)GlobalLock(hMen);    33.       34.    // 内存复制   35.    memcpy(lpStr, strText, ((strlen(strText))*sizeof(TCHAR)));    36.    // 字符结束符    37.    lpStr[strlen(strText)] = (TCHAR)0;   38.    // 释放锁    39.    GlobalUnlock(hMen);   40.       41.    // 把内存中的数据放到剪切板上   42.    SetClipboardData(CF_TEXT, hMen);   43.    CloseClipboard();   44.       45.    return;   46.}   47.void GetDataFromClip()   48.{   49.    // 判断数据格式    50.    if (!IsClipboardFormatAvailable(CF_TEXT) )   51.    {   52.        printf("剪切板数据格式不是CF_TEXT/n");   53.        return;   54.    }   55.       56.    if (!OpenClipboard(NULL))    57.    {   58.        printf("打开剪切板出错!/n");   59.        return;   60.    }   61.    // 从剪切板获取数据    62.    HGLOBAL hMem = GetClipboardData(CF_TEXT);   63.    if (hMem)   64.    {    65.        //  获取字符串    66.        LPSTR lpStr = (LPSTR)GlobalLock(hMem);     67.        if (lpStr)   68.        {   69.            printf(lpStr);   70.            // 释放内存锁    71.            GlobalUnlock(hMem);    72.        }   73.    }    74.    // 关闭剪切板    75.    CloseClipboard();    76.}   77.int main(void)   78.{   79.    //SetDataToClip();   80.    GetDataFromClip();    81.    return 0;   82.}  

 

剪切板操作SetClipboardData GetClipboardData