如何在LabVIEW中检测移动设备已经插入或移除?



主要软件:
主要软件版本:
主要软件修正版本:
次要软件: N/A

问题: 在我的LabVIEW程序中,如何检测一个移动设备已经插入或移除?(例如:外部驱动器或USB设备) ?

解答: 这篇知识库文章提出了一种使用Windows API DLL来实现新使用的移动设备的检测。

这个称为kernel32.dll的DLL位于 C:\WINDOWS\system32,它提供了一些函数,这些函数能够获取与计算机相连的设备信息。下面的步骤展示了如何使用这些函数来检测移动设备的插入或移除。

附件中的VI(Removable devices detection v8.5.vi)给出了该方法的实现过程。 

 

  1. 获取驱动器字母列表。
    使用一个调用库函数节点VI来调用函数GetLogicalDriveStringA()
    该函数的参数返回一个数值型的表格,对应于驱动器字母的ASCII字符。
  2. 将表格中的驱动器的ASCII字符转换为路径 (例如:C:\)。
  3. 通过调用GetDriveTypeA()函数来获取驱动器的类型。
    该函数返回一个整形代码表格,分别对应于驱动器的类型。基于这些代码,使用附件VI中给出的枚举来返回相应的类型。
  4. 计算表格中当前的可移动设备的数量。
  5. 通过与之前的数量进行对比来检查当前的数量是否发生了变化。
    如果数量变化了,就意味着一个新的可移动设备已经插入或移除了。


如果您在查找一个特定的驱动器名称,也可以使用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