剪切板实现进程间两个关键步骤
- 【1】写数据到剪切板(进程1)
- 【2】从剪切板读取数据(进程2)
进程1程序
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
int main()
{
if(OpenClipboard(NULL))
{
string str = "hello world";
cout<<"要写入剪切板上的数据为:"<<str<<endl;
HANDLE hClip;
char *pBuf;
EmptyClipboard();
hClip=GlobalAlloc(GMEM_MOVEABLE,str.length()+1);
pBuf=(char*)GlobalLock(hClip);
strcpy(pBuf,str.c_str());
GlobalUnlock(hClip);
SetClipboardData(CF_TEXT,hClip);
CloseClipboard();
}
system("pause");
return 0;
}
进程2程序
#include <iostream>
#include <string>
#include <Windows.h>
using namespace std;
int main()
{
if(OpenClipboard(NULL))
{
if(IsClipboardFormatAvailable(CF_TEXT))
{
HANDLE hClip;
char *pBuf;
hClip=GetClipboardData(CF_TEXT);
pBuf=(char*)GlobalLock(hClip);
GlobalUnlock(hClip);
CloseClipboard();
cout<<"从剪切板上得到的数据是:"<<pBuf<<endl;
}
}
system("pause");
return 0;
}
结果展示