| Autor |
Beitrag |
|maSTa|
Hält's aus hier
Beiträge: 7
WIN 2000
D7 Enter
|
Verfasst: Sa 19.07.03 21:06
Huhu!
Ich hoffe mal, dass das Problem hier noch nicht behandelt wurde, ich konnte jedenfalls nichts mit der Suchfunktion dazu finden.
Also, zu meinem Problem:
Ich lese die Uptime mit der GetTickCount-Funktion aus. Diese ist allerdings auf 49 Tage beschränkt, d.h, die Ticks werden nach 49 Tagen wieder auf 0 gesetzt. (Ich hoffe ma ich liege da richtig, stand jedenfalls so bei MS glaub ich).
Nun meine Frage:
Gibt es eine andere Möglichkeit die Uptime von Windows auszulesen/zu berechnen, die auch mit Uptimes jenseits der 49-Tage-Grenze zurechtkommt?
Wäre schön wenn mir irgendwer helfen könnte.
Servus
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 19.07.03 21:12
Zähl doch einfach mit, wie oft du über 49 Tage kommst.
|
|
|maSTa| 
Hält's aus hier
Beiträge: 7
WIN 2000
D7 Enter
|
Verfasst: Sa 19.07.03 21:20
Geht leider nicht, da das Programm auch funktionieren muss, wenn es nicht beim Systemstart gestartet wurde. Also wenn ich es nach 100 Tagen Uptime starte darf da nicht 51 stehen, sondern 100.
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 19.07.03 21:26
Unter NT-basierenden Systemen kannst du kucken, wann die winlogon.exe gestartet wurde. Unter nicht NT-Systemen mußt du auf die explorer.exe zurückgreifen.
Siehe dazu meine SysInfo mit Quellcode auf meiner HP.
|
|
|maSTa| 
Hält's aus hier
Beiträge: 7
WIN 2000
D7 Enter
|
Verfasst: Sa 19.07.03 21:54
Danke für die Antwort.
Hab mir ma dein SysInfo angeguckt, allerdings finde ich im Programm nirgends eine Uptime-Anzeige und im Code auch nichts in der Richtung. Bin ich blind? 
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 19.07.03 22:15
Laß dir mal alle Prozesse anzeigen. Dann wählst du einen aus und klickst auf Details. Da wird dir unteranderem auch angezeigt, wann der Prozess gestartet wurde.
|
|
|maSTa| 
Hält's aus hier
Beiträge: 7
WIN 2000
D7 Enter
|
Verfasst: Sa 19.07.03 22:18
ah, nu hab ichs
So könnte man die Uptime ermitteln, allerdings könnte man mit der Methode sehr leicht bescheissen. Einfach die Systemuhr um 10 Tage vorstellen und schon hat man 10 Tage mehr Uptime. Gibts vielleicht noch irgendeine andere Möglichkeit zum Auslesen?
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Sa 19.07.03 22:24
|
|
Tino
      

Beiträge: 9839
Erhaltene Danke: 45
Windows 8.1
Delphi XE4
|
Verfasst: Mo 21.07.03 08:04
Hier der entsprechende Code von der DP:
Delphi-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:
| function GetWinUpTime: String;
const Days: Integer = 1000 * 60 * 60 * 24; Hours: Integer = 1000 * 60 * 60; Minutes: Integer = 1000 * 60; Seconds: Integer = 1000;
var iTicks, iDay, iHour, iMin, iSec: Integer; begin iTicks := GetTickCount; iDay := iTicks div Days; Dec(iTicks, iDay * Days); iHour := iTicks div Hours; Dec(iTicks, iHour * Hours); iMin := iTicks div Minutes; Dec(iTicks, iMin * Minutes); iSec := iTicks div Seconds; Result := IntToStr(iDay) + ' Tage, ' + IntToStr(iHour) + ' Stunden, ' + IntToStr(iMin) + ' Minuten, ' + IntToStr(iSec) + ' Sekunden'; end; |
Gruß
Tino
|
|
Luckie
Ehemaliges Mitglied
Erhaltene Danke: 1
|
Verfasst: Mo 21.07.03 08:28
Und genau das meinte ich nicht, sondern den Hinweis von Assarbad. Das mit GetTickcount hat er ja schon selber rausgefunden.
|
|
|maSTa| 
Hält's aus hier
Beiträge: 7
WIN 2000
D7 Enter
|
Verfasst: Mo 21.07.03 14:23
Huhu
Danke für eure Hilfe, habe es nun hinbekommen.
Per QueryPerformanceCounter lässt sich ebenfalls die Uptime errechnen.
Servus
|
|