Я ищу способ обнаружения установленного сенсорного оборудования с помощью 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

Компьютер: Dell 15R 5537 Сенсорный ноутбук с Windows 8 Enterprise.
Указывающее устройство: сенсорный экран, мышь, сенсорная панель
Как запустить скрипт: дважды щелкните файл .vbs или запустите его через командную строку
Что происходит: согласно моему сценарию, если TouchDevice == objItem.PointingType == 8, он должен выводить, что сенсорное оборудование было найдено, но он продолжает выводить, что сенсорное оборудование не найдено.

Ссылка: класс WMI win32_PointingDevice

1 ответ1

1

К сожалению, как вы видели, структура 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" и перечисляет этот объект.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .