Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi Programm "normal" beenden (https://www.delphipraxis.net/147930-programm-normal-beenden.html)

Andidreas 19. Feb 2010 09:27


Programm "normal" beenden
 
hallo zusammen,

programm a wird normal über ein icon auf dem desktop gestartet...
programm a startet automatisch programm b mit...

beim schließen von programm a möchte ich jetzt gern auch programm b schließen aber so das auch die aktionen von OnClose und OnCloseQuery mit ausgeführt werden... also kein terminateprocess ect.

wie macht man das?

haentschman 19. Feb 2010 09:30

Re: Programm "normal" beenden
 
guten Morgen... :hi:

dem Programm B eine Message schicken und dann beendet sich das Programm nach Auswertung selbst ordentlich.

Tyrael Y. 19. Feb 2010 09:30

Re: Programm "normal" beenden
 
Im OnClose von Programm A könntest du eine Nachricht an B schicken mit "Bitte schliesse dich", woaruf er einfach ein ganz normales Close macht.

Die Nachricht dann zB über Pipes oder wie auch immer.

Andidreas 19. Feb 2010 09:32

Re: Programm "normal" beenden
 
wie schicke ich diese "message"?


und muss ich in programm b dann noch irgendwas berücksichtigen?

SirThornberry 19. Feb 2010 09:35

Re: Programm "normal" beenden
 
eine Nachricht sendet man mit SendMessage oder postet sie mit PostMessage. Die Nachricht welche hier interessant sein sollte lautet wm_close

Andidreas 19. Feb 2010 09:51

Re: Programm "normal" beenden
 
ich hab mir mal den befehl von sendmessage angeschaut...
wenn ich den sendmessage befehl im programm a absetze, woher weiß dann programm b das es sich schließen soll? bzw. anders formuliert wie sag ich im sendmessage befehl welches programm geschlossen werden soll?

patti 19. Feb 2010 10:27

Re: Programm "normal" beenden
 
Dazu benötigst du das Handle von Programm B bzw. von dem Hauptformular von Programm B. Als ersten Parameter von SendMessage bzw. PostMessage musst du dann eben das entsprechende Handle angeben. Mit Delphi-Referenz durchsuchenFindWindow könntest du beispielsweise versuchen, das Handle von B zu bekommen.

mfg


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