Home » Tipps & Tricks » System » Systemeinstellungen » Windows-Uptime berechnen

Windows-Uptime berechnen

Dieser Artikel zeigt, wie man die Zeit, die seit dem letzten Windows-Start vergangen ist, ermitteln kann.Sie basiert auf dem Aufruf von GetTickCount, die die Millisekunden seit dem letzten Windows-Start zählt. Aufgrund des beschränkten Wertebereichs des Typs DWORD läuft die Funktion nach 49,7 Tagen über, d.h. sie beginnt wieder bei 0.

procedure GetWindowsUpTime(var ADay, AHours, AMinutes, ASeconds: Integer);
const
  OneDay : Integer = 1000 * 60 * 60 * 24;
  OneHour : Integer = 1000 * 60 * 60;
  OneMinutes : Integer = 1000 * 60;
  OneSecond : Integer = 1000;
var
  Start : Integer;
  d, h, m, s: Integer;
begin
  Start:=GetTickCount;

  ADay:=Start div OneDay; //Tage

  d:=Start mod OneDay;
  AHours:=d div OneHour; //Stunden

  h:=d mod OneHour;
  AMinutes:=h div OneMinutes; //Minuten

  s:=h mod OneMinutes;
  ASeconds:=s div OneSecond; //Sekunden
end;

Der obigen Funktion müssen vier Referenzparameter übergeben werden. Die Namen sollten für sich sprechen.

procedure TForm1.Button1Click(Sender: TObject);
var
  Tage, Stunden, Minuten, Sekunden: Integer;
begin
  GetWindowsUpTime(Tage, Stunden, Minuten, Sekunden);

  Caption:=Format('%d Tage %d Stunden %d Minuten %d Sekunden', [Tage,
                                                                Stunden,
                                                                Minuten,
                                                                Sekunden]);
end;