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。 通过 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 |