Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

DETECTER L'HYBERNATION SOUS NT\XP\2000 MAIS AUSSI L'ARRET DE FONCTIONNEMENT DE VOTRE PROG


Information sur la source

Catégorie :Exécution Niveau : Débutant Date de création : 30/03/2003 Date de mise à jour : 31/03/2003 21:00:12 Vu : 3 392

Note :
6,5 / 10 - par 2 personnes
6,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (17)
Ajouter un commentaire et/ou une note

Description

Mise a jour !!
Pu de bug si la gars laisse le pc en hybernation 1 jour et 1 secondes...
Pu de bug lors du passage de minuit
Detecte maintenant le changement d'heure ou de date...

Voila en fait ce bout de code etait destiner a detecter si l'ordi avait etait mis en hybernation durant l'execution du prog (Quel est l'interet, me direz vous ? frenchement j'en sais rien a vous de voir) et finalement rencontrant des dificultées a trouver comment faire j'ai utilisé une methode qui peut non seulement detecter la mise en hybernation du pc (apres son reveil) mais aussi l'interuption du programme (pause en fait) comme quand vous faites pause sous VB.....
Cela peut donc etre pratique, je sais pas pour quoi mais voila je met sa ici...

A oui j'oubliai il faut
Un label
Un timer (Interval = 1000)

Voila c'est tout
 

Source

  • Dim Adate As String, Atime As String, diff As Single
  • Private Sub Form_Load()
  • Atime = Time 'la date actuelle pour comparaison
  • Adate = Date 'la date actuelle pour comparaison
  • Caption = "NOW = " & Time & " - " & Atime & " - Diff " & diff 'juste pr voir
  • End Sub
  • Private Sub Timer1_Timer()
  • diff = DateDiff("s", Atime, Time) 'fait la difference entre les deux date
  • If diff <> 1 Then
  • If diff < 1 And diff <> 86399 Then diff = DateDiff("s", Time, Atime) 'fait la difference entre les deux date mais dans l'autre sans vu que l'ancienne heure est ici superieure a celle courante
  • Label1.Caption = "(Hybernation détéctée !! durée : " & diff & " secondes)" 'si l'ecart de ces deux heure est superieures a 1 (seconde) c'est quil y a forcement eu arret du prog pendant un certain temps...
  • ElseIf Time <> "00:00:00" And Atime <> "23:59:59" And Date <> Adate Then 'au cas ou le gars alume son pc a la meme heure quil la eteint (+1s) du coup le decalage est 1 mais la date a changée, hors sa sa se produit que a minuit !
  • Label1.Caption = "(Hybernation détéctée !! durée : " & DateDiff("s", Adate, Date) & " secondes)" 'si l'ecart de ces deux heure est superieures a 1 (seconde) c'est quil y a forcement eu arret du prog pendant un certain temps...
  • End If
  • Caption = "NOW = " & Time & " - " & Atime & " - Diff " & diff 'juste pr voir
  • Atime = Time 'l'heure actuelle pour la comparaison
  • Adate = Date 'la date actuelle pour comparaison
  • End Sub
Dim Adate As String, Atime As String, diff As Single
Private Sub Form_Load()
Atime = Time 'la date actuelle pour comparaison
Adate = Date 'la date actuelle pour comparaison
Caption = "NOW = " & Time & " - " & Atime & " - Diff " & diff 'juste pr voir
End Sub
Private Sub Timer1_Timer()
diff = DateDiff("s", Atime, Time) 'fait la difference entre les deux date
If diff <> 1 Then
    If diff < 1 And diff <> 86399 Then diff = DateDiff("s", Time, Atime) 'fait la difference entre les deux date mais dans l'autre sans vu que l'ancienne heure est ici superieure a celle courante
    Label1.Caption = "(Hybernation détéctée !! durée : " & diff & " secondes)" 'si l'ecart de ces deux heure est superieures a 1 (seconde) c'est quil y a forcement eu arret du prog pendant un certain temps...
ElseIf Time <> "00:00:00" And Atime <> "23:59:59" And Date <> Adate Then 'au cas ou le gars alume son pc a la meme heure quil la eteint (+1s) du coup le decalage est 1 mais la date a changée, hors sa sa se produit que a minuit !
    Label1.Caption = "(Hybernation détéctée !! durée : " & DateDiff("s", Adate, Date) & " secondes)" 'si l'ecart de ces deux heure est superieures a 1 (seconde) c'est quil y a forcement eu arret du prog pendant un certain temps...
End If
Caption = "NOW = " & Time & " - " & Atime & " - Diff " & diff   'juste pr voir
Atime = Time 'l'heure actuelle pour la comparaison
Adate = Date 'la date actuelle pour comparaison
End Sub

Conclusion

voila voila j'espere que se sera utile, autant que la mise en veille prolongée elle même ;-)

@++ tlm et bonne prog
 

Commentaires et avis

signaler à un administrateur
Commentaire de Rakarth2002 le 31/03/2003 08:05:46

Tu entends quoi exactement part "hybernation"? Mise en veille?

signaler à un administrateur
Commentaire de OverDarck le 31/03/2003 20:58:17

En fait l'hybernationc'est sur XP/NT/2k, c'est un system qui permet d'eteindre ton pc sans fermer tes programmes, et quand tu ralume ton pc tes programme repartent la ou tu les a laisser comme si de rien n'etait comme si t'avais jamais eteint le pc.... plutot coul surtout que le pc s'eteint en - de 6secondes chrono !!!!

signaler à un administrateur
Commentaire de PatriceVB le 01/04/2003 18:42:38 administrateur CS

en langage compréhensible, Hibernartion = Mise en veille :-)

signaler à un administrateur
Commentaire de OverDarck le 01/04/2003 19:59:05

Oui peut être mais pas vraiment vu que ca eteint completement le PC (quand meme !)

signaler à un administrateur
Commentaire de PatriceVB le 02/04/2003 07:35:46 administrateur CS

OverDrack&gt; la mise en veille n'est pas l'activation de l'économiseur d'écran, la mise en veille effectue un arrêt des disques durs et la mise en veille (extinction partielle) de l'écran.
Et ça n'éteint pas complétement le pc puisque l'on peut reprendre la main assez rapidement (donc le système gère les entrées/sorties, donc il est pas éteint :-) )
@+

signaler à un administrateur
Commentaire de OverDarck le 02/04/2003 09:48:40

avec l'hybernation si c'est sa que vous comprenez pas je pari que tu a krosoft 9.x ??
L'hybernation c'est le stokage de la RAM sur le disque dur et l'arret total du PC ! L'alimentation est coupée ! et quand tu ralume le PC la ram enregistrée est rechargé dans la RAM physique et tout repart comme s'il ne s'etait (pour les prog et pour l'ordi) passe qu'une seconde entre le moment ou tu la mis en hybernation et le moment ou tu la ralumé !

signaler à un administrateur
Commentaire de OverDarck le 02/04/2003 09:51:08

en fait mon code compte le temps pendant le quel le PC est eteint (en hybernation) et c'est tres different de la mise en veile qui elle permet de gere l'E/S et qui laisse tourner les progs...

signaler à un administrateur
Commentaire de Benj1105 le 02/04/2003 13:12:38

Heu... suis sous 2k et j' ai jamais vu ca... comment on se met en "hibernation" ? Est-ce que ca fait claquer les cartes reseaux ? (nan parce que la veille prolongée chez moi fait claquer les cartes reseaux)

@+

signaler à un administrateur
Commentaire de OverDarck le 03/04/2003 12:53:24

je comprend se que tu dit mais en fait 'Hybernation' c'est la meme chose que 'Mise en veille prolongée', si c'est bien de la meme chose que lon parle.
Sinon pour l'activé je croi que c'est dans le 2eme onglet des paramètres d'alimentation, qui sont accecibles depuis les proprietes du bureau.
Ensuite pour metre ton pc en hybernation (du moins sur XP) tu fait
Démarrer/arreter l'ordinateur et dans la fenetre qui apparit tu mintient majuscule enfoncé et a la place de mise en veil, il aparait 'mise en veille prolongée', tu clique et voila !!!

signaler à un administrateur
Commentaire de Warny le 18/04/2003 16:53:44

La mise en veille prolongée éteint les connexions distantes. L'un des interêts du programme peut-être de démarré un checkup du système pour voir s'il n'y pas lieu de relancer une connexion internet par exemple.
De temps en temps, sur certains tablets pc (au moins compaq) les périphériques USB restent en veille, on peut integrer leur relance à un tel check-list.
Pour a différence entre les deux dates tu peux essayer l'expression suivante (je ne suis pas sur que ça fonctionne):
Sub Timer1_Timer()
If Second(Now - Atime) &gt; 1 Or Day (Now - Atime) &lt;&gt; 0 Then
  '... il y a eu mise en veille
End If
ATime = Now

Bonne chance et bonne prog

signaler à un administrateur
Commentaire de fcapitaine le 07/03/2004 10:44:22

mais peut on rallumer le pc automatiquement lorsqu'il est en l'hybernation???

signaler à un administrateur
Commentaire de OverDarck le 07/03/2004 11:35:15

Bien sur que non ! c'est l'utilisateur qui decide et je vois pas l'interet !!

signaler à un administrateur
Commentaire de fcapitaine le 07/03/2004 11:45:24

L'intérêt serait de pouvoir allumer son PC à une heure précise et de l'éteindre à une autre!!!
perso j'aimerais trouver un prog qui le fasse cela me permettrait d'allumer mon pc toute la nuit et de le laisser éteint le jour (ou en veille)

signaler à un administrateur
Commentaire de OverDarck le 08/03/2004 10:16:28

lol c'est impossible néamoins ya des programme specialisé pour l'arret du pc selon des condition precise, ce progamme n'a aucun raport !
néamoins pour allumer ton pc a une heure precise rien de plus simple il faut aller dans le bios !
va dans power managment ou un men u similaire et la ya une option dans wake up events peut etre, pour allumer ton pc a une heure et jour precis si tu veut tout les nuit tu met en numeros du jour 0 ensuite tu fixe l'heure et tu active l'option qui doit s'apeler wake on time ou un truc comme sa, enfin cherche sa y est et sa marche tres bien, ensuite prend un prog pr leteindre a une autre heure !

signaler à un administrateur
Commentaire de true_picpic le 05/08/2004 13:12:50

bien sur que si c'est possible a distance sur des modem ou des cartes reseaux qui possédent l'option "wake on lan" ca permet d'allumer un pc a distance

signaler à un administrateur
Commentaire de OverDarck le 06/08/2004 11:00:41

Ouai c'est possible meme sans passer par le WOL, juste en réglan le timer dans le bios et ton pc s'allume  a l'heure que tu veut le jour que tu veut, mais le pb c'est que tu est obliger de le reconfigurer tout les jour, ou alors essai de metre comme numeros de jour 0 et comme sa ton PC s'allume a heure fixe tout les jours. Ensuite tu utilise un prog qui le met en veille prolongée rien de plus simple en vb par exemple, voila ++

signaler à un administrateur
Commentaire de gmni le 22/10/2008 13:36:46 10/10

Source originale!

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,234 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.