写一个NT服务程序,其中用了响应系统关机等几个消息,这下可好,在弹出的界面中
EDIT框不能输入了,界面可以响应鼠标消息,就是不能用键盘输入!请高人帮看一下,也许难者不会,会者不难..... procedure TrayIconMessage(var Msg: TMessage); message WM_TrayIcon;
procedure SysButtonMsg(var Msg: TMessage); message WM_SYSCOMMAND;
procedure HandleWinExit(var Msg: TMessage); message WM_QUERYENDSESSION;...
procedure TFrmMain.TrayIconMessage(var Msg: TMessage);
begin
if (Msg.LParam = WM_LBUTTONDBLCLK) then
Show()
else
inherited;
end;procedure TFrmMain.SysButtonMsg(var Msg: TMessage);
begin
if (Msg.wParam = SC_CLOSE) or
(Msg.wParam = SC_MINIMIZE) then Hide
else inherited; // 执行默认动作
end;procedure TFrmMain.HandleWinExit(var Msg: TMessage);
begin
//截系统关机消息
// inherited;
// if msg.WParam = WM_QUERYENDSESSION then {用了这两句,也不行,而且系统关机,服务关不了,不能关机,非要手工停下服务后才行}
Msg.Result:=1;
end;
EDIT框不能输入了,界面可以响应鼠标消息,就是不能用键盘输入!请高人帮看一下,也许难者不会,会者不难..... procedure TrayIconMessage(var Msg: TMessage); message WM_TrayIcon;
procedure SysButtonMsg(var Msg: TMessage); message WM_SYSCOMMAND;
procedure HandleWinExit(var Msg: TMessage); message WM_QUERYENDSESSION;...
procedure TFrmMain.TrayIconMessage(var Msg: TMessage);
begin
if (Msg.LParam = WM_LBUTTONDBLCLK) then
Show()
else
inherited;
end;procedure TFrmMain.SysButtonMsg(var Msg: TMessage);
begin
if (Msg.wParam = SC_CLOSE) or
(Msg.wParam = SC_MINIMIZE) then Hide
else inherited; // 执行默认动作
end;procedure TFrmMain.HandleWinExit(var Msg: TMessage);
begin
//截系统关机消息
// inherited;
// if msg.WParam = WM_QUERYENDSESSION then {用了这两句,也不行,而且系统关机,服务关不了,不能关机,非要手工停下服务后才行}
Msg.Result:=1;
end;
解决方案 »
- 打开文件异常现象帮我看看!
- 各位高手,我想问问在delphi中如何搜索已知文件名的文件,谢谢!
- CreateOleObject('Excel.Application');出错,错误提示是'不支持此接口'
- 刷卡程序,关于焦点问题
- 在线等,请教!把Delphi的应用程序转换为ActiveForm组件后,主菜单没有了,怎么办?
- Delphi+word??? 送分。。。
- ADO连!远程ACCESS库,connectionstring:='Driver= {Microsoft Access Driver (*.mdb)};DBQ=http://ipaddress/dbname.mdb',不行,是程序
- DEV控件的安装问题
- DbGrid中如何自动添入数据???
- 我需要 完整的SWFLASH.OCX这个控件的帮助文件.能帮忙吗 ?
- 各位知道大庆怎么样吗?要到那去了,郁闷:(
- 请问各位高手服务器windows2000server启动后但未登陆再这种情况下怎样才能将让客户端连接中间层?
Application.CreateForm(TFrmMain, FrmMain);//加这句键盘可输入!!
{但有上句就变成双图标了....}ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := True;
Svcmgr.Application.CreateForm(TFrmMain, FrmMain);//这句去掉又不行
...
end;郁闷啊....
让这句引导在内存,不使用即可.