AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Zeit messen wie lange eine anwendung aktiv ist
Thema durchsuchen
Ansicht
Themen-Optionen

Zeit messen wie lange eine anwendung aktiv ist

Ein Thema von Radon · begonnen am 13. Nov 2006 · letzter Beitrag vom 13. Nov 2006
Antwort Antwort
Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#1

Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 14:52
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!
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#2

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:02
Ä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
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von sakura
sakura

Registriert seit: 10. Jun 2002
Ort: Unterhaching
11.412 Beiträge
 
Delphi 12 Athens
 
#3

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:04
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.

......
Daniel Lizbeth
Ich bin nicht zurück, ich tue nur so
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:16
...ups sry ....man sollte doch mal genauer lesen
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#5

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:46
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...
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#6

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:47
Idee: Windows misst ja von Haus aus die CPU-Zeit, vielleicht misst es ja dann auch die echte Laufzeit

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!

  Mit Zitat antworten Zitat
Benutzerbild von Radon
Radon

Registriert seit: 15. Mai 2006
29 Beiträge
 
#7

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 15:56
ahso. Hab den Timer unter System gefunden. Wusste nicht dass das die selben sind

Scheint so als hab ichs hinbekommen. Danke!
  Mit Zitat antworten Zitat
Benutzerbild von Mackhack
Mackhack

Registriert seit: 29. Nov 2003
Ort: San Diego, CA/USA
1.446 Beiträge
 
Delphi 2006 Architect
 
#8

Re: Zeit messen wie lange eine anwendung aktiv ist

  Alt 13. Nov 2006, 16:11
Kannst auch MSDN-Library durchsuchenQueryPerformanceCounter nehmen und z. B. Format um das ganze ordentlich anzuzueigen!
Um etwas Neues zu schaffen muss man seine Ohren vor den Nein-sagern verschliessen um seinen Geist öffnen zu können.
(George Lukas)
  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 03:51 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