我必须编写一个在WindowsME上运行的C#应用程序。是的,我的意思是微软操作系统很久以前就被遗忘了。我的程序不需要用户交互,因为WindowsME不支持服务,它将是一个控制台应用程序。此外,它将用于更现代的操作系统,用户可以选择是将其作为控制台应用程序启动还是将其安装为Windows服务。现在假设软件在WinME上运行,并且用户决定在没有事先退出我的软件的情况下注销或关闭机器。 WinME抱怨我的程序仍在运行,并询问是否应该终止该进程。除了糟糕的用户体验外,这意味着应用程序没有正常关闭。
因此,如果用户注销或想要关闭机器以便能够首先正确关闭我的软件,我会寻找通知的方法。
答案 0 :(得分:1)
我认为Windows ME支持WM_ENDSESSION所以我认为您应该尝试捕获该事件。当Windows会话结束时(通过注销或关闭),这是发送到所有顶级窗口的那个。
答案 1 :(得分:1)
您是否尝试过处理SystemEvents.SessionEnding / SystemEvents.SessionEnded?要使用它,您需要创建一个隐藏的表单,我相信MSDN示例演示了这一点。
http://msdn.microsoft.com/en-us/library/microsoft.win32.systemevents.aspx