A-A+
C++访问剪贴板读取或写入数据的方法
使用程序访问剪贴板一般有两个目的:从剪贴板中读取数据或向剪贴板中写入数据。在VS C++中可通过Windows自带的函数来实现此功能。
1、向剪贴板中写入数据
HWND hWnd = NULL;
OpenClipboard( hWnd );//打开剪切板
EmptyClipboard();//清空剪切板
HANDLE hHandle = GlobalAlloc(GMEM_FIXED, 1000);//分配内存
char* pData = (char*) GlobalLock(hHandle);//锁定内存,返回申请内存的首地址
strcpy_s(pData,1000,"this is a ClipBoard Test.");//或strcpy(pData, "this is a ClipBoard Test.");
SetClipboardData(CF_TEXT, hHandle);//设置剪切板数据
GlobalUnlock(hHandle);//解除锁定
CloseClipboard();//关闭剪切板
2、从剪贴板中读取数据
HWND hWnd = NULL;
OpenClipboard(hWnd);//打开剪贴板
if ( IsClipboardFormatAvailable(CF_TEXT) )
{
HANDLE h = GetClipboardData(CF_TEXT);//获取剪切板数据
char* p = (char*)GlobalLock(h);
GlobalUnlock(h);
}
CloseClipboard();//关闭剪贴板