Fonction permettant de savoir si l'ordi portable est sur batterie, ou sur secteu
backhanakin
Messages postés4Date d'inscriptionmercredi 19 février 2003StatutMembreDernière intervention 1 juillet 2003
-
23 avril 2003 à 12:37
dicky33bx
Messages postés14Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention13 juillet 2012
-
18 avril 2004 à 11:26
Voila je recherche une fonction qui pourrai me dire si l'ordi est branché a son socle (donc sur secteur)
ou s'il est sur batterie
merci
backhanakin.
dicky33bx
Messages postés14Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention13 juillet 20121 18 avril 2004 à 11:26
Salut backhanakin !
Voici comment faire pour savoir si le PC est sur batterie ou pas :
1. D'abord déclare la variable "PowerStatus" de type "SYSTEM_POWER_STATUS" comme suit :
SYSTEM_POWER_STATUS PowerStatus;
2. Ensuite, la fonction pour vérifier si sur secteur ou sur baterre et la charge de la
batterie :
GetSystemPowerStatus(&PowerStatus);
3. Puis tu regardes la valeur des différentes variables de PowerStatus :
* PowerStatus.ACLineStatus (indique si batterie sur secteur ou batterie)
=0 : Sur batterie
=1 : Sur secteur
=255 : Statut inconnu
* PowerStatus.BatteryFlag (indique si le niveau de la batterie est critique, bas, en cours
de chargement : c'est une association de valeur. Par exemple, si la batterie est basse et en
cours de chargement, BatteryFlag te renverras 10 [ 2 + 8] : Low et Charging)
=1 : Haut (High)
=2 : Bas (Low)
=4 : Critique (Critical)
=8 : En cours de chargement (Charging)
=128 : Aucun système de batterie (PC de bureau) (No system battery)
=255 : Statut inconnu (Unknown status)
* PowerStatus.BatteryLifePercent (indique le pourcentage de batterie de 0 à 100%)
* PowerStatus.BatteryLifeTime (indique le nombre de secondes restantes sur la batterie.
Perso sur mon PC, ça ne donne rien)
* PowerStatus.BatteryFullLifeTime (indique le nombre de secondes totales de batterie. Perso
sur mon PC, ça ne donne rien non plus)
* PowerStatus.Reserved1 : réservé, doit être égal à 0
En espérant que ceci puisse te dépanner.
------------------------------------------------------------
Pour dernière info, la doc du C++ :
The SYSTEM_POWER_STATUS structure contains information about the power status of the system.
Members
----------
* ACLineStatus : AC power status. This parameter can be one of the following values:
Value Meaning
0 Offline
1 Online
255 Unknown status.
All other values are reserved.
* BatteryFlag : Battery charge status. This parameter can be a combination of the following values:
Value Meaning
1 High
2 Low
4 Critical
8 Charging
128 No system battery
255 Unknown status
All other values are reserved.
* BatteryLifePercent : Percentage of full battery charge remaining. This member can be a value in the range 0 to 100, or 255 if status is unknown. All other values are reserved.
* Reserved1 : Reserved ; must be zero.
* BatteryLifeTime : Number of seconds of battery life remaining, or 0xFFFFFFFF if remaining seconds are unknown.
* BatteryFullLifeTime : Number of seconds of battery life when at full charge, or 0xFFFFFFFF if full lifetime is unknown.
Remarks
----------
Windows 95 is only capable of estimating BatteryFullTime based on calculations on BatteryLifeTime and BatteryLifePercent. Without smart battery subsystems, this value may not be accurate enough to be useful.