首页 > 代码库 > 剪切板操作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
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。