leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 2010
-
15 sept. 2004 à 10:15
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 2010
-
18 sept. 2004 à 15:27
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
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 15 sept. 2004 à 13:44
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
D1m3x
Messages postés402Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention21 juillet 20051 15 sept. 2004 à 13:50
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 :)
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 16 sept. 2004 à 10:43
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
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 sept. 2004 à 11:03
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.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 16 sept. 2004 à 11:17
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
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 16 sept. 2004 à 11:55
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....
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 16 sept. 2004 à 12:06
Que vient faire CTime et MFC ici ???
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.
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 16 sept. 2004 à 12:16
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?
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 17 sept. 2004 à 13:05
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
leprov
Messages postés1160Date d'inscriptionvendredi 23 juillet 2004StatutMembreDernière intervention21 octobre 201017 17 sept. 2004 à 13:34
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)