Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zeit messen wie lange eine anwendung aktiv ist (https://www.delphipraxis.net/80667-zeit-messen-wie-lange-eine-anwendung-aktiv-ist.html)

Radon 13. Nov 2006 13:52


Zeit messen wie lange eine anwendung aktiv ist
 
hallo

ich benutze Delphi 7 und würde gerne eine prozedur schreiben, die die Zeit misst, wie lange ein Programm aktiv ist. Da ich den Start eines Programms ja nicht abfangen kann, dachte ich also an eine prozedur, die alle x Sekunden prüft, ob ein Programm aktiv ist. Diese Prüfung habe ich hinbekommen, aber wie gestalte ich diese Schleife, damit sie performanceschonend ist und das Programm trotzdem noch ansprechbar ist? Also mit Sleep(5000) habe ich es schon probiert, aber da kann ich mit dem Programm so lange nichtsmehr machen. Das fällt also weg.
Er überwacht übrigens ein bestimmtes Programm, es geht mir nur um diesen zeitlichen Widerstand, dass er eben 5 Sekunden lang nichts tut und dann prüft, wieder 5 sekunden lang nichts tut und das so lange bis das Programm entweder aktiv ist, dann geht die Schleife von vorne los mit dem Unterschied dass er jetzt aufzeichnet wie lange es aktiv ist. Bis das Programm beendet wird. Wie kann ich das einrichten? Und wie kann ich am besten die Dauer festhalten und berechnen die das Programm läuft?

Sorry, bin Anfänger!

Freue mich über Antworten! :love:

Tyrael Y. 13. Nov 2006 14:02

Re: Zeit messen wie lange eine anwendung aktiv ist
 
Ähm wozu eine Schleife? oO

Beim Start des Programms rufst du einfach GetTickCount auf.
Das Ergebnis davon speicherst du in einer Cardinal Variable.

In dem Moment, an dem du wissen möchtest wieveil zeit vergangen ist.
Weisst du einer zweiten Variable vom Typ Cardinal das Ergebnis von GetTickCount zu.

Zieht die erste Zahl von der zweiten ab und hast die Millisekunden seit Programmstart.

Gruß Tyrael

sakura 13. Nov 2006 14:04

Re: Zeit messen wie lange eine anwendung aktiv ist
 
Zitat:

Zitat von Tyrael Y.
Beim Start des Programms rufst du einfach GetTickCount auf.

Es geht ihm aber darum ein anderes zu überwachen ;)

Was er will, dazu sollte die Komponente Delphi-Referenz durchsuchenTTimer genügen mit einem Interval von 5000.

...:cat:...

Tyrael Y. 13. Nov 2006 14:16

Re: Zeit messen wie lange eine anwendung aktiv ist
 
...ups sry :oops: ....man sollte doch mal genauer lesen

Radon 13. Nov 2006 14:46

Re: Zeit messen wie lange eine anwendung aktiv ist
 
ok den Timer hab ich hinbekommen, hab ihm den Intervall 5000 zugewiesen.

Jetzt nehme ich an, dass ich das, was er ausführen soll, in OnTimer packen muss. Nur brauch OnTimer dann wohl ein TNotifyEvent. Leider hab ich davon nie was gehört... Wie krieg ich denn da jetzt einen befehl rein oder auch eine andere Prozedur... Alle 5 sekunden soll er diese Prozedur ausführen... :shock:

Meflin 13. Nov 2006 14:47

Re: Zeit messen wie lange eine anwendung aktiv ist
 
Idee: Windows misst ja von Haus aus die CPU-Zeit, vielleicht misst es ja dann auch die echte Laufzeit :gruebel:

Zitat:

Wie krieg ich denn da jetzt einen befehl rein oder auch eine andere Prozedur... Alle 5 sekunden soll er diese Prozedur ausführen
Du packst deine Prozedure schlicht und ergreifend in das OnTimer-Event ;) einfach im OI in OnTimer Doppelklicken und ausfüllen!


Radon 13. Nov 2006 14:56

Re: Zeit messen wie lange eine anwendung aktiv ist
 
ahso. Hab den Timer unter System gefunden. Wusste nicht dass das die selben sind :oops:

Scheint so als hab ichs hinbekommen. Danke! :love:

Mackhack 13. Nov 2006 15:11

Re: Zeit messen wie lange eine anwendung aktiv ist
 
Kannst auch MSDN-Library durchsuchenQueryPerformanceCounter nehmen und z. B. Format um das ganze ordentlich anzuzueigen!


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:05 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