[R] Heure et point de restauration

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

[R] Heure et point de restauration

#1

Message par Amesamana »

Bonjour,

Me voici avec une nouvelle question :mrgreen:

Je ne comprend pas pourquoi je me retrouve avec un décalage de 2 heures en exécutant un point de restauration.
L'heure affichée correspond à l'heure solaire.

Code : Tout sélectionner

Func  _SystemRestoreControl ( $discription = True )
    $obj = ObjGet ( "winmgmts:{impersonationLevel = impersonate}!root/default:SystemRestore" )
    $obj.Enable ( "" )
    $obj.CreateRestorePoint ( $discription , 12 , 100 )
EndFunc

Code : Tout sélectionner

_SystemRestoreControl("Point de restauration avec ToolsDiag le " & $Now, 1)
Voici ce que cela me donne

Code : Tout sélectionner

Point de restauration avec ToolsDiag le 04/05/2013 09:16:12 Créé le : 05/04/2013 07:16:12
La date en premier indiqué par $now me donne la bonne heure mais ensuite vient se greffer l'heure décalée de 2 heures.
De plus : Crée le : n'est pas inclus dans le code, je suppose que c'est normal, le système doit le créer automatiquement, mais pourquoi un décalage deux heures ?

Si je fait avec cette ligne

Code : Tout sélectionner

_SystemRestoreControl("Point de restauration avec ToolsDiag le ")
J'obtiens un décale 07:17 au lieu de 09:17

Code : Tout sélectionner

Point de restauration avec ToolsDiag le Créé le : 05/04/2013 07:17:25
Ce qui me semble logique puisque je supprime $now.
Il y a t'il une solution pour éviter cette affichage supplémentaire ?

Merci :)
Modifié en dernier par Amesamana le mer. 08 mai 2013 16:17, modifié 1 fois.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#2

Message par jchd »

Heure locale - heure UTC = 2 heures (actuellement)
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..] Heure et point de restauration

#3

Message par Amesamana »

Oui heure solaire, mais que faire pour ne pas l'afficher ?
BoufTout
Niveau 1
Niveau 1
Messages : 12
Enregistré le : ven. 19 avr. 2013 00:07
Status : Hors ligne

Re: [..] Heure et point de restauration

#4

Message par BoufTout »

Je pense que tu peu simplement ajouté 2 a l'heur affiché ... (je suis débutant donc c'est juste une petite idée)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#5

Message par jchd »

Il te faut convertir tes dates-heures en temps local au moment considéré. La différence entre UTC et temps local est variable (heure d'été/hiver), donc on ne peut pas simplement ajouter ou retrancher une quantité fixe. De plus, l'heure locale varie (évidemment) avec l'endroit que l'on considère comme "local" pour l'action datée. Par exemple, si tu souhaites afficher l'heure "locale" (de Hong-Kong) à la quelle ton correspondant de Hong-Kong t'a envoyé cet e-mail.

L'heure "solaire" n'est plus employée car désynchronisée des standards en cours (ex.: "leap seconds").

On peut recourir à _Date_Time_EncodeFileTime() puis _Date_Time_FileTimeToLocalFileTime() puis _Date_Time_FileTimeToArray() puis formatage selon besoin. Il y a certainement mieux en tapant dans l'API Windows directement, mais la séquence proposée devrait être correcte (SGDMVP).
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
BoufTout
Niveau 1
Niveau 1
Messages : 12
Enregistré le : ven. 19 avr. 2013 00:07
Status : Hors ligne

Re: [..] Heure et point de restauration

#6

Message par BoufTout »

je sais que se n'est pas mon sijet, mais vue que j'apprend, je regarde tout ...

Mais voila on sait que : Temps légal en France (TL)= TU+2H en été, et à TU+1H en hiver.
Soit: TL = TU + m avec m= 2H en été et m=1H en hiver... (sources : http://userpages.irap.omp.eu/~jprieur/c ... ans_f.html)
Peut on crée un formule avec des conditions ... :

if $date < $date_hd & $date > $date_he Then
$heur_affich = $heur+1
else
$heur_affich = $heur+2
EndIf

Apres les (formules) restent optionnels, mais, l'idée de base pourrais fonctionner ?

Edite : je vien de lire pour la situation géographique, donc je doit mal me diriger ... (a moin que l'on crée un GUI en demandant le lieu ... non ?)
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#7

Message par jchd »

L'idée, quand on fait une fonction, est de la rendre la plus générale possible et la plus résistante en cas de changements extérieurs. Ainsi elle pourra être ré-employée comme une brique logicielle dans toutes les situations.

Ton ajustement n'est valable que pour quelques pays du fuseau de Paris, qui appliquent le même changement d'heure aux mêmes dates que la France, tant que les règles de changement d'heure ne changent pas elles-mêmes et aussi tant que les fuseaux horaires ne changent pas. Chacun de ces paramètres ont évolué de très nombreuses fois dans le temps et selon le lieu. Tout emploi de cette fonction en dehors de toutes ces conditions réunies est condamné à produire des erreurs difficiles à détecter après coup, d'où un coût de maintenance rédhibitoire.

Pour cette raison, utiliser des fonctions reposant sur des primitives implémentées au niveau du système est énormément plus robuste et utilisable en tout points du globe, tant que le système est correctement mis à jour. Cette dernière condition est bien moins restrictive que les précédentes.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Heure et point de restauration

#8

Message par mikell »

Un petit script à base de WMI qui compare Win32_LocalTime et Win32_UTCTime permet d'avoir l'info, avec toujours cette incertitude des comparaisons de dates, où on espère que la milliseconde où se fera la comparaison ne sera pas celle que choisira le PC pour passer à la minute ou à l'heure suivante...
► Afficher le texte
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#9

Message par jchd »

Certes Mikell, mais ton approche ne fournit que la différence LT à UTC au moment de la demande. S'il s'agit d'un timbre à date antérieur (ou postérieur d'ailleurs), il faut vérifier si l'on est dans le même horaire (été/hiver) et s'assurer qu'il y a bien un décalage d'horaire en vigueur au moment du timbre à date.
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Heure et point de restauration

#10

Message par mikell »

Oui, c'était juste pour répondre à une partie de la question sur le décalage horaire... pour une date passée ou future c'est une autre paire de manches et là impossible de se passer des fonctions Time tarabiscotées (c'est pas pour rien que l'include Date fait 130 Ko)
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..] Heure et point de restauration

#11

Message par Amesamana »

Bonjour à tous,

merci pour vos réponses :wink:

Code : Tout sélectionner

Global $Now = @MDAY & "/" & @MON & "/" & @YEAR & " " & @HOUR & ":" & @MIN & ":" & @SEC
_SystemRestoreControl("Point de restauration avec ToolsDiag le " & $Now, 1)
$Now me donne la bonne date et heure, ce que je ne comprends pas, c'est pourquoi vient de greffer l'heure UTC.
Je ne demande pas dans le script l'heure UTC.

Alors pourquoi cette heure s'affiche ?

Point de restauration avec ToolsDiag le 04/05/2013 09:16:12 Créé le : 05/04/2013 07:16:12
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#12

Message par jchd »

A quoi correspond ce que tu as mis en bleu ?

L'heure locale c'est ça :

Code : Tout sélectionner

#include <Date.au3>
ConsoleWrite(_NowCalc() & @TAB & _Now() & @LF)
 
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: [..] Heure et point de restauration

#13

Message par mikell »

Ce qu'il a mis en bleu, c'est ce que Windows rajoute automatiquement sans demander son avis :mrgreen:
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#14

Message par jchd »

Serait-ce à dire que _SystemRestoreControl exprime l'heure en UTC (ce qui est parfaitement logique) ?
En quoi est-ce surprenant ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..] Heure et point de restauration

#15

Message par Amesamana »

Surprenant surement pas :mrgreen:

Je voulais juste virer cette heure et afficher l'heure local.
mikell a écrit :Ce qu'il a mis en bleu, c'est ce que Windows rajoute automatiquement sans demander son avis :mrgreen:
Sais tu pourquoi Windows ajoute l'heure sur un script AutoIt, sans que cela lui soit demandé ?
De plus pourquoi il rajoute l'heure en UTC alors qu'il intègre bien la bonne heure (local) quand je vérifie dans la restauration système.
En utilisant le script avec cette ligne sans $Now
_SystemRestoreControl("Point de restauration avec ToolsDiag : ")
Affichage avec AutoIt :

Code : Tout sélectionner

 Point de restauration avec ToolsDiag :  Créé le : 05/05/2013 17:06:27

Affichage dans la restauration système :

Image

Heure local dans la restauration et UTC dans l'affichage de AutoIt ?

Ou alors comme tu dis jchd, c'est _SystemRestoreControl qui rajoute Créé le : 05/05/2013 17:06:27
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#16

Message par jchd »

Mais d'où provient donc cette fonction _SystemRestoreControl() ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..] Heure et point de restauration

#17

Message par Amesamana »

jchd a écrit :Mais d'où provient donc cette fonction _SystemRestoreControl() ?
Je ne sais plus mais comme _CreateSystemRestorePoint ou encore _SR_CreateRestorePoint qui m'affiche également l'heure en UTC

Donc je ne peux empêcher cette affichage d'heure ?
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2284
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: [..] Heure et point de restauration

#18

Message par jchd »

C'est pourtant là qu'il faut regarder. Cette fonction ne tombe pas toute seule de la planète Mars. Tu dois bien avoir un #include non standard où la pêcher !
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Amesamana
Niveau 5
Niveau 5
Messages : 108
Enregistré le : dim. 09 sept. 2012 16:37
Status : Hors ligne

Re: [..] Heure et point de restauration

#19

Message par Amesamana »

Non rien de spéciale, et ça ne doit pas venir de mars, il faut que j'inclue :

Code : Tout sélectionner

#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
 
Mis à part ces deux là ?

Si j'utilise les fonctions des liens que je t'ai donné c'est idem pourtant pas de #include non standard.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11824
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Heure et point de restauration

#20

Message par Tlem »

Si je ne m'abuse, le PC enregistre toujours les informations par rapport à l'heure UTC. C'est Windows qui interprète bêtement l'heure locale.
Si vous désactivez la fonctionnalité de l'heure d'été dans Windows, vous verrez que vous n'aurez plus de problème. :D
C'est le même problème avec certains logiciels de sauvegarde qui ne prenne pas en compte ce genre de considération ...

Pour résoudre votre problème, vous devez modifier l'UDF pour qu'il prenne en compte l'heure en fonction du fuseau horaire et si prise en charge de l'heure d'été, car la plupart des UDFs que vous trouverez sur le forum US, travaillent en UTF et n'ont que faire de l'heure d'été. ^^
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre