Page 1 sur 1

[..] Detecter la fermeture ou l'ouv. de l'ecran d'u portable

Posté : mer. 30 mars 2011 01:03
par xeno
j'aimerais pouvoir lancer des actions quand je referme l'ecran d'un ordinateur portable
et l'inverse aussi, quand j'ouvre l'écran.

je précise que l'ordinateur est utilisé avec un ecran déporté, et ne se met donc pas en veille lorsque l'ecran est fermé.

Je ne vois pas trop comment faire, pour détecter cet état, des idées ?

Merci

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : mer. 30 mars 2011 02:05
par Tlem

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : mer. 30 mars 2011 18:57
par xeno
a priori GUID_LIDSWITCH_STATE_CHANGE & GUID_LIDCLOSE_ACTION

permettrait de connaitre l'état, mais du coup est ce qu'il est possible de faire la connexion avec autoit ?

http://social.msdn.microsoft.com/Forums ... 6b57211b3a

voici d'autres liens de ce que j'ai trouvé, que je met au cas où quelqu'un y verrait une solution
il y a aussi >> RegisterPowerSettingNotification <<>> WM_POWERBROADCAST <<>> PBT_POWERSETTINGCHANGE <<

http://msdn.microsoft.com/en-us/library/aa372723.aspx

apparement il y aurait une solution sous autohotkey içi,
http://www.autohotkey.com/forum/topic67426.html

http://www.autohotkey.com/forum/topic18472.html
http://msdn.microsoft.com/en-us/library/aa373196.aspx

je nage en ce moment :mrgreen:

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : dim. 03 avr. 2011 17:45
par sylvanie
Yaarrrrghhhh (ie : Cette problèmatique très intéressante m'a donné du fil à retordre, et c'est pénible à tester)

J'ai réussi à stimuler la bête mais pas avec l'évènement GUID_LIDSWITCH_STATE_CHANGE, d'ailleurs je n'ai pas vu le lien avec RegisterPowerSettingNotification sur le forum MSDN :?:
J'ai donc enregistrer l'évènement avec GUID_POWERSCHEME_PERSONALITY, en m'inpirant d'un portage en C++.

Au début je pensait que le handle avec lequel on s'enregistre pouvait être un pointeur vers une fonction callback, mais ça ne marche pas. C'est alors que j'ai bien lu et vu qu'il s'agit d'un handle sur une GUI.
Donc on créé une GUI (dont on récupère le handle), on l'enregistre à RegisterPowerSettingNotification , ce qui fait qu'on peut obtenir les message de notification de GUID_POWERSCHEME_PERSONALITY via un broadcast par le message WM_POWERBROADCAST (=0x218). Et pour écouter ce broadcast on utilise GUIRegisterMsg en passant en argument le nom d'une fonction à nous (et c'est donc la le code que tu désires exécuter)
Dans mon exple je me suis contenter de faire du "print" console + fichier.
Et donc en fermant et réouvrant mon clap (modulo une mise en veille), j'ai constaté 3 appels.
En espérant que ça puisse aider :

► Afficher le texte

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : lun. 04 avr. 2011 23:07
par xeno
je te remercie de ton implication,

j'ai testé et la seul action que j'ai, c'est quand je coupe l'alim et la rebranche.

sous quel version de windows as tu fais tes test ?, moi c'est sous seven x86

j'essaye de décortiqué ton code pour mieux comprendre, mais je m'arrache les cheveux :?

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : mar. 05 avr. 2011 09:49
par sylvanie
Bonjour,
je l'ai fait sur un Seven 64 bits, code compilé en 32 bits, cependant, je pense que ça marche chez moi parce que mon PC se met en hibernation lors de la fermeture du clap, contrairement à la problématique exposée.

Il faudrait peut être essayer avec d'autres options que GUID_POWERSCHEME_PERSONALITY, de mémoire je croie qu'il y a 2 autres valeurs possibles. Là je commence à me lancer plutôt dans le petit chimiste ...

Bon courage

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : mar. 05 avr. 2011 21:08
par xeno
sylvanie a écrit : Il faudrait peut être essayer avec d'autres options que GUID_POWERSCHEME_PERSONALITY, de mémoire je croie qu'il y a 2 autres valeurs possibles. Là je commence à me lancer plutôt dans le petit chimiste ...
c'est ce que j'ai commencé a essayé de faire, je m'y prend surement mal pour l'instant, mais bon... il faut bien essayer :wink:

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : mer. 06 avr. 2011 10:31
par sylvanie
Je n'ai plus vraiment l'opportunité de tester (mon portable est en mode "partage" avec Madame en mode 70%-30%) donc je ne vais pas pouvoir y replonger avant qq tps ... (je suis le 30% :mrgreen: )
Sinon ça donne quoi avec les deux autres variables ?

Re: [..] Detecter la fermeture ou l'ouv. de l'ecran d'u port

Posté : dim. 10 avr. 2011 21:19
par xeno
j'ai essayer avec d'autres variables, mais sans grand succès :roll:

Comme je l'ai déjà dis je ne maitrise pas encore cette histoire de dll, mais c'est déjà mieux que cela à été :P

a tout hasard je met içi ce que j'ai bidouillé à partir de ton code, si cela peut inspirer du monde..
► Afficher le texte