vc++中进程通信之剪贴板常用函数
vc++中进程通信之剪贴板常用函数
本人节选自《21天学通VC++》一书
操作系统中实现同一台机器上的不同进程之间的通信是非常重要的。一般来说,进程间的通信方法有三种:剪贴板、邮槽和管道。由于后两种方式需要一定的操作系统基础,此处就不作介绍。本节将详细介绍采用剪贴板进行进程通信的实现。
剪贴板常用函数
读者应该对剪贴板是比较熟悉的,当按下【Ctrl+C】键时,选中的内容就会复制到剪贴板中,然后再按下【Ctrl+V】键,可以将剪贴板上的内容复制到应用程序中。
说明:当要把一个进程上的内容复制到另一个进程上时,最简单的办法就是使用剪贴板。
在读者的印象中,通常认为剪贴板是传输数据的媒介,用户要复制的数据首先保存到剪贴板中。这种想法不能说是正确的。因为实际上要复制的数据并不是真的保存在剪贴板上,而是在一块内存区域中。而剪贴板同这块内存区域相关联。或者说,由剪贴板来管理这块内存区域。例如,这里要将进程A中的内容通过剪贴板复制到进程B中,大致遵循以下步骤。
在进程A自己的4GB的地址空间中申请一块内存。
把要复制的数据写到申请的内存块当中;再把内存块交给剪贴板管理器中。
进程B由剪贴板中取出数据。
下面是与剪贴板操作相关的一些函数。
OpenClipboard函数:该函数用于打开剪贴板以检查或防止其他应用程序修改剪贴板中的内容。如果在本进程调用此函数来打开剪贴板之前,剪贴板已经被其他窗口打开,那么该函数调用将失败。此时,应该先调用CloseClipboard函数将剪贴板成功关闭之后再调用OpenClipboard打开。
GlobalAlloc函数:该函数用于在堆上分配一块指定大小的内存区域。
GlobalLock函数:该函数用于将一个内存块锁住,并返回一个指向内存块中第一个字节的指针变量,引用计数器加1。
GlobalUnlock函数:该函数用于将被锁住的内存块进行解锁,引用计数器数字减1。
SetClipboardData函数:该函数用于将内存块以指定的剪贴板的内容格式放到剪贴板管理器中。
GetClipboardData函数:该函数用于从剪贴板中以指定的剪贴板的内容格式取出内存块。
CloseClipboard函数:该函数用于关闭剪贴板,释放剪贴板资源。
vc++中进程通信之剪贴板常用函数相关推荐
- c 语言 多进程,VC++中进程与多进程管理的方法详解
本文实例讲述了VC++中进程与多进程管理的方法,分享给大家供大家参考.具体方法分析如下: 摘要: 本文主要介绍了多任务管理中的多进程管理技术,对进程的互斥运行.子进程的创建与结束等作了较详细的阐述. ...
- VC++中进程与多进程管理的方法[转]
VC++中进程与多进程管理的方法 关键词: VC++6.0:进程:环境变量:子进程 进程 进程是当前操作系统下一个被加载到内存的.正在运行的应用程序的实例.每一个进程都是由内核对象和地址空间 ...
- VC++中GlobalAlloc()、malloc()和new()函数之间区别
VC++中GlobalAlloc().malloc()和new()函数都可以用来实现内存的动态分配,那么它们之间有什么区别呢? 三者的区别主要有以下几点: 1.GlobalAlloc()函数在程序的堆 ...
- common.php中路径,关于ThinkPHP中Common/common.php文件常用函数的功能分析
这篇文章主要介绍了ThinkPHP中Common/common.php文件常用函数功能,通过注释的形式详细分析了C方法.tag方法.B方法及autoload方法的功能与代码原理,需要的朋友可以参考下 ...
- php用于字符串函数是,php中用于查找字符串的常用函数
php中用于查找字符串的常用函数,包括strstr.stristr.strpos.substr等,本文主要为大家介绍strstr的使用,感兴趣的朋友不妨参考下. 一.strstr 查找字符串的首次出 ...
- Windows进程通信之剪贴板
本文由danny发表于http://blog.csdn.net/danny_share 前面两篇废话了这么多,本文开始上干货. 本文从剪贴板概念.剪贴板内容监听,普通数据类型,打开剪贴板,读剪贴板,写 ...
- 【pickle】详解python中的pickle模块(常用函数、示例)
1.序列化.反序列化介绍 序列化:把对象转换为字节序列的过程称为对象的序列化. 反序列化:把字节序列恢复为对象的过程称为对象的反序列化. 2.pickle模块说明 python中的pickle模块实现 ...
- 计算机二级vf中字符,计算机二级VFP常用函数使用技巧探讨
摘要:掌握VFP常用函数使用技巧对学生非常重要,在二级考试中,函数使用频繁,贯穿整个考试,不论是表创建的索引建立.还是查询的字段构造以及表单控件的函数表示,都离不开函数的使用.为了让学生理清这部分思路 ...
- VC++中进程间相互通信的十一种方法
进程通常被定义为一个正在运行的程序的实例,它由两个部分组成: 一个是 操作系统用来管理进程的内核对象.内核对象也是系统用来存放关于进程的统计信息的地方 另一个是地址空间,它包含所有的可执行模块或DLL ...
- excel中线性函数_Excel中特别有用的不常用函数之Indirect函数
今天介绍一下Indirect函数.这个函数属于特别有用的一个函数,但是很多人并不太了解它的作用.今天我们就详细介绍一下. 01 INDIRECT函数的工作方式 这个函数的语法特别简单: INDIREC ...
最新文章
- Netadvantage锁定grid列和锁定Excel栏位
- Restful API 设计规范实战
- Android关联启动查询数据库,VIVO X9怎么查看关联启动记录 VIVO X9查看关联启动记录教程...
- 计算机猜数游戏matlab,MATLAB课程设计报告猜数游戏设计
- modbus poll\slave
- 工作原理_逆变器工作原理
- tensorflow 多人_使用TensorFlow2.x进行实时多人2D姿势估计
- python中统计数据的总和_Python 数据的累加与统计的示例代码
- linux命令行翻页
- deeplinux 热点_在深度deepin linux系统中同时开启wifi与热点的办法
- 鸿蒙3.0系统下载,鸿蒙os3.0系统官网版-华为鸿蒙os3.0下载官网手机版-66街机网
- Hi3559AV100移植友方4G模块N720V5(一)
- 手动Linux固定IP
- VSCode配置JavaScript基于Node.js环境
- (附源码)springboot闲置衣物捐赠系统 毕业设计 021009
- linux中合并多个文件到一个文件中
- Cesium深入浅出之视频投影
- DPVS安装配置、使用(1)
- html图片从透明到显示,css 文字半透明显示在图片上
- 计算机无法识别3.0u盘启动,USB3.0的U盘在usb3.0的接口为什么不能启动WINPE