进程间通信之剪切板

来源:互联网 发布:淘宝店铺怎么改地址 编辑:程序博客网 时间:2024/05/29 15:23

剪切板实现进程间两个关键步骤

  • 【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();        //GetDlgItemText(IDC_EDIT_SEND,str);        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);            //SetDlgItemText(IDC_EDIT_RECV,pBuf);            CloseClipboard();            cout<<"从剪切板上得到的数据是:"<<pBuf<<endl;        }    }    system("pause");    return 0;}

结果展示

这里写图片描述

0 0