AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Win32/Win64 API (native code) Delphi Ideale Lösung um Laufdauer eines Programmes zu messen

Ideale Lösung um Laufdauer eines Programmes zu messen

Ein Thema von JBJHJM · begonnen am 19. Feb 2010 · letzter Beitrag vom 28. Feb 2010
Antwort Antwort
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#1

Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 17:30
Hallo,
mein Ziel ist es, zu dokumentieren, wie lange (hh:mm reicht aus) ein Programm läuft. Dazu wird das Programm über mein Delphitool gestartet, und das Delphitool soll dann erkennen, wann das kontrollierte Programm geschlossen wird. Dafür fielen mir zwei Lösungswege ein:
1) Pro Minute eine Funktion aufrufen die kontrolliert, ob der Programmprozess noch läuft
2) Das Tool notiert die Zeit, zu der das Programm gestartet und geschlossen wird. Für letzteres suche ich aber Informationen; wird beim schließen des Programmes automatisch irgendeine verwertbare Windows-Nachricht verschickt?
Danke!
  Mit Zitat antworten Zitat
Noedel

Registriert seit: 7. Aug 2008
204 Beiträge
 
Delphi 7 Professional
 
#2

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 17:37
hmmm...
im onCreate der Form könntest du die Zeit nehmen und im OnClose der Form noch einmal und die Differenz ausrechnen. Dann, bevor die Form geschlossen wird, irgendwo abspeichern.
-"Was studierst du eigentlich? Nerdologie?"
-"Informatik..."
-"Wusst ich´s doch!"
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#3

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 17:46
Habe mich wohl wie so oft verwirrend ausgedrückt
Das das ganze auf die Art funktionieren würde ist mir schon klar, allerdings soll mein Tool von alleine erkennen, wann das andere Programm geschlossen wird! (muss aber nicht unbedingt auf die Sekunde genau sein.)
Denn ansonsten vergesse ich garantiert, es manuell zu beenden, und dann ist die Auswertung der Arbeitszeit total versaut...
  Mit Zitat antworten Zitat
Benutzerbild von arbu man
arbu man

Registriert seit: 3. Nov 2004
Ort: Krefeld
1.108 Beiträge
 
Delphi 7 Professional
 
#4

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 22:04
Du könntest das zu startende Programm mit ShellExecute und WaitForSignleObject ausführen (Forensuche hilft). Dann hast du den Zeitpunkt des start und des Ende des Prozesses.

Delphi-Quellcode:
saveTime('Start');
ShellExecuteWait(...)
saveTime('Stop')
Gruß Björn
Björn
>> http://bsnx.net <<
Virtual DP Stammtisch v1.0"iw" am 19.09.2007 - ich war dabei!
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#5

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 23:27
Zitat von JBJHJM:
Denn ansonsten vergesse ich garantiert, es manuell zu beenden, und dann ist die Auswertung der Arbeitszeit total versaut...

Wenn du es nicht beendest, wie soll denn dann dein Tool erkennen das es doch beendet ist, obwohl es gar nicht beendet ist
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
JBJHJM

Registriert seit: 16. Jan 2009
88 Beiträge
 
Delphi 2005 Personal
 
#6

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 19. Feb 2010, 23:37
Zitat von arbu man:
Du könntest das zu startende Programm mit ShellExecute und WaitForSignleObject ausführen (Forensuche hilft). Dann hast du den Zeitpunkt des start und des Ende des Prozesses.

Delphi-Quellcode:
saveTime('Start');
ShellExecuteWait(...)
saveTime('Stop')
Gruß Björn
Vielen Dank! Habe es jetzt erstmal mit der ersten Variante gelöst, aber die werde ich mir natürlich auch angucken und zumindest für die Zukunft archivieren!

@Sir Rufo:
Ich seh schon es gibt hier etwas Gewirr, ich habe unterschieden zwischen "Tool" - das Delphi-Dingsda, das ich programmiere - und "Programm" - dem Programm, was das Tool überwachen soll. Damit ich nicht immer das Tool separat an/ausschalten muss, sollte es nach möglichkeit selbstständig laufen, sprich wenn das Tool gestartet wird, startet es gleich das definierte Programm, und wenn letzteres beendet wird, soll das Tool dies automatisch erkennen, die Daten speichern und sich beenden.

  Mit Zitat antworten Zitat
Fridolin Walther

Registriert seit: 11. Mai 2008
Ort: Kühlungsborn
446 Beiträge
 
Delphi 2009 Professional
 
#7

Re: Ideale Lösung um Laufdauer eines Programmes zu messen

  Alt 28. Feb 2010, 19:27
Zitat von JBJHJM:
2) Das Tool notiert die Zeit, zu der das Programm gestartet und geschlossen wird. Für letzteres suche ich aber Informationen; wird beim schließen des Programmes automatisch irgendeine verwertbare Windows-Nachricht verschickt?
Object Handles können zur Synchronisation genutzt werden - das Prozesshandle ist da kein Unterschied. Wenn Du also mit MSDN-Library durchsuchenCreateProcess oder MSDN-Library durchsuchenShellExecuteEx einen Prozess erstellst, kannst Du mit MSDN-Library durchsuchenWaitForSingleObject darauf warten, daß dieses signalisiert wird, was bei Prozessen bedeutet, daß sie beendet wurden. Aber es kommt noch besser: Windows liefert Dir mit Hilfe des Prozesshandles dann sogar noch alle Timing Informationen frei Haus.

Und als ob das nicht genug wäre, gibts hier sogar ne fertige Funktion:
http://www.delphipraxis.net/internal...=872205#872205
Fridolin Walther
"While Mr. Kim, by virtue of youth and naiveté, has fallen prey to the inexplicable need for human contact, let me step in and assure you that my research will go on uninterrupted, and that social relationships will continue to baffle and repulse me."
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:59 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