Code-Beispiel
Ein Beispiel zum Einsatz der Klasse System.Management.ManagementObjectSearcher aus der .NET-Klassenbibliothek.
Autor: Dr. Holger Schwichtenberg
Beschreibung
Das zweite Listing zeigt die Variante unter Verwendung der Klasse SelectQuery.
Programmcodebeispiele Visual Basic .NET (VB.NET)
' ============================
' .NET-Code-Beispiel in Visual Basic .NET
' WQL-Datenabfrage: Liste aller laufenden Dienste
' Variante #2
' (C) Holger@Schwichtenberg.de
' ============================
Sub WMI_DataQuery2()
out("WQL-Datenabfrage: Liste aller laufenden Dienste")
Dim mo As ManagementObject
Dim suche As New ManagementObjectSearcher()
Dim menge As ManagementObjectCollection
Dim sq As SelectQuery
Const ABFRAGE = "select name,state from Win32_Service where state='running'"
' --- Abfrage definieren
sq = New SelectQuery(ABFRAGE)
suche = New ManagementObjectSearcher(sq)
' --- Abfrage ausführen
menge = suche.Get
' --- Ergebnisse ausgeben
For Each mo In menge
out("Dienst: " & mo("Name") & " Zustand: " & _
mo("state"))
Next
End Sub
Programmcodebeispiele CSharp (C#)
using System;
using System.Management;
using System.Windows.Forms;
using FCL_Buch;
namespace FCLBuch._SystemManagement {
public class SamplesWMIAbfragen {
public void WMI_DataQuery2() {
// WQL-Datenabfrage: Liste aller laufenden Dienste Variante #2
FclOutput.PrintOutSubHeader("WQL-Datenabfrage: Liste aller laufenden Dienste");
string abfrage = "select name,state from Win32_Service where state='running'";
// Abfrage definieren
SelectQuery sq = new SelectQuery(abfrage);
ManagementObjectSearcher suche = new ManagementObjectSearcher(sq);
// Abfrage ausführen
ManagementObjectCollection menge = suche.Get();
// Ergebnisse ausgeben
foreach (ManagementObject mo in menge)
FclOutput.PrintOut("Dienst: " + mo["Name"].ToString() + " Zustand: " + mo["state"].ToString());
}
}
}
Hinweise
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.
Querverweise
Liste aller Codebeispiele
Definition '.NET Framework Class Library'
Verfügbarkeit der Klasse 'System.Management.ManagementObjectSearcher'
Übersicht über den FCL-Namensraum 'System.Management'
.NET & Visual Studio Community Portal