我正在寻找一种使用 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,它应该输出已找到触摸硬件,但它一直输出未找到触摸硬件。
答案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 设备的对象描述中是否存在单词“触摸”并列出该对象。