有点难度,关机查询。 Delphi / Windows SDK/APIhttp://www.delphi2007.net/DelphiAPI/html/delphi_20061128044645159.html
系统在关机时,会一个一个应用程序处理。
我希望在程序中,可以用API或别的方式查询,当前是否进入关机过程中。虽然我的程序还没有收到关机的通知,因为还在处理别的程序。
关机时有些程序会出现结束任务,取消的提示对话框
我想应该是处理系统关机消息,结束本程序处理工作,相当于结束一个服务
没有明白你的意思。
关机是有消息的,你的程序可以在接收到关机消息时候,如果不想关机,可以处理这个消息不让关机。
嘿嘿 师傅就是师傅~~ 上次不是我做的那个也是关机的么 既然处理消息获取不到的话 那就按你上次做的那样 用关机特权来强制处理 不可以么~~
关机或Logff后,Windows会传依序送出WM_QUERYENDSESSION的信息给每个Process,如果中间有一个Process不能顺利结束(例如:Word修改后未存档,而出现是否存档,但我们按取消),这时该信息执行的结果会传回False(0),这时Windows也就不再继续送WM_QUERYENDSESSION给下一个Proccess。反之,如果所有的Process都可以顺利结束(也就是每个送出的WM_QUERYENDSESSION都传回True),那才代表以以顺利结束。
关机是会收到消息。
可是我希望在收到消息之前能够提前检测到,而不是等待消息到来。
注意:我并不想阻止关机。
因为运行程序较多的时候,关机过程很慢,特别是有的程序可能在结束时会大量占用CPU时间,也许要好几秒以后我的程序才会收到消息。
如果能解决,另贴送200分。
可是我希望在收到消息之前能够提前检测到,而不是等待消息到来。
-----------------------------
觉得这个可能比较难,因为在关机消息来之前,除非电脑操作的人知道要不要关机(意外情况除外)。
我觉得可以通过变通的方法解决:接收到关机消息,先阻止,不让关机,先处理你程序,等处理完成后,由你的程序负责强制关机。
不知道还有没有其它办法,看看楼下的怎么解决。
大哥...你这个....
违背了消息机制吧??
楼上说的还在理
还有可能实现
LZ的想法....
不可能....晤.....应该是不可能的
无解。