Benutzer mit den meisten Antworten
[WMI] Wenn Rückgabewert = "Null" dann...

Frage
-
Hey!
Ich melde mich auch mal wieder zu Wort.
Mit WMI möchte ich einige Informationen zum Computer auslesen. Funktioniert auch alles, aber:
Es gibt ja Win32_OperatingSystem. Dort möchte ich "CSDVersion" auslesen. Da wird ja das Servicepack angezeigt.
Wenn man allerdings kein SP installiert hat ist dieser Wert "NULL" (siehe hier).
Nun möchte ich, wenn dieser Wert "NULL" ist, eben anzeigen lassen, dass kein Service Pack installiert ist.
Ich wüsste derzeit nicht, wie ich das lösen sollte.
Probiert hab ich scho:Dim compItem As Object Dim comp As Object compItem = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem") If IsDBNull(comp.CSDVersion) Then Return "Kein SP" Else Return comp.CSDVersion End If If comp.CSDVersion = Nothing Then Return "Kein SP" Else Return comp.CSDVersion End If If comp.CSDVersion = vbNullString Then Return "Kein SP" Else Return comp.CSDVersion End If If comp.CSDVersion = vbNull Then Return "Kein SP" Else Return comp.CSDVersion End If
Wie könnte man jetzt überprüfen, ob der Rückgabewert "NULL" ("DBNull" oder was auch immer) ist?
LG
Dominik
- Bearbeitet Dominik Klasen Samstag, 19. März 2011 22:15 Was vergessen
- Bearbeitet Robert Breitenhofer Montag, 21. März 2011 10:50 Formatierung
Antworten
-
Hallo Dominik,
Deine Abfrage kann so auch nicht funktionieren, da InstancesOf("Win32_OperatingSystem") eine Auflistung von Win32_OperatingSystem Instanzen zurückgibt. Im Normalfall hat diese Auflistung genau eine Instanz als Inhalt:
Dim lInstances = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem") For Each lInstance In lInstances If IsDBNull(lInstance.CSDVersion) Then Return "Kein SP" Else Return lInstance.CSDVersion End If Next
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 21. März 2011 10:42
- Als Antwort markiert Robert Breitenhofer Mittwoch, 23. März 2011 15:07
Alle Antworten
-
Hallo Dominik,
Deine Abfrage kann so auch nicht funktionieren, da InstancesOf("Win32_OperatingSystem") eine Auflistung von Win32_OperatingSystem Instanzen zurückgibt. Im Normalfall hat diese Auflistung genau eine Instanz als Inhalt:
Dim lInstances = GetObject("winmgmts:").InstancesOf("Win32_OperatingSystem") For Each lInstance In lInstances If IsDBNull(lInstance.CSDVersion) Then Return "Kein SP" Else Return lInstance.CSDVersion End If Next
Thorsten Dörfler
Microsoft MVP Visual Basic
vb-faq.de- Als Antwort vorgeschlagen Robert Breitenhofer Montag, 21. März 2011 10:42
- Als Antwort markiert Robert Breitenhofer Mittwoch, 23. März 2011 15:07
-
Hallo Dominik Klasen,
Mit WMI möchte ich einige Informationen zum Computer auslesen.
Hat Dir die Antwort geholfen?
Ohne WMI geht das in VB.NET wie folgt:
Grüße,
Robert