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 [gelöst]Datenaustausch zw 2 Instanzen der gleichen Anwendung (https://www.delphipraxis.net/111747-%5Bgeloest%5Ddatenaustausch-zw-2-instanzen-der-gleichen-anwendung.html)

rollstuhlfahrer 8. Apr 2008 19:31


[gelöst]Datenaustausch zw 2 Instanzen der gleichen Anwendung
 
HI DPler,

ich hab ein Programm geschrieben, dass sich nur 1x öffnen lassen soll. Den 2. Start kann ich auch schon abfangen. Jetzt will ich, dass alle Parameter, die an die 2. Instanz übergeben werden, an die erste Instanz übergeben werden. Bis vor kurzen hatte ich ein MemFile dazu benutzt. Der Test mit DDE war zwar erfolgreich, blieb aber in einem Speicherüberlauf hengen, weil ich am ende nicht 2 Instanzen hatte, sondern weit über 20. Ich hab mir überlegt, dass man ja ganz einfach mit SendMessage eine Anweisung an ein anderes Fenster schicken kann. Die Frage ist jetzt nur: Wie kann ich das Fenster der ersten Instanz (Achrung: Zu diesem Zeitpunkt laufen 2) richtig identifizieren??

rollstuhlfahrer

mkinzler 8. Apr 2008 19:36

Re: Datenaustausch zwischen 2 Instanzen der gleichen Anwendu
 
Man könnte die erste Instanz als eine Art Master nehmen. Der die Kommunikation der Clients koordiniert.

Arnulf 8. Apr 2008 19:39

Re: Datenaustausch zwischen 2 Instanzen der gleichen Anwendu
 
ganz verstehe ichs nicht
du sendest jetzt mit sendmessage - ich nehme an wm_copydata oder ählichem an deine andere instanz infos.
nagut soweit.
Aber wenn du nur eine instanz laufen haben willst, dann hast du ja maximal 2 instanzen von deinem program oder?

dann ist es ja einfach du kannst dir ja mit deinem eigenen window handle abfragen welche programm id du hast und damit das andere programm identifizieren.

oder hab ich was nicht verstanden?

lg
Arnulf

rollstuhlfahrer 9. Apr 2008 18:43

Re: Datenaustausch zwischen 2 Instanzen der gleichen Anwendu
 
hi,

ich hab das Problem jetzt gelöst. Zuerst hol ich mir die ProzedID der 1. Instanz und daraus den Handle des Hauptfensters. So kann ich dann die nachrichten richtig adressieren und sie kommen auch alle sicher an.

Des Code fürs Hauptfenster hab ich von hier.

rollstuhlfahrer


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