_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