GetTickCount 函数 (sysinfoapi.h)

检索自系统启动以来经过的毫秒数,最长为 49.7 天。

语法

DWORD GetTickCount();

返回值

返回值是自系统启动以来经过的毫秒数。

注解

GetTickCount 函数的分辨率限制为系统计时器的分辨率,通常介于 10 毫秒到 16 毫秒之间。 GetTickCount 函数的分辨率不受 GetSystemTimeAdjustment 函数所做的调整的影响。

已用时间存储为 DWORD 值。 因此,如果系统连续运行 49.7 天,则时间将环绕到零。 若要避免此问题,请使用 GetTickCount64 函数。 否则,在比较时间时,检查溢出条件。

如果需要更高分辨率的计时器,请使用 多媒体计时器高分辨率计时器

若要获取自计算机启动以来经过的时间,请在注册表项 HKEY_PERFORMANCE_DATA的性能数据中检索系统 Up Time 计数器。 返回的值是一个 8 字节的值。 有关详细信息,请参阅 性能计时器

若要获取系统自启动以来在工作状态中花费的时间,请使用 QueryUnbiasedInterruptTime 函数。

注意QueryUnbiasedInterruptTime 函数在调试 (“checked”) Windows 版本中生成不同的结果,因为中断时间计数和计时周期计数将提前大约 49 天。 这有助于识别在系统长时间运行之前可能不会发生的 bug。 经检查的版本可通过 Microsoft 开发人员网络 (MSDN) 网站向 MSDN 订阅者提供。
 

示例

// calculate a 't' value that will linearly interpolate from 0 to 1 and back every 20 seconds
DWORD currentTime = GetTickCount();
if ( m_startTime == 0 )
{
    m_startTime = currentTime;
}
float t = 2 * (( currentTime - m_startTime) % 20000) / 20000.0f;
if (t > 1.0f)
{
    t = 2 - t;
}

要求

要求
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 sysinfoapi.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

时间函数

Windows 时间