Voici un petit source en réponse à une question du forum. Cette fonction met à l'heure le PC à l'aide de l'API. Elle tient compte des décalage horaires et de l'heure d'été.
Source / Exemple :
// Fonction de mise à l'heure
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 absoluse.
// Il faut donc lire le décalage horaire par rapport à Greenwich puis
// tenir compte du déclalage du à l'heure d'été.
// Recherche des information 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 suffisant 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;
Conclusion :
Cette source et quelques autres sur :
http://nono40.developpez.com
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.