Ordinadors

Llista de serveis mitjançant C # Managementclass: exemple de WMI

Autora: Laura McKinney
Data De La Creació: 8 Abril 2021
Data D’Actualització: 13 Ser Possible 2024
Anonim
Llista de serveis mitjançant C # Managementclass: exemple de WMI - Ordinadors
Llista de serveis mitjançant C # Managementclass: exemple de WMI - Ordinadors

Content

Sóc enginyer de programari. Fa 15 anys que treballo amb tecnologies C ++, MFC i .net. M’agraden els videojocs i llegir llibres.

Què és WMI?

WMIés Instrumentació de gestió de Windows, i ajudarà a dot net framework per recuperar la informació del sistema. WMI és un món separat de classes que s’ocupen de l’accés als recursos del sistema. Les classes WMI s'utilitzen generalment per recuperar la informació del sistema. Fer canvis a la informació del sistema poques vegades es fa a través de les interfícies WMI. En aquest article, veurem com creem instàncies WMI. Recuperaré tots els serveis que s’executen al sistema i els mostraré a l’element de la llista.

Crea una aplicació basada en finestres (disseny de formularis)

El primer pas és crear l’aplicació Windows. Seguiu els passos següents:

  1. En primer lloc, creeu un Visual C # nou, anomenat Projecte d'aplicació de Windows CreateInstance
  2. Quan es mostri el formulari, dissenyeu-lo com es mostra a continuació:

  1. Quadre de llista control. Seu Nom La propietat es defineix com ctrlLstBox
  2. Botó control. La seva propietat Nom s'estableix com btnServeis. Llavors Text La propietat es defineix com Obteniu serveis.
  3. Windows Form. Seu Text La propietat es defineix com Obteniu instàncies WMI

Un cop acabat el disseny, feu clic a l'esdeveniment btnServeis es crea el botó. Per crear aquest esdeveniment, a la vista de disseny, feu doble clic al botó Obtén serveis.


Implementació del codi

Feu doble clic al botó Obtén serveis i us deixarà la funció que es mostra a continuació. Aquesta funció és en realitat el gestor d'esdeveniments de clic per al botó Obtenir serveis.

private void btnServices_Click (remitent d'objectes, EventArgs e) {}

Escriureem el codi per a aquesta funció de controlador. Així, quan un usuari fa clic al botó, s'executa el codi escrit al controlador i mostra la sortida al control ListBox anomenat ctrlLstBox.

Abans de començar la nostra codificació, hauríem d’incloure la referència DLL necessària a la nostra CreateInsance projecte. Per fer-ho, feu clic a l'element de menú Projecte-> Afegeix referència ... Des del quadre de diàleg que es mostra (pot trigar una estona a mostrar-lo), hauríem de seleccionar el Gestió del sistema i feu clic a D'acord. Per seleccionar System.Management, assegureu-vos que sou a la pestanya .Net. Això es mostra a la imatge següent:

Després d’afegir aquesta referència, el nostre projecte té accés a la funcionalitat que proporciona la DotNet DLL, System.Management.dll. Podem verificar si la referència s’afegeix amb èxit o no al projecte comprovant el node de referència de l’explorador de projectes, tal com es mostra a continuació:


Un cop la referència estigui llesta, comencem la codificació amb aquests passos.

1) El primer pas és afegir la referència creada anteriorment a la part superior del fitxer (després de la declaració d'ús existent). Això ens permetrà accedir a la classe que es manté dins de l’espai de noms System.Management. Aquest codi es mostra a continuació:

// Mostra 01: Espai de noms requerit mitjançant System.Management;

2) Al gestor d'esdeveniments de clic amb el botó, primer, un "system.management.managementclass”Es crea. Vam passar Win32_Services al seu constructor i fent això, obtenim la classe de servei Win32 en temps d'execució. A partir d’aquesta classe, podem obtenir totes les instàncies que li pertanyen. A continuació es mostra el codi que mostra la creació de la classe ManagementClass anomenada servei_classe.


// Mostra 02: Crea una classe de gestió ManagementClass service_class = nova ManagementClass ("Win32_Service");

3) Tots els objectes que pertanyen al servei Win32_Service es recuperen de servei_classe exemple que vam crear a partir del pas anterior d'aquesta codificació. La trucada a la funció GetInstances () recuperarà tots els serveis que s’executen al sistema com ManagementObjectCol · lecció. Això es mostra al codi següent:

// Mostra 03: Obteniu tots els objectes de la classe Win32_Service. Cada objecte // representa un servei ManagementObjectCollection Service_objects_collection = service_class.GetInstances ();

4) A continuació, obtenim cada instància de la classe ManagementObject iterant a través de Service_objects_collection. La construcció Foreach s’utilitza per fer la iteració. Un cop tinguem disponible la instància ManagementObject dins del cos del bucle Foreach, recuperem la propietat del nom de la instància i l’afegim al control de caixa de llista. El codi es mostra a continuació:

// Mostra 04: repeteix cada servei i mostra el nom del // servei foreach (servei ManagementObject a Service_objects_collection) {ctrlLstBox.Items.Add (servei ["Nom"]. ToString ()); }

A continuació es mostra la captura de pantalla després d’executar el gestor de clics de botó:

A continuació es mostra el codi complet del fitxer:

utilitzant el sistema; utilitzant System.Collections.Generic; utilitzant System.ComponentModel; utilitzant System.Data; utilitzant System.Drawing; utilitzant System.Text; utilitzant System.Windows.Forms; // Mostra 01: Espai de noms requerit mitjançant System.Management; espai de noms CreateInstance {public partial class Form1: Form {public Form1 () {InitializeComponent (); } private void btnServices_Click (remitent d'objectes, EventArgs e) {// Mostra 02: Crea una classe de gestió ManagementClass service_class = nova ManagementClass ("Win32_Service"); // Mostra 03: Obteniu tots els objectes de la classe Win32_Service. Cada objecte // representa un servei ManagementObjectCollection Service_objects_collection = service_class.GetInstances (); // Mostra 04: repeteix cada servei i mostra el nom del // servei foreach (servei ManagementObject a Service_objects_collection) {ctrlLstBox.Items.Add (servei ["Nom"]. ToString ()); }}}}

Aquest article és precís i fidel al millor coneixement de l'autor. El contingut només té finalitats informatives o d’entreteniment i no substitueix l’assessorament personal ni l’assessorament professional en qüestions empresarials, financeres, legals o tècniques.

Elecció De L’Editor

Popular Avui

Com reclutar convidats del podcast per al vostre programa
Internet

Com reclutar convidats del podcast per al vostre programa

Heidi Thorne é una defen ora de l'autoedició i autora de llibre , llibre electrònic i audiollibre de no ficció. É una antiga editora de diari comercial .L’acollida de conv...
Què significa FML? IRL, CYA, GR8, BTW i molt més.
Internet

Què significa FML? IRL, CYA, GR8, BTW i molt més.

Melanie é una YouTuber de tecnologia que adora le xarxe ocial i é experta en cultura a Internet. També dirigeix ​​un canal de YouTube: The Curiou Coder.La re po ta breu é que FML i...