2

我有 Delphi 应用程序,我向它添加了服务,我如何通过主窗体按钮安装和启动和停止它?

我可以在单独的项目服务中做到这一点,但我的目标是为服务制作接口来控制它。

谢谢

4

2 回答 2

9

您必须使用 Win32 API 服务控制函数 - CreateService()OpenService()StartService()ControlService()等。服务在运行时无法显示自己的 UI,UI 需要作为单独的进程运行。但是,如果您愿意,可以将服务代码和 UI 代码托管在同一个可执行文件中,使用命令行参数来了解何时作为服务运行以及何时作为 UI 运行。但这更多是代码管理问题。您可以轻松地将两个代码库托管在单独的可执行文件中。

于 2013-03-28T00:35:22.620 回答
4

您不能再在同一个应用程序中为您的服务提供可视化界面。

从 Windows Vista 及更高版本开始,服务在与用户不同的桌面上运行,并且无法与用户进行视觉交互。您需要编写一个单独的应用程序,该应用程序通过命名管道、邮槽或某种其他形式的进程间通信或通过service control functionsWindows API 可用的一种方式与您的服务进行通信。

于 2013-03-28T00:12:57.077 回答