`
jiasongmao
  • 浏览: 664446 次
  • 性别: Icon_minigender_1
  • 来自: 石家庄
社区版块
存档分类
最新评论

c#截获系统消息

    博客分类:
  • .NET
阅读更多

如何截获系统消息,比如说系统关机的消息等等。

 

实现这项功能最基本的一个函数就是WndProc(ref Message message)函数,其次我们还要知道系统消息的代码值,比如说关机消息的代码值就是0x0011。接下来我们以关机消息为例进行讲解:

 

首先定义关机消息代码值

private const int WM_QUERYENDSESSION = 0x0011;  //关机消息定义

 

其次在WndProc函数中处理消息

protected override void WndProc(ref  Message m)
{
    switch (m.Msg)
    {
        case WM_QUERYENDSESSION:
            // 你的处理代码
            base.WndProc(ref  m);
            break;
        default:
            base.WndProc(ref  m);
            break;
    }
}

 

其中还有一个方法可以控制系统消息,那就是bool PreFilterMessage(ref System.Windows.Forms.Message m)。

 

用法如下:

//添加监视消息
private void Form_Load(object sender, System.EventArgs e)
{

  Application.AddMessageFilter(this);
}

//撤消消息监视
private void Form_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
  Application.RemoveMessageFilter(this);
}

 

public bool PreFilterMessage(ref System.Windows.Forms.Message m)

{

        case 513: //拦截左键单击事件       

                MessageBox.Show("哈哈,你点击了左键被拦截!");//返回true则消息被裁取,系统不再处理    

        case 516: //拦截左键单击事件       

                MessageBox.Show("哈哈,你点击了右键被拦截!");//返回true则消息被裁取,系统不再处理            default:      

                return false; //返回false则消息未被裁取,系统会处理  

}

 

分享到:
评论

相关推荐

    C#截获处理系统键盘消息的源代码

    本篇将深入探讨如何使用C#来实现系统键盘消息的截获与处理。 首先,我们要了解Windows消息机制。在Windows操作系统中,所有的用户交互都通过消息队列来传递,包括键盘和鼠标事件。当用户按下键盘时,系统会生成一个...

    C# 截获关机、注销、重启的消息

    例如,我们可以调用`RegisterWindowMessage`函数注册一个自定义消息,然后用`SetWindowsHookEx`设置钩子,截取系统消息。 3. **注册消息**: 使用`RegisterWindowMessage`函数注册一个全局消息,这样每次系统执行...

    C#截获本机数据包方法

    在C#编程中,截取本机数据包是一种常见的网络监控和分析技术,这通常用于调试、性能优化或安全监控。以下将详细解释如何使用C#实现这一功能,...在实际应用中,还需注意操作系统的限制,以及可能涉及的隐私和安全问题。

    用C#写的邮件截获源码

    本文将围绕标题“用C#写的邮件截获源码”及描述中的smtp和pop3协议,详细阐述邮件截获的原理以及如何使用C#实现这一功能。 首先,smtp(Simple Mail Transfer Protocol)是用于发送邮件的协议,而pop3(Post Office...

    C#签到系统

    同时,系统的安全性不容忽视,需要对数据传输进行加密,防止数据被截获或篡改。 综上所述,C#签到系统是利用C#语言和Socket网络编程技术打造的一款高效实验室管理工具。它不仅实现了基本的签到功能,还具备良好的可...

    C# 获取另一窗体完整消息

    在C#中,我们可以使用`System.Windows.Forms.Application.MessageLoop`来运行消息循环,处理来自系统的消息。而如果要获取另一个窗体的消息,我们通常需要使用底层的P/Invoke技术,调用Windows API函数来实现。例如...

    C#重绘windows窗体标题栏和边框

    C#重绘Windows窗体标题栏和...C#重绘Windows窗体标题栏和边框是指使用C#语言来自定义Windows窗体的标题栏和边框的样式,通过使用WndProc方法来截获Windows消息,并实现自定义的绘制过程,从而实现更加个性化的界面。

    带滚动条上传源码(c#)

    标题中的“带滚动条上传源码(c#)”指的是一个C#编程实现的文件上传功能,其中包含了一个可视化的滚动条,允许用户批量上传文件时查看进度。这种设计通常用于处理大量文件上传,使得用户能够清晰地看到上传进度,提供...

    C# IP包抓取源码

    在C#中,这通常涉及到对Windows操作系统底层网络接口的访问,如WinPCap或Npcap库。这些库提供了一个抽象层,允许开发者直接与网络接口卡(NIC)交互,捕获原始网络数据包。例如,你可以使用Pcap.NET库,这是一个开源...

    C#如何在后台捕捉按键

    在C#编程中,捕获后台按键涉及到操作系统级别的交互,这通常通过P/Invoke技术实现,也就是使用.NET Framework中的`System.Runtime.InteropServices`命名空间来调用Windows API函数。本示例中,我们关注的是如何使用`...

    c#语言的ATM系统

    C#语言的ATM系统是一种基于C#编程语言开发的模拟自动取款机(Automatic Teller Machine)的应用程序。这个系统通常包含多个模块,用于实现银行客户的基本交易操作,如存款、取款、查询余额、转账等。在设计这样一个...

    C#在线聊天,服务器客户端系统

    《C#在线聊天,服务器客户端系统》 C#在线聊天系统是一种实时通信应用程序,它将用户连接在一起,允许他们进行文字、语音甚至视频聊天。在这个系统中,主要涉及两个核心部分:服务器端和客户端,它们共同实现了高效...

    企业QQ,基于Visual C#的局域网QQ聊天系统

    在开发一个基于Visual C#的局域网QQ聊天系统时,我们可以深入探讨以下几个关键知识点: 1. **Visual C#编程**:Visual C#是.NET Framework的一部分,它是一种面向对象的编程语言,用于构建Windows桌面应用、Web应用...

    商业编程-源码-消息截获程序代码.zip

    在软件开发中,消息截获通常用于监控、调试或者修改系统内部通信过程。 【描述】:描述中的“商业编程-源码-消息截获程序代码.zip”暗示了这份源码是为商业环境设计的,可能涉及到企业级应用,如数据交换、事务处理...

    一个中小型企业QQ系统的完整实现[附C#源代码下载]

    《中小型企业QQ系统实现详解——基于C#与Socket编程》 在信息技术日益发达的今天,企业内部沟通的需求也在不断增长,高效便捷的通讯系统成为企业的必需品。本篇将详细介绍一个针对中小型企业设计的QQ系统,它利用C#...

    计算机软件-编程源码- 截获OnClick消息.zip

    在计算机编程领域,"截获OnClick消息"是一个关键的概念,主要涉及到用户界面(UI)交互和事件处理。当你点击一个按钮、链接或者其他可点击的UI元素时,会产生一个"onclick"事件,这是用户与应用程序进行交互的一种...

    截获ExitWindowsEx函数调用

    总的来说,截获`ExitWindowsEx`函数调用是一种高级的系统级编程技巧,涉及DLL编程、钩子技术和注册表操作。在实际应用中,必须谨慎处理,以确保系统的稳定性和安全性。此外,对于非授权的系统干预,可能违反操作系统...

    jsencrypt参数前端加密c#解密

    jsencrypt 参数前端加密 C# 解密 jsencrypt 是一个 JavaScript 库,用于在客户端对数据进行加密,而 C# ...10. 实践应用:jsencrypt 和 C# 可以应用于各种需要数据安全的场景中,例如登录认证、投票系统、在线支付等。

    C#编写的海康威视设备报警布防监听demo

    在本文中,我们将深入探讨如何使用C#编程语言与海康威视设备进行交互,特别是针对报警布防监听功能的实现。海康威视是一家知名的安防监控设备制造商,其产品广泛应用于各种场所,如家庭、商业设施和工业环境。通过C#...

Global site tag (gtag.js) - Google Analytics