Forum

Пожалуйста or Регистрация для создания сообщений и тем.

Определение информации о пк

Всем добрый день. Помогите пожалуйста, хочу узнать информацию о мониторе и USB портах ПК.
1. Как правильно вывести название и производителя монитора? Как вообще вывести разрешение найденного монитора? (я определяю как видит Windows, если масштабирование сменить, то должно разрешение изменится, а мне нужно именно разрешение монитора)
2. Как вывести версию USB, которая максимально поддерживается/рекомендуется к использованию usb-устройством?


Мой код:
СкопированоStreamWriter sw = new StreamWriter(@Application.StartupPath + @"\pcinfo.txt");
Скопированоsw.WriteLine("------------- Монитор -------------");
СкопированоManagementObjectSearcher searcher1113 =
Скопированоnew ManagementObjectSearcher("root\\CIMV2",
Скопировано"SELECT * FROM Win32_DesktopMonitor");
Скопированоforeach (ManagementObject queryObj1132 in searcher1113.Get())
Скопировано{
Скопированоsw.WriteLine("Название: " + queryObj1132["Name"]);
Скопированоsw.WriteLine("Описание: " + queryObj1132["Description"]);
Скопированоsw.WriteLine("Тип монитора: " + queryObj1132["MonitorType"]);
Скопированоsw.WriteLine("Производитель: " + queryObj1132["MonitorManufacturer"]);
Скопированоsw.WriteLine("ID: " + queryObj1132["PNPDeviceID"]);
Скопировано}
Скопированоsw.WriteLine("Разрешение экрана используемого монитора: " + Screen.PrimaryScreen.Bounds.Width + "x" + Screen.PrimaryScreen.Bounds.Height);
Скопированоsw.WriteLine("------------- USB устройства -------------");
СкопированоManagementObjectSearcher searcher414 =
Скопированоnew ManagementObjectSearcher("root\\CIMV2",
Скопировано"SELECT * FROM CIM_USBDevice");
Скопированоforeach (ManagementObject queryObj1 in searcher414.Get())
Скопировано{
Скопированоsw.WriteLine("Название: {0}", queryObj1["Caption"]);
Скопированоsw.WriteLine("ID: {0}\n", queryObj1["DeviceID"]);
Скопировано}
Скопированоsw.Close();

Однако монитор определяется неправильно (или я не понял как работать с Win32_DesktopMonitor):
------------- Монитор -------------
Название: Универсальный монитор PnP 
Описание: Универсальный монитор PnP
Производитель: (Стандартные мониторы)
ID: DISPLAY\ACR001B\5&219D681E&0&UID4865

Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен)  и он естественно у вас "Универсальный монитор PnP ".

Цитата: Adler от 31.08.2020, 14:00

Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен)  и он естественно у вас "Универсальный монитор PnP ".

В Win 10 Tweaker монитор определяется правильно

Цитата: Максим от 31.08.2020, 14:05

В Win 10 Tweaker монитор определяется правильно

Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...

Цитата: Adler от 31.08.2020, 14:59

Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...

Спасибо большое, получилось сделать что-то более-менее годное