[Func] _LaptopPowerMode - Détection mode d'alimentation.

Partagez des fonctions et des UDF AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[Func] _LaptopPowerMode - Détection mode d'alimentation.

#1

Message par Tlem »

Voici une fonction très simplifié (elle mériterait d'être un peut plus complète) qui permet de savoir si un ordinateur portable est sur batterie ou secteur, ainsi que l'autonomie restante.

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
Un exemple de son utilisation :

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
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre