用UDP的程序不退出的话会不让WINDOWS关机?(又问:如何用UDP传文件等) 我的程序用到UDP组件,当这个程序未关掉时,无法注销和关掉WINDOWS(9X、NT),连DELPHI提供的那个UDP的例子也有这毛病,如何解决?我没多少分,所以再问问如何用UDP在网上传文件?如何得到对方机器目录、文件列表?如何把程序做成WINDOWS(NT)的服务,即显示不出其窗体(隐藏窗体也行)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我的程序用到UDP组件,当这个程序未关掉时,无法注销和关掉WINDOWS(9X、NT),连DELPHI提供的那个UDP的例子也有这毛病,如何解决?拦截windows的关机消息procedure WMQueryEndsession(Var Msg:TMessage);Message WM_QueryEndSession;procedure Tclient.WMQueryEndsession(var Msg: TMessage);begin Msg.Result := 1; client.close; //退出自己的程序end;UDP在网上传文件?要装客户端才行 谢谢过客,等解决了这个问题我分都给你都行.但,怎么就UDP程序有这个问题呢?我其他DELPHI程序都会在关机时被WINDOWS自动关掉,是不是一用到网络组件就不会自动断开?那QQ之类的软件莫非都是拦截WINDOWS的关机消息?再请教一下关机和注销消息是一个吗,如何考虑全面?既然用到UDP了,当然会有客户端,我想知道原理和代码.请大家不吝赐教. 我觉得用UDP传文件不好UDP只管传,数据丢了怎么办?传字符还能好点,丢了丢了吧(所以QQ老是容易丢包)你传文件,丢了个包,文件就不能用了呀! 主要是第一个问题,就是用了UDP怎么就关不了WINDOWS呢?除了用拦截windows消息解决,是不是UDP自己有什么设置? 这是UDP空间的一个BUG,只要你在FORM.CLOSEQUERY中将UDP.FREE就可以了.也就是程序关闭的时候关闭手动释放UDP空间就可以了. 其实DELPHI7中的INDY控件很好用啊. 我都没听说过indy控件,只用过DELPHI4、5、6,我感觉6启动非常慢,也许是我机器慢吧(C366)。FORM.CLOSEQUERY是什么事件?程序关闭的时候关闭手动释放UDP空间?我要是手动,就把程序关了就行了,就没有这个问题了. FORM.CLOSEQUERY是关闭确认事件。FORM.CLOSEQUERY(SENDER:TOBJECT;CANCLOSE:BOOLEAN)Begintry Udp.free;finally canclose:=true;end;end;这样就可以正常关机了。 谢谢缥缈兄,试了一下,果然好用(我还试了在FORM.CLOSE中加UDP.FREE,果然不好用)。INDY控件在DELPHI6中就有,但我最先接触的就是UDP,所以什么都UDP了,浏览的许多DELPHI教材上也没说过INDY控件,听你说后在DELPHI中看了一下,果然功能挺多,再谢。过客兄拦截消息的办法,如果程序在windows置最前的话,在关机时只会关掉程序,仍然不会关机,但若程序不在最前(比如说已最小化),就可以顺利关机了。API我不会,消息什么的可能再简单设一下就可以了吧,这里也谢谢过客兄。来CSDN的第一个问题就这样被解决了,甚激动,以后往二位继续指教。问题二:如何能做成WINDOWS NT的服务?或在NT下用CTRL+ALT+DEL键(任务管理器)也看不到我的程序? 求教一个类似腾讯挂机积分的思路。 请问用idtcpserver做服务器时,在客户端连接的情况下怎么关闭服务器?老是会出错 Delphi和PB在数据库开发方面比较? 怪问题,不能隐藏窗口. 如何在word中选择表格并合并? Delphi7 Rave做主从报表所遇见的问题,请指教! 如何取到鼠标单击DBGrid表中这一行相应字段的值? 关于数字签名。。 哪儿有这样的软件下载?请Delphi同好者进。 摄像头 图像识别 图像分析算法 用indy编写发送邮件,发送显示成功,但在邮箱里收不到,怎么回事啊? 用API函数读写串口失败的问题,在线等待~
拦截windows的关机消息
procedure WMQueryEndsession(Var Msg:TMessage);Message WM_QueryEndSession;
procedure Tclient.WMQueryEndsession(var Msg: TMessage);
begin
Msg.Result := 1;
client.close; //退出自己的程序
end;
UDP在网上传文件?要装客户端才行
但,怎么就UDP程序有这个问题呢?我其他DELPHI程序都会在关机时被WINDOWS自动关掉,是不是一用到网络组件就不会自动断开?那QQ之类的软件莫非都是拦截WINDOWS的关机消息?
再请教一下关机和注销消息是一个吗,如何考虑全面?既然用到UDP了,当然会有客户端,我想知道原理和代码.请大家不吝赐教.
FORM.CLOSEQUERY是什么事件?程序关闭的时候关闭手动释放UDP空间?我要是手动,就把程序关了就行了,就没有这个问题了.
FORM.CLOSEQUERY(SENDER:TOBJECT;CANCLOSE:BOOLEAN)
Begin
try
Udp.free;
finally
canclose:=true;
end;
end;
这样就可以正常关机了。
INDY控件在DELPHI6中就有,但我最先接触的就是UDP,所以什么都UDP了,浏览的许多DELPHI教材上也没说过INDY控件,听你说后在DELPHI中看了一下,果然功能挺多,再谢。过客兄拦截消息的办法,如果程序在windows置最前的话,在关机时只会关掉程序,仍然不会关机,但若程序不在最前(比如说已最小化),就可以顺利关机了。API我不会,消息什么的可能再简单设一下就可以了吧,这里也谢谢过客兄。来CSDN的第一个问题就这样被解决了,甚激动,以后往二位继续指教。
问题二:如何能做成WINDOWS NT的服务?或在NT下用CTRL+ALT+DEL键(任务管理器)也看不到我的程序?