Компьютеры

Список служб с использованием класса управления C #: пример WMI

Автор: Laura McKinney
Дата создания: 8 Апрель 2021
Дата обновления: 11 Май 2024
Anonim
Как управлять компанией с помощью Asana. Система управления бизнесом. Управление персоналом.
Видео: Как управлять компанией с помощью Asana. Система управления бизнесом. Управление персоналом.

Содержание

Я инженер-программист. Я работаю с технологиями C ++, MFC, .net уже 15 лет. Я люблю видеоигры и читать книги.

Что такое WMI?

WMIявляется Инструментарий управления Windows, и это поможет dot net framework получить системную информацию. WMI - это отдельный мир классов, занимающихся доступом к системным ресурсам. Классы WMI обычно используются для получения системной информации. Внесение изменений в системную информацию редко выполняется через интерфейсы WMI. В этой статье мы рассмотрим, как создавать экземпляры WMI. Я собираюсь получить все службы, работающие в системе, и отобразить их в элементе списка.

Создание оконного приложения (дизайн формы)

Первый шаг - создание приложения Windows. Следуйте инструкциям, приведенным ниже:

  1. Сначала создайте новый проект приложения Windows на Visual C # с именем CreateInstance
  2. После отображения формы создайте ее, как показано ниже:

  1. Список контроль. Его Имя свойство установлено как ctrlLstBox
  2. Кнопка контроль. Его свойство Name установлено как btnServices. потом Текст свойство установлено как Получите услуги.
  3. Форма 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 ()); }}}}

Эта статья точна и правдива, насколько известно автору. Контент предназначен только для информационных или развлекательных целей и не заменяет личного или профессионального совета по деловым, финансовым, юридическим или техническим вопросам.

Популярно на сайте

Статьи портала

10 модных и вирусных сайтов, таких как ViralNova
Интернет

10 модных и вирусных сайтов, таких как ViralNova

Cheeky Kid - кибернаут, который проводит много времени в Интернете, собирает бесконечное количество информации и наслаждается развлечениями и весельем.В этот момент, когда вы говорите что-то вирусное ...
Руководство по использованию терминала для новичков
Компьютеры

Руководство по использованию терминала для новичков

Я инженер-программист, дизайнер и компьютерный фанат с более чем 9-летним опытом работы в этой области.Терминал, или, более конкретно, эмулятор терминала - это программа, которая позволяет пользовател...