cs_SooL
Messages postés2Date d'inscriptionmardi 11 novembre 2003StatutMembreDernière intervention29 mars 2006
-
17 oct. 2004 à 16:46
dicky33bx
Messages postés14Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention13 juillet 2012
-
2 avril 2005 à 16:48
:-p SooL :-p
salut a tous,
voila, je voudrai savoir s'il etait possible de créer un programme en C++ qui permet de controler l'etat d'une batterie de PC afin de gerer automatiquement la source de courrant: ce programme devrai choisir entre secteur ou batterie en fonction du pourcentage de la batterie.(ex: utiliser la batterie des que sont etat est supperieur a 5 %, meme si le secteur est branché !!)
cela devrai permettre de reconditionner une batterie.
merci d'avance pour l'aide que vous pourrez m'apporter.
dicky33bx
Messages postés14Date d'inscriptionjeudi 6 novembre 2003StatutMembreDernière intervention13 juillet 20121 2 avril 2005 à 16:48
Salut Sool !
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.