GetTickCount-Werte unter Windows 10

Im versucht, das GetTickCount () in der Windows-API zu verwenden, um die Systembetriebszeit zu ermitteln. Ich möchte wissen, wie lange das System läuft.

Doch die Rendite von GetTickCount ist wahnsinnig hoch. Mit diesem Code habe ich eine Betriebszeit von über 500 Stunden.

Dies gilt auch für GetTickCount64 ().

Warum ist dieser Wert so hoch?

DWORD time_ms = GetTickCount();
DWORD seconds = (time_ms / 1000) % 60;
DWORD minutes = time_ms /(1000*60) % 60;
DWORD hours = time_ms / (1000*60*60);
stringstream ss;
ss << "Hours: ";
ss << hours;
ss << " Minutes: ";
ss << minutes;
ss << " seconds: ";
ss << seconds;
MessageBoxA(0, ss.str().c_str(), "Uptime", 0);

Als ich das Programm ausführe, kann ich feststellen, dass es ordnungsgemäß ausgeführt wird, kann aber nicht nachvollziehen, wie ich die Gesamtbetriebszeit für meinen Desktop erhalte.

Vielen Dan

Bearbeite: Ich habe die Verfügbarkeit mit "systeminfo" in CMD überprüft und festgestellt, dass die "Systemstartzeit" tatsächlich vor ca. 500 Stunden lag. Also schaltete ich den Computer aus und steckte den Strom aus, bootete aber trotzdem, die Systemstartzeit hatte diesen hohen Wert. Beim Neustart wurde der Computer jedoch zurückgesetzt, und jetzt funktioniert mein Code.

EDIT 2: Dieser Bloghttps: //blogs.msdn.microsoft.com/oldnewthing/20141113-00/? p = 43623 gibt an, dass GetTickCount eher zum Messen von Zeitintervallen verwendet werden sollte, als für das, was ich erreichen möchte. Scheint, als müsste ich mir die Registry ansehen.

EDIT 3:

Nachdem der richtige Zähler in der Registrierung gefunden wurde, hat er denselben Wert wie GetTickCount und ähnliche Funktionen. Es scheint, dass das Herunterfahren in Windows zu einer Art Ruhezustand führt. Ich habe keine Lösung dafür gefunden.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage