Verwendung einer Wrapper - Klasse am Beispiel eines Laufwerks
Autor: Dr. Holger Schwichtenberg
' ============================ ' .NET-Code-Beispiel in Visual Basic .NET ' Verwendung einer Wrapper - Klasse am Beispiel eines ' Laufwerks ' (C) Holger@Schwichtenberg.de ' ============================ Sub wmi_direkt() Dim Disk As New ROOT.CIMV2.LogicalDisk("f:") out(Disk.Caption) out(Disk.Chkdsk(False, False, False, False, False, _ False).ToString) End Sub
using System; using System.Management; namespace FCLBuch._SystemManagement { public class SamplesWMIAllgemein { public void WMI_ManagementObject2() { // Aufruf der Methode CheckDisk // Zugriff auf Managed Object ManagementObject mo = new ManagementObject(@"//Dagobar\root\cimv2:Win32_LogicalDisk.DeviceID='d:'"); // Parameterliste einlesen ManagementBaseObject inParams = mo.GetMethodParameters("Chkdsk"); // Parameter füllen inParams["FixErrors"] = false; inParams["ForceDismount"] = false; inParams["OkToRunAtBootUp"] = false; inParams["RecoverBadSectors"] = false; inParams["SkipFolderCycle"] = false; inParams["VigorousIndexCheck"] = false; // Methode aufrufen FclOutput.PrintOutSubHeader("Aufruf von CHKDSK...#1"); ManagementBaseObject outParams = mo.InvokeMethod("Chkdsk", inParams, null); // Rückgabewert ausgeben UInt32 wert = System.Convert.ToUInt32(outParams.Properties["ReturnValue"].Value); FclOutput.PrintOut("Ergebnis von CHKDSK: " + wert.ToString()); // Alternative mit Array of Object object[] someParams = { false, false, false, false, false, false }; FclOutput.PrintOutSubHeader("Aufruf von CHKDSK...#2"); object ergebnis = mo.InvokeMethod("Chkdsk", someParams); FclOutput.PrintOut("Ergebnis von CHKDSK: " + ergebnis.ToString()); } } }
Ausgaben werden in den Beispielen durch Hilfsroutinen wie out() und PrintOut() erzeugt. Diese sind hier nicht angegeben, da deren Implementierung von der jeweiligen Umgebung abhängt. Für Konsolenanwendungen können hier z.B. Console.WriteLine() einsetzen.
Liste aller Codebeispiele Definition '.NET Framework Class Library' Verfügbarkeit der Klasse 'System.Management.ManagementClass' Übersicht über den FCL-Namensraum 'System.Management' .NET & Visual Studio Community Portal