GetTickCount 函式 (sysinfoapi.h)
擷取自系統啟動以來經過的毫秒數,最多 49.7 天。
語法
DWORD GetTickCount();
傳回值
傳回值是自系統啟動後經過的毫秒數。
言論
GetTickCount 函式的解析度僅限於系統定時器的解析度,通常介於 10 毫秒到 16 毫秒的範圍內。
經過的時間會儲存為 DWORD 值。 因此,如果系統持續執行 49.7 天,時間會包裝為零。 若要避免這個問題,請使用 GetTickCount64 函式。 否則,在比較時間時檢查溢位條件。
如果您需要更高解析度的定時器,請使用 多媒體定時器 或 高解析度定時器。
若要取得電腦啟動後經過的時間,請在登入機碼的效能資料中擷取系統 Up Time 計數器,HKEY_PERFORMANCE_DATA。 傳回的值是8位元組值。 如需詳細資訊,請參閱 性能計數器。
若要取得系統自啟動后已花費在工作狀態的時間,請使用 QueryUnbiasedInterruptTime 函式。
NoteQueryUnbiasedInterruptTime 函式會在 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 專業版 [傳統型應用程式 |UWP 應用程式] |
支援的最低伺服器 | Windows 2000 Server [傳統型應用程式 |UWP 應用程式] |
目標平臺 | 窗戶 |
標頭 | sysinfoapi.h (包括 Windows.h) |
連結庫 | Kernel32.lib |
DLL | Kernel32.dll |