HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

A .NET Framework Mgmtclassgen.exe eszköze


Példaprogram letöltése

30420 bájt

A Windows Management Instrumentation (WMI) elérése bizonyos funkciók végrehajtása esetében egyszerűen megvalósítható, bonyolult feladatok esetében azonban problémákba ütközhetünk. A .NET Framework rendelkezik egy parancssori eszközzel, mellyel ezek a műveletek játszi könnyedséggel elvégezhetőek. Cikkünkben bemutatjuk, hogyan is vehető igénybe a program ehhez, és hogyan hasznosíthatjuk képességeit alkalmazásainkban.

A .NET Framework Mgmtclassgen.exe eszköze alapértelmezésben a következő mappában érhető el: <winroot>:\\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Bin\.
A WMI rendszer elérésére a System.Management névteret használhatjuk fel, azonban ez nem annyira kényelmes, mert csak közvetett módon érhetjük el a WMI objektum modelljét, és ennek elemeit.
A segédprogram felhasználásával viszont generálhatunk egy menedzselt osztályt minden egyes WMI osztályhoz úgy, mintha egy Webes szerviz alkalmazás eléréséhez generálnánk egy Webes referenciát, és azt elérő proxy osztályt. Itt is egy ilyen proxy funkciójú osztályt kapunk, melynek segítségével elérhetjük az adott WMI osztály property-jeit, és metódusait.
A segédalkalmazás használatának parancssori szintaxisa a következő:
mgmtclassgen <osztály neve> [opciók]
Az osztály neve itt egy WMI osztály nevét tartalmazza, például Win32_Process. A megadható kapcsolók funkcióit a következő táblázat tartalmazza:
Opciók Jellemző
/l nyelv A forráskód nyelve, melyben generálni kell az adott osztályt.
/m számítógép neve Számítógép neve, melynek WMI rendszeréhez kapcsolódni szándékozunk. Alapértelmezésben ez a lokális rendszer.
/n elérési útvonal A WMI névtér elérési útvonala, mely alapértelmezésben root\cimv2.
/p elérési út A generált osztályt tartalmazó forrásállomány elhelyezésének elérési útvonala.
/pw jelszó Amennyiben nem lokális rendszerbe szeretnénk bejelentkezni, itt megadható a szükséges jelszó.
/u usernév Amennyiben nem lokális rendszerbe szeretnénk bejelentkezni, itt megadható a szükséges felhasználónév.
/? Kapcsolók kiírása.
Az alkalmazásunkban felhasznált Process.cs forrásállományt a következő parancssori utasítással generáltuk:
mgmtclassgen Win32_Process /n root\cimv2 /l CS /p <winroot>:\\Process.cs
A mellékelt példában két osztályhoz generáltunk menedzselt osztályt: Win32_Process és a Win32_LogicalDisk. Az előbbit felhasználjuk arra, hogy kilistázzuk a számítógépen aktuálisan futó folyamatok neveit, a másikat pedig ahhoz, hogy információkat kérdezzünk le a C:\ meghatónkról a WMI segítségével.
A process-ek listája a következő kóddal kérdezhető igen egyszerűen, ha a Process osztályt elérjük a generált állományból:
foreach(Process p in Process.GetInstances())
{
  listBox1.Items.Add(p.Name);
}
A Process osztály statikus metódusa adja meg ugyanis egy kollekcióban a folyamat-objektumok listáját, és ezek Name property-je tartalmazza a folyamat nevét.
A meghajtó információkat úgy kaphatjuk meg, hogy a LogicalDisk osztályt példányosítjuk és lekérdezzük az osztály property-jeit.
LogicalDisk ld = new LogicalDisk(new ManagementPath("win32_LogicalDisk.DeviceId=\"C:\""));
listBox2.Items.Add("Fejléc: " + ld.Caption);
...

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 787. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |