如何向服务发送消息?

时间:2010-06-02 19:27:36

标签: delphi

我们正在尝试开发一个向服务发送消息的应用程序,但我们只在两个应用程序之间发送消息。我们正在开发Delphi 7,Windows XP。

我们需要服务向应用程序发回消息,具体取决于应用程序发送给服务的操作的结果。

嗯,有些人说不可能从应用程序向服务发送消息。因此,我们决定提供两项服务,现在我们必须将消息从一个服务发送到另一个服务。现在,重点是:如何将消息从服​​务发送到另一个服务?

3 个答案:

答案 0 :(得分:13)

您无法向服务发送窗口消息。首先,服务没有自己的UI,更不用说Windows了。其次,即使您将自己的隐藏窗口添加到服务中(实际上,基于Delphi的服务确实具有隐藏的TApplication窗口),也不允许窗口消息通过会话边界(服务在与用户模式不同的会话中运行)应用)。

有许多IPC(进程间通信)机制与服务一起工作 - 命名管道,邮件槽,TCP / IP和UDP套接字,仅举几例。你将不得不使用其中一个。

答案 1 :(得分:7)

我建议使用命名管道。 SO上的某个人已经提供了great example in Delphi(此网站上还有其他示例)

答案 2 :(得分:0)

我将Indy TCP服务器与我的服务一起使用,然后我可以从同一台机器或其他机器进行通信。这是一个很容易补充。我来回发送一条记录,记录的开头告诉服务器什么类型的消息和缓冲区包含什么,反之亦然。

理查德