Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Abfragen ob ein anderes Programm geschlossen wurde (https://www.delphipraxis.net/9121-abfragen-ob-ein-anderes-programm-geschlossen-wurde.html)

noch_ein_hannes 18. Sep 2003 14:35


Abfragen ob ein anderes Programm geschlossen wurde
 
Hi,

ich möchte gern eine Meldung ausgeben wenn ein bestimmtes Programm geschlossen wird. (und dann nach Möglichkeit das entgültige Schliessen des Programmes verhindern)

Ich habe schon herausgefunden wie man andere Fenster erkennt, es ist mir allerdings noch ein Rätsel wie man dem Fenster dann so etwas wie z.B. "onExit = Informier mich..." beibringen kann.

Vielleicht hat ja jemand schon etwas ähnliches gebastelt!

bye,
Hannes

Luckie 18. Sep 2003 14:41

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Zitat:

Zitat von noch_ein_hannes
ich möchte gern eine Meldung ausgeben wenn ein bestimmtes Programm geschlossen wird. (und dann nach Möglichkeit das entgültige Schliessen des Programmes verhindern)

Also meine Idee wäre regelmäßig mit einem Hier im Forum suchenCreateToolHelp32Snapshot zu kucken, ob das gesuchte Programm noch läuft. Oder dir nur damit eine PID auf den prozess zu holen und dann mit Hier im Forum suchenWaitForSingleObject warten bis der Prozess signalisiert wird - IMO eleganter. Aber das Beenden wirst du nicht verhindern können, denn so bald du es bemerkst, zu mindest mit meinen Vorschlägen ist es schon zu spät. Ein lowlevel Systemhook könnte helfen, in dem die Schließennachricht an das Fenster nicht weitergeleitet wird.

Darf man fragen, was das eigentlich soll?

noch_ein_hannes 18. Sep 2003 15:06

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Danke, soweit war ich aber leider auch schon :-)
Ich dachte man könnte dem anderen Fenster so etwas wie:
anderes_Fenster.onExit = meine_Funktion
...oder so ähnlich mitgeben.

Zitat:

Darf man fragen, was das eigentlich soll?
Ich will es kurz erklären:
Wenn ein User einer Datenbank-Anwendung (das Problemkind) sich einen Datensatz anschaut, dann wird dieser für alle anderen User gesperrt.

Wenn nun der User statt sich vernünftig abzumelden einfach das Fenster schliesst, dann wird leider nicht automatisch diese Sperre aufgehoben.

OK, normalerweise würde ich jetzt antworten: "dann sollte die DB-Anwendung mal überarbeit werden..." - Stimmt, aber das löst das momentane Problem eben auch erst dann wenn es ein Update gibt...

Meine Idee war nun, ein Prog im Systray zu installieren, welches das andere Programm überwacht und wenn der User das Fenster schleissen möchte, dann soll ereinfach nur eine Meldung erhalten, die ihn daran erinnert, dass er sich bitte schön "ordentlich" abmelden soll.
In diesem Meldungsfenster könnte er dann auf "Beenden" klicken, damit das Programm geschlossen wird, bzw. auf "Zurück" damit er sich abmelden kann.

Vielleicht fällt Dir ja noch was anderes ein... :-)
bye,
Hannes

Phoenix 18. Sep 2003 15:17

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Zitat:

Zitat von noch_ein_hannes
Zitat:

Zitat von Luckie
Darf man fragen, was das eigentlich soll?

[...]
OK, normalerweise würde ich jetzt antworten: "dann sollte die DB-Anwendung mal überarbeit werden..." - Stimmt, aber das löst das momentane Problem eben auch erst dann wenn es ein Update gibt...

Erm, dann änderst Du das Programm und das Update gibt es halt morgen als Servicepack.

Was ist denn daran so schlimm?

noch_ein_hannes 18. Sep 2003 15:31

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Zitat:

Erm, dann änderst Du das Programm und das Update gibt es halt morgen als Servicepack.

Was ist denn daran so schlimm?
Ja das wäre sicher eine nette Sache wenn ich den Source-Code hätte :-)
- Es ist aber nicht von mir .... und das Update könnte dann durchaus ein paar Monate dauern!

Luckie 19. Sep 2003 00:51

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Ich glaube, wenn mS ähnlich verfahren würde, dann hätte ich jetzt schon tausend Programme in der TNA.

noch_ein_hannes 19. Sep 2003 08:23

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Naja, wenn wir mal kurz das Warum und Wieso meines Problemes weglassen könnten... Ich wäre sehr daran interessiert, ob es noch andere Möglichkeiten gibt, das Schliessen irgendeines (aber doch bestimmten) Fensters abzufangen um dann eine entsprechende Meldung auszugeben.

CrashMan 19. Sep 2003 12:57

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Ich hab hier mal nen Source gepostet welcher alle Prozesse listet und so...

Die kommen in ne ListBox oder wie auch immer und beim nächsten mal wird verglichen...wenn was fehlt dann was auch immer und nicht vergessen die Listbox immer aktuell zu halten wenn was geändert wird...

CrashMan

Luckie 19. Sep 2003 17:14

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Schön, "und wenn was fehlt", dann war es für noch_ein_james schon zu spät. :roll:

noch_ein_hannes 20. Sep 2003 20:29

Re: Abfragen ob ein anderes Programm geschlossen wurde
 
Hey CrashMan bzw. Luckie,

...dann ist es zu spät - genau das ist mein Problem.

Gibt es denn wirklich keine Möglichkeit einem "fremden" Programm folgendes mitzuteilen:
"Bevor Du Dich verabschiedest gib mir doch bitte kurz Bescheid!"

...oder noch besser:
"Bevor Du gehst, frag mich duch bitte ob wirklich alles erledigt ist!"

mal gespannt...
hannes


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:01 Uhr.
Seite 1 von 2  1 2      

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