请问我如何在service中接受消息。(100分)

  • 主题发起人 主题发起人 djjsl
  • 开始时间 开始时间
D

djjsl

Unregistered / Unconfirmed
GUEST, unregistred user!
一个form可以通过
Tform.wndproc(var message: Tmessage);
的方式接收消息,现在我建了一个service application,里面有start等等,
但没发现有wndproc之类,请问如何办。
还有就是它的hande我怎么知道,form中直接用self.handle就行了,在这种
service application中怎么办呢?
 
那位兄台提个思路也行。
不知道在service里面用AllocateHWnd得到一个默认的窗口行不行,不过好像应该有更好的
办法
 
我也遇到同样的问题。。。。
 
各位,帮个忙好吗,难道做这种应用的人很少吗?
 
简单,在service里建一个隐含窗口
 
谢谢urus,请问还有没有别的办法?
我觉得service应该由什么机制来获得消息,有人知道吗?
 
我想到的方法:
1.可以把 service 程序作为 com服务器,通过借口协议来发送消息.
2.可以通过系统信号量内核对象.
3.可以在注册表中记录service对象的服务程序的服务线程的
ThreadID,在此线程里建立消息循环,然后客户端通过PostThreadMessage函数
发送消息.
 
强,请问第三种方法中的“在此线程里建立消息循环”如何做,vcl控件有defaulthandle,
wndproc等等来接获消息,这个线程里建立消息循环该如何建立?
 
多人接受答案了。
 
var
Msg: TMSG;
......
while(GetMessage(Msg,Handle,0,0))do
begin
` if Msg.message = Message 1 then
......
end;
 
后退
顶部