延迟窗口注销(XP,Vista和7)

时间:2011-08-11 16:19:57

标签: c# .net windows

是否有一种已知的,可靠的方法可以在用户点击退出按钮后延迟用户注销?我想知道如何延迟,或者可能取消注销,然后在计数器到期后通过应用程序注销。

1 个答案:

答案 0 :(得分:2)

当即将发布注销时,Windows消息WM_QUERYENDSESSION将发送给所有应用程序。应用程序可以回答此消息并给出否定答案,要求取消注销。

来自MDSN doc

  

应用程序应尊重用户的意图并返回TRUE。通过   默认情况下,此消息的DefWindowProc函数返回TRUE。

     

如果关闭会破坏正在使用的系统或媒体   烧毁后,应用程序可以返回FALSE。但是,这是一种很好的做法   尊重用户的行为。

在.NET中,SystemEvents.SessionEnding event公开了此功能。如果您将Cancel的{​​{1}}属性设置为SessionEndingEventArgs请求注销将被取消。

之前已在Log off user from Win XP programmatically in C#中询问了注销部分。