实现服务程序同界面程序进程间通讯(CreateEvent)的奇怪问题 ( 积分: 100 )

  • 主题发起人 主题发起人 zhaojianzhu
  • 开始时间 开始时间
Z

zhaojianzhu

Unregistered / Unconfirmed
GUEST, unregistred user!
//服务程序部分<br>procedure&nbsp;TEService.ServiceStart(Sender:&nbsp;TService;&nbsp;var&nbsp;Started:&nbsp;Boolean);<br>begin<br>&nbsp;&nbsp;FHandle&nbsp;:=&nbsp;CreateEvent(nil,&nbsp;false,&nbsp;False,&nbsp;'myevent');<br>&nbsp;&nbsp;if&nbsp;FHandle&nbsp;=&nbsp;0&nbsp;then&nbsp;begin<br>&nbsp;&nbsp;&nbsp;&nbsp;raise&nbsp;exception.create('');<br>&nbsp;&nbsp;end;<br>&nbsp;end;<br><br>//界面程序代码<br>procedure&nbsp;TForm1.FormCreate(Sender:&nbsp;TObject);<br>begin<br>&nbsp;&nbsp;FHandle&nbsp;:=&nbsp;CreateEvent(nil,&nbsp;false,&nbsp;False,&nbsp;PChar('myevent'));<br>&nbsp;&nbsp;if&nbsp;fhandle=0&nbsp;then<br>&nbsp;&nbsp;&nbsp;&nbsp;showmessage(inttostr(getLastError));<br>end;<br><br>如果服务已经启动的情况下启动界面程序,CreateEvent的返回值是0&nbsp;错误号是5。<br>但如果不启动服务,启动两个同样的界面程序一切正常。
 
应该是安全属性的问题,你看看帮助研究一下CreateEvent第一个参数的设置吧。
 
安全属性设置太复杂了,谁有直接能用的代码
 
后退
顶部