#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