Ich hab zum Testen etwas geschrieben:
Als Ergebnis kam dann (auf nem Laptop natürlich) dies raus:
Spoiler anzeigen
Warum schmeißt WMI nur bei einigen Einträgen ne Exception und bei anderen nicht?
VB.NET-Quellcode
- Dim sb As New StringBuilder
- Try
- Dim mos As New ManagementObjectSearcher()
- mos.Query = New ObjectQuery("select * from Win32_Battery")
- sb.AppendLine("WMI-Akkutest")
- sb.AppendLine("Query: select * from Win32_Battery")
- sb.AppendLine("------------")
- Dim moc As ManagementObjectCollection = mos.Get()
- If moc.Count > 0 Then
- For Each mo As ManagementObject In moc
- For Each a In ar
- Try
- sb.AppendLine(a & ": " & mo.GetPropertyValue(a).ToString)
- Catch ex As Exception
- sb.AppendLine("Bei " & a & " hats geknallt, und zwar so: " & ex.Message)
- End Try
- Next
- Next
- Else
- sb.AppendLine("Query fehlgeschlagen. Besitzt dieser Computer einen eingelegten Akku? Besitzt er überhaupt einen Akku?")
- End If
- sb.AppendLine("Test 4 erfolgreich.")
- Catch ex As Exception
- sb.AppendLine("Test 4 fehlgeschlagen.")
- sb.AppendLine(ex.Message)
- End Try
- Using outfile As New StreamWriter("craptestic4.txt")
- outfile.Write(sb.ToString())
- End Using
- If File.Exists("craptestic4.txt") Then
- Process.Start("craptestic4.txt")
- End If
Als Ergebnis kam dann (auf nem Laptop natürlich) dies raus:
WMI-Akkutest
Query: select * from Win32_Battery
------------
Availability: 2
Bei BatteryRechargeTime hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
BatteryStatus: 2
Caption: Interner Akku
Chemistry: 6
Bei ConfigManagerErrorCode hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei ConfigManagerUserConfig hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
CreationClassName: Win32_Battery
Description: Interner Akku
Bei DesignCapacity hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
DesignVoltage: 12464
DeviceID: SMPNz4518RMDGDLAN123456789ABCDEbq20z4518RMDGDLAN123456789ABCDE
Bei ErrorCleared hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei ErrorDescription hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
EstimatedChargeRemaining: 98
EstimatedRunTime: 71582788
Bei ExpectedBatteryLife hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei ExpectedLife hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei FullChargeCapacity hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei InstallDate hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei LastErrorCode hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei MaxRechargeTime hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Name: bq20z4518RMDGDLAN123456789ABCDE
Bei PNPDeviceID hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
PowerManagementCapabilities: System.UInt16[]
PowerManagementSupported: False
Bei SmartBatteryVersion hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Status: OK
Bei StatusInfo hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
SystemCreationClassName: Win32_ComputerSystem
SystemName: ZBOOKPRO7
Bei TimeOnBattery hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Bei TimeToFullCharge hats geknallt, und zwar so: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
Test 4 erfolgreich.
Warum schmeißt WMI nur bei einigen Einträgen ne Exception und bei anderen nicht?