2006.7.15晚上学习进程之间的通信
2006-07-15 23:34
302 查看
1.剪贴板操作:
<1>使用剪贴板之前必须先调用OpenClipboard()函数确定是否打开,通过返回值判断是否成功.
<2>在使用剪贴板之前,可能有其他程序使用剪贴板,必须清空,才能使窗口具有对剪贴板的所有权.EmptyClipboard()
<3>放置数据SetClipboardData()
<4>延迟提交技术.设置数据块句柄为NULL,(首先设置空数据块),直到其他进程需要数据的时候,才提交,否则数据会占用内存,
<5>内存分配函数GlobalAlloc(GMEM_MOVEABLE,sgtr.GetLength()+1);
文本数据为什么加+1;文本数据放在剪贴板上面时候,(以空字符结尾),剪贴板会将最后一个字节放置一个空,这样数据会丢失,所以多分配一个.
<6>将句柄转化为指针.调用GlobalLock()函数.
//读取数据
<1>打开,判断剪贴板内是否有我们想要的数据格式,进行判断IsClipboardFormatAvailableIsClipboardFormatAvailable();
<2>将句柄转化为地址,GlobalLock()转化为指针.使用完之后,解锁,然后关闭剪贴板.
<1>使用剪贴板之前必须先调用OpenClipboard()函数确定是否打开,通过返回值判断是否成功.
<2>在使用剪贴板之前,可能有其他程序使用剪贴板,必须清空,才能使窗口具有对剪贴板的所有权.EmptyClipboard()
<3>放置数据SetClipboardData()
<4>延迟提交技术.设置数据块句柄为NULL,(首先设置空数据块),直到其他进程需要数据的时候,才提交,否则数据会占用内存,
<5>内存分配函数GlobalAlloc(GMEM_MOVEABLE,sgtr.GetLength()+1);
文本数据为什么加+1;文本数据放在剪贴板上面时候,(以空字符结尾),剪贴板会将最后一个字节放置一个空,这样数据会丢失,所以多分配一个.
<6>将句柄转化为指针.调用GlobalLock()函数.
//读取数据
<1>打开,判断剪贴板内是否有我们想要的数据格式,进行判断IsClipboardFormatAvailableIsClipboardFormatAvailable();
<2>将句柄转化为地址,GlobalLock()转化为指针.使用完之后,解锁,然后关闭剪贴板.
相关文章推荐
- 跨进程(同一app不同进程之间通信)——Android自动化测试学习历程
- 从Node.js的child_process模块来学习父子进程之间的通信
- linux进程之间的通信方式学习之概要
- C++学习,总结二(模拟鼠标键盘操作和进程之间的通信)
- 详解从Node.js的child_process模块来学习父子进程之间的通信
- 使用pipe()与fork()函数通过管道实现父子进程之间的通信
- iPhone开发之—守护进程和前台进程之间的通信-前台应用发信息给后台的守护进程
- 使用管道实现两个进程之间的通信
- UNIX/LINUX编程学习之进程通信--信号量
- 国嵌视频学习第四天-进程通信
- android中进程与进程,线程与线程之间如何通信??
- 进程之间 通信方式
- IPC进程之间通信的几种方式
- [ZZ]使用命名管道通过网络在进程之间进行通信
- Service与Activity之间的通信(同一进程)
- iphone守护进程和前台进程之间的通信-前台应用发信息给后台的守护进程
- 两个进程之间的通信
- android72——android中线程与线程,进程与进程之间如何通信。
- 进程之间的通信
- 孙鑫VC学习笔记:第十七讲 用剪贴板实现进程间的通信