2010-04-14 153 views
0

我必须编写一个在WindowsME上运行的C#应用​​程序。是的,我的意思是很久以前就被遗忘的微软操作系统。我的程序不需要用户交互,因为WindowsME不支持服务,它将是一个控制台应用程序。此外,它将用于更现代的操作系统,用户可以选择是将其作为控制台应用程序启动还是将其安装为Windows服务。现在假设软件运行在WinME上,并且用户决定退出或关闭机器,而无需事先退出我的软件。 WinME抱怨我的程序仍在运行,并询问它是否应该终止进程。除了糟糕的用户体验之外,这意味着应用程序没有正常关闭。在WindowsME上处理用户注销或机器关闭请求

因此,我寻找一种方式来获悉用户是否注销或想要关闭机器以便能够首先正确关闭我的软件。

+0

即使在Windows ME上支持.NET运行时?它工作吗?我真的认为最早的桌面选项是Windows XP。 – 2010-04-14 20:35:00

+0

.NET 2.0支持WinME甚至Win98。该软件与我在Vista上运行的一样好。只有关机行为对我来说是一个问题。 – skylap 2010-04-14 20:39:31

+0

什么版本的.Net? – SLaks 2010-04-14 20:41:13

回答

1

我认为Windows ME支持WM_ENDSESSION,所以我认为您应该尝试捕获该事件。这是Windows会话结束时(通过注销或关闭)发送到所有顶级窗口的窗口。

+0

我认为WM_ENDSESSION与win2000(Windows的NT分支)一起出现。我不记得它是否曾在win9x。 – dkackman 2010-04-14 20:56:07

+0

我也不确定,我发现一些链接似乎表明有人在Win98中使用过它,但是我没有发现任何官方的东西,也不像我有一个Win98/WinME测试系统在试图尝试出来 :) – 2010-04-15 05:23:02