La fonction :
Code : Tout sélectionner
===============================================================================
;
; Function Name: _LaptopPowerMode()
; Description: Retourne le mode d'alimentation en cours
; Parameter(s): $PowerType - Par référence retourne le type d'alimentation.
; 1 = Batterie
; 2 = Alim secteur
; $PowerTimeRemain - Par référence retourne la durée restante en minute.
; Chaine vide si alimentation secteur.
; Requirement(s): NA
; Return Value(s): On Success - Return 1
; On Failure - Return 0
;
;===============================================================================
Func _LaptopPowerMode(ByRef $PowerType, ByRef $PowerTimeRemain)
Local $info, $Ret = 0
$objWMIService = ObjGet("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
$objBatt = $objWMIservice.ExecQuery ("Select * from Win32_Battery")
For $object In $objBatt
$PowerType = $object.BatteryStatus
$PowerTimeRemain = $object.EstimatedRunTime
Next
If $PowerType <> 2 And $PowerType <> "" Then $PowerType = 1
If $PowerType and $PowerTimeRemain Then $Ret = 1
If $PowerTimeRemain > 1200 Then $PowerTimeRemain = ""
Return $Ret
EndFunc
; Liste des éléments WMI utilisables : (http://msdn.microsoft.com/en-us/library/aa394074(VS.85).aspx) :
; Availability : $object.Availability
; BatteryRechargeTime : $object.BatteryRechargeTime
; BatteryStatus : $object.BatteryStatus
; Caption : $object.Caption
; Chemistry : $object.Chemistry
; ConfigManagerErrorCode : $object.ConfigManagerErrorCode
; ConfigManagerUserConfig : $object.ConfigManagerUserConfig
; CreationClassName : $object.CreationClassName
; Description : $object.Description
; DesignCapacity : $object.DesignCapacity
; DesignVoltage : $object.DesignVoltage
; DeviceID : $object.DeviceID
; ErrorCleared : $object.ErrorCleared
; ErrorDescription : $object.ErrorDescription
; EstimatedChargeRemaining : $object.EstimatedChargeRemaining
; EstimatedRunTime : $object.EstimatedRunTime
; ExpectedBatteryLife : $object.ExpectedBatteryLife
; ExpectedLife : $object.ExpectedLife
; FullChargeCapacity : $object.FullChargeCapacity
; InstallDate : $object.InstallDate
; LastErrorCode : $object.LastErrorCode
; MaxRechargeTime : $object.MaxRechargeTime
; Name : $object.Name
; PNPDeviceID : $object.PNPDeviceID
; PowerManagementCapabilities[] : $object.PowerManagementCapabilities
; PowerManagementSupported : $object.PowerManagementSupported
; SmartBatteryVersion : $object.SmartBatteryVersion
; PowerManagementSupported : $object.PowerManagementSupported
; Status : $object.Status
; StatusInfo : $object.StatusInfo
; SystemCreationClassName : $object.SystemCreationClassName
; SystemName : $object.SystemName
; TimeOnBattery : $object.TimeOnBattery
; TimeToFullCharge : $object.TimeToFullCharge
Code : Tout sélectionner
Dim $PowerType, $PowerTimeRemain
If _LaptopPowerMode($PowerType, $PowerTimeRemain) Then
If $PowerType = 2 Then
MsgBox(0, "Infos", "L'ordinateur est connecté sur l'alimentation secteur")
Else
MsgBox(0, "Infos", "L'ordinateur est sur batterie, et il reste " & $PowerTimeRemain & _
" minutes d'autonomie")
EndIf
Else
MsgBox(16, "Erreur", "Erreur dans la détection du mode d'alimentation")
EndIf