使用 VBScript 检测触摸硬件

使用 VBScript 检测触摸硬件

我正在寻找一种使用 VBScript 检测已安装触摸硬件的方法。我的脚本不起作用。

该脚本的目的是寻找一个指点设备并相应地回显。

    On Error Resume Next
    strComputer = "." 
   WScript.Echo "=========================================="
   Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
   Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PointingDevice")
 For Each objItem In colItems
    TouchDevice = objItem.PointingType
    if TouchDevice = 8 then
        Wscript.Echo "Found touch based hardware"
        WScript.Echo "=========================================="
    Else
        Wscript.Echo "No Touch based hardware found"
        WScript.Echo "=========================================="
    End If
Next

计算机:搭载 Windows 8 Enterprise 的 Dell 15R 5537 触摸屏笔记本电脑。
指点设备:触摸屏、鼠标、触摸板
我如何运行脚本:双击 .vbs 文件或通过命令提示符运行它
发生的情况:根据我的脚本,如果 TouchDevice == objItem.PointingType == 8,它应该输出已找到触摸硬件,但它一直输出未找到触摸硬件。

参考 :WMI 类 win32_PointingDevice

答案1

不幸的是,正如您所看到的,win32_PointingDevice 结构没有被正确使用。

不过,您仍然可以通过解析 win32_PnPEntity 来获取“触摸”来做到这一点。

On Error Resume Next
strComputer = "." 
WScript.Echo "=========================================="

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_PnPEntity")
For Each objItem In colItems
    If InStr(1, objItem.Description , "touch", 1) > 0 Then
        Wscript.Echo "Found touch based hardware: " & objItem.PnPDeviceID
        WScript.Echo "=========================================="
    End If
Next

这与您的示例尝试所做的几乎相同,但查看每个 PnP 设备的对象描述中是否存在单词“触摸”并列出该对象。

相关内容