阅读:1656回复:12
如何在应用程序里知道98正在关机?
就是当98关机的时候,应用程序也要被终止。在应用程序退出前,希望能够得知OS是否正在关闭。谢谢 :(
|
|
沙发#
发布于:2001-12-10 12:47
你可以收到程序关闭消息......只要按正常的步骤处理就行了
|
|
|
板凳#
发布于:2001-12-10 12:51
我的应用程序有些特别,在应用程序退出,OS不退出和OS退出导致应用程序两种情况下有区别。所以我希望在应用程序中知道,OS是否退出。
就是在收到应用程序关闭的消息里判断OS是否退出。 望大侠指教 [编辑 - 12/10/01 作者: mengyy] |
|
地板#
发布于:2001-12-10 14:15
好像OS退出时会发消息给你的。
和自己退出的消息可不一样。 |
|
地下室#
发布于:2001-12-10 14:58
windows退出时,是会发消息给驱动程序的。但是对于应用程序呢?
|
|
5楼#
发布于:2001-12-10 15:16
当OS要关闭时,它会给当前所有打开的应用程序发送一个消息
WM_QUERYENDSESSION,应用程序会处理这个消息并返回一个值以告诉OS它是否同意被关闭;若当前所有的应用程序都同意被关闭,则OS再向所有的应用程序发送WM_ENDSESSION消息关闭所有的应用程序,至系统即可关闭。 |
|
|
6楼#
发布于:2001-12-10 15:18
os关闭的时候给每一个应用程序都发送消息,
好像是WM_QUERYENDSESSION 和 WM_ENDSESSION 一类的 |
|
|
7楼#
发布于:2001-12-10 15:34
那如果OS不退出,只是关闭应用程序,应用程序还能收到这个消息吗?
|
|
8楼#
发布于:2001-12-10 16:22
不会。你查查MSDN即知
那如果OS不退出,只是关闭应用程序,应用程序还能收到这个消息吗? |
|
9楼#
发布于:2001-12-10 16:33
也会发送,你做一个SDK程序测试一下便知。通常的应用程序退出时询问存盘即是利用了响应WM_QUERIENDSESSION消息,如果用户选择取消,则OS不能关闭该应用程序。
|
|
|
10楼#
发布于:2001-12-10 16:49
我的实验结果很奇怪。
在基于Dialog的程序中由主窗口响应这个消息。发现只有在OS退出的时候才响应。如果在单文档程序中的CMainFrame或Cview中响应这个消息。发现该消息在应用程序退出时并不响应,无论 OS是否退出。不知道是怎么会事? |
|
11楼#
发布于:2001-12-10 17:09
非常对不起,我刚才的回答是错误的。MSDN中有说,WM_QUERYENDSESSION 和WM_ENDSESSION消息是在系统或用户调用
ExitWindowsEx()函数时(关闭OS)时发送的两个消息,而应用程序关闭发送的应该是WM_CLOSE 或WM_DESTROY(关闭窗口)消息。你可以看一看MSDN,里面讲得很详细。 |
|
|
12楼#
发布于:2001-12-10 17:14
谢谢大家.我已经解决这个问题了。也不知道怎样给大家加分。不过
我心里真的非常感谢大家。 [编辑 - 12/10/01 作者: mengyy] |
|