Внутренние работы WMI? - PullRequest
       18

Внутренние работы WMI?

0 голосов
/ 19 января 2010

Мне интересно, как работает WMI.В частности, в настоящее время я использую WMI для запроса физических мониторов через «Select * from Win32_DesktopMonitor», поскольку он последовательно дает мне правильный результат на нескольких платформах, поскольку я хочу знать количество физических мониторов, а не виртуальных мониторов, возвращаемых функциями, такими какGetSystemMetrics и EnumDisplays.Я также исследовал SetupAPI, который проверяет реестр, как и диспетчер устройств, но может некорректно возвращать фантомные мониторы в версиях Windows, предшествующих Vista.

Я пытался отслеживать вызовы API и наблюдать события с помощью procmon.exeсделанный wbemtest.exe и моими собственными исполняемыми файлами, выполняющими запросы, но не обнаружившими большого количества.

Любое понимание внутренней работы WMI, более глубокое отслеживание вызовов API или надежные способы подсчета мониторов приветствуются..

Незначительные примечания: Работа с C ++

Ответы [ 2 ]

2 голосов
/ 21 января 2010

Также стоит проверить квалификатор MappingStrings (если имеется) для интересующих вас свойств класса. Для Win32_DesktopMonitor, например:

DeviceId:
Win32API | Windows GDI | HMONITOR

InstallDate:
MIF.DMTF | ComponentID | 001,5

MonitorManufacturer:
Win32Registry

MonitorType:
Win32Registry

PixelsPerXLogicalInch:
Win32API | Функции контекста устройства | GetDeviceCaps

1 голос
/ 20 января 2010

Говорит с драйверами устройства, никто не знает лучше, какое оборудование доступно.Вы можете прочитать больше об этой статье Microsoft .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...