是否有可能在.NET中确定我的应用程序是否因为Windows被给予关闭命令而关闭(而不是任何旧的应用程序关闭),以便写出一些临时缓存文件或甚至阻止关闭足够长的时间提示用户输入?
虽然我目前的范围涉及Winform应用程序和Windows服务,但我有兴趣以可能的方式理解这一点
答案 0 :(得分:7)
SystemEvents.SessionEnding对你来说似乎是一个很好的起点。该文章讨论了注销/关闭时所涉及的事件序列。
答案 1 :(得分:4)
通常,您需要处理WM_QUERYENDSESSION
Windows消息。这将使您的应用程序有机会进行清理,或者在必要时阻止关闭。
答案 2 :(得分:2)
处理Microsoft.Win32.SystemEvents类型上的SessionEnded事件。