Класс Win32_Keyboard — информация о клавиатуре

Класс Win32_Keyboard — информация о клавиатуре Объектная модель Windows Management Instrumentation

Класс Win32_Keyboard происходит от класса CIM_Keyboard и позволяет получить информацию о клавиатуре, установленной в системе. Оба класса содержат 23 свойства и два метода — Reset и SetPowerState; оба метода не являются реализованными, то есть, их нельзя использовать.

Прежде чем приступать к описанию свойств Win32_Keyboard, давайте рассмотрим его с помощью утилиты CIM Studio.

Видим, что ключевым свойством является DeviceID, то есть, для получения конкретного экземпляра класса Win32_Keyboard с помощью метода GET, нам нужно будет указывать значение именно этого свойство, что не очень удобно (почему, объясню далее). Ассоциативных связей у класса нет. Сам класс предоставляется провайдером Win32, динамическая библиотека Cimwin32.dll, MOF файл Cimwin32.mof, пространство имен CIMV2.

На данный момент я работаю на ноутбуке, его родная клавиатура функционирует лишь частично – не работают некоторые кнопки, это уже второй раз такая неудача; первый раз я угробил клавиатуру пролив на нее пиво, второй – слишком часто чистил и в итоге попортил шлейф (я ее снимал). Поэтому, к ноутбуку подключена USB клавиатура, честно говоря, так даже удобнее работать.

Исходя из выше сказанного следует, что на данный момент у класса Win32_Keyboard должны быть два экземпляра, в которых хранится информация о клавиатуре – внешней и встроенной. В утилите CIM Studio это прекрасно видно (выбираем метод Win32_Keyboard и нажимаем на кнопку Instances).

В первой колонке показаны значения свойства DeviceID, данные значения можно получить и с помощью утилиты WMIC, просто введите в командной строке:

В итоге я получил те же значения, что и в утилите WMI CIM Studio:

DeviceID
ACPIPNP03034&C9A0E36&0
USBVID_1C4F&PID_0016&MI_006&1BC65A9C&0&0000

Как видим, данное свойство содержит довольно длинное и неказистое значение, что бы использовать его для получения информации о конкретной клавиатуре, но ничего.

А теперь давайте изучим некоторые свойства класса Win32_Keyboard, все они доступны только для чтения.

Свойства Win32_Keyboard

Availability – Наличие и состояние устройства. Унаследовано от класса  CIM_LogicalDevice. Возвращаемые значения не представляю практического интереса.

Caption – Содержит краткое описание (одна строка) объекта. Унаследовано от класса CIM_ManagedSystemElement.

ConfigManagerUserConfig – Только для чтения. Если возвращает значение TRUE (ИСТИНА), то устройство использует конфигурацию, определенную пользователем. Унаследовано от класса CIM_LogicalDevice.

CreationClassName – Содержит имя класса, использовавшегося при создании экземпляра. Унаследовано от класса CIM_LogicalDevice.

Description — Описание объекта. Унаследовано от класса CIM_ManagedSystemElement.

DeviceID – Ключевое свойство для идентификации устройства. Унаследовано от класса CIM_LogicalDevice.

IsLocked – Если значение TRUE, то устройство заблокировано, для предотвращения входа или выхода пользователя. Унаследовано от класса CIM_UserDevice.

Layout – Содержит числовое значение, определяющее раскладку клавиатуры. Унаследовано от класса CIM_Keyboard.

Name – Метка, определяющая объект. Унаследовано от класса CIM_ManagedSystemElement.

NumberOfFunctionKeys — Только для чтения. Количество функциональных клавиш на клавиатуре. Унаследовано от класса CIM_Keyboard.

Status – Показывает статус объекта. Унаследовано от класса CIM_ManagedSystemElement. Возможные значения:

  • «OK»
  • «Error»
  • «Degraded»
  • «Unknown»
  • «Pred Fail»
  • «Starting»
  • «Stopping»
  • «Service»
  • «Stressed»
  • «NonRecover»
  • «No Contact»
  • «Lost Comm»

SystemName — Имя компьютера, на котором установлена клавиатура. Унаследовано от класса CIM_LogicalDevice.

Хорошо, с теорией закончили, можно приступить к практике. Ниже я привожу два сценария Win32_Keyboard.vbs и Win32_Keyboard.js на языках vbscript и jscript соответственно, которые просто выводят информацию об установленных в системе клавиатурах, в моем случае их две.

Если вы не любитель писать сценарии, то аналогичную информацию о клавиатуре можно получить в командной строке с помощью утилиты WMIC. Просто введите следующую команду:

Результат будет отображаться в виде таблицы, при желании его можно направить во внешний файл:

И напоследок, что бы быстро получить описание самого класса Win32_Keyboard, пропишите в командной строке:

При желании можно направить вывод во внешний файл, сам вывод данных происходит в виде HTML разметки.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий