我可以截取/检测关闭PC并首先执行操作的请求吗?

时间:2017-07-19 07:53:59

标签: c++

这可能是一个“边缘”案例,但我真的很感激如何实现这个目标。

我已经建立了一个“水果机”柜,其中安装了一台可以运行一些水果机仿真软件的PC。 PC不容易访问,所以我安装了一个“物理”电源开/关按钮,方便触及,连接回PC上的电源开关。

我已经设置了Windows 7高级电源设置,以便此按钮可以打开/关闭电脑。

到目前为止,非常好......不幸的是,当关闭系统电源时会挂起“模块mfme.exe中地址007352BB的访问冲突。读取地址0000006c”消息(mfme.exe是模拟该模块的软件水果机)。

我想到的一个可能的解决方案是编写一个在后台运行的小应用程序,然后“拦截”断电触发器,在PC继续关闭之前先杀死mfme.exe进程。

这可能吗?

2 个答案:

答案 0 :(得分:2)

当系统即将关闭时,具有窗口和消息队列的应用程序会通过WM_QUERYENDSESSIONWM_ENDSESSION消息接收关闭通知。

处理WM_ENDSESSION消息以进行清理,但不要担心释放内存或内存系统资源;只做真正需要的事情(刷新和关闭文件f.e.)。系统将关闭,释放内存或其他不持久的系统资源是没有意义的。

答案 1 :(得分:0)

我有一个问题的解决方案。我要接受'他们的答案严格回答了我在C ++框架内提出的问题。

但是,我已经找到了一个替代解决方案,我将在这里发布这个解决方案,为将来某个人提供另一种实现相同目标的方法。

以下说明基本上将PC设置为“强制关机”。在关机时没有任何提示等的一切。

1.Press" Window + R"要启动的键"运行"对话框和类型" gpedit.msc"在对话框中。

2.点击"确定","本地组策略编辑器"窗口会弹出。

3.Navigate to" Computer Configuration" - > "管理模板" - > "系统" - > "关机选项"。双击"关闭阻止或取消关闭的应用程序的自动终止"在右侧面板上。在弹出的新对话框中,将配置选项设置为"启用"。

4.下次关闭机器时,机器将直接关闭,无需提示。

感谢大家的帮助。 :)