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 WindowInteropHelper(this).Handle;
3                 // 在Win32窗口中显示WPF的内容
4                 HwndSource src = HwndSource.FromHwnd(hwnd);
5                 //接收窗口消息的处理程序实现(基于 System.Windows.Interop.HwndSourceHook 委托)
6                 src.AddHook(new HwndSourceHook(WndProc));

Register

}

 1     /// <summary>
 2         /// 重新WndProc
 3         /// </summary>
 4         /// <param name="hwnd">窗口句柄</param>
 5         /// <param name="msg">消息ID</param>
 6         /// <param name="wParam">消息的 wParam 值</param>
 7         /// <param name="lParam">消息的 lParam 值</param>
 8         /// <param name="handled">指示该消息是否已处理的值。如果该消息已处理,请将值设置为 true;否则请将其设置为 false</param>
 9         /// <returns></returns>
10         private IntPtr WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
11         {
12             if (msg == WM_QUERYENDSESSION)
13             {
14                 using (var wcf = new KeFuServicesClient())
15                 {
16                     wcf.UpdateUserState(MainPanelWindow.ClientServiceID, UserStates.UnLine);
17                 }
18             }
19             return IntPtr.Zero;
20         }

捕捉操作系统关机事件

.NET技术交流群 199281001 .欢迎加入。

WPF捕捉Windows关机事件

时间: 2024-12-20 04:34:46

WPF捕捉Windows关机事件的相关文章

C#捕获windows关机事件,在系统关机前做一些自己想做的事

C#捕获windows关机事件,在系统关机前做一些自己想做的事: 有些时候我们可能想在Windows关机时记录或处理一些事情,这里提供几种方法. 方法一: /// <summary> /// 窗口过程的回调函数 /// </summary> /// <param name="m"></param> protected override void WndProc(ref Message m) { switch (m.Msg) { //此消息

C#之关机事件

一.背景 做了个APP,通过向下位机发送串口数据,然后通过开关机去控制多路光源,现在的问题来了,若是电脑强行关机,而APP又没在电脑关机前做任何动作,导致电脑关机了,而下位机控制的灯源还在工作.所以需要C#在截获到关机信息时发送串口数据通知下位机关闭灯源. 二.正文 在"Form1.cs[设计]"界面下,选中要截获关机信息的窗体.(所写的APP只有一个窗体,所以没有父子窗体概念.)在右下角的属性框点击"事件",并选中"FormClosing",如

Windows Server 取消关机事件跟踪

Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SOFTWARE\PolicIEs\Microsoft\Windows NT\Reliability] "ShutdownReasonOn"=dword:00000000"ShutdownReasonUI"=dword:00000000 Windows Server 取消关机事件跟踪

WPF 程序检测 windows 关机

1.使用SessionEnding事件 参考MSDN. 2.在需要处理 关机事件中可以注册SessionEnding事件 App.Current.SessionEnding += Current_SessionEnding; private void Current_SessionEnding(object sender, SessionEndingCancelEventArgs e) { //处理一些事情 DoExit(); }

9 WPF之深入浅出话事件

转:http://blog.csdn.net/fwj380891124/article/details/8139260 就像属性系统在WPF中得到了升级.进化为依赖属性一样,事件系统在WPF也得到了升级.进化成为了路由事件(Routed Event),并在其基础上衍生出命令传递机制.这些机制在很大程度上减少了对程序员的束缚,让程序的设计和实现更加的灵活,模块之间的耦合度也进一步降低,这一章我们一起来领略一下新消息机制的风采. 8.1 近观WPF的树形结构 路由一词的意思大概是这样:起点和终点间有

Liam的C# 学习历程(七):WPF(Windows Presentation Foundation)、Windows Form Applications

在今天的课堂中,老师向我们讲述了关于一些WPF(Windows Presentation Foundation)和Windows Form Applications的内容,接下来就让我们一起来复习一下: (一).WPF(Windows Presentation Foundation): WPF是一个重要运用于desktop手机开发方面.它使用到了一种XML的变形语言——XAML的语言(eXtensible Application Markup Language). 使用XAML开发人员可以对WP

网络攻防任务二:开机、关机事件触发账户的创建与删除

一.任务要求 设计一个以开机.关机事件为触发条件的计划任务,实现: 1.开机时新建一个用户 2.关机时删除用户 二.解决步骤 (一)实验环境搭建 事件触发的命令是schtasks. 利用schtasks完成的功能主要是:利用确定的日志事件触发net user命令,以达到新增一个管理员账户的目的. 如果利用传统的at命令,首先无法用日志事件触发,其次需要执行多条命令行时,只能将它们编写成.bat的批处理文件进行处理. 由于要用到事件触发,xp没有这个功能,所以要新建一个win7的虚拟机. Win7

好记性不如烂笔头35-java监听windows窗口事件Listener(2)

java监听windows窗口事件,现在几乎用的很少了. 当初我还在大学求学的时候,刚开始学习JAVA,对于它监听windows窗口事件,其实花费了非常多的精力.自己不是一个很机灵的人,很多的概念怎么看也不是很明白,很多的逻辑只能靠死记硬背,很多的概念记住了很快又忘记了- 当年的JAVA,还是没有放弃桌面应用这个领域,这些年过去了,java在PC的桌面应用上几乎是一败涂地,倒是在互联网和移动设备上大放光彩,至少这些,是我当初学习的时候不曾想到的. 这种类似的功能,现在几乎已经基本没有了用武之地.

WPF触屏Touch事件在嵌套控件中的响应问题

原文:WPF触屏Touch事件在嵌套控件中的响应问题 前几天遇到个touch事件的坑,记录下来以增强理解. 具体是 想把一个listview嵌套到另一个listview,这时候如果list view(子listview)的内容过多超过容器高度,它是不会出现滚动条压缩内容区域的,反而会将滚动区域转移到外面的list view(父listview),这个无可争议,但这个问题开始没留意,为待会的坑埋下伏笔. 因为 然后就是设置鼠标滚轮. 首先我使用了MouseWheel事件,奇怪的是它明明是个路由事件