 |
|
 |
|
 |
1 - MISE A L'HEURE
|
|
|
|
PRÉSENTATION :
Ce source présente une fonction simple de mise à l'heure du PC à partir d'une
application Delphi. Elle utilise la fonction API SetSystemTime, l'heure passée en
paramètre de cette fonction doit être celle de Greenwich. Elle est donc corrigée à l'aide
de la fonction API GetTimeZoneInformation afin de déterminer le décalage horaire dû au fuseau,
et le décalage dû à la période été/hiver.
NOTES :
CODE :
Function MiseHeure(DateHeure:TDateTime):Boolean;
Var Infos :TSystemTime;
Zone :TTimeZoneInformation;
Retour :Integer;
Begin
// La mise à l'heure de windows est toujours effectuée en heure absolue.
// Il faut donc lire le décalage horaire par rapport à Greenwich puis
// tenir compte du décalage dû à l'heure d'été.
// Recherche des informations sur les décalages locaux
Result:=False;
Retour:=GetTimeZoneInformation(Zone);
// DateHeure étant en heure locale => ajout des décalages pour obtenir l'heure absolue
Case Retour Of
TIME_ZONE_ID_UNKNOWN : DateHeure:=DateHeure+( Zone.Bias /(24*60));
TIME_ZONE_ID_STANDARD : DateHeure:=DateHeure+((Zone.Bias+Zone.StandardBias)/(24*60));
TIME_ZONE_ID_DAYLIGHT : DateHeure:=DateHeure+((Zone.Bias+Zone.DaylightBias)/(24*60));
Else
Exit;
End;
// Ensuite, mise à l'heure du Pc
// Attention sous windows NT/2000/XP l'utilisateur doit avoir les droits
// suffisants pour que ça fonctionne !
Infos.wYear :=YearOf (DateHeure);
Infos.wMonth :=MonthOf (DateHeure);
Infos.wDayOfWeek :=DayOfWeek (DateHeure);
Infos.wDay :=DayOf (DateHeure);
Infos.wHour :=HourOf (DateHeure);
Infos.wMinute :=MinuteOf (DateHeure);
Infos.wSecond :=SecondOf (DateHeure);
Infos.wMilliseconds :=MillisecondOf (DateHeure);
Result:=SetSystemTime(Infos);
End;
|
| |
 |
|
 |
Les sources présentées sur cette page sont libres de droits,
et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation
constitue une oeuvre intellectuelle protégée par les droits d'auteurs. Copyright ©
2003 Bruno Guérangé. Aucune reproduction,
même partielle, ne peut être faite de ce site et de l'ensemble de son contenu :
textes, documents, images, etc sans l'autorisation expresse de l'auteur.
Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E
de dommages et intérêts.
Cette page est déposée à la
SACD.
|