操作系统不会关闭,但我的应用程序会关闭

时间:2010-01-15 10:17:24

标签: windows delphi winapi shutdown

我有一个应用程序,当我关闭Windows时,它会优雅而快速地退出(也可以在任务管理器和进程资源管理器中检查 - 此过程不再存在)但操作系统不会。操作系统似乎只是忽略了关机。

但如果我再次尝试关闭Windows,现在一切正常。系统以非常正常的方式关闭。

  1. 为什么?
  2. 我该如何解决这个问题?
  3. 有关我的应用的详细信息:

    • 多线程
    • 有一个托盘图标
    • 对WM_QUERYENDSESSION(或类似)操作系统消息进行任何特殊处理
    • 没有任何特殊的驱动程序,DLL挂钩等。

    任何想法如何解决?

    PS:我会根据您的要求处理并提供进一步的详细信息

3 个答案:

答案 0 :(得分:1)

您确实将WM_QUERYENDSESSION(或类似)操作系统消息返回TRUE吗?您可能会收到消息,关闭应用程序并返回FALSE。

答案 1 :(得分:1)

奇怪但几乎完全相同的问题本周给我们带来了麻烦

应用程序在托盘中运行,关闭但阻止窗口关闭。所以,在那里,我将分享为我们解决问题的原因。

  • 删除数据模块解决了问题。
  • 删除NMsmtp组件解决了问题。
  • 实施this bug report中给出的建议解决了我工作站上的问题,但没有解决另一个问题。

最后,我们选择删除NMsmtp组件,因为我们没有源代码并改为使用Indy。

最有可能的情况是,你的情况会有所不同,因此我建议你像我们一样做,并开始剥离你投射的所有内容直到它工作。

答案 2 :(得分:0)

如果应用程序仍在后台运行,则可能会阻止Windows关闭。

您可以检查是否启用了AutoEndTasks设置,如果没有,则启用它:

http://technet.microsoft.com/en-us/library/cc978604.aspx

最好的问候