代码如下;使用CFree;
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
/* TODO: Place code here.*/
HGLOBAL hGlobal ;
PTSTR pGlobal ;
HWND hwnd = FindWindow(NULL, "计算器");
OpenClipboard (hwnd) ;
hGlobal = GetClipboardData (CF_TEXT) ;
if (hGlobal != NULL)
{
pGlobal = (PTSTR) GlobalLock (hGlobal) ;
MessageBox(NULL, pGlobal, "获取剪贴板文本", MB_OK);
GlobalUnlock (hGlobal) ;
}
CloseClipboard () ;
return 0;
}
先查找 计算器 窗口;然后打开其剪贴板,然后获取内容;
如果是对于UNICODE文本则使用 hGlobal = GetClipboardData (CF_UNICODETEXT) ;
HGLOBAL是兼容以前windows 3.x时代的16位内存分配API的数据,表示一个内存块,这个内存块是GlobalAlloc分配的,需要GlobalLock才能取得内存块的指针。
不过在Win32下,