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

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

当注销即将发生时,Windows消息WM_QUERYENDSESSION被发送给所有的应用程序。 一个应用程序可以用一个否定的答案回复这个消息,要求注销被取消。

从MDSN文档 :

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

如果关闭会破坏正在被烧毁的系统或介质,则应用程序可能返回FALSE。 但是,尊重用户的行为是很好的做法。

在.NET中,此功能由SystemEvents.SessionEnding事件公开。 如果将SessionEndingEventArgsCancel属性设置为true则注销将被取消。

注销部分之前已经在C#中以编程方式从Win XP注销用户 。