Bonjours , je voudrais recuperer le niveau des batteries d'un ordi portable (2 batterie)
J'ai fait un prog similaire en AutoIT et cela fonctionne tres bien
Mais en visual basic quand j essai de lire j ai une erreur

Version Autoit
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
 
Func Batt()
    Local $s_Text = ''
    Dim $Obj_WMIService = ObjGet('winmgmts:\\' & @ComputerName & '\root\cimv2');
    If (IsObj($Obj_WMIService)) And (Not @error) Then
        Dim $Col_Items = $Obj_WMIService.ExecQuery("select * from CIM_Battery") 
        Local $Obj_Item
        For $Obj_Item In $Col_Items
				$s_Text &= $Obj_Item.Name 
			    $s_Text &= " : " & $Obj_Item.EstimatedChargeRemaining 
				$s_Text &=":" & @CRLF 
		Next
		Return String($s_Text)
    Else
        Return 0
    EndIf
EndFunc
Version VB.NET

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
 
       Public Function Batt() As String
            Dim Txt As String = ""
            Try
                Dim searcher As ManagementObjectSearcher = New ManagementObjectSearcher("select * from CIM_Battery")
                For Each WMI_Info As ManagementObject In searcher.Get()
                    Txt &= WMI_Info("Name").ToString() + vbNewLine
 
                Next WMI_Info
                Return Txt
 
            Catch ex As Exception
 
                Return "Erreur lecture Batt " + ex.Message
            End Try
        End Function
Pour infos j'ai coder la meme fonction pour le type d os et ca fonctionne sans probleme