Функция _Date_Time_SetSystemTimeAdjustment

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


_Date_Time_SetSystemTimeAdjustment

Включает или отключает периодические корректировки времени в системных часах

#include <Date.au3>
_Date_Time_SetSystemTimeAdjustment($iAdjustment, $fDisabled)

Параметры

$iAdjustment Количество 100 единиц наносекунд, добавляемых к часам в каждое прерывание, если периодическая корректировка включена.
$fDisabled Значение True отключает периодическую корректировку времени. Система может корректировать время с использованием своих внутренних механизмов. Внутрисистемные механизмы корректировки могут приводить к заметным скачкам в моменты корректировок. Значение False включает периодическую корректировку времени и использует ее для корректировок времени. Система не будет участвовать в схеме корректировки времени, и не будет пытаться сама синхронизировать время. Система добавляет значение iAdjustment к часам на каждом прерывании.

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

Успех:Возвращает True
Ошибка:Возвращает False

См. также

_Date_Time_GetSystemTimeAdjustment

Пример

#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