Service Application怎么来接收消息?
现在有一程序需要做成Service Application的形式 设定为服务
但程序需要与一DLL进行消息通讯 也就是说要接收来自这个DLL的消息
做成一般的Application的时候可以正常相应 但Service Application没有WndProc的
麻烦各位老大帮忙看看 最好给个小例子
问题点数:100、回复次数:4Top
1 楼sdzeng(大头鸟)回复于 2006-03-04 12:33:33 得分 30
方法一、在Service Application里建一个窗体,
用SendMessage发送消息给窗体,在窗体里有WndProc
方法二、自己写一个消息循环,用GetMessage/PeekMessage检测消息
用PostThreadmessage发送线程消息
具体做法可以看看这篇帖子
http://www.delphibbs.com/delphibbs/dispq.asp?lid=105410
Top
2 楼clasj(★知我☆)回复于 2006-03-04 20:37:52 得分 40
大头鸟果然头大:)
我写了个线程接收消息的例子。
program Project1;
{$APPTYPE CONSOLE}
uses
Windows, Classes, Messages;
type
TMyThread = class(TThread)
public
class function Create: Cardinal;
protected
procedure Execute; override;
end;
{ TMyThread }
class function TMyThread.Create: Cardinal;
begin
with inherited Create(false) do
begin
FreeOnTerminate:=true;
Result:=ThreadID;
end;
end;
{ TMyThread }
procedure TMyThread.Execute;
var
Msg: TMsg;
begin
while GetMessage(Msg, 0, 0, 0) do
WriteLn(Msg.message);
end;
var
ThreadID: Cardinal;
i: integer;
begin
ThreadID:=TMyThread.Create;
Sleep(0); //给一点时间创建线程
for i:=0 to 9 do
PostThreadMessage(ThreadID, i, 0, 0);
PostThreadMessage(ThreadID, WM_QUIT, 0, 0); //结束消息循环(线程也销毁了)
ReadLn;
end.Top
3 楼baiduan(-_-化杯粪喂力量-_-)回复于 2006-03-09 13:21:30 得分 10
过来学习。
大头鸟。。。
九头鸟。。。
论坛都成鸟巢了。Top
4 楼unsigned(僵哥(发站内消息,请附上链接或问题说明,否则不予回复))回复于 2006-03-09 13:25:06 得分 20
使用使用管道、邮槽也可以,或者再笨点的方法可以使用socket,使用文件(监视文件变化)等等,方法多的是了,关键就是看你如果处理。Top




