如何在用户注销或关闭Windows时延迟关闭应用程序?

时间:2010-06-15 17:44:00

标签: c# windows dialog system-shutdown

我正在编写一个从启动到关闭的后台运行的应用程序,在某些情况下,我需要应用程序显示一个对话框,供用户选择是否继续关闭。此应用程序仅在Windows上运行,但可能在2000年以后的任何版本上运行。

虽然我确实对该主题进行了一些研究,但有关窗口处理应用程序关闭方式的信息(http://msdn.microsoft.com/en-us/library/ms700677(VS.85).aspx)似乎有点分散。如果有人有一个处理这个问题的最佳方法的例子,或者有关该主题的其他知识,我将非常感激(我对C#的经验很少)。

谢谢!

badPanda

编辑:我知道阻止关机并不是一种好习惯。这是该应用程序的关键业务要求。

编辑:根据以下几位评论员的建议(重新设计以便不需要阻止关机),我使用NotifyIcon Balloon弹出窗口通知用户在应用程序发送数据时不要关闭。虽然这可能不会阻止数据在本地计算机上持续数周,但我觉得这是最佳实践和业务需求之间的良好折衷。毕竟,如果用户将是愚蠢的...好吧,用户将是愚蠢的。

2 个答案:

答案 0 :(得分:2)

嗯,您链接的MSDN文章清楚地解释了它:如果您的应用程序在Vista或Win7上运行,则无法阻止Windows关闭。提示用户无法工作,对话框将无法访问。您将不得不考虑处理此问题的应用程序设计。

答案 1 :(得分:2)

我同意JAB。程序化解决方案不能用于解决硬件故障。查看设置域权限以禁止关闭。为了有效,您可能还需要限制硬件访问。您还可以添加UPS或通过热站点备份获取各种$$。

这听起来像是基于事务的瘦客户端应用程序的工作。