ОСТОРОЖНО МОШЕННИКИ! В последнее время в соиальных сетях учстились случаи педложения помощи в написании прогамм от лиц, прикрвающихся сайтом vscode.ru. Мы никогда не пишем первыми и не размещаем никакие материалы в псторонних группах ВК. Для связи с нами используйте исключительно эти контакт: vscoderu@yandex.ru, https://vk.com/vscode


Получение информации о компьютере


В данном материале будет рассмотрено получение информации о компьютере с помощью инструментария управления Windows — WMI и языка программирования C#. Описаны необходимые библиотеки и представлен исходник программы для скачивания (в конце статьи).

Здравствуйте, уважаемые читатели!

Получение информации о компьютере в языке C# возможно с помощью WMI запросов. Windows Management Instrumentation (WMI) — это инструментарий управления Windows. WMI — это технология для мониторинга работы компьютерной инфраструктуры с помощью Windows.

Получение информации о компьютере с помощью WMI похоже на запросы к базе данных. Описание всех классов WMI и их свойств вы можете найти здесь.

Получение информации о компьютере. Написание программы C#

Для начала необходимо включить в исходный код пространство имен System.Management:

Но этот код подчеркнётся красным цветом, чтобы это исправить также нужно добавить ссылку на сборку System.Management. Для этого жмём правой кнопкой мыши на References в «обозревателе решений».

Пункт References в обозревателе решений

Далее щёлкаем на пункт «Добавить ссылку…».

В появившемся окне ищем сборку System.Management, ставим галочку и жмём кнопку «ОК».

Сборка System.Management в менеджере ссылок

Готово!

Теперь напишем метод, который будет обрабатывать WMI запросы и возвращать результат.


На вход метод принимает: string WIN32_Class — это название WMI класса, информацию из которого требуется получить, и string ClassItemField — это название свойства класса, которое необходимо узнать. Метод возвращает список List<string> result. Список строк (а не просто строка) используется потому, что в компьютере, например, может быть установлено несколько дисководов и если потребуется получить соответствующую информацию, то она (обо ВСЕХ дисководах) будет записана в список, и ничего не потеряется.

Далее. Напишем метод, который будет выводить полученную информацию о компьютере на экран.

Аргументы метода: string info — текстовая строка с информацией о выходных данных и List<string> result — список, который возвращает метод GetHardwareInfo().

На основе методов, описанных выше, получение информации о компьютере будет происходить так: получим, например, название процессора:

Производителя процессора:

Описание процессора:

Название видеокарты:

Название видеопроцессора:

Версия драйвера видеокарты:

Объем памяти видеокарты:

Название дисковода:

Буква привода дисковода:

Название жесткого диска:

Объем памяти жесткого диска:

Запустим программу и просмотрим, что получится.

Получение информации о компьютере

Как вы видите, не зря мы использовали список List<> для хранения данных. Например, у меня на ноутбуке две видеокарты и два привода: реальный и виртуальный — и информация обо всех них отобразилась.

Скачать исходник

 

 

5/5 - (11 голосов)



Поделиться в соц. сетях:

4 комментария(ев) к статье “Получение информации о компьютере

    1. admin Автор статьи

      Открыть файл с помощью FileStream, используя параметр Append (указатель т. о. будет переведен в конец файла и файл не будет перезаписан), и записать нужные данные с помощью класса StreamWriter, учитывая спецификацию csv.

  1. Артем

    Спасибо! Все очень понятно. Очень пригодилось. И за исходник отдельное спасибо )

  2. Александр

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

    Например на одном из ПК данный код выдал такой список:
    — NVIDIA GeForce 1080Ti
    — NVIDIA GeForce 1050
    — NVIDIA GeForce 1070

    Но в диспетчере устройств он такой:
    — NVIDIA GeForce 1070
    — NVIDIA GeForce 1080Ti
    — NVIDIA GeForce 1050

    Тоесть, как получить «правильный» список устройств. Ибо это доставляет ряд трудностей с организацией программы (когда название устройства одно, а характеристики выдаются от другого)

    P.S. пример из головы, но факт «неправильного» списка есть.

Добавить комментарий для Александр Отменить ответ

Ваш адрес email не будет опубликован.