Entwickler-Ecke
Windows API - Windows uptime
Cyberbob - Sa 05.10.02 16:49
Titel: Windows uptime
Hi ihr,
wie kann ich erkennen wie lange Windows schon läuft? Also, mein Programm soll eigentlich nicht dirket mit Autostart gestartet werden, sondern erst nachher und dann würde ich die Uptime von Windows gerne auslesen geht das??
Cyberb :P b
OregonGhost - Sa 05.10.02 18:13
Das geht mit GetTickCount().
SMI - Sa 05.10.02 18:19
Achtung, du solltest beachten, dass der Wert bei einer Bereichsüberschreitung wieder zu null wird! Das kann böse Fehler geben, besonders wenn Berechnungen damit durchgeführt werden!
Siehen WinAPI:
"The internal timer wraps around to zero if Windows is run continuously for approximately 49.7 days."
SMI
Cyberbob - Sa 05.10.02 18:23
OregonGhost hat folgendes geschrieben: |
Das geht mit GetTickCount(). |
Geht das bitte etwas genauer für einen Nicht profi ...??
SMI - Sa 05.10.02 18:26
Quelltext
1: 2: 3: 4: 5:
| Var i:longInt; Begin i:= GetTickCount; END; |
i sind die millisekunden seitem windows gestartet ist
SMI
(05.10.02 22:27 Tino) Code-Tags hinzugefügt.
Delete - Sa 05.10.02 21:30
Im EDH gibt es eine Funktion dafür. Und ich möchte behaupten, die hier bei AUQ.de auch schon gesehen zu haben - die schlüsselt Stunden, Minuten, Sekunden, Tage, Wochen ... :wink: ... genau auf und zeigt nicht den nackten Wert von "GetTickCount".
Cyberbob - Mo 07.10.02 18:17
MathiasSimmack hat folgendes geschrieben: |
Im EDH gibt es eine Funktion dafür. |
Mit dem EDH(easy delphi helper,[url]
http://www.delphi-treff.de[/url]) hab ich das Problem nun gelöst und es sogar optisch ganz gut hinbekommen.
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53:
| var Form1: TForm1; Ticks : Integer; day, hour, min, sec : Integer; result:string; const DAYS : Integer = 1000 * 60 * 60 * 24; HOURS : Integer = 1000 * 60 * 60; MINUTES : Integer = 1000 * 60; SECONDS : Integer = 1000; implementation
{$R *.dfm}
function GetWindowsUpTime: String; const DAYS : Integer = 1000 * 60 * 60 * 24; HOURS : Integer = 1000 * 60 * 60; MINUTES : Integer = 1000 * 60; SECONDS : Integer = 1000; begin; end;
procedure TForm1.FormCreate(Sender: TObject);
begin Ticks := GetTickCount; //GetTickCount gibt die Zeit nach einem Windowstart an
day := Ticks div DAYS; //Tage dec(Ticks, day * DAYS);
hour := Ticks div HOURS; //Stunden dec(Ticks, hour * HOURS);
min := Ticks div MINUTES; //Minuten dec(Ticks, min * MINUTES);
sec := Ticks div SECONDS; //Sekunden
Result := IntToStr(day)+' Tage'+ IntToStr(hour)+' Stunden'+ IntToStr(min)+' Minuten'+ IntToStr(sec)+' Sekunden'; end;
procedure TForm1.Timer1Timer(Sender: TObject); begin label1.Caption:=result; end; |
stellt den Timer auf 1000 (=1sek.) und jede Sekunde wird die Uptime aktualisiert.
Cyberb :P b
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!