C++操作剪贴板
剪貼板內置在windows中,并且使用系統的內部資源RAM,或虛擬內存來臨時保存剪切和復制的信息,可以存放的信息種類是多種多樣的。剪切或復制時保存在剪貼板上的信息,只有再剪貼或復制另外的信息
,或停電、或退出windows,或有意地清除時,才可能更新或清除其內容,即剪貼或復制一次,就可以粘貼多次。
????? 下面介紹在C++中怎么操作剪貼板,主要是寫入數據和獲取數據,對剪貼板的操作可以看做是一種進程間通信的方式
?
????? 1、在VC++(6.0~9.0)新建一個基于對話框的MFC的項目? ClipboardTest
????? 2、 添加兩個編輯控件(IDC_EDIT_SEND? 和 IDC_EDIT_RECV)和兩個按鈕(IDC_BTN_SEND 和 IDC_BTN_RECV)
????? 3、為IDC_BTN_SEND 添加向剪貼板寫入數據的代碼
if (OpenClipboard())//打開剪貼板
?{
? CString str;
? HANDLE hClip;
? char* pBuf;
? EmptyClipboard();//清空剪貼板
? GetDlgItemText(IDC_EDIT_SEND,str);//獲取IDC_EDIT_SEND中的數據
?
//寫入數據
? hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
? pBuf=(char*)GlobalLock(hClip);
? strcpy(pBuf,str);
? GlobalUnlock(hClip);//解鎖
? SetClipboardData(CF_TEXT,hClip);//設置格式
?
//關閉剪貼板
? CloseClipboard();
?}
?
4、為IDC_BTN_RECV 添加讀取剪貼板數據的代碼
if (OpenClipboard())//打開剪貼板
?{
? if (IsClipboardFormatAvailable(CF_TEXT))//判斷格式是否是我們所需要
? {
? ?HANDLE hClip;
? ?char* pBuf;
?
//讀取數據
? ?hClip=GetClipboardData(CF_TEXT);
? ?pBuf=(char*)GlobalLock(hClip);
? ?GlobalUnlock(hClip);
? ?SetDlgItemText(IDC_EDIT_RECV,pBuf);//講數據顯示在IDC_EDIT_RECV中
? ?CloseClipboard();
? }
?}
?
總結
- 上一篇: VS2017-VC++校验和计算小工具
- 下一篇: STM32的独立看门狗(IWDG)看门狗