Windows-Uptime berechnen |
|
| System | Win9x, WinNT, Win2000, WinXP, Vista, Win7 |
|---|---|
| Ab Delphi-Version | Delphi 1 |
| Letzte Änderung | 28.09.2010 |
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.
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;