今天人真少,在线等:键盘被屏蔽了 ;(

boy_mei 2005-01-02 09:10:57
写一个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;
...全文
103 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
newlife2005 2005-01-06
  • 打赏
  • 举报
回复
Svcmgr.Application.CreateForm(TFrmMain, FrmMain);//这句去掉又不行
让这句引导在内存,不使用即可.
terry6394 2005-01-03
  • 打赏
  • 举报
回复
看不大明白你的意思.
帮你up吧
boy_mei 2005-01-02
  • 打赏
  • 举报
回复
在服务创建时
Application.CreateForm(TFrmMain, FrmMain);//加这句键盘可输入!!
{但有上句就变成双图标了....}

ServiceStart(Sender: TService; var Started: Boolean);
begin
Started := True;
Svcmgr.Application.CreateForm(TFrmMain, FrmMain);//这句去掉又不行
...
end;

郁闷啊....

kuki84 2005-01-02
  • 打赏
  • 举报
回复
gz

1,183

社区成员

发帖
与我相关
我的任务
社区描述
Delphi Windows SDK/API
社区管理员
  • Windows SDK/API社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧