剪贴板内置在windows中,并且使用系统的内部资源RAM,或虚拟内存来临时保存剪切和复制的信息,可以存放的信息种类是多种多样的。剪切或复制时保存在剪贴板上的信息,只有再剪贴或复制另外的信息,或停电、或退出windows,或有意地清除时,才可能更新或清除其内容,即剪贴或复制一次,就可以粘贴多次。
clipboard本质上一段共享的内存区域,任何应用程序都可以读写clipboard,相当于全局变量,不过这个全局变量是针对WINDOWS操作系统的,所以它可以实现在几个LV执行文件或者LV和其它WINDOWS程序实现数据传递,只所以LV很少涉及到它,因为它不太适合实时控制,在任何时刻,任何WINDOWS程序都可以进行读写,读没问题,因为剪切板读操作是不会清理剪切板的,而写操作则会更新剪切板,原来的信息丢失.
共享内存在单片中,有硬件双口RAM,原理和剪切板类似,应用非常广泛,主要用于实现一个控制板上多个单片机交换数据.
LV是否直接支持剪切板操作那? lv在APP属性节点中提供了操作CLIPBOARD的功能.
上面非黄色的属性节点在LV中是看不到了,NI公司未公开的私有属性节点,NI不保证它在以后的版本中继续支持.
私有属性节点是从CLIPBOARD读取图片.
CLIPBOARD READ属性节点是从CLIPBOARD读取字符串
CLIPBOARD TEXT属性节点是向CLIPBOARD写入字符串.
CLIPBOARD SAVE是暂时存储CLIPBOARD内容,可以用 CLIPBOARD RESTORE恢复.
可见,LABVIEW直接支持CLIPBOARD对字符串的操作.没有直接提供对图片的支持.
PREDEFINED CLIPBOARD FORMATS
-------------------------------------------
CF_TEXT = 1
CF_BITMAP = 2
CF_METAFILEPICT = 3
CF_SYLK = 4
CF_DIF = 5
CF_TIFF = 6
CF_OEMTEXT = 7
CF_DIB = 8
CF_PALETTE = 9
CF_PENDATA = 10
CF_RIFF = 11
CF_WAVE = 12
CF_UNICODETEXT = 13
CF_ENHMETAFILE = 14
CF_HDROP = 15
CF_LOCALE = 16
CF_MAX = 17
CF_OWNERDISPLAY 0x0080
CF_DSPTEXT 0x0081
CF_DSPBITMAP 0x0082
CF_DSPMETAFILEPICT 0x0083
CF_DSPENHMETAFILE 0x008E
可见,WINDOWS支持CLIIPBOARD多种格式,但是最常见的还是字符串和图片格式.
我们看看如何才能实现CLIPBOARD图片的读写那
在IMAQ中,直接提供的了CLIPBOARD图片操作函数,但是一般人的计算机上都没有安装,可以利用PICTURE BOX间接实现图片写入CLIPBOARD.
这是PICTURE BOX的导出图片的方法节点
把图片写入PICTURE BOX是非常简单的,看一下例子,目的是把前面板形成图片写入剪切板[page]
首先看看前面板
第一步是取得前面板图片,PANEL提供了前面板图片的提取方法节点:
第二步,把图片数据写入PICTURE BOX,调用PICTURE BOX的方法节点写入CLIPBOARD
看看CLIPBOARD的内容,用WINDOWS的PAINT,粘贴,就可以得到图片的内容了.
下面看看在LV中如何读取CLIPBOARD上的图片,有两种方法,一种是利用API,另外一种就是利用上面的私有属性节点,我们用属性节点实现比较简单.
看看实际效果图
通过上面的方法,我们完全实现了LV中图片写入CLIPBOARD和从CLIPBOARD读取图片到LABIVEW
文本的非常简单,举个例子示意一下
上一篇:labview的深入探索----被人淡忘的DOS命令,SYSTEM EXEC
下一篇:labview深入探索----谈谈LABVIEW的几种定时器
推荐阅读最新更新时间:2024-03-30 23:03