salut a tous.
je voudrais faire un prog qui eteint l'ordi a une heure donnée et qui reste ds le systray afin de pouvoir avoir acces au processus en permanence.
mes questions:
comment recuperer l'heure et la comparer a une heure fixée (sans mfc, car j'ai trouvé les ctime, mais c'est du mfc ca non?).
ensuite la commande pour eteindre l'ordi c'est quoi?
derniere question, javais pensé a un alog du genre
ouvrir un thread qui verifie l'heure toutes les minutes
lol cest pas pr un virus et si javais voulu faire un virus je ferais pas a une heure precise, je ferais inscrire au lancement de session ds hkcu et il eteindrais lordi direct :D
la cest pr un serveur.....il sallume le matin avec le bios, comme ca il peut aussi seteindre le soir :D
la commande pr eteindre l'ordi serait sympa.
ensuite, faut passer par un thread? et ds ce thread, vaut mieux mettre un timer ou verifier l'heure a chaque cycle? je pense qu'un timer serait mieux, mais bon....je demande, sait on jamais
Je vais accepter ces explications :P mais bon je pense également qu'un timer serait bien, après une heure tu dois exécuter la commende, shutdown dans dos (system( ) ) faut voir les paramètres à mettre,il y en a un qui sert a FORCER le shutdown, donc le shutdown sera direct et il n'y aura pas à confirmer) si tu ne trouve pas ce param tu peux simuler un appui de touche 'y' :D
Enfin bon il y en a des alternatives :)
Sinon tu peux aussi utiliser un thread qui prend l'heure au départ, et qui ensuite, vérifie chaque fois l'heure pour voir si on est pas arrivé à heure + 1 :)
merci beaucoup. sinon je voudrais pas que l'ordi s'eteigne au bout d'un certain temps mais a une heure donnée.....la solution m'aurais paru faire
createwindows (...)
createthread (...)
while (msg)
{
translate (msg);
dispatch (msg);
}
waitforsingleobject(...);
monthread ()
{
::sleep (30000);
if (currenttime==askedtime)
exitwindowsex (...);
}
(je pensais verifier toutes lmes 30 secondes pour etre sur d'avoir une verif par minute, paske il faut tenir compte du tps d'execution des instructions, paske si je fais toutes les 60 secondes, ya (peut-etre) le risque que je ne scanne pas le temps a la minute donnée avec les décalages que ca va créer...dites moi ce que vous en pensez. merci d'avance, et deja merci pour vos reponses. si vous avez une meilleure idée pour le timer, n'hesitez pas.
et pour les explications c'est pas une excuse bidon :D....de toutes facons je posterais le source quand j'aurais fini alors tu pourras vérifier :D
waitforsingleobject() suffira, pas besoin de Sleep() car le systeme te dira quand c'est bon, une journee tient dans un DWORD en millisecondes il me semble.
donc dans l'idée c'est bon.
donc il faudrait que je fasse comment ds ce cas? paske les threads, là....j'ai utilisé une seule fois.....donc bon....tu pourrais me dire vite fait un peu comme j'ai fait ds mon post d'au dessus comment il faudrait que je fasse stp? apres je me demerde avec msdn et compagnie....c'est juste que la avec juste un waitforsingleobject j'ai du mal a capter comment ca va marcher...merci d'avance
euh....tu peux etre un peu plus explicite stp? kan jarrete le thread? kan jarrete lordi? dedans oou dehors du thread? je lui passe koi a mon thread? juste l'heure a laquelle faut eteindre? dans un CTime? enfin bref, sur le schema j'ai lidée, mais sur la mise en pratique, ca me semble un peu complexe....
Ton thread n'a besoin d'aucun param s'il a juste a eteindre l'ordi.
Dans le thread:
1) GetSystemTimeAsFileTime, tu stockes result.
2) Remplit un SYTEMTIME pour heure de fin et de nouveau GetSystemTimeAsFileTime.
3) Le second - le 1er te donne la diff, non ? tu mets dans un DWORD sur waitforsingleobject et juste derriere extinction.
bah cest bien ce kil me semblait, au debut du post on ma dit ctime != mfc......
bon bref.....
pk deux fois getsystemtimeasfiletime? comme ca ds le premier j'ai date heure courante et ds le second jai heure demandée pour date courante? cest ca? si cest ca ok. ensuite je sors de mon thread et j'eteind en dehors de mon thread....ok....mais pb, mon thread principal gere une fenetre ds le systray...alors je met mon wait a quel niveau?
euh?
le wait attend pas jusqu'a ce qu'un fes fils du thread ds lequel il est placé soit mort? donc si je le met ds le thread directement, ca va faire koi?
en fait a priori j'ai une fenetre invisible ds le systray, et je veux verifier en meme tps ke le fenetre......alors je voit pas o mettre le wait, dites moi si cet algo serait bon svp ( ca serait sympa)
createwindow
createthread
for ()
{
dispatch/translatemessage
wait (null, null);
}
thread:
{
if (heurecourante=heureattendue)
exiiwindowsex
exitthread
return 0;
}
si cest pas bon, si vous pouviez me mettre un algo et mexpliquer, ca serait sympa. merci d'avance
oki merki, javais regardé sur petzold, mais javais pas trop trouvé, je vais fouiller richter.....merki...et l'extinction je la met ou ds l'histoire??????????????????a la sortie du thread? et vu ke le wait est ds le thread qu'est ce qui s'execute en meme tps? tout le reste du prog? donc je sais comment ou je met l'extinction?
et derniere question, cest koi un event? (au pire je vais fouiller richterpour levent.....si vraiment je soule.... :D)