我知道已经有相关的帖子了,但是看不太懂……我需要的很简单:
1. xp系统,如何调用及调用哪个函数才能正常关机关机呢?还有哪些因素会影响调用的成功与否呢?
2. 怎么截获关机的消息并使之在关闭系统前执行一定的代码呢?麻烦各位咯!谢谢!
1. xp系统,如何调用及调用哪个函数才能正常关机关机呢?还有哪些因素会影响调用的成功与否呢?
2. 怎么截获关机的消息并使之在关闭系统前执行一定的代码呢?麻烦各位咯!谢谢!
解决方案 »
- 马上周末了,散点分
- 开工利是,散分,
- 请问如何让页脚紧贴着detailsband的内容?或是实现类似的功能?谢谢
- 我想做一个监控程序,那么如何监控到一个应用程序己经没有响应了???
- 急!!!TQUERY的数据怎样用execel打印出来?
- 毕业设计要交了!急啊!请问fastreport预览时,怎么没有“页面设置”菜单??
- 一个简单的删除目录的问题,请大虾进来(分数不少)?
- 求教:关于Webbrowser控件中网页的打印!
- 马上去应聘了!请问什么是EDI?
- 请教下,下面的DCU是哪个控件里面带的?
- 如何在Delphi中找到控制word文档项目符号和编号的属性?
- 用delphi能不能做出一个像visio的程序(实现visio中的某些功能如画图即可)
Windows9x等所有的窗体都回应了WM_QUERYENDSESSION后,系统会再发WM_ENDSESSION的消息,消息的wparam 参数为是否结束Windows,若TRUE,窗体要马上结束程序,若FALSE则取消关闭Windows的命令,窗体可以照常工作。只要某一窗体在WM_QUERYENDSESSION返回FALSE(不同意关机),WM_ENDSESSION的wparam即为FALSE。而在Windows NT/2000窗体返回WM_QUERYENDSESSION后马上接到WM_ENDSESSION的消息,不用等其它窗体对WM_QUERYENDSESSION的回应。不管在9x、Nt和2000,各Top-level的窗体都可以“一票否决”取消关闭Windows的命令,这样可以确保应用程序的数据不会丢失。自己的程序可以捕捉上述的两个消息.1. 捕捉windows的关机消息
private
procedure winexit(var msg:Tmessage);message WM_QUERYENDSESSION;
...
procedure TForm1.winexit(var msg: Tmessage);
begin
{your code here}
end;
procedure WMQUERYENDSESSION(var Msg: TWMQUERYENDSESSION); message WM_QUERYENDSESSION;
----------------
procedure TForm1.WMQUERYENDSESSION(var Msg: TWMQUERYENDSESSION);
begin
DoSomething; //你的处理
Inherited; //加上这句
end;