微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 会话结束事件无效

我想让用户Windows关闭或注销时决定是否要在我的应用上做最后一次请求.所以我正在使用“SessionEnding”事件.

以下代码被触发但不起作用.这是最简单的例子:

public App()
{
        this.SessionEnding += App_SessionEnding;
}

void App_SessionEnding(object sender,SessionEndingCancelEventArgs e)
{
        e.Cancel = true;
}

我担心我之前在计算机中使用了一个增强程序(比如ccleaner),并且它以某种方式停用了这个事件. = O

当我向事件添加MessageBox,并且我请求注销我的计算机时,会出现MessageBox,但我没有时间点击某处,因为1秒后系统会注销.系统似乎没有等待我的申请.

Obs:我使用的是Windows 7.

解决方法

我尝试了你的代码示例但没有成功…但是我将它放入我的主窗口,导致应用程序关闭,MessageBox无限期地显示,直到我点击关闭.这有用吗?

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)
    {
        MessageBox.Show("Blah","Blah",MessageBoxButton.OK);

        base.OnClosing(e);
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐