WPF 程序检测 windows 关机

1.使用SessionEnding事件

参考MSDN。

2.在需要处理 关机事件中可以注册SessionEnding事件
App.Current.SessionEnding += Current_SessionEnding;
        private void Current_SessionEnding(object sender, SessionEndingCancelEventArgs e)
        {

             //处理一些事情
            DoExit();

        }
时间: 2024-11-06 16:38:27

WPF 程序检测 windows 关机的相关文章

WPF程序在Windows 7下应用Windows 8主题

这篇博客介绍如何在Windows 7下应用Windows 8的主题. 首先我们先看一个很常见的场景,同样的WPF程序(样式未重写)在不同的操作系统上展示会有些不同.这是为什么呢?WPF程序启动时会加载与操作系统对应的主题.下面将列出常见的OS主题与WPF主题的关系. 针对不同操作系统的主题,WPF程序会加载不同的主题assembly.这样就形成了同样的XAML代码在不同的OS中展示效果. 回到这篇博客的主题,为Windows 7下的WPF程序应用Windows 8主题.通过上面的表格,可以知道,

为 WPF 程序添加 Windows 跳转列表的支持

原文:为 WPF 程序添加 Windows 跳转列表的支持 Windows 跳转列表是自 Windows 7 时代就带来的功能,这一功能是跟随 Windows 7 的任务栏而发布的.当时应用程序要想用上这样的功能需要调用 shell 提供的一些 API. 然而在 WPF 程序中使用 Windows 跳转列表功能非常简单,在 XAML 里面就能完成.本文将介绍如何让你的 WPF 应用支持 Windows 跳转列表功能. 本文内容 一个简单的跳转列表程序 定制跳转列表的功能 一个简单的跳转列表程序

WPF 程序在 Windows XP 下报错:The image format is unrecognized.

最近做的一个 WPF 程序,在 Windows 7 或以上版本的系统中,测试都很正常,在 Windows XP 下运行时一开始就报了个错误: {     "ClassName" : "System.Windows.Markup.XamlParseException",     "Message" : "The image format is unrecognized.",     "Data" : {   

深入windows的关机消息截获-从XP到Win7的变化(在XP中程序可以阻止关机,但是在Win7中程序无法阻止关机,可Block的时间从1秒调到了5秒) good

之前写了一个软件用于实验室的打卡提醒,其中一个重要的功能是在关机之前提醒当天晚上是否已经打卡.之前我是在WM_ENDSESSION中弹出一个模态对话框来提醒,在XP中基本工作正常,在Win7中大多数时候工作正常,但是有时候会出现不提醒现象.我想这中间是不是有什么玄机,Windows的关机方案从XP到Win7到底发生了什么变化,如何进行有效的截获Windows关机消息.对此,我搜寻了MSDN和网上论坛结合自己的测评给出一个完善的描述和解决方案,如果你有类似的需求,可以参考这篇文章. 在MSDN中对

WPF捕捉Windows关机事件

1 private const int SC_SCREENSAVE = 0xF140; 2 private const int WM_QUERYENDSESSION = 0x0011; 3 private bool IsScreenSave = false; 4 private bool IsWindowStopClosing = false; 变量 不废话,直接贴代码,构造函数中 public XX{ 1 // 获得窗口句柄 2 IntPtr hwnd = new WindowInteropH

在 WPF 程序中应用 Windows 10 真?亚克力效果

原文:在 WPF 程序中应用 Windows 10 真?亚克力效果 从 Windows 10 (1803) 开始,Win32 应用也可以有 API 来实现原生的亚克力效果了.不过相比于 UWP 来说,可定制性会差很多. 本文介绍如何在 WPF 程序中应用 Windows 10 真?亚克力效果.(而不是一些流行的项目里面自己绘制的亚克力效果.) 本文内容 API 如何使用 注意事项 API 需要使用的 API 是微软的文档中并未公开的 SetWindowCompositionAttribute.

如何注册java程序为windows服务

如何注册java 程序为windows 服务 最近想找个软件来控制电脑的关机时间,在网上找了几个,都是可视化界面的可以设置具体的关机时间的软件.由于我想编写的关机程序是运行在别人机器上,只能让该机器在晚上17 点到23 点25 分才上网,到了23 点25 分就可以自动关机.为了让别人感觉不到这个软件的“存在”(免得使用者自己关闭定时关机软件),所以我想把关机软件注册为服务的方式,运行在后台.这里介绍下如何利用javaService 软件把java 程序注册为windows 服务. 一.  利用j

提高WPF程序性能的几条建议

这篇博客将介绍一些提高WPF程序的建议(水平有限,如果建议有误,请指正.) 1. 加快WPF程序的启动速度: (1).减少需要显示的元素数量,去除不需要或者冗余的XAML元素代码. (2).使用UI虚拟化,只显示当前需要显示的元素. (3).不要把不要显示的自定义控件隐藏在主界面中,虽然它们不会显示出来,但是程序启动时还是会去计算自定义控件所需的空间和位置. 2. 耗时操作放在放在非UI线程上处理,保持UI的顺畅.处理完成后如果需要在UI上展示,调用Dispatcher.BeginInoke()

WPF实践系列1 of n 自定义WPF程序的Main函数

关于开篇 由于业务需要参与到一个Window下的WPF项目中.因为之前的工作环境一直在Linux下,C和C++作为主力开发语言, 因此加入新项目对自己来说是变化,同时也是挑战:学点新东西拓宽下视野. 关于WPF实践系列 项目是个中型的Windows客户端,需要通过网络和SQL服务器交互.由于有多版本兼容需求(xp-win10)和高分屏需求,选了WPF方案,在Visual Studio 2017下进行开发. 博主目前对WPF和 .Net这些知识仅是略知一二.取名实践系列,意指在过程中边做边学.主要