Empêcher le changement de l'horloge par l'utilisateur

[Résolu]
Signaler
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008
-
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008
-
Bonsoir,

j'ai une application qui utilise le temps comme unite de mesure. En particulier je prends l'heure a laquelle mon appli est lancee, et ponctuellement j'enregistre des evenements precis de facon a controler que des process s'effectuent en un temps imparti.

Je sais que je peux utiliser le Timer pour cela, mais ma question va plus loin : Est il possible d'empecher une modification de l'horloge de l'ordinateur ? Timer peut il prendre en charge cet evenement ou existe t -il un autre moyen ? Comme par exemple une synchronisation en temps reel de l'heure via un site internet ?

Merci de m'eclairer sur les outils, je ne demande pas de code tout pondu evidemment.

A bientot
Emmanuel

_____________________
No problems, only soluces

7 réponses

Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Travailler avec les ticks est plus adapté à sa demande !.
Je conseillerais quand même d'utiliser la classe StopWatch()
Messages postés
2375
Date d'inscription
jeudi 12 juillet 2001
Statut
Modérateur
Dernière intervention
15 décembre 2018
22
Bonsoir,
Tu peux utiliser un "chrono" pour faire cela et intérroger régulièrement sa valeur. (classe System.Diagnostics.Stopwatch)
http://www.vbfrance.com/codes/NET2-MESURER-TEMPS-EXECUTION-METHODE_33782.aspx
Il y a de nombreuses "façon de faire", comme également vérouiller la modification des paramètre de date/heure en passant par le registre.

++
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

oui c'est possible, ce de plusieurs manières...

timer => réglé à une seconde, si la seconde d'après il n'est pas une seconde de plus qu'avant (datetime), c'est que l'heure a été changée manuellement......
problème : modif puis remise du temps (en moins d'un tick)
problème : fonctionnement lors du changement d'horaire selon fuseau / solstice

problème : réglage manuel quelconque de l'heure système

problème : le timer de VB n'est pas très précis.... (du moins celui de VB6, peut-être que c'est corrigé en dotnet...)

heure synchro => possible, en se basant alors sur l'heure atomique. pour çà voir le protocole NTP

problème : pas de connexion = pas de référence


problème : trop de vérifications (intervalle) ban IP plus de référence

problème : parefeu (refus) = pas de référence


subclassing => récupérer l'évènement lors de la modification system

problème : aucun, c'est le moyen le plus sûr


dans ce cas tu travailles avec le timer, que tu relances lors de l'évènement de changement de date system

cependant si tu fais une action à intervalle régulier, ce n'est pas forcément à heure régulière...
dans quel cas il faut juste ne pas se fixer à la date mais uniquement aux TICKs écoulés. dans quel cas un timer suffit

++


Prenez un instant pour répondre à [sujet-SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
26
Bonsoir,

et pourquoi ne pas insérer un contrôle sysinfo et utiliser son évènement TimeChanged ?
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008

Bonsoir,
merci pour vos reponses.
stopwatch me parait interessant, je vais regarder cela, merci de vos premieres reponses.
J'enverrais l'acceptation si ok !
A+
Manu

_____________________
No problems, only soluces
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
80
Salut
Timer : attention, ce n'est pas un monstre de précision --> Compare 1 voire 2 secondes de décalage possible sans que cela puisse être incriminable au changement d'heure.
Sinon, si tu es à l'aise avec le SubClassing, il existe l'évènement WM_TIMECHANGE qui te préviendra d'une vraie modif, qui pourra aussi être dûe à la mise à l'heure par le gestionnaire d'horloge (si option installée dans l'option "Temps internet" de l'horloge), mais en général, cela ne corrige que de quelques secondes maxi, sinon cela voudrait dire que l'horloge du PC serait infidèle - impensable à quelques millisecondes près par 24 heures.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Messages postés
43
Date d'inscription
samedi 20 septembre 2008
Statut
Membre
Dernière intervention
1 octobre 2008

Merci Willi, Stopwatch correspond exactement a mes besoins.

Merci aux autres pour leurs conseils, qui m'aideront de toutes facons pour d'autres applications.

_____________________
No problems, only soluces