Windows 2003 Server和WM_QUERYENDSESSION的远程桌面问题

我遇到一个奇怪的问题,我写了一个小应用程序来检测Windows关机。

使用远程桌面连接到Windows 2003服务器,有时login时,我得到了操作系统的WM_QUERYENDSESSION lParam = 0,我的应用程序解释为关机请求(如http://msdn.microsoft.com/en-我们/图书馆/ aa376890%28VS.85%29.aspx ),并因此,执行其任务。 问题是,我正在login,没有closures或重新启动系统。

我认为这可能与Windows 2003 Server下的会话pipe理有关,因为这个工具在Windows XP上的performance相当好。

我试图限制远程访问每个用户最多1个远程会话,但它没有改变行为。

任何暗示呢?

我想这个答案已经太迟了,不能再对你有任何用处了,但是为了可能有同样问题的其他人的利益:我过去成功地使用了SetConsoleCtrlHandler函数,而没有出现类似的意外的误报WM_QUERYENDSESSION似乎很容易。 这可能是值得一试的。