![]() |
Zeitermittlung des letzten Windows-Starts funktioniert nicht
Hallo,
ich möchte an einer Stelle in meinem Programm ermitteln lassen, wann Windows zuletzt hochgefahren wurde bzw. wie lange der Startvorgang her ist. Dafür verwende ich folgende Funktion:
Delphi-Quellcode:
Das klappt meistens auch ganz gut, aber auf einem Testsystem unter Windows 10 x64 liefert GetTickCount den Wert 193349921, was in Folge dieser Auswertung "53h 42m 29s" ergibt - das stimmt natürlich nicht.
function GetWindowsUpTime : string;
const ticksperhour : LongWord = 1000 * 60 * 60; ticksperminute : LongWord = 1000 * 60; tickspersecond : LongWord = 1000; var t, h, m, s : LongWord; begin t:=GetTickCount; h:=t div ticksperhour; Dec(t, h * ticksperhour); m:=t div ticksperminute; Dec(t, m * ticksperminute); s:=t div tickspersecond; Result:=IntToStr(h)+'h'+IntToStr(m)+'m'+IntToStr(s)+'s'; end; Was kann man da optimieren bzw. hat jemand eine Idee, woran das liegen kann? |
AW: Zeitermittlung des letzten Windows-Starts funktioniert nicht
Das ist richtig, seit Windows 8 wird beim Ausschalten in der Regel Windows nicht mehr heruntergefahren sondern nur der Benutzer abgemeldet und dann das System in den Ruhezustand versetzt. Deine Anzeige wann "Windows zuletzt gestartet" wurde ist somit vollkommen richtig.
Aber da hierbei große Zeitspannen anstehenden können sollte man auch nicht mehr GetTickCount sondern GetTickCount64 verwenden, denn mit GetTickCount läuft der Integer-Zähler nach weniger als 50 Tagen über. In der ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:43 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz