如何在LabVIEW中检测移动设备已经插入或移除?
主要软件:
主要软件版本:
主要软件修正版本:
次要软件: N/A
问题: 在我的LabVIEW程序中,如何检测一个移动设备已经插入或移除?(例如:外部驱动器或USB设备) ?
解答: 这篇知识库文章提出了一种使用Windows API DLL来实现新使用的移动设备的检测。
这个称为
kernel32.dll的DLL位于
C:\WINDOWS\system32,它提供了一些函数,这些函数能够获取与计算机相连的设备信息。下面的步骤展示了如何使用这些函数来检测移动设备的插入或移除。
附件中的VI(Removable devices detection v8.5.vi)给出了该方法的实现过程。
-
获取驱动器字母列表。
使用一个调用库函数节点VI来调用函数GetLogicalDriveStringA()
该函数的参数返回一个数值型的表格,对应于驱动器字母的ASCII字符。
- 将表格中的驱动器的ASCII字符转换为路径 (例如:C:\)。
- 通过调用GetDriveTypeA()函数来获取驱动器的类型。
该函数返回一个整形代码表格,分别对应于驱动器的类型。基于这些代码,使用附件VI中给出的枚举来返回相应的类型。
- 计算表格中当前的可移动设备的数量。
- 通过与之前的数量进行对比来检查当前的数量是否发生了变化。
如果数量变化了,就意味着一个新的可移动设备已经插入或移除了。
如果您在查找一个特定的驱动器名称,也可以使用GetVolumeInformationA()函数来检查驱动器的名称。
注意 : 当调用系统的DLL时,切忌不要在调用库函数节点中指定绝对路径,仅输入名字即可。关于DLL函数中的参数设置,请参考附件中的VI。
相关链接: KnowledgeBase 4BJGH6GJ: How Do I Call a Dynamic Link Library (DLL) from LabVIEW?LabVIEW 8.6 Help: Calling external APIs
附件:
报告日期: 01/20/2009
最近更新: 04/24/2009
文档编号: 4TJ1FLKS
Other Support Options
Ask the NI Community
Collaborate with other users in our discussion forums
Request Support from an Engineer
A valid service agreement may be required, and support options vary by country.