我有Delphi应用程序并且我添加了服务,我如何通过主表单按钮安装和启动它?
我可以在单独的项目服务中完成,但我的目标是使服务接口控制它。
由于
答案 0 :(得分:9)
您必须使用Win32 API服务控制功能 - CreateService()
,OpenService()
,StartService()
,ControlService()
等。服务无法显示自己的用户界面在运行时,UI需要作为单独的进程运行。但是,如果需要,可以使用相同的可执行文件托管服务代码和UI代码,使用命令行参数知道何时作为服务运行以及何时作为UI运行。但这更像是一个代码管理问题。您可以轻松地将两个代码库托管在单独的可执行文件中。
答案 1 :(得分:4)
您不能再在同一个应用程序中拥有服务的可视界面。
自Windows Vista及更高版本起,服务在与用户不同的桌面上运行,无法与用户进行直观交互。您需要编写一个单独的应用程序,通过命名管道,邮件槽或其他形式的进程间通信,或通过Windows API提供的service control functions
之一与您的服务进行通信。