怎样让程序在WINDOWS关闭时,悄然关闭(50分)

  • 主题发起人 主题发起人 光子
  • 开始时间 开始时间

光子

Unregistered / Unconfirmed
GUEST, unregistred user!
本人的一个程序,反复实验接管了WINDOWS的WM_ENDSESSION消息,总是不成功,<br>要么是WINDOWS报告程序没有反映,要么是程序关闭了,但是WINDOWS却没有关闭(用户要选两次关闭系统才能关机)。
 
应该在CLOSE QUERY事件中写代码。 <br>注意处理完之后返回是否同意关闭的BOOL值。如果FALSE,WINDOWS就不关闭了。
 
是否用了 delphi 带来的tcpip通信的控件 TNMxxx ?<br>是的话,换。
 
Pipi 真高,我确实使用了NMUDP、NMFTP等部件,有什么解决办法吗,请一定指导。<br>另外本人的网络编程很一般,对SOCK等东西很害怕。
 
PIPI说了,换!那些NMXXX真TMD破烂!
 
CJ,Pipi 两为高手,怎么换法噻。<br>本人实在害怕自己写FTP、UDP等东西,当然实在没法也只有硬着头皮学,请多指教。
 
pipi又说了,换成ics控件包
 
哈哈,pipi说得就是语录
 
hehe,pipi就是说的队。
 
下面的地址我贴过无数次了,<br>http://www.rtfm.be/fpiette/indexuk.htm<br><br>ics控件,免费,带源码,有socket、ftp、http、pop3、smtp、ping等<br>很多各种控件
 
教你一个办法:<br><br>在主form的onclosequery事件中, 写:<br><br>begin<br>&nbsp; &nbsp; canclose:=true;<br>&nbsp; &nbsp; halt(0);<br>end;<br><br>就可以了.
 
到TNM***的网址下载升级包也是可以的。<br>HALT也是可以的。
 
Application.terminate 试过没有
 
你的程序是否隐藏了主窗体,若是,应在程序终止之前,showe出来,再结束程序,<br>否则就会出现不能正常关闭。<br>
 
非常感谢各位的热心帮助,本人的问题主要是:<br>&nbsp; 我的程序可以关闭,但是WINDOWS无法关闭,需要用户再选择一次关闭系统,<br>因为我处理了WM_ENDSESSION消息的。<br><br>1、HALT的方法是行不通的!我的程序本来就可以关闭。<br>2、大概也与隐藏了的窗口无关!<br>3、NETMASTER不是免费下载的!<br>4、我下载了ICS,但是要使用它和我以前的程序兼容很麻烦,我使用NETMASTER的控件有:TNMUDP、TNMStrm、TNMStrmServ、TNMFTP和TNMFinger。<br>在用ics做那个UDP的时候就感到很为难,它一会要求connect,一会又要求close,还<br>需要listen,TNMUDP发送数据、接收数据无须任何操作,确实方便。我对用ICS来做其<br>他的东西真没多大信心。<br><br>一、我担心是我处理消息的方法没有对,因为我不知道怎样返回值(因为是procedure,<br>不是function)我的程序如下:<br>procedure TMainForm.WMENDSESSION(var msg: TWMENDSESSION);<br>begin<br>&nbsp; Close;<br>&nbsp; inherited;<br>end;<br>请哪位高手写一个随WIN95关闭,自动关闭的程序的例子。<br>二、当然,如果有高手肯定我这是使用了TNMXX控件的问题(不换就没救),我希望能<br>找到一个可以直接解决的办法。
 
确实是使用TNMxxx 的问题,你可以做个试验,新建一个project,什么都不要<br>放上去,只放一个你用了的TNMxxx控件上去,也不需要写任何代码,编译<br>成exe,运行他,就不能退出windows了。<br><br>2年前还是低版的nm控件就有这问题了,当时我也找了一段时间才发现,<br>而且我也是想了很多办法都不能完全解决。后来我就下决心换成了IPWorks,<br>只使用了一小段时间又换成ICS,一直用到现在<br><br>ICS用熟就好了,我现在凡是涉及tcpip我都是用ics
 
是使用TNMxxx 的问题,请看我的主页http://sunhy.126.com<br>种的经验交流.
 
windows关机时使用两阶段协议,先发出WM_QUERYENDSESSION查询是否能关机<br>当所有主窗口都回答yes之后发WM_ENDSESSION结束掉各个程序。可能是<br>你程序中的某个窗口没有回答WM_QUERYENDSESSION所以windows没退出<br>我以前写NotifyIcon组件时碰见这种情况
 
后退
顶部