AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Daten austauschen über ProcessID ?

Ein Thema von moelski · begonnen am 3. Nov 2005 · letzter Beitrag vom 5. Nov 2005
Antwort Antwort
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#1

Daten austauschen über ProcessID ?

  Alt 3. Nov 2005, 12:17
Moin !

Es gibt auf http://www.swissdelphicenter.ch/ ein bisschen Code mit dessen Hilfe man Daten von einer Anwendung zur anderen schicken kann. Um es vorweg zu nehmen ... Diese Methode ist sicher nicht die beste, aber sie reicht bei unserer Anwendung völlig aus.
Der Link zum Code: http://www.swissdelphicenter.ch/de/showcode.php?id=1242

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?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#2

Re: Daten austauschen über ProcessID ?

  Alt 3. Nov 2005, 13:12
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
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#3

Re: Daten austauschen über ProcessID ?

  Alt 3. Nov 2005, 13:21
Moin !

Hmm, also ich bin in diesem ganzen API Kram nicht so fitt, das ich deine Idee in Code umsetzen könnte Aber trotzdem Danke für die Info.
Hat sowas denn noch niemals jemand gemacht? Kann ich ja garnich glauben
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#4

Re: Daten austauschen über ProcessID ?

  Alt 3. Nov 2005, 13:28
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
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#5

Re: Daten austauschen über ProcessID ?

  Alt 3. Nov 2005, 13:58
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: http://www.swissdelphicenter.ch/torr...ode.php?id=418 und schicken eine Broadcast Message los.
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
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  Mit Zitat antworten Zitat
Benutzerbild von LoRd-MuldeR
LoRd-MuldeR

Registriert seit: 9. Okt 2005
Ort: Somewhere over the Slaughterhouse
132 Beiträge
 
Delphi 7 Professional
 
#6

Re: Daten austauschen über ProcessID ?

  Alt 5. Nov 2005, 14:30
Nee, das FindWindow wollten wir doch grad umgehen
  Mit Zitat antworten Zitat
moelski

Registriert seit: 31. Jul 2004
1.110 Beiträge
 
Delphi 2010 Professional
 
#7

Re: Daten austauschen über ProcessID ?

  Alt 5. Nov 2005, 15:21
Moin !

Zitat:
das FindWindow wollten wir doch grad umgehen
Ja schon, aber du hast meinen Text nicht richtig gelesen
Dann ich habe geschrieben:
Zitat:
packen wir nun mal das Handle der Broadcast-sendenden Anwendung
Aber die Sache hat sich mitlerweile erledigt. Ich habe es im Griff. Der Broadcast geht und die empfangende Anwendung meldet sich auch schon wieder zurück.

Ich überlege nun nur wie ich das in eine Unit packe. Habe dazu einen neuen Fred: http://www.delphipraxis.net/internal...ct.php?t=67321

Kannst du da etwas zu sagen?
Dominik Schmidt
Greetz Dominik

I love Delphi 2007/2010
  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 01:41 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