操作系统没有关闭,但我的应用程序却关闭了

发布于 2024-08-18 03:44:40 字数 409 浏览 3 评论 0原文

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

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

  1. 为什么?
  2. 我该如何解决这个问题?

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

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

任何想法如何修复它?

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

I have an application which when I close the Windows, it exits gracefully and quickly (checked also in Task Manager and Process Explorer - the process isn't there anymore) but the OS doesn't. It seems that OS just ignores the Shutdown.

But if I try to close once more the Windows, now everything is ok. The system shuts down in a very normal way.

  1. Why?
  2. How can I fix this?

Details about my app:

  • multithreaded
  • has a tray icon
  • doesn't do any special processing of WM_QUERYENDSESSION (or similar) OS messages
  • doesn't have any special driver, DLL hook etc.

Any ideas how to fix it?

PS: I'm at your disposition with and further details upon request

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

〆一缕阳光ご 2024-08-25 03:44:40

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

Do you indeed return TRUE to the WM_QUERYENDSESSION (or similar) OS messages? You might get the message, close the app and return FALSE.

如梦初醒的夏天 2024-08-25 03:44:40

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

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

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

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

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

Strange but almost exactly the same problem bugged us this week.

The application ran in the tray, closed but prevented windows from shutting down. So having been there, I'll share what fixed the problem for us.

  • Removing a datamodule fixed the problem.
  • Removing the NMsmtp component fixed the problem.
  • Implementing the suggestion given in this bug report fixed the problem on my workstation, but not on another.

In the end, we choose to just remove the NMsmtp component for wich we didn't have the source code and changed to using Indy.

Most likely, your situation will differ therefore I'd suggest you do like we did and start stripping everything from you project until it works.

好多鱼好多余 2024-08-25 03:44:40

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

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

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

最好的问候

If the application still doing work on the background this could be prevent Windows to shutdown.

You could check if the AutoEndTasks settings are enabled and enabled it if not :

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

Best Regards

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文