Функция _Date_Time_GetSystemTimeAdjustment

         Описание функции


_Date_Time_GetSystemTimeAdjustment

Определяет, использует ли система периодическую корректировку времени

#include <Date.au3>
_Date_Time_GetSystemTimeAdjustment()

Возвращаемое значение

Возвращает массив следующего формата:
    [1] - Количество 100 единиц наносекунд, добавляемых к часам в каждую периодическую корректировку времени
    [2] - Количество 100 единиц наносекунд между периодическими корректировками времени. Это интервал временного периода между прерываниями системных часов.
    [3] - True указывает, что периодическая корректировка времени отсутствует. На каждом прерывании часов система добавляет интервал между прерываниями часов в часы. Если False, то периодическая корректировка времени используется для настройки часов.

См. также

_Date_Time_SetSystemTimeAdjustment

Пример

#include <Date.au3>
#include <WinAPI.au3>

; Под Vist-ой Windows API "SetSystemTimeAdjustment" может не выполняться из-за параметров безопасности

_Main()

Func _Main()
    Local $aInfo

    ; Откроем часы, чтобы наблюдать за весельем
    Run("RunDll32.exe shell32.dll,Control_RunDLL timedate.cpl")
    WinWaitActive("[CLASS:#32770]")

    ; Получение текущих корректировок
    $aInfo = _Date_Time_GetSystemTimeAdjustment()

    ; Замедление часов
    If Not _Date_Time_SetSystemTimeAdjustment($aInfo[1] / 10, False) Then
        MsgBox(4096, "Ошибка", "Системные часы не могут идти медленнее" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
        Exit
    EndIf
    MsgBox(4096, "Информация", "Системные часы замедленны", 2)

    Sleep(5000)

    ; Ускорение часов
    If Not _Date_Time_SetSystemTimeAdjustment($aInfo[1] * 10, False) Then
        MsgBox(4096, "Ошибка", "Системные часы не могут идти быстрее" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
    EndIf
    MsgBox(4096, "Информация", "Системные часы ускорены", 2)

    Sleep(5000)

    ; Сброс корректировок времени
    If Not _Date_Time_SetSystemTimeAdjustment($aInfo[1], True) Then
        MsgBox(4096, "Ошибка", "Системные часы не могут быть сброшены" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
    Else
        MsgBox(4096, "Информация", "Системные часы восстановлены")
    EndIf

EndFunc   ;==>_Main