Obtient les paramètres du fuseau horaire actuel
#include <Date.au3>
_Date_Time_GetTimeZoneInformation ( )
Dans la structure $tagSYSTEMTIME, les membres wHour et wMinute représentent le changement d'heure, le membre wDayOfWeek du jour de la semaine correspondant, et le membre wDay indiquant l'occurence du jour de la semaine dans le mois (1 à 5, où 5 indique l'occurrence finale au cours du mois si ce jour de la semaine ne répète pas 5 fois).
En utilisant cette notation, indiquez 02:00 pour le premier dimanche d'avril, comme suit: wHour = 2, wMonth = 4, wDayOfWeek = 0, wDay = 1. Indiquez 02:00 pour le dernier jeudi d'octobre comme suit: wHour = 2, wMonth = 10, wDayOfWeek = 4, wDay = 5.
$tagSYSTEMTIME, _Date_Time_SetTimeZoneInformation
;~ #RequireAdmin ; L'API Windows "SetTimeZoneInformation" nécessite "SeTimeZonePrivilege" aussi vous devez utiliser #RequireAdmin #include <Date.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPIError.au3> #include <WindowsConstants.au3> Global $g_idMemo Example() Func Example() Local $aOld, $aNew ; Crée la GUI GUICreate("Temps", 400, 300) $g_idMemo = GUICtrlCreateEdit("", 2, 2, 396, 296, $WS_VSCROLL) GUICtrlSetFont($g_idMemo, 9, 400, 0, "Courier New") GUISetState(@SW_SHOW) ; Affiche les informations de fuseau horaire actuel $aOld = _Date_Time_GetTimeZoneInformation() ShowTimeZoneInformation($aOld, "Actuel") ; Définit les nouvelles informations de fuseau horaire If Not _Date_Time_SetTimeZoneInformation($aOld[1], "A3L CST", $aOld[3], $aOld[4], "A3L CDT", $aOld[6], $aOld[7]) Then MsgBox($MB_SYSTEMMODAL, "Erreur", "Impossible de définir le fuseau horaire système" & @CRLF & @CRLF & _WinAPI_GetErrorMessage(@extended)) Exit EndIf ; Affiche les nouvelles informations de fuseau horaire $aNew = _Date_Time_GetTimeZoneInformation() ShowTimeZoneInformation($aNew, "New") ; Réinitialise les informations de fuseau horaire d'origine _Date_Time_SetTimeZoneInformation($aOld[1], $aOld[2], $aOld[3], $aOld[4], $aOld[5], $aOld[6], $aOld[7]) ; Affiche les informations de fuseau horaire actuel $aOld = _Date_Time_GetTimeZoneInformation() ShowTimeZoneInformation($aOld, "Reset") ; Boucle jusqu'à ce que l'utilisateur quitte. Do Until GUIGetMsg() = $GUI_EVENT_CLOSE EndFunc ;==>Example ; Écrit une ligne dans le contrôle mémo Func MemoWrite($sMessage) GUICtrlSetData($g_idMemo, $sMessage & @CRLF, 1) EndFunc ;==>MemoWrite ; Affiche les informations de fuseau horaire Func ShowTimeZoneInformation(ByRef $aInfo, $sComment) MemoWrite("***************************** " & $sComment & " *****************************") MemoWrite("Résultat..................... : " & $aInfo[0]) MemoWrite("Décalage actuel.............. : " & $aInfo[1]) MemoWrite("Nom standard................. : " & $aInfo[2]) MemoWrite("Date/heure standard.......... : " & _Date_Time_SystemTimeToDateTimeStr($aInfo[3])) MemoWrite("Décalage standard............ : " & $aInfo[4]) MemoWrite("Nom pour l'heure d'été....... : " & $aInfo[5]) MemoWrite("Date/heure pour l'heure d'été : " & _Date_Time_SystemTimeToDateTimeStr($aInfo[6])) MemoWrite("Décalage pour l'heure d'été.. : " & $aInfo[7]) EndFunc ;==>ShowTimeZoneInformation