Einzelnen Beitrag anzeigen

devidespe

Registriert seit: 7. Sep 2006
Ort: Berlin
434 Beiträge
 
Delphi 10.4 Sydney
 
#1

Zeitermittlung des letzten Windows-Starts funktioniert nicht

  Alt 9. Mär 2018, 17:47
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:
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;
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.

Was kann man da optimieren bzw. hat jemand eine Idee, woran das liegen kann?
Devid
57 65 72 20 6C 65 73 65 6E 20 6B 61 6E 6E 2C 20 69 73 74 20 6B 6C 61 72 20 69 6D 20 56 6F 72 74 65 69 6C 21
  Mit Zitat antworten Zitat