N'Abend,
habe mir soebend die
Pipe.pas runtergeladen (
www.delphipraxis.net...og-uerrorlog_149.pas), aber leider keine Demo gefunden. Das Ganze läuft bei mir in einer Konsolen-Andwendung. Hier mein Code:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58:
| program WaitProjector;
{$APPTYPE CONSOLE}
uses Windows, Messages, SysUtils, Classes, Pipes in '..\WaitServer\Pipes.pas';
type TPipeEventHandler = class(TObject) public procedure OnPipeConnect(Sender: TObject; Pipe: HPIPE); procedure OnPipeMessage(Sender: TObject; Pipe: HPIPE; Stream: TStream); procedure OnPipeSent(Sender: TObject; Pipe: HPIPE; Size: DWORD); end;
var Msg: TMsg; PSHandler: TPipeServer; PEHandler: TPipeEventHandler; Test: integer = 0;
procedure TPipeEventHandler.OnPipeConnect(Sender: TObject; Pipe: HPIPE); begin Test:= 1; end;
procedure TPipeEventHandler.OnPipeMessage(Sender: TObject; Pipe: HPIPE; Stream: TStream); begin Test:= 2; end;
procedure TPipeEventHandler.OnPipeSent(Sender: TObject; Pipe: HPIPE; Size: DWORD); begin Test:= 3; end;
begin PeekMessage(Msg, 0, WM_USER, WM_USER, PM_NOREMOVE);
PSHandler:= TPipeServer.CreateUnowned; PEHandler:= TPipeEventHandler.Create;
PSHandler.PipeName:='WaitServer'; PSHandler.OnPipeConnect:= PSHandler.OnPipeConnect; PSHandler.OnPipeMessage:=PSHandler.OnPipeMessage; PSHandler.OnPipeSent:= PSHandler.OnPipeSent; PSHandler.Active:= true;
while true do begin while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do DispatchMessage(Msg); writeLn(inttostr(Test)); end; end. |
Der Client (von hier abgeschrieben
stackoverflow.com/qu...i-program-to-another) schickt die Nachricht und der Server verbindet sich auch mit dem Client, aber keines der Events wird ausgelöst. Hat jemand eine Idee wie es funktionieren könnte?
Viele Grüße
Littleben