Danke, aber so ganz steige ich da noch nicht durch.
Ich habe meinen Dienst und der Soll Daten senden. Die Funktionen des Dienstes sind in einem Thread. Ich habe die
unit pipes in mein Projekt eingebunden. und nun habe ich folgendes gemacht
Delphi-Quellcode:
constructor TMThread.Create(CreateSuspended: Boolean);
begin
inherited Create(CreateSuspended);
Priority := tpLowest;
//PipeLine erzeugen
MultiServerPipe:=TMultiServerPipe.Create('DienstAktuell');
end;
und an der Stelle, an der er nun Daten senden soll, z.B. welches Programm er startet da kommt dann was hin? Programm ist die Variable, die das aktuell auszuführende Programm enthält. Was muss statt BuffSize in dem Aufruf stehen? Und das Write bekomme ich auch nicht aufgelistet, wenn ich den Punkt mache.
MultiServerPipe.Write(Programm, sizeof(Programm), BuffSize);
Und mein anderes Programm soll diese Nachricht dann in seiner Oberfläche anzeigen. Dazu brauche ich dann ein TClientPipe. Das erzeuge ich z.B: im OnActivate-Ereignis mit?:
ClientPipe.Create('DienstAktuell');
Bei der Create-Methode will er aber noch einen Parameter haben, FSecurityAttributes.
Und wie lese ich dann, was der Dienst gesendet hat? Und was muss dann bei Sender und ServerPipe stehen? Buffer enthält den gesendeten Text und BuffSize die Grösse des Textes.
ClientPipe.OnReadData(Sender: TObject; ServerPipe: TAbstractPipe; Buffer: Pointer; BuffSize: DWord);