|
|
fr.comp.os.ms-windows.programmation Discussion complète de l'article : Connaitre l'etat de l'ordinateur
|
Article :
28861
Date :
02-04-2008
From :
sophie.cape
Sujet :
Connaitre l'etat de l'ordinateur
Bonjour
Je programme en C++ et je voudrais savoir s'il est possible de savoir si
windows est allumé, en veille, en veille prolongée, arreté.. pour un petit
programme sur l'electricité dépencée par un ordinateur.
J'attend vos réponses
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28862
Date :
02-04-2008
From :
Jean-Claude BELLAMY
Sujet :
Re: Connaitre l'etat de l'ordinateur
"sophie.cape" a écrit dans le message de
news:fsvr1f$pjq$1@aioe.org...
> Bonjour
> Je programme en C++ et je voudrais savoir s'il est possible de savoir si
> windows est allumé, en veille, en veille prolongée, arreté.. pour un petit
> programme sur l'electricité dépencée par un ordinateur.
Depuis un autre ordinateur je présume ?
Tout ce que tu pourras savoir, c'est si l'ordinateur concerné est acessible
depuis le réseau ou non, et rien d'autre!
Quand il est en veille prolongée, il est totalement arrêté par essence même
de la veille prolongée, donc aucune distinction n'est possible.
Il y a bien le fichier d'hibernation (hiberfil.sys), mais pour tester sa
présence et état il faudrait accéder aux ressources de l'ordinateur, donc il
faudrait ... qu'il soit démarré !!!
De toute façon, au niveau consommation électrique, arrêt et veille
prolongée, c'est STRICTEMENT la même chose.
En ce qui concerne la veille simple, c'est un peu plus complexe car dans cet
état l'ordinateur est toujours sous tension (mais en puissance réduite).
L'ordinateur peut redémarrer sur une action de la souris, du modem, de la
carte réseau (si elle est du type "Wake up LAN") ou encore du bouton de
marche.
Ici il faudra donc passer par la carte réseau, en lui envoyant le "paquet
magique" de réveil (trame contenant les octets FF FF FF FF FF FF suivis de
de l'adresse MAC répétée 16 fois, et éventuellement un mot de passe de 4 ou
6 octets).
Donc pour tester l'état "veille" ou "allumé", on pourra procéder ainsi :
- accès à une resource réseau dont on sûr de l'existence,
p.ex. le fichier "c:\boot.ini"
-> si l'accès réussit, c'est que l'ordinateur est actif sur le réseau.
-> si l'accès échoue, on envoie le paquet magique,
puis on reteste l'accès à la ressource
-> si l'accès réussit, c'est que l'ordinateur était en veille
et qu'à présent il est actif sur le réseau.
-> si l'accès échoue, cela veut dire uniquement que
l'ordinateur n'est pas visible depuis le réseau.
- si au final l'accès a échoué, on peut RIEN conclure.
En effet, l'ordinateur peut très bien être actif, mais avec une carte réseau
HS, ou avec une configuration réseau qui interdise toute transaction, (pas
de réponse aux "Ping", partages désactivés, ...)
--
May the Force be with You!
La Connaissance s'accroît quand on la partage
----------------------------------------------------------
Jean-Claude BELLAMY [MVP] - http://www.bellamyjc.org
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28863
Date :
02-04-2008
From :
sophie.cape
Sujet :
Re: Connaitre l'etat de l'ordinateur
C'est seulement un programme concu pour un ordinatuer seul qui démarre au
démarrage de windows pour compter le temps qui s'est écoulé depuis son
démarrage.
Le probleme est que si l'utilisateur met son ordinateur en veille prolongée,
l'ordinateur ne consomme rien mais le programme ne detecte rien (car windows
s'arret pas).
On pourais alors alors essayer d'acceder a une ressource pour savoir si
l'ordinateur est allumé ou en veille prolongée, mais s'il n'accede pas a la
ressource,l'ordinateur peut etre seulement en veille, et pas en veille
prolongée, ce qui change pour mesurer la consommation d'electricité.
N'existrait pas une fonction de l'api windows qui permetrait de savoir
directement dans quel etat est l'ordinateur?
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28864
Date :
02-04-2008
From :
Solanar
Sujet :
Re: Connaitre l'etat de l'ordinateur
Maître "sophie.cape" nous raconte
> C'est seulement un programme concu pour un ordinatuer seul qui
> démarre au démarrage de windows pour compter le temps qui s'est
> écoulé depuis son démarrage.
> Le probleme est que si l'utilisateur met son ordinateur en veille
> prolongée, l'ordinateur ne consomme rien mais le programme ne detecte
> rien (car windows s'arret pas).
> On pourais alors alors essayer d'acceder a une ressource pour savoir
> si l'ordinateur est allumé ou en veille prolongée, mais s'il n'accede
> pas a la ressource,l'ordinateur peut etre seulement en veille, et pas
> en veille prolongée, ce qui change pour mesurer la consommation
> d'electricité.
> N'existrait pas une fonction de l'api windows qui permetrait de savoir
> directement dans quel etat est l'ordinateur?
Si c'est pour la conso je mettrai plutot un compteur sur la prise...
--
Solanar
"Etre libre, c'est n'avoir rien à perdre"
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28865
Date :
02-04-2008
From :
Christian ASTOR
Sujet :
Re: Connaitre l'etat de l'ordinateur
On 2 avr, 16:15, "sophie.cape" wrote:
> Le probleme est que si l'utilisateur met son ordinateur en veille prolong=
=E9e,
> l'ordinateur ne consomme rien mais le programme ne detecte rien (car windo=
ws
> s'arret pas).
> On pourais alors alors essayer d'acceder a une ressource pour savoir si
> l'ordinateur est allum=E9 ou en veille prolong=E9e, mais s'il n'accede pas=
a la
> ressource,l'ordinateur peut etre seulement en veille, et pas en veille
> prolong=E9e, ce qui change pour mesurer la consommation d'electricit=E9.
>
> N'existrait pas une fonction de l'api windows qui permetrait de savoir
> directement dans quel etat est l'ordinateur?
Windows envoie WM_POWERBROADCAST
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28866
Date :
02-04-2008
From :
Antoine ROUCHET
Sujet :
Re: Connaitre l'etat de l'ordinateur
"sophie.cape" wrote in message
news:ft00tc$dv6$1@aioe.org...
> C'est seulement un programme concu pour un ordinatuer seul qui démarre au
> démarrage de windows pour compter le temps qui s'est écoulé depuis son
> démarrage.
> Le probleme est que si l'utilisateur met son ordinateur en veille
> prolongée, l'ordinateur ne consomme rien mais le programme ne detecte rien
> (car windows s'arret pas).
> On pourais alors alors essayer d'acceder a une ressource pour savoir si
> l'ordinateur est allumé ou en veille prolongée, mais s'il n'accede pas a
> la ressource,l'ordinateur peut etre seulement en veille, et pas en veille
> prolongée, ce qui change pour mesurer la consommation d'electricité.
>
> N'existrait pas une fonction de l'api windows qui permetrait de savoir
> directement dans quel etat est l'ordinateur?
Bonjour,
Tu peux faire une simple mesure périodique de l'heure, genre toutes les x
secondes. Si entre deux mesures l'écart est supérieur à mettons x*2
secondes, alors tu peux partir du principe que l'ordinateur est passé par
une veille prolongée.
Antoine.
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28875
Date :
03-04-2008
From :
sophie.cape
Sujet :
Re: Connaitre l'etat de l'ordinateur
Le probleme c'est que si on constate un écart, on ne sait pas si
l'ordinateur est en veille prolongée ou en veille simple.
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28876
Date :
03-04-2008
From :
Sylvain SF
Sujet :
Re: Connaitre l'etat de l'ordinateur
sophie.cape wrote on 03/04/2008 21:50:
> Le probleme c'est que si on constate un écart, on ne sait pas si
> l'ordinateur est en veille prolongée ou en veille simple.
et c'est grave ?
je veux dire d'affirmer sans chercher !? car il est quasi-évident
que l'OS envoie une notification différente dans les 2 cas.
au delà êtes-vous sur d'avoir analyser judicieusement le problème?
votre exposé commençant par "comment faire tourner un programme
sur un PC *éteint* laisse quelque doutes ...
si laborieusement vous arrivez à mesurer ce qui est déjà enregistré
sur le log système (ie un event à chaque démarrage, un à chaque
arrêt, un à chaque mise en veille, ...) ne craigniez-vous pas de
découvrir ce que vous savez sûrement déjà (que le PC est resté en
marche toute la nuit tel jour, ou qu'il est utilisé x heures tel
autre jour) ? si pour souci est énergétique, mesurez le temps de
marche ne vous donnera que de très long - ou au prix de grosses
approximations - sa dépense énergétique, un watt-mêtre ou un
compteur de consommation sur sa prise serait bien plus
instructif.
Sylvain.
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28877
Date :
04-04-2008
From :
Thierry
Sujet :
Re: Connaitre l'etat de l'ordinateur
"sophie.cape" a écrit dans le message de news:
ft38ue$7qm$1@aioe.org...
> Le probleme c'est que si on constate un écart, on ne sait pas si
> l'ordinateur est en veille prolongée ou en veille simple.
*etait*
WM_POWERBROADCAST doit satisfaire tes besoins.
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
Article :
28878
Date :
04-04-2008
From :
Thierry
Sujet :
Re: Connaitre l'etat de l'ordinateur
"Thierry" a écrit dans le message de news:
47f5e350$0$27963$426a74cc@news.free.fr...
> "sophie.cape" a écrit dans le message de news:
> ft38ue$7qm$1@aioe.org...
>
>> Le probleme c'est que si on constate un écart, on ne sait pas si
>> l'ordinateur est en veille prolongée ou en veille simple.
>
> *etait*
>
> WM_POWERBROADCAST doit satisfaire tes besoins.
+ WM_ENDSESSION
Posez vos questions, réponses et remarques sur
les forums de FrameIP
|
|
|