微波EDA网,见证研发工程师的成长!
首页 > 测试测量 > 测试测量技术文库 > labview深入探索----labview和ClipBoard(剪切板)

labview深入探索----labview和ClipBoard(剪切板)

时间:01-09 来源:互联网 点击:
用过计算机的人几乎没有不知道剪切板的,但是剪切板实质是什么,如何在程序中编程实现,尤其是对LV来说,剪切板很少有人涉及,实际上有些时候,恰当地运用剪切板可以取得事半功倍的效果.

剪贴板内置在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是非常简单的,看一下例子,目的是把前面板形成图片写入剪切板

首先看看前面板

第一步是取得前面板图片,PANEL提供了前面板图片的提取方法节点:

第二步,把图片数据写入PICTURE BOX,调用PICTURE BOX的方法节点写入CLIPBOARD

看看CLIPBOARD的内容,用WINDOWS的PAINT,粘贴,就可以得到图片的内容了.


下面看看在LV中如何读取CLIPBOARD上的图片,有两种方法,一种是利用API,另外一种就是利用上面的私有属性节点,我们用属性节点实现比较简单.

看看实际效果图


通过上面的方法,我们完全实现了LV中图片写入CLIPBOARD和从CLIPBOARD读取图片到LABIVEW

文本的非常简单,举个例子示意一下

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top