delphi XE8 开发的服务进程启动后不执行

一本假正经 2017-03-14 12:00:49
按照教程开发了一个服务程序,我写了下面这么多方法,只有ServiceAfterInstall是在安装后执行的,当我在控制面板-服务中启动服务时,也没报错,但就是不执行ServiceStart,ServiceExecute部分,没写一点日志,希望高手能指点一二,谢谢。
ServiceAfterInstall
ServiceContinue
ServiceExecute

begin
Logger.Log('ServiceExecute');
while not self.Terminated do
begin
Sleep(10);
ServiceThread.ProcessRequests(false);
end;
end;

ServicePause
ServiceShutdown
ServiceStart

begin
Logger.Log('ServiceStart');
Started:= True;
Vcl.SvcMgr.Application.CreateForm(TScreenLockForm, ScreenLockForm);
gbCanClose:= false;
ScreenLockForm.Hide;
end;

ServiceStop
...全文
296 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一本假正经 2017-03-16
  • 打赏
  • 举报
回复
我目前的任务中,客户端要和服务端双向通信,客户端有时还需要显示窗口,服务端有配置窗口,因此我觉得服务端和客户端都做普通的exe程序更合适。我原来以为windows服务可以很容易的显示窗口。
santiaodahan 2017-03-16
  • 打赏
  • 举报
回复
引用 6 楼 lbinim 的回复:
@santiaodahan ,那个帖子好复杂,我不想写服务了,就写个普通的桌面程序做服务端,监听端口算了。
服务程序就是相对客户端来说的,它通常运行于后台,没有用户界面。按这种概念来说,服务端最好不添加窗口,客户端与服务实现通信,交互的任务应该由客户端来做。普通的桌面程序也可以实现这些功能。
一本假正经 2017-03-16
  • 打赏
  • 举报
回复
@santiaodahan ,那个帖子好复杂,我不想写服务了,就写个普通的桌面程序做服务端,监听端口算了。
santiaodahan 2017-03-15
  • 打赏
  • 举报
回复
引用 4 楼 lbinim 的回复:
我上面的服务的意图是:创建一个带窗口的服务,这个窗口可以缩成任务栏小图标。 刚查了下,在Xp时代,服务可以带窗口,在Vista和7以后,服务和窗口隔离了,不能再有交互了。Win7下服务和窗口交互,还要再想办法。
把服务的Interactive设置为True就可以交互了。Win7也可以,但是会提示确认,打开一个空白的新Session才是显示对话框。搜索能找到一些解决服务与桌面交互问题的文章。请参考此文章的解决方案: http://www.cnblogs.com/therock/articles/2261371.html
santiaodahan 2017-03-14
  • 打赏
  • 举报
回复
可以正常输出日志。ServiceStart,ServiceExecute中的代码分别对应服务的OnStart、OnExecute事件,你可能只复制了代码没有关联事件,在对象检查器的事件页OnStart、OnExecute下分别选择对应的过程名,这样会在dfm文件中创建事件和方法的关联语句。
一本假正经 2017-03-14
  • 打赏
  • 举报
回复
我上面的服务的意图是:创建一个带窗口的服务,这个窗口可以缩成任务栏小图标。 刚查了下,在Xp时代,服务可以带窗口,在Vista和7以后,服务和窗口隔离了,不能再有交互了。Win7下服务和窗口交互,还要再想办法。
一本假正经 2017-03-14
  • 打赏
  • 举报
回复
up Up UP
一本假正经 2017-03-14
  • 打赏
  • 举报
回复
to:santiaodahan ServiceStart,ServiceExecute中的代码 和对应服务的OnStart、OnExecute事件是对应上的,我可以肯定。 在ServiceAfterInstall代码有写日志的语句,ServiceStart中也有,就是Logger.Log('ServiceStart'); 现在问题是ServiceAfterInstall执行了,而ServiceStart压根就没执行(没看见写日志,所以我判断没执行这里的代码)。好奇怪,不知道哪里出问题了。

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧