C#拦截系统消息
来源:互联网 发布:多益网络手游官网 编辑:程序博客网 时间:2024/05/17 04:45
继承IMessageFilter接口
/**//*C#截取系统消息 */ //一、截取系统消息//方法一://添加监视消息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){ switch(m.Msg ) { case 513: //拦截左键单击事件 MessageBox.Show("哈哈,你点击了左键被拦截!"); return true; //返回true则消息被裁取,系统不再处理 case 516: //拦截左键单击事件 MessageBox.Show("哈哈,你点击了右键被拦截!"); return true; //返回true则消息被裁取,系统不再处理 default: return false; //返回false则消息未被裁取,系统会处理 }} //方法二: //截取消息,进行处理 protected override void WndProc(ref Message m) { switch(m.Msg) { case 17: MessageBox.Show("哈哈,你不能关闭计算机!"); m.Result=(IntPtr)0; break; case 513: MessageBox.Show("哈哈,你不能点击左键!"); m.Result=(IntPtr)0; break; case 516: MessageBox.Show("哈哈,你不能点击右键!"); m.Result=(IntPtr)0; break; default: base.WndProc(ref m); break; }}
protected override void WndProc(ref Message m)//监视Windows消息 { const int WM_DEVICECHANGE = 0x219; const int WM_DEVICEARRVIAL = 0x8000;//如果m.Msg的值为0x8000那么表示有U盘插入 const int WM_DEVICEMOVECOMPLETE=0x8004; switch (m.Msg) { case WM_DEVICECHANGE: { ShowDeviceChanged("WM_DEVICECHANGE");// if (m.WParam.ToInt32() == WM_DEVICEARRVIAL) ShowDeviceChanged("WM_DEVICEARRVIAL"); else if (m.WParam.ToInt32() == WM_DEVICEMOVECOMPLETE) ShowDeviceChanged("WM_DEVICEMOVECOMPLETE"); } break; } base.WndProc(ref m); //将系统消息传递自父类的WndProc } private void BTN_Start_Click(object sender, EventArgs e) { } public void ShowDeviceChanged(string message) { switch(message) { case "WM_DEVICECHANGE": this.textBox_Message.Text += "Device Changed \r\n"; break; case "WM_DEVICEMOVECOMPLETE": this.textBox_Message.Text += "Device Moved\r\n"; break; case "WM_DEVICEARRVIAL": this.textBox_Message.Text += "Device Arrived\r\n"; break; } }
- C#拦截系统消息
- C# 重写WndProc 拦截 发送 系统消息
- C#拦截系统消息的方法Application.AddMessageFilter
- C#拦截系统消息的方法Application.AddMessageFilter(转)
- C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)--windows消息大全
- C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(2)
- C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(1)
- C# 重写WndProc 拦截 发送 系统消息 + windows消息常量值(2)
- C#钩子内部消息拦截
- C#屏蔽ComboBox系统右键菜单介绍(通过API拦截消息)
- C#钩子本线程内消息拦截
- C#钩子本线程内消息拦截
- C#钩子本线程内消息拦截
- C#钩子本线程内消息拦截
- C#钩子本线程内消息拦截
- c#用IMessageFilter拦截键盘消息
- 用消息拦截技术制作系统日志
- Android 中利用XPosed拦截系统消息
- Can’t connect to local MySQL server through socket 解决办法
- 线段树小结(初阶)
- MINA框架使用总结
- hdu1517 小小的博弈
- Ubuntu的ssh设置
- C#拦截系统消息
- 滤波
- linux管道学习笔记
- 使用OpenXml 2.0向Excel文档加入自定义Ribbon
- USACO section 2.1 Hamming Codes(直接枚举暴搜)
- UILabel 详解
- S2SH整合包冲突
- Ubuntu新手教程之Ubuntu一句话技巧
- 数据库概念—1、ACID基本概念