Содержание
Я инженер-программист. Я работаю с технологиями C ++, MFC, .net уже 15 лет. Я люблю видеоигры и читать книги.
Что такое WMI?
WMIявляется Инструментарий управления Windows, и это поможет dot net framework получить системную информацию. WMI - это отдельный мир классов, занимающихся доступом к системным ресурсам. Классы WMI обычно используются для получения системной информации. Внесение изменений в системную информацию редко выполняется через интерфейсы WMI. В этой статье мы рассмотрим, как создавать экземпляры WMI. Я собираюсь получить все службы, работающие в системе, и отобразить их в элементе списка.
Создание оконного приложения (дизайн формы)
Первый шаг - создание приложения Windows. Следуйте инструкциям, приведенным ниже:
- Сначала создайте новый проект приложения Windows на Visual C # с именем CreateInstance
- После отображения формы создайте ее, как показано ниже:
- Список контроль. Его Имя свойство установлено как ctrlLstBox
- Кнопка контроль. Его свойство Name установлено как btnServices. потом Текст свойство установлено как Получите услуги.
- Форма Windows. Его Текст свойство установлено как Получить экземпляры WMI
Как только дизайн будет завершен, событие щелчка для btnServices кнопка создана. Чтобы создать это событие, в режиме конструктора дважды щелкните кнопку «Получить службы».
Реализация кода
Двойной щелчок по кнопке Get Services оставит вас в функции, указанной ниже. Эта функция на самом деле является обработчиком события щелчка для кнопки Get Services.
private void btnServices_Click (отправитель объекта, EventArgs e) {}
Мы собираемся написать код для этой функции-обработчика. Поэтому, когда пользователь нажимает кнопку, код, написанный в обработчике, запускается и отображает вывод в элементе управления ListBox с именем ctrlLstBox.
Прежде чем мы начнем кодирование, мы должны включить необходимую ссылку DLL в наш CreateInsance проект. Для этого щелкните пункт меню Проект-> Добавить ссылку…. В отображаемом диалоговом окне (отображение диалогового окна может занять некоторое время), мы должны выбрать Управление системой элемент, а затем нажмите ОК. Чтобы выбрать System.Management, убедитесь, что вы находитесь на вкладке .Net. Это показано на картинке ниже:
После добавления этой ссылки наш проект получит доступ к функциям, предоставляемым DotNet DLL, System.Management.dll. Мы можем проверить, успешно ли добавлена ссылка в проект, проверив узел ссылки в проводнике проекта, как показано ниже:
Когда ссылка будет готова, мы начнем кодирование с этих шагов.
1) Первым шагом является добавление созданной выше ссылки в начало файла (после существующего оператора using). Это позволит нам получить доступ к классу, хранящемуся внутри пространства имен System.Management. Этот код показан ниже:
// Пример 01: Требуемое пространство имен using System.Management;
2) В обработчике события нажатия кнопки сначала укажите «system.management.managementclass" создано. Мы прошли Win32_Services в его конструктор, и при этом мы получаем класс службы Win32 во время выполнения. Из этого класса мы можем получить все экземпляры, которые ему принадлежат. Ниже приведен код, показывающий создание класса ManagementClass с именем service_class.
// Пример 02: Создание класса управления ManagementClass service_class = new ManagementClass ("Win32_Service");
3) Все объекты, принадлежащие Win32_Service, извлекаются из service_class экземпляр, который мы создали на предыдущем шаге этого кодирования. Вызов функции GetInstances () получит все службы, запущенные в системе, как ManagementObjectКоллекция. Это показано в приведенном ниже коде:
// Пример 03: Получить все объекты класса Win32_Service. Каждый объект // представляет одну службу ManagementObjectCollection Service_objects_collection = service_class.GetInstances ();
4) Затем мы получаем каждый экземпляр класса ManagementObject, перебирая Service_objects_collection. Конструкция Foreach используется для выполнения итерации. Когда у нас есть экземпляр ManagementObject, доступный внутри тела цикла Foreach, мы получаем свойство name экземпляра и добавляем его в элемент управления Listbox. Код показан ниже:
// Пример 04: итерации по каждой службе и отображение имени // службы foreach (служба ManagementObject в коллекции_объектов_службы) {ctrlLstBox.Items.Add (service ["Name"]. ToString ()); }
Снимок экрана после выполнения обработчика нажатия кнопки показан ниже:
Полный код в файле показан ниже:
используя Систему; using System.Collections.Generic; using System.ComponentModel; using System.Data; с помощью System.Drawing; using System.Text; using System.Windows.Forms; // Пример 01: Требуемое пространство имен using System.Management; пространство имен CreateInstance {общедоступный частичный класс Form1: Форма {общедоступная Form1 () {InitializeComponent (); } private void btnServices_Click (отправитель объекта, EventArgs e) {// Пример 02: Создание класса управления ManagementClass service_class = new ManagementClass ("Win32_Service"); // Пример 03: Получить все объекты класса Win32_Service. Каждый объект // представляет одну службу ManagementObjectCollection Service_objects_collection = service_class.GetInstances (); // Пример 04: итерации по каждой службе и отображение имени // службы foreach (служба ManagementObject в коллекции_объектов_службы) {ctrlLstBox.Items.Add (service ["Name"]. ToString ()); }}}}
Эта статья точна и правдива, насколько известно автору. Контент предназначен только для информационных или развлекательных целей и не заменяет личного или профессионального совета по деловым, финансовым, юридическим или техническим вопросам.