AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Windows: Laufzeit statt Uptime

Ein Thema von Samweis78 · begonnen am 18. Dez 2010 · letzter Beitrag vom 18. Dez 2010
Antwort Antwort
Benutzerbild von Samweis78
Samweis78

Registriert seit: 5. Okt 2006
Ort: Altmark
9 Beiträge
 
Turbo Delphi für Win32
 
#1

Windows: Laufzeit statt Uptime

  Alt 18. Dez 2010, 10:24
Hallo Leute,

ich hätte da gern mal ein Problem.
Und zwar will ich in einem Programm zeigen, wie lange der PC schon an ist. Dafür hab ich dann auch recht fix GetTickCount gefunden und alles schien gut.
Allerdings ist mir jetzt aufgefallen, dass das gar nicht das ist, was ich brauche, denn mit GetTickCount bekommt man ja "die Zeit, die seit dem letzten Systemstart vergangen ist", ich brauche aber "die Zeit, die das System tatsächlich seit dem letzten Systemstart aktiv war".
Mit anderen Worten: War der PC zwischenzeitlich im Ruhezustand (oder wahrscheinlich auch im Standby), kann ich das nicht berücksichtigen ... will ich aber!

Ich hab auch das Richtige gefunden... allerdings nicht, wie ich da per Delphi ran komme.
Schaut mal in den Anhang. In Win7 (wahrscheinlich auch Vista?) aber nicht in XP wird dieser Wert im Taskmanager angezeigt.

Ich tret da etwas auf der Stelle... weil delphi und laufzeit zu googeln ist etwas... naja... zu ergiebig ^^

Wär heiss, wenn ja jemand einen Tipp hätte
-Sam
Miniaturansicht angehängter Grafiken
laufzeit.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#2

AW: Windows: Laufzeit statt Uptime

  Alt 18. Dez 2010, 10:28
Du könntest auf die Messages reagieren, welche vor und nach dem Standby/Ruhezustand versendet werden und dieses in deinen GetTickCount-Startwert mit einrechnen.
$2B or not $2B
  Mit Zitat antworten Zitat
Benutzerbild von Samweis78
Samweis78

Registriert seit: 5. Okt 2006
Ort: Altmark
9 Beiträge
 
Turbo Delphi für Win32
 
#3

AW: Windows: Laufzeit statt Uptime

  Alt 18. Dez 2010, 10:42
Tach himitsu,

okay, das wär eine Möglichkeit... find ich aber nich optimal. Das Programm läuft ja vielleicht nicht immer... (auch wenn es im Endeffekt darauf ausgelegt ist)...

Schöner wär es, auf einen Wert des Systems zurückzugreifen...

Überlege schon, wie ich an den Speicherbereich rankomme, gabs nich mal ein Programm, das mir in Formularanwendungen sowas über dessen Elemente verriet? Aber dann komm ich auch nur an den Wert ran, den der TaskManager bereitstellt, und der läuft nicht immer... und unter XP hilft mir das auch nicht.
...Aber das geht schon in Richtung reverse engineering (oder so ähnlich) und sprengt auf jeden Fall den Rahmen, in dem ich das Progrämmli entwickle.
... dann ist das mit den Messages auf jeden Fall besser

Aber ich lass die Frage mal noch offen, vielleicht hat noch jemand einen Einfall?

-Sam
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#4

AW: Windows: Laufzeit statt Uptime

  Alt 18. Dez 2010, 11:54
Okay, mal schauen:

1. http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx
Zitat:
If you need a higher resolution timer, use a multimedia timer or a high-resolution timer.
To obtain the time elapsed since the computer was started, retrieve the System Up Time counter in the performance data in the registry key HKEY_PERFORMANCE_DATA. The value returned is an 8-byte value. For more information, see Performance Counters.
To obtain the time the system has spent in the working state since it was started, use the QueryUnbiasedInterruptTime function.
Das letzte hört sich doch ganz interessant an. Geht aber nur unter Windows 7 ( http://msdn.microsoft.com/en-us/libr...07(VS.85).aspx )
Und du musst es wahrscheinlich manuell einbinden.
  Mit Zitat antworten Zitat
Benutzerbild von Samweis78
Samweis78

Registriert seit: 5. Okt 2006
Ort: Altmark
9 Beiträge
 
Turbo Delphi für Win32
 
#5

AW: Windows: Laufzeit statt Uptime

  Alt 18. Dez 2010, 13:40
Hallo,

ääääähm... oi weh ^^...
Da scheint das ja wirklich mehr oder weniger in der Registry drin zu stehen... aber das Auslegen is wohl nich so easy gemacht...

Hmm, ich fürchte, wie ich das machen werde, kann ich nicht mehr vor Weihnachten entscheiden ^^ und wahrscheinlich wirds dann doch das Abfangen der OS-Messages, um für alle Windows-Versionen nur einmal programmieren zu müssen.

Habt Dank für die Hilfe!
Wissen ist Nacht!
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz