![]() |
Daten austauschen über ProcessID ?
Moin !
Es gibt auf ![]() Der Link zum Code: ![]() Nun hat dieser Code aber einen kleinen Haken aber ich weiss nicht wie ich das ändern kann. Und zwar basiert das Konstrukt darauf, das der Sender den Anwendungsnamen vom Empfänger weiss. Das ist etwas ungünstig, denn wenn man zwei Empfänger mit dem gleichen Namen hat, dann funktioniert das so nicht mehr sauber. Ich suche nun eine Möglichkeit, wie ich den Code so umbauen kann, dass anstatt der Applikationsnamen die PID / PorcessID verwendet wird. Diese ID währe eindeutig und man kann sie ganz einfach über GetCurrentProcessID bestimmen. Kann mir jemand sagen wie ich den Code umbauen muss? :gruebel: |
Re: Daten austauschen über ProcessID ?
Hi,
an dem Problem saß ich auch schon. Ich denke man kann es lösen, indem man den Window-Handle nicht mit FindWindow sucht, sondern mit Hilfe einer Custom-Message zwischen dem Empfänger und dem Sender Prozess austauscht. Man müsste dafür zunächst eine Custom-Message mit RegisterWindowMessage erstellen (als Name für die Message biete sich ein GUID an) und diese vom Sender an alle Prozesse/Fenster abschicken (HWND_BROADCAST). Auf diese Message reagiert natürlich nur der Empfänger und übergibt als Antwortet dem Sender seinen Window-Handle. Jetzt wo der Sender den Window-Handle des Empfängers kennt, steht der Übertragung via WM_COPYDATA eigentlich nix mehr im Wege. Ich denke so sollte es gehen, aber ich hab's noch nich implementiert. Sag mal beschied ob's klappt :???: |
Re: Daten austauschen über ProcessID ?
Moin !
Hmm, also ich bin in diesem ganzen API Kram nicht so fitt, das ich deine Idee in Code umsetzen könnte :roll: Aber trotzdem Danke für die Info. Hat sowas denn noch niemals jemand gemacht? Kann ich ja garnich glauben :gruebel: |
Re: Daten austauschen über ProcessID ?
Hab im Moment keine Zeit, mich darum zu kümmern. Das Studium und so. Aber in der Platform SDK is das eigentlich alles beschrieben. Wenn du dich mal reinliest, krigst du das sicher hin :wink:
|
Re: Daten austauschen über ProcessID ?
Moin !
Aaaalso, wenn ich das nun mal alles zusammenbringe was du sachreibst und was ich gefunden habe, dann könnte es doch so gehen (!?): 1) Wir nehmen den Code hier: ![]() 2) In dieser Broadcast Nachricht packen wir nun mal das Handle der Broadcast-sendenden Anwendung: MyWndHandle := Application.Handle; WndHandle := FindWindow(nil, PChar(Application.Title)); (Ich weiss noch nicht genau welches, aber das is wohl auch nich sooo wichtig im Moment). 3) Der Broadcastempfänger hat nun den Handle und nun sollte es klappen. So und ich hoffe (!?), das passt so zusammen und ich kriege das alles zusammengestrickt :-D |
Re: Daten austauschen über ProcessID ?
Nee, das FindWindow wollten wir doch grad umgehen :wink:
|
Re: Daten austauschen über ProcessID ?
Moin !
Zitat:
Dann ich habe geschrieben: Zitat:
Ich überlege nun nur wie ich das in eine Unit packe. Habe dazu einen neuen Fred: ![]() Kannst du da etwas zu sagen? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:06 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz