//下面的代码将"Hello World"字符串复制到剪切板中,代码执行完后可在其它地址进行粘贴操作,看到"Hello World"
#include <Windows.h>
void CopyStringClipboard(HWND hwnd,char * str) //保存字符串至剪贴板:
{
HGLOBAL hClip;
//定义一个HGLOBAL句柄变量用来指向分配的内存块
if (OpenClipboard(hwnd))
{
EmptyClipboard(); //将剪贴板内容清空
hClip=GlobalAlloc(GMEM_MOVEABLE,strlen(str)+1);
//在堆上分配可移动的内存块,程序返回一个内存句柄
char * buff; //定义指向字符型的指针变量
buff=(char*)GlobalLock(hClip);
//对分配的内存块进行加锁,将内存块句柄转化成一个指针,并将相应的引用计数器加1
strcpy_s(buff,strlen(str)+1,str);
//wcscpy(buff,str);
//将用户输入的数据复制到指针变量中,实际上就是复制到分配的内存块中
GlobalUnlock(hClip);
//数据写入完毕,进行解锁操作,并将引用计数器数字减1
SetClipboardData(CF_TEXT,hClip);
//将存放有数据的内存块放入剪贴板的资源管理中
CloseClipboard();
//关闭剪贴板,释放剪贴板资源的占用权
//MessageBox(L"已将数据存入剪贴板");
}
}
int _tmain(int argc, _TCHAR* argv[])
{
CopyStringClipboard(NULL, "Hello World");
return 0;
}