GetTickCount 関数 (sysinfoapi.h)

システムの起動から経過したミリ秒数 (最大 49.7 日) を取得します。

構文

DWORD GetTickCount();

戻り値

戻り値は、システムが開始されてから経過したミリ秒数です。

注釈

GetTickCount 関数の解像度は、システム タイマーの解像度に制限されます。通常は 10 ミリ秒から 16 ミリ秒の範囲です。 GetTickCount 関数の解決は、GetSystemTimeAdjustment 関数によって行われた調整の影響を受けません。

経過時間は DWORD 値として格納されます。 したがって、システムが 49.7 日間継続的に実行されている場合、時間は 0 に折り返されます。 この問題を回避するには、 GetTickCount64 関数を使用します。 それ以外の場合は、時間を比較するときにオーバーフロー条件をチェックします。

高解像度タイマーが必要な場合は、 マルチメディア タイマー または 高解像度タイマーを使用します。

コンピューターの起動後に経過した時間を取得するには、レジストリ キー HKEY_PERFORMANCE_DATAのパフォーマンス データの System Up Time カウンターを取得します。 返される値は 8 バイトの値です。 これらのパフォーマンス カウンターの詳細については、「 パフォーマンス カウンター」を参照してください。

システムが開始されてから稼働状態に費やした時間を取得するには、 QueryUnbiasedInterruptTime 関数を 使用します。

メモQueryUnbiasedInterruptTime 関数は、割り込み時間数とティック数が約 49 日進むため、Windows のデバッグ ("checked") ビルドで異なる結果を生成します。 これは、システムが長時間実行されるまで発生しない可能性があるバグを特定するのに役立ちます。 チェックされたビルドは、 Microsoft Developer Network (MSDN) Web サイトを介して 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 Professional [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー sysinfoapi.h (Windows.h を含む)
Library Kernel32.lib
[DLL] Kernel32.dll

関連項目

時間関数

Windows タイム