Page 1 sur 1

Interception mise en veille ecran

Publié : jeu. 05/juil./2007 13:55
par Kwai chang caine
Bonjour à tous

Je voudrais savoir, si il est possible d'intercepter la mise en veille d'un portable.

Pour par exemple mettre un message attention mise en veille dans .....X secondes.

Comme ça on est pas obligé de se jeter sur le portable des que l'ecran s'eteint, car quand il est sous batteries a part t'exploser les phalanges des que on voit l'ecran noir et encore c'est trop tard, il faut retaper le code d'acces et relancer le portable. :?

PS: j'ai pas pu chercher sur le forum US car je ne sais pas comment ça s'appelle.

Merci
Bonne journée

Publié : jeu. 05/juil./2007 14:32
par gnozal
Je n'ai pas de portable, mais si c'est la mise en veille pour batterie faible dont tu parles, j'imagine que la fonction GetSystemPowerStatus_() peut t' aider [ http://msdn2.microsoft.com/en-us/library/aa372693.aspx ], surtout le membre 'BatteryFlag' de la structure 'SYSTEM_POWER_STATUS' retournée par la fonction [ http://msdn2.microsoft.com/en-us/library/aa373232.aspx ].

Code : Tout sélectionner

GetSystemPowerStatus

Retrieves the power status of the system. The status indicates whether the system is running on AC or DC power, whether the battery is currently charging, and how much battery life remains.
BOOL WINAPI GetSystemPowerStatus(
  LPSYSTEM_POWER_STATUS lpSystemPowerStatus
);
Parameters
lpSystemPowerStatus : a pointer to a SYSTEM_POWER_STATUS structure that receives status information.

Code : Tout sélectionner

SYSTEM_POWER_STATUS
Contains information about the power status of the system.
typedef struct _SYSTEM_POWER_STATUS {
  BYTE ACLineStatus;
  BYTE BatteryFlag;
  BYTE BatteryLifePercent;
  BYTE Reserved1;
  DWORD BatteryLifeTime;
  DWORD BatteryFullLifeTime;
} SYSTEM_POWER_STATUS, 
 *LPSYSTEM_POWER_STATUS;

Code : Tout sélectionner

BatteryFlag
The battery charge status. This member can contain one or more of the following flags. Value	Meaning
1	High—the battery capacity is at more than 66 percent
2	Low—the battery capacity is at less than 33 percent
4	Critical—the battery capacity is at less than five percent
8	Charging
128	No system battery
255	Unknown status—unable to read the battery flag information
The value is zero if the battery is not being charged and the battery capacity is between low and high.
Sinon, pour la mise en veille de l'écran au bout d'un certain temps d'inactivité, aucune idée comment la détecter

Publié : jeu. 05/juil./2007 14:44
par wolfjeremy
Houla gnozal il est chaud boulette pour l'API mdr :lol:
Merci ça va me servir aussi.

Publié : jeu. 05/juil./2007 15:04
par Kwai chang caine
Merci GNOZAL de ta reponse rapide 8)

Mais la reponse est tellement compliquée que j'ai oublié la question :lol:

Deja, je pensais que c'etait le meme evenement qui faisait mettre en veille le portable quand il est en batterie plus vite que quand il est sur le secteur.

Mais en fait, ta reponse me rapelle que ces parametres sont reglables.
Donc au niveau de la mise en veille ce serait d'apres toi une autre API.

En tout cas celle la m'interesse aussi, je pourrais la joindre dans mon petit exe.
Mais pour la joindre, il faudrait que je la "comprende" et je l'ai pas "comprendue".

N'oublie pas je suis le "truffegrammeur" du site :D et à ce titre je merite un peu plus de respect :lol: :lol:

Non sans rire, je met quoi au plus simple dans le panneau jaune ou y'a des numeros de lignes a gauche ---->

Image

:lol: :lol:

Encore merci

Publié : jeu. 05/juil./2007 15:18
par gnozal
Pas testé ...

Code : Tout sélectionner

If GetSystemPowerStatus_(PowerStatus.SYSTEM_POWER_STATUS)
  Debug PowerStatus\BatteryFlag
  ; BatteryFlag, signification des bits
  ; 1	Charge élevée
  ; 2	Charge basse
  ; 4	Charge critique
  ; 8	En train de charger
  ; 128	Pas de batterie
  ; 255	Statut inconnu
  Debug PowerStatus\BatteryLifePercent
  ; BatteryLifePercent : % de charge restante [$FF si inconnu]
  Debug PowerStatus\BatteryLifeTime
  ; BatteryLifeTime : nombre de secondes restantes [$FFFFFFFF si inconnu]
  Debug PowerStatus\BatteryFullLifeTime
  ; BatteryFullLifeTime : nombre de secondes d'autonomie [$FFFFFFFF si inconnu]
Else
  Debug "GetSystemPowerStatus a foiré"
EndIf

Publié : jeu. 05/juil./2007 15:37
par Kwai chang caine
Tu es un ange .... 8) , mais je pense que je ne t'apprend rien sur toi meme. :wink:

Je te remercie beaucoup

Et pour la mise en veille auto, quel mots je doit chercher chez les gens de l'autre coté de la mer ?????

Publié : jeu. 05/juil./2007 15:40
par Kwai chang caine
Debug "GetSystemPowerStatus a foiré"
Cool !!!!!!
ça va plaire a ma patronne ..... :lol:

J'ai pas de portable sous la main aujourd'hui mais sur le pc salon ça me marque que pas de batterie et tout est a donf !!!
Donc ça a l'air de marcher :D

Mille mercis

Publié : jeu. 05/juil./2007 15:44
par gnozal
Kwai chang caine a écrit :Et pour la mise en veille auto, quel mots je doit chercher chez les gens de l'autre coté de la mer ?????
Notebook Sleep Mode ?

Publié : jeu. 05/juil./2007 16:30
par Ollivier
@gnozal:Violent cte fonction. 8O
merci :D

Publié : jeu. 05/juil./2007 16:49
par wolfjeremy
Ollivier a écrit :@gnozal:Violent cte fonction. 8O
merci :D
LOL la fonction violente, rien qu'en la voyant on se ramasse une patate dans la fasse :lol:

Publié : jeu. 05/juil./2007 17:23
par Ollivier
Ben ouais! D'où elle vient?
XLC

Publié : ven. 06/juil./2007 4:54
par Kwai chang caine
@Gnozal
Notebook Sleep Mode ?
Merci pour la traduction :wink:
Je vais tenter de chercher
Ben ouais! D'où elle vient?
Gnozal c'est aussi un magicien, tout comme mon ami FLYPE :D