使用命名管道从Windows Service到Delphi中的GUI前端进行通信

时间:2019-05-24 12:31:25

标签: delphi named-pipes delphi-10.3-rio

我正在使用Russell Libby的Pipes.PAS单元来促进使用命名管道的两个程序之间的通信。我做了一个使用一个服务器(带有GUI的VCL程序)和一个可以多次启动的客户端(也就是VCL)的工作示例,我可以在它们之间来回通信。

但是,当我在Windows服务中运行相同的服务器代码时,可以看到客户端正在连接该服务(我登录到文本文件),但是当服务广播一条消息时,该消息将由客户端读取),则客户端没有任何反应。

要使命名管道从Windows服务运行到前端GUI程序,是否需要做一些特殊的事情?

我按如下所示构造服务器管道:

  Pipe:=TPipeServer.Create(Self);
  Pipe.Name:='Pipe';
  Pipe.OnPipeMessage:=PipePipeMessage;
  Pipe.OnPipeConnect:=PipePipeConnect;
  Pipe.OnPipeDisconnect:=PipePipeDisconnect;
  Pipe.PipeName := 'Service';
  Pipe.Active:=TRUE;

和客户端:

  Pipe:=TPipeClient.Create(NIL);
  Pipe.Name:='Pipe';
  Pipe.MemoryThrottle:=10240000;
  Pipe.PipeName := 'Service';
  Pipe.OnPipeMessage:=PipePipeMessage;

但是我从不执行PipePipeMessage的代码。

我想念什么吗?就像我说的那样,Connected中的服务器端代码已执行,因此建立了连接...

0 个答案:

没有答案