3

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

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

  1. 为什么?
  2. 我怎样才能解决这个问题?

关于我的应用程序的详细信息:

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

任何想法如何解决它?

PS:我会根据您的要求提供更多详细信息

4

3 回答 3

1

奇怪但几乎完全相同的问题本周困扰着我们

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

  • 删除数据模块解决了这个问题。
  • 删除 NMsmtp 组件解决了该问题。
  • 实施此错误报告中给出的建议解决了我的工作站上的问题,但没有解决另一个问题。

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

很可能,您的情况会有所不同,因此我建议您像我们一样开始从您的项目中剥离所有内容,直到它起作用为止。

于 2010-01-27T16:27:58.723 回答
1

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

于 2010-01-15T10:24:40.823 回答
0

如果应用程序仍在后台工作,这可能会阻止 Windows 关闭。

您可以检查 AutoEndTasks 设置是否已启用,如果未启用则启用它:

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

此致

于 2010-01-15T10:27:06.463 回答