GetTickCount 函式 (sysinfoapi.h)

擷取自系統啟動後經過的毫秒數,最多 49.7 天。

Syntax

DWORD GetTickCount();

傳回值

傳回值是自系統啟動後經過的毫秒數。

備註

GetTickCount 函式的解析度僅限於系統定時器的解析度,這通常介於 10 毫秒到 16 毫秒的範圍內。 GetTickCount 函式的解析不會受到 GetSystemTimeAdjustment 函式所做的調整所影響。

經過的時間會儲存為 DWORD 值。 因此,如果系統持續執行 49.7 天,時間會包裝到零。 若要避免這個問題,請使用 GetTickCount64 函式。 否則,在比較時間時檢查溢位條件。

如果您需要較高的解析度定時器,請使用 多媒體定時器高解析度定時器

若要取得電腦啟動後經過的時間,請擷取登錄機碼中效能數據中的系統 Up Time 計數器 HKEY_PERFORMANCE_DATA。 傳回的值是8位元組值。 如需相關資訊,請參閱 Performance Counters

若要取得系統在啟動之後花費在工作狀態的時間,請使用 QueryUnbiasedInterruptTime 函式。

注意QueryUnbiasedInterruptTime 函式會在 Windows 的偵錯 (「核取」) 組建上產生不同的結果,因為中斷時間計數和刻度計數大約會進階 49 天。 這有助於識別在系統長時間執行之前可能不會發生的 Bug。 已核取的組建可透過 Microsoft Developer Network (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)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

時間函數

Windows Time