2

我为检测 Windows 关闭而编写的一个小应用程序遇到了一个奇怪的问题。

使用远程桌面连接到 Windows 2003 服务器,有时在登录时我会从操作系统获取 WM_QUERYENDSESSION,lParam = 0,我的应用程序将其解释为关闭请求(如http://msdn.microsoft.com/en-中所述us/library/aa376890%28VS.85%29.aspx)并因此执行其任务。问题是,我实际上是在登录,而不是关闭或重新启动系统。

我认为这可能与 Windows 2003 Server 下的会话管理有关,因为相同的工具在 Windows XP 上运行得非常好。

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

对此有任何提示吗?

4

1 回答 1

0

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

于 2011-08-15T02:30:11.483 回答