C#拦截系统消息的方法-Application.AddMessageFilter

C#拦截系统消息的方法Application.AddMessageFilter Application.AddMessageFilter这个方法可以接收系统发出的消息: 首先定义一个类,继承IMessageFilter接口代码如下:

internal class MyMessager : IMessageFilter

{

//截取消息,进行处理

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

{

switch (m.Msg)

{

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

MessageBox.Show("左键被拦截!");

return true; 

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

MessageBox.Show("右键被拦截!");

return true;    

default:

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

}

}

}

然后在窗体load事件中加入Application.AddMessageFilter方法

private void Form1_Load(object sender, EventArgs e)

{

Application.AddMessageFilter(new MyMessager());

}

时间: 2024-10-19 13:57:44

C#拦截系统消息的方法-Application.AddMessageFilter的相关文章

拦截系统消息

方法Application.AddMessageFilter namespace System.Windows.Forms { // 摘要: // 定义消息筛选器接口. public interface IMessageFilter { // 摘要: // 在调度消息之前将其筛选出来. // // 参数: // m: // 要调度的消息.无法修改此消息. // // 返回结果: // 如果筛选消息并禁止消息被调度,则为 true:如果允许消息继续到达下一个筛选器或控件,则为 false. boo

C#拦截系统消息

看到个软件蛮好玩的,叫做ULOGON,它可以让你只有插入了正确的U盘系统才能工作.其实我们也可以简单的用C#来实现这个功能,本文首先来讨论如何拦截系统的U盘插入消息.     以前写EFFECTIVEKEY软件的时候就要拦截系统键盘按键消息,但是那时是直接网上拉过来用了,没有仔细研究.今天期末考完了就好好分析下.     首先我们看下有哪几种拦截系统消息的方法: /**//*C#截取系统消息 */   //一.截取系统消息 //方法一: //添加监视消息 private void Form_Lo

[C#] 使用Application.AddMessageFilter当做Form的热键

Application.AddMessageFilter可以帮你监视所有系统发送到Form的讯息  我们利用它来过滤讯息  便可以做出我们需要的热键 这是Application.AddMessageFilter的呼叫方式  必须传递一个IMessageFilter的对象当做参数 public static void AddMessageFilter( IMessageFilter value ) 我们这边做一个继承IMessageFilter界面的HotKey类别 class HotKey :

ajax请求成功后新窗口window.open()被拦截的解决方法

ajax 异步请求成功后需要新开窗口打开 url,使用的是 window.open() 方法,但是该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了(不过如果是 _self 的话就不会有这个限制),即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('click')),浏览器也会认为不是由用户主动触发的,因此不能被安全执行,所以被拦截. 解决方法: 1.异步改为同步,即:async:false 2.将新开窗口指向为一个对象,然后修改对象的 ur

使用拦截器的方法过滤特性

如果我们希望对Action中的部分方法实现拦截,Struts2为了实现方法过滤的功能,定义了一个名为MethodFilterInterceptor的类,该类继承了AbstractInterceptor.若想自定义的拦截器能够实现方法过滤的功能可以继承MethodFilterInterceptor类,该类重写了父类AbstractInterceptor的intercept方法,又提供了一个doIntercept的抽象方法,在此方法中用户可以自定义拦截器. MethodFilterIntercept

Struts2拦截器、拦截器栈(Interceptor Stack)、全局拦截器与方法拦截器

Struts2拦截器原理 Struts2拦截器是在访问某个Action或Action的方法之前或之后实施拦截.在请求Struts2的Action时,Struts2会查找配置文件,并根据配置文件实例化相应的拦截器对象. Struts2拦截器配置 struts.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE struts PUBLIC "-//Apache Software Found

拦截器getmodel方法什么时候被调用(没搞懂有什么鸟用,自己搭的项目中用到了这个)

拦截器是Struts2最强大的特性之一,它是一种可以让用户在Action执行之前和Result执行之后进行一些功能处理的机制.Struts2 的预定义拦截器 modelDriven 如果action实现了ModelDriven接口,它将getModel方法取得的模型对象存入OgnlValueStack中.

Struts2 拦截器过滤方法

1.struts.xml属性 excludeMethods参数指定拦截器拒绝拦截的方法列表,多个用英文逗号隔开 includeMethods参数指定拦截器需要拦截的方法列表,多个用英文逗号隔开 2.方法拦截器代码 MethodFilterInterceptor抽象类重写了AbstractInterceptor类中的Intercept()方法,还提供了doIntercept(ActionInvocation paramActionInvocation)方法 3.效果 输入地址 http://loc

js实现window.open不被拦截的解决方法汇总

一.问题: 今天在处理页面ajax请求过程中,想实现请求后打开新页面,就想到通过 js window.open 来实现,但是最终都被浏览器拦截了. 二.分析: 在谷歌搜索有没有解决方法,有些说可以通过新建a标签,模拟点击来实现,但是测试发现都实现不了,照样被浏览器拦截.最后找到了一个折中的办法,可以实现新页面打开,但是没有a标签的那种直接流量新页面的效果. 三.实现代码: $obj.click(function(){ var newTab=window.open('about:blank');