AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Auf beenden eines Programms reagieren
Thema durchsuchen
Ansicht
Themen-Optionen

Auf beenden eines Programms reagieren

Ein Thema von XXcD · begonnen am 20. Jan 2007 · letzter Beitrag vom 20. Jan 2007
Antwort Antwort
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#1

Auf beenden eines Programms reagieren

  Alt 20. Jan 2007, 11:36
Hallo,
ich habe ein Programm geschrieben und wollte jetzt mal nachfragen ob es möglich ist, darauf zu reagieren wenn ein externes Programm beendet wird. Also ich habe mein Programm minimiert und wenn sagen wir mal der internetexplorer beendet wird soll sich mein Programm maximieren.
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: Auf beenden eines Programms reagieren

  Alt 20. Jan 2007, 15:33
Hallo,

wenn Du externe Programme überwachen willst, dann musst Du ja auf alle Fälle auch ihre Handels kennen. Und wenn Du die schon weißt, dann wäre es wohl das einfachste, z.B. alle 0,5sec mittels der FindWindow-Funktion auch mal nachzufragen, ob sie denn überhaupt noch existieren. Bezüglich der CPU-Belastung dürfte das jedenfalls völlig vernachlässigbar sein.

Eine andere Möglichkeit wäre event. noch per CBTProc (siehe PSDK) nach irgendwelchen Windows Ausschau zu halten, die gerade zerstört werden.

Oder Du versuchst dafür einen globalen Hook einzusetzen, was aber wohl die aufwändigste Lösung wäre.
MfG (& Thx ggf.)
  Mit Zitat antworten Zitat
Benutzerbild von XXcD
XXcD

Registriert seit: 19. Sep 2006
581 Beiträge
 
Delphi 2007 Professional
 
#3

Re: Auf beenden eines Programms reagieren

  Alt 20. Jan 2007, 16:27
Kann ich denn vielleicht irgendwie mit fdem task manager überprüfen ob die datei beendet wurde. Der muss ja nur überprüfen ob die anwendung an ist.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#4

Re: Auf beenden eines Programms reagieren

  Alt 20. Jan 2007, 16:43
Warum so umständlich? Einfach gucken, ob der gesuchte Prozess noch in der Prozessliste auftaucht. Wie man Prozesse auflistet, dürfte hier im Forum oder mit Google zu finden sein.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
TStringlist

Registriert seit: 1. Dez 2003
360 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Auf beenden eines Programms reagieren

  Alt 20. Jan 2007, 17:11
@XXcD

Nein, den Taskmanager kann man eigentlich nicht durch ein eigenes Programm dementsprechend befragen (wenigstens nicht das ich wüßte).

Übrigens habe ich oben ein winziges bisschen Unsinn erzählt *ggg*: Die Handle des jeweils zu überwachenden Progs musst Du natürlich für diese Prüfung nicht kennen. Vielmehr wirst Du sie im positiven Fall (dh. wenn das Programm noch läuft) dann von dieser FindWindow-Funktion geliefert bekommen! Bekommst Du stattdessen nur eine 0 (Null) geliefert, dann läuft das Programm eben nicht mehr.

Um diese FindWindow-Funktion nutzen zu können, musst Du dann aber zuerst noch den KlassenNamen und/oder den WindowNamen des jeweiligen Programmes wissen. Letzteres steht für gewöhnlich schon in der Title-Leiste des Windows und für den ClassName sollte man sich am Besten so ein Programm wie SPY++ zulegen. Das ist kostenlos und kann z.B. hier gedownloaded werden.

Wenn Du diese Informationen hast (ClassName und/oder WindowName), dann brauchst Du eigentlich nur noch mehr einen Timer und eine einzige weitere Anweisung, um die von dir gewünschte Information abfragen zu können:

If FindWindow('theWindowClassName','theWindowName') <> 0 then WindowStillExists...
MfG (& Thx ggf.)
  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 05:12 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