使用VBScript检测触摸硬件


0

我正在寻找一种方法来使用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

电脑:戴尔15R 5537触摸屏笔记本电脑与Windows 8企业版。
指点设备:触摸屏,鼠标,触摸板
我如何运行脚本:双击.vbs文件或通过命令提示符运行它
会发生什么:根据我的脚本,如果TouchDevice == objItem.PointingType == 8,它应该输出找到的触摸硬件,但它不会输出找不到的触摸硬件。

参考: WMI类win32_PointingDevice


我不知道如何更早地做到这一点,现在我只需要确保我做得对!
pun

您的目标只是检测是否存在任何基于触摸的指针设备并报告是否找到了一个?等到你拥有设备并尝试它是更合适的。如果它不起作用,将有一个基础来诊断问题。某人很难看到一个剧本并设想它可能存在的任何和所有理论问题。该脚本可能会有一些细微的错误,但不会引起注意,但失败会使其显而易见。您基本上是在这个阶段征求意见,这与网站的目标不一致。
fixer1234

此脚本不起作用。它未能检测到触摸屏。我现在可以得到一些指示吗?
pun

你能提供一些补充信息吗?电脑型号和操作系统?指点设备?你是如何运行脚本的?运行脚本会发生什么?
fixer1234

您确认您的设备确实报告了值8吗?我在lenovo win8平板电脑上尝试了这个,它将报告2(=未知)作为PointingType的值
Syberdoor

Answers:


0

不幸的是,正如您所见,win32_PointingDevice结构未正确使用。

你仍然可以通过解析win32_PnPEntity而不是“touch”来做到这一点。

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设备的对象描述“touch”并列出该对象。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.