Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Kommunikation zwischen mehreren eigenen Tools ... Womit? (https://www.delphipraxis.net/98999-kommunikation-zwischen-mehreren-eigenen-tools-womit.html)

torud 5. Sep 2007 11:26

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Ich wollte das ja auch über die Socket-Komponenten lösen, bin aber jetzt dabei mir allen möglichen Code aus dem Forum zusammen zu suchen, mit dem ich das Senden der Nachrichten, welche zu 99% aus Strings bestehen, zu realisieren.

Scheint aber doch nicht sooo einfach wie gedacht, da ich ja erstmal das Handle des Programmes herausfinden muss, welches ich ansprechen will. Dazu habe ich nun Code gefunden. Dann sende ich mit folgendem Code:

Delphi-Quellcode:
//Senden aus Tool A
  TheWindowHandle:=GetWindowHandleByExeName('Programmname.exe');
  if TheWindowHandle = 0 then
    //wenn das programm noch nicht läuft, starte es
    ShellExecute(Application.Handle, 'open' ,PChar((sender as TMenuItem).Hint), nil, nil, sw_ShowNormal);

  wparam:=globaladdAtom(pchar(str_param));
  lparam:=length(str_param);
  SendMessage(TheWindowHandle,WM_User+10,wparam,lparam);
  GlobalDeleteAtom(wparam);


//Empfangen in Tool B
procedure TForm1.Receive(var msg:TMessage);
var s:string;
    l:cardinal;
begin
  ShowMessage('kommt was!');
  SetLength(s,msg.lparam);
  l:=GlobalGetAtomName(msg.wparam,@s[1],msg.lparam+1);
  setlength(s,msg.lparam);
  ShowMessage(s);
end;
Leider kommt nichts an...Naja, vielleicht finde ich noch was passendes...

RavenIV 5. Sep 2007 11:31

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Warum arbeitest Du Dich nicht in die Themen
NamedPipes
MailSlot
ein?

Da brauchst Du dann kein Handle der Applikationen und musst die Tools nicht ständig neu starten.
Du legst eine NamedPipe oder MailSlot an, machst das im anderen Programm bekannt, steckst Daten rein und die kommen automatisch auf der anderen Seite an.

torud 5. Sep 2007 11:32

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Weil ich dazu kein Tut oder brauchbares Beispiel gefunden habe.

mkinzler 5. Sep 2007 11:39

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
http://users.adelphia.net/~rllibby/downloads/pipes.zip
http://assarbad.net/stuff/tutorials/...k_tutorial.pdf
http://www.delphipraxis.net/internal...t.php?p=229531
http://www.delphipraxis.net/internal...ct.php?t=50870

Angel4585 5. Sep 2007 11:52

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Also ich mach meine Kommunikation immer über TCP/IP und gehe einfach davon aus das dies läuft. Hatte bisher auch keine Probs damit.
Da legst du einfach für jedes Prog einen Port fest auf welchem es "wartet", connectest dann und kannst dann ganz einfach Strings senden und empfanegn wie du lustig bist.

torud 5. Sep 2007 12:58

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Danke für die Links.

Ich habe mir mal die Pipes.zip gezogen und die Komponente installiert. Allerdings gibt es absolut keine Doku dazu. Ich habe zwar gefunden, dass man wahrscheinlich Daten mit Write() senden kann, aber die ganzen Parameter, die man da angeben muss, sind für mich schon wieder eine Hürde mehr. Ich mal versuchen überhaupt erstmal eine Verbindung herzustellen...

Vielleicht finde ich ja was...raus.

RavenIV 5. Sep 2007 13:24

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Im gleichen Thread, wo Du die Komponente gefunden hast, ist auch ein Beispielprojekt dabei.

Aber Du kannst NamedPipes auch ohne Komponenten ansprechen.
Dann musst Du halt alles von hand machen, ist aber nicht aufwändig.

Bei Delphi sind bestimmt auch Demo-Projekte zu Pipes dabei.
Ansonsten werden die in jedem besseren Delphi-Buch erwähnt.

torud 5. Sep 2007 13:32

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Zitat:

Zitat von RavenIV
Im gleichen Thread, wo Du die Komponente gefunden hast, ist auch ein Beispielprojekt dabei.

Nein das stimmt so nicht, denn der Link mit dem Download war ein direkter Link auf eine Zip-Datei und die anderen Links waren zu Threads mit diesem Thema aber ohne glückliches Ende, bzw. ein Link zu einer pdf-Datei zum Thema Hooks. Ich habe auch da mal reingeschnuppert, aber das ist mir alles zu hoch. Ich brauche es einfach!

Zitat:

Zitat von RavenIV
Aber Du kannst NamedPipes auch ohne Komponenten ansprechen.
Dann musst Du halt alles von hand machen, ist aber nicht aufwändig.

Das kann ich eben nicht, da es mir da an Kenntnissen mangelt. Ich habe bisher auch KEIN funktionierendes Beispiel gefunden.

Zitat:

Zitat von RavenIV
Bei Delphi sind bestimmt auch Demo-Projekte zu Pipes dabei.
Ansonsten werden die in jedem besseren Delphi-Buch erwähnt.

Auch das ist leider nicht der Fall. Zumimdest ist in meinem Demo-Ordner nichts dazu zu finden.

Ich würde ja gerne die NamedPipes nehmen, aber es funktioniert einfach nicht! Weder mit den Codes, die ich hier im Forum fand, noch mit der Komponente. Bei letzerer weiss ich allerdings nicht, wie man sie einsetzt. Wäre es so einfach wie es aussieht, wäre das schon toll. Ich will doch nur Strings zwischen den Programmen austauschen. Warum ist das soo kompliziert?

RavenIV 5. Sep 2007 13:41

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
Liste der Anhänge anzeigen (Anzahl: 3)
Schau Dir mal die drei angehängten Files an.
Die sollten so eigentlich zusammenpassen.

Hab ich auch hier in DP gefunden, sind also nicht von mir.

hathor 5. Sep 2007 13:43

Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
 
SHARED MEMORY!

Viele Programme, die Daten von Plugins oder anderen Programmen bekommen, arbeiten damit:

MBM, Speedfan, Everest, Samurize, Rainmeter, Rivatuner, LCDsmartie, LCDhype, ATItools etc.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:08 Uhr.
Seite 2 von 4     12 34      

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-2025 by Thomas Breitkreuz