GetTickCount 函数 (sysinfoapi.h)

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

语法

DWORD GetTickCount();

返回值

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

言论

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

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

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

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

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

注释QueryUnbiasedInterruptTime 函数在 Windows 的调试(“checked”)生成时生成不同的结果,因为中断时间计数和时钟周期计数在大约 49 天内进行高级。 这有助于识别在系统长时间运行之前可能不会发生的 bug。
 

例子

// 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 Professional [桌面应用 |UWP 应用]
支持的最低服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 窗户
标头 sysinfoapi.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

时间函数

Windows 时间