我写了一个服务程序,结果发现没有正常运行,什么原因?(请打开查看详细内容)(100分)

  • 主题发起人 主题发起人 ynfly
  • 开始时间 开始时间
Y

ynfly

Unregistered / Unconfirmed
GUEST, unregistred user!
我在delphi7中通过file/new/other/service application方法创建了一个服务程序,<br>然后再用file/new/other/thread object的方法增加了一个线程,然后覆盖了线程的execute事件:<br>代码如下:<br>procedure progThread.Execute;<br>var handle:tHandle;<br>begin<br>&nbsp; { Place thread code here }<br>&nbsp; &nbsp; handle:=findwindow(nil,pchar('计算器'));<br>&nbsp; &nbsp; if handle&lt;&gt;0 then<br>&nbsp; &nbsp; &nbsp; destroywindow(handle);<br>&nbsp; &nbsp; sleep(60000);<br>end;<br><br>然后分别为Tservice添加如下的事件处理<br>procedure TService1.ServiceStart(Sender: TService; var Started: Boolean);<br>begin<br>&nbsp; &nbsp; thread:=tThread.Create(false);<br>&nbsp; &nbsp; Started:=true;<br>end;<br><br>procedure TService1.ServicePause(Sender: TService; var Paused: Boolean);<br>begin<br>&nbsp; &nbsp;thread.Suspend ;<br>&nbsp; &nbsp;Paused:=true;<br>end;<br><br><br><br>procedure TService1.ServiceStop(Sender: TService; var Stopped: Boolean);<br>begin<br>&nbsp; &nbsp;thread.Terminate ;<br>&nbsp; &nbsp;Stopped:=true;<br>end;<br><br>procedure TService1.ServiceContinue(Sender: TService;<br>&nbsp; var Continued: Boolean);<br>begin<br>&nbsp; thread.Resume ;<br>&nbsp; Continued:=true;<br>end;<br><br><br>编译后正常,然后用加参数/install注册到服务上,然后启动该服务,<br>结果我打开计算器程序,发现计算器程序不能被关闭,请问各位高手是什么原因?<br>
 
LocalSystem没有访问用户桌面的权限。<br>你得设置一个本地的用户名与密码,比如administrator,还得允许服务与桌面交互
 
我测试的时候也使用了管理员的身份,但是发现还是不行,但我不清楚你说的"允许服务与桌面交互"是什么意思?请详细描述一下,谢谢!
 
服务中有一个选项,打了勾的才能访问桌面。
 
谢谢先,明天测试
 
太谢谢了!
 
后退
顶部