函数参考


_Date_Time_SetSystemTimeAdjustment

启用或禁用系统时钟定期调整

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

参数

$iAdjustment 如果周期时间的调整已启用,
24小时内每个时钟中断增加 100 纳秒单位时间.
$fDisabled 设置为 返回 True,禁用时间周期调整.
系统使用内部机制调整一天的时间;
系统内部调整机制可能导致时间时钟明显跳转.
设置为 返回 False, 启用时间周期调整. 将用于调整一天钟的时间,
系统将不会干扰时间调整计划,也不会尝试同步时间,
系统将在每个时钟中断加入 $iAdjustment 指定的值.

返回值

成功: 返回 True
失败: 返回 False

注意/说明

None.

相关

_Date_Time_GetSystemTimeAdjustment

示例/演示


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

; 由于系统安全性,在 Vista 中 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, "错误", "System clock cannot be DOWN" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
        Exit
    EndIf
    MsgBox(4096, "信息", "Slowing down system clock", 2)

    Sleep(5000)

    ; 加快时钟
    If Not _Date_Time_SetSystemTimeAdjustment($aInfo[1] * 10, False) Then
        MsgBox(4096, "错误", "System clock cannot be UP" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
    EndIf
    MsgBox(4096, "信息", "Speeding up system clock", 2)

    Sleep(5000)

    ; 重设时间调整设置
    If Not _Date_Time_SetSystemTimeAdjustment($aInfo[1], True) Then
        MsgBox(4096, "错误", "System clock cannot be RESET" & @CRLF & @CRLF & _WinAPI_GetLastErrorMessage())
    Else
        MsgBox(4096, "信息", "System clock restored")
    EndIf

EndFunc   ;==>_Main