Определение информации о пк
Цитата: Удаленный пользователь от 31.08.2020, 13:40Всем добрый день. Помогите пожалуйста, хочу узнать информацию о мониторе и 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
Всем добрый день. Помогите пожалуйста, хочу узнать информацию о мониторе и 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
Цитата: Удаленный пользователь от 31.08.2020, 14:00Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен) и он естественно у вас "Универсальный монитор PnP ".
Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен) и он естественно у вас "Универсальный монитор PnP ".
Цитата: Удаленный пользователь от 31.08.2020, 14:05Цитата: Adler от 31.08.2020, 14:00Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен) и он естественно у вас "Универсальный монитор PnP ".В Win 10 Tweaker монитор определяется правильно
Цитата: Adler от 31.08.2020, 14:00Добрый день.
Касательно монитора давайте оттолкнемся от W10T. В нем он правильно определяется?
Ваш код отталкивается от того, как это устройство определяется в диспетчере устройств. На монитор у вас драйвер не установлен (большинство людей его не ставят и даже не знают, что он бывает, т.к. в 99% он бесполезен) и он естественно у вас "Универсальный монитор PnP ".
В Win 10 Tweaker монитор определяется правильно
Цитата: Удаленный пользователь от 31.08.2020, 14:59Цитата: Максим от 31.08.2020, 14:05В Win 10 Tweaker монитор определяется правильно
Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...
Цитата: Максим от 31.08.2020, 14:05В Win 10 Tweaker монитор определяется правильно
Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...
Цитата: Удаленный пользователь от 31.08.2020, 15:34Цитата: Adler от 31.08.2020, 14:59Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...Спасибо большое, получилось сделать что-то более-менее годное
Цитата: Adler от 31.08.2020, 14:59Ну тогда думаю стоит спросить у Хачатура, если это не большой секрет (по пользовательскому соглашению любой алгоритм в программе секрет, но попробовать стоит).
А если погуглить, то можно найти еще вариант с использованием WmiMonitorID и Win32_DesktopMonitor. Не проверял, т.к. у меня установлен драйвер на монитор и любой вариант будет рабочим.
По USB не подскажу, это нужно разбираться...
Спасибо большое, получилось сделать что-то более-менее годное
