我正在使用C++/x86 asm制作RPG游戏.我的问题与C++组件有关.在C++/win32中,我如何检测计算机是关闭还是关闭,或者其他什么 - 以便我可以保存游戏会话.我的游戏有一个"保存"选项,但如果用户或其他程序决定关闭计算机,我如何通过某种API挂钩检测到这一点,这样我就可以立即将游戏会话保存到文本文件中.
现在请不要建议一个选项,通过创建一个被动运行的线程,因为我想保持文件大小最小,所以如果你可以建议某种WM_钩子,这将是伟大的.我会参考MSDN,但我不想通过他们的WM目录搜索数小时.
小智 6
您可以处理会话保存以响应WM_ENDSESSION消息.请注意,在处理完消息处理程序返回之后,您的进程可能随时终止,因此您需要在消息处理程序期间直接保存它,而不仅仅是设置一个标志以让稍后的代码处理保存,因为稍后代码可能无法执行.
评论建议WM_QUERYENDSESSION消息.这有一个略微不同的含义:它使应用程序有机会抱怨会话结束,并为用户提供不注销/关闭系统的机会.根据你的问题,你无意阻止任何这样的事情,所以WM_ENDSESSION似乎更适合我.