![]() |
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:
Leider kommt nichts an...Naja, vielleicht finde ich noch was passendes...
//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; |
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. |
Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
Weil ich dazu kein Tut oder brauchbares Beispiel gefunden habe.
|
Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
|
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. |
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. |
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. |
Re: Kommunikation zwischen mehreren eigenen Tools ... Womit?
Zitat:
Zitat:
Zitat:
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? |
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. |
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. |
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