码迷,mamicode.com
首页 > 其他好文 > 详细

剪切板操作SetClipboardData GetClipboardData

时间:2014-12-24 09:57:16      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:

转载: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

标签:

原文地址:http://www.cnblogs.com/elitiwin/p/4181656.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!