如何截获系统关机的请求?(50分)

  • 主题发起人 主题发起人 wein
  • 开始时间 开始时间
W

wein

Unregistered / Unconfirmed
GUEST, unregistred user!
如何截获exitwindows或exitwindowsex发出的WM_QUERYENDSSION消息,并请求等待?
 
procedure wmqueryendssion(var msg:Twmqueryendssion);message WM_QUERYENDSSION;<br><br>procedure wmqueryendssion(var msg:Twmqueryendssion);<br>begin<br>...<br>end;<br><br>
 
方法很多<br>(1)放一个ApplicationEvent,在OnMessage中<br>procedure TForm1.ApplicationEvents1Message(var Msg: tagMSG;<br>&nbsp; var Handled: Boolean);<br>begin<br>&nbsp; if Msg.message = WM_QUERYENDSESSION then<br>&nbsp; &nbsp; PeekMessage(Msg,Msg.Hwnd,0,0,PM_REMOVE);//换成你要做的<br>&nbsp; inherited;<br>end;<br>(2)<br>关机时会激发Form的OnCloseQuery,设置CanClose可以决定是否关机。
 
小生刚学delphi,能不能讲详细一点!!
 
tomboy讲的已经很详细了,在tform的声明里加入<br>procedure wmqueryendssion(var msg:Twmqueryendssion);message WM_QUERYENDSSION;<br>然后<br>procedure wmqueryendssion(var msg:Twmqueryendssion);<br>begin<br>...//你所需要的内容!!!!<br>end;<br>
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
873
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部