Найти тему

Создаём простую библиотеку для информации о железе пк на .NET Framework (C#).

И сразу я предупреждаю вас, что я только учусь и не являюсь "профессионалом" этого языка (C Sharp) (как и платформы). Я лишь хочу рассказать вам, как я разработал свою библиотеку для работы с данными о пк (железо, проц, озу, биос, ОС и тд.), а также программу для работы с данными о системе на основе разработанной библиотеке попутно объясняя это тем, кто только что заехал в .NET . Также я не собираюсь пользоваться наивными методами по типу System.Diagnostics.* НЕТ, будем писать свою библиотеку с нуля ! Да, не самую быструю, не самую многофункциональную, но свою функцию она выполнять БУДЕТ и на основе её можно будет спокойно и без лишних телодвижений сделать простенькую программу - монитор ресурсов и данных о вашем ПК.

Значит, есть у нас пространство имён System.Management, а в нем нужный нам класс ManagementObjectSearcher, на котором строится половина моего "гайда". Если вам интересно, что это такое то посмотрите про это тут, это ссылка на подробное описание этого чуда. Ну а я человек простой, я объясню вам в пару слов (как я это понял), чо это такое и зачем это нужно.

И так, класс ManagementObjectSearcher. Грубо говоря мы "суём ему инструкции WMI класса и работаем с ними".

Например :

public static UInt32 GetCpuCurrentClockSpeed()

{

ManagementObjectSearcher s = new ManagementObjectSearcher("SELECT * FROM Win32_processor");

ManagementObject management = s.Get().OfType<ManagementObject>().First();

return Convert.ToUInt32(management[CurrentClockSpeed]);

}

В этом примере мы получаем из класса Win32_Processor текущую тактовую частоту нашего процессора (Метод CurrentClockSpeed).

Подробнее про Win32_processor тут. В этом классе (как и в других подобных, их много на сайте Microsoft) достаточно много методов для работы с данными о процессоре.

Подобных и очень полезных классов много:

Это всё аппаратные классы, но есть и другие : классы ОС, счётчиков производительности и др. Их достаточно много ! На основе этих классов ним не составит труда разработать библиотеку и програму для работы с данными о ПК.

Отлично. Теперь мы знаем откуда и куда идти, перейдём к написанию библиотеки.

Создал проект.
Создал проект.

Теперь создадим первый класс (CPU_Data) :

Class CPU_Data.
Class CPU_Data.

Для удобства я создал пространство имён FastPC_Data.Commands, где отдельно для каждого класса будут лежать константы с командами:

Вот.
Вот.

Дальше я выписал необходимые нам команды (класса CPU_Data).

-5
-6

Это все команды для WMI класса Win32_Processor.

Теперь будем писать сам класс CPU_Data.

Вот пример написания метода для получения ширины адреса процессора.
Вот пример написания метода для получения ширины адреса процессора.

Теперь по такому же принципу делаем это для всех остальных методов этого класса.

Вот часть кода.
Вот часть кода.

Готово. Теперь у нас есть простенький класс для работы с данными о процессоре. Среди них есть много полезных, таких как : напряжение на процессоре, тактовая частота, статус включения виртуализации, размер и скорость кеша L2 и L3, время установки процессора, разрядность, имя, род и др.

По такому же принципу делаем остальные классы.

Следующим я решил сделать класс для получения информации о видеоконтроллере. Класс Win32_VideoController нам поможет в этом.

Готово! Вот часть кода!
Готово! Вот часть кода!

Теперь мы можем получать информацию о нашем видео адаптере !

По такому же принципу можно написать и другие классы. Например Win32_NetworkAdapter, Win32_Printer и много других...

Но нам для получения данных о ПК достаточно и этого.

Теперь давайте напишем небольшую программу для демонстрации нашей библиотеки. Я напишу консольное приложение, которое будет выводить общие данные о компьютере в консоль.

-10

Теперь подключим нашу библиотеку к этому демонстрационному проекту.

Текущее решение/Текущий проект/Ссылки/Добавить ссылку
Текущее решение/Текущий проект/Ссылки/Добавить ссылку
Обзор...
Обзор...
Выбираем наш скомпилированный .dll файл
Выбираем наш скомпилированный .dll файл

P.s. Я знаю, что можно было проще (подключить существующий проект с библиотекой и подсосаться через ссылки к нашей библиотеке).

Ставим галочку около нашего выбранного .dll файла.
Ставим галочку около нашего выбранного .dll файла.
ГОТОВО !!!
ГОТОВО !!!

Теперь приступим к моему примеру использования этой библиотеки :

Вот такой пример !
Вот такой пример !

СКАЧАТЬ КОД

Результат : если вы новичок в .NET, то это может быть отличным примером по разработке своей библиотеки для поучения характеристик о ПК. Как я и сказал этих классов достаточно много и можно писать и писать эту библиотеку, расширяя её функционал, но я хотел всего лишь продемонстрировать пример работы с WMI классами, где вы можете найти практически все необходимые для вас классы и методы.

Скоро я выпущу пост, где напишу уже готовую программу для "мониторинга" характеристик и информации о ПК, поэтому подписывайтесь на меня, Я ОБЕЩАЮ ВЫКЛАДЫВАТЬ ПОЛЕЗНЫЕ ПОСТЫ ДЛЯ НОВИЧКОВ В ПРОГРАММИРОВАНИИ на C Sharp и C++, а также я буду периодически выкладывать публикации с уроками по Arduino.

Готовую библиотеку и код вы можете скачать здесь. (Я буду периодически обновлять и допиливать эту библиотеку)

Всем удачи !