R real2001 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-25 #1 只要我的程序开启着,系统就无法注销/重启/关机了.代码太多了,现在检查不出来具体是哪里出了问题,通过拦截WM_QUERYENDSESSION消息处理,也无济于事....郁闷啊.
K kk2000 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-25 #2 http://www.delphibbs.com/delphibbs/dispq.asp?lid=3521897 看看我的解决方法吧!哈哈 . 主要是你自己的代码做怪,你就在 拦截WM_QUERYENDSESSION 这个消息里面释放可能造成无法注销/重启/关机 的对象就可以了。
http://www.delphibbs.com/delphibbs/dispq.asp?lid=3521897 看看我的解决方法吧!哈哈 . 主要是你自己的代码做怪,你就在 拦截WM_QUERYENDSESSION 这个消息里面释放可能造成无法注销/重启/关机 的对象就可以了。
R real2001 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-25 #3 to kk2000:关键是它根本没有执行.以下是我的测试代码: procedure CheckWinClose(var mymsg: Tmessage); message WM_QUERYENDSESSION; procedure TMainForm.CheckWinClose(var MyMsg: Tmessage); begin ShowMessage('WinClose'); //没有看到这个对话框 MYMsg.Result := 1; Application.Terminate; end; 请问这样测试有效吗?
to kk2000:关键是它根本没有执行.以下是我的测试代码: procedure CheckWinClose(var mymsg: Tmessage); message WM_QUERYENDSESSION; procedure TMainForm.CheckWinClose(var MyMsg: Tmessage); begin ShowMessage('WinClose'); //没有看到这个对话框 MYMsg.Result := 1; Application.Terminate; end; 请问这样测试有效吗?
R real2001 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-25 #4 谢谢kk2000的回答.呵呵,找出问题了,跟你说的一样,但测试时为什么没有拦截到WM_QUERYENDSESSION消息,不知道怎么回事了.不过现在不用它了就不去研究它了. [8D]
K kk2000 Unregistered / Unconfirmed GUEST, unregistred user! 2006-08-25 #5 不会吧! 要不然你在FormCloseQuery 事件里面做你要释放的对象看看。 我的消息拦截是可以的。