zoukankan      html  css  js  c++  java
  • 通过截取系统消息判断鼠标的单机键

    实现效果:

       

    知识运用:

      通过在From中重写Control类的虚方法 WndProc 来获取信息

      protected virtual void WndProc(ref Message m)    Message结构的属性

      

         通过实现IMessageFilter接口来创建消息筛选器  从而截取Windows消息

    实现代码:

            private void Form1_Load(object sender, EventArgs e)     //窗体加载消息筛选器
            {
                Application.AddMessageFilter(mf);   //添加消息筛选器 向目标传递Windows消息时监视这些消息
            }
    
            private void Form1_FormClosing(object sender, FormClosingEventArgs e)
            {
                Application.RemoveMessageFilter(mf);  //从应用程序的消息泵中移除一个消息筛选器
            }
                //方法一:重写WndProc虚方法  与二不可共存
            //protected override void WndProc(ref Message m)
            //{
            //    switch (m.Msg)
            //    {
            //        case 513:
            //            MessageBox.Show("单机了鼠标左键", "系统信息");
            //            m.Result = (IntPtr)0;         //为了响应消息处理而向Windows返回的值
            //            break;
            //        case 516:
            //            MessageBox.Show("单机了鼠标右键", "系统信息");
            //            m.Result = (IntPtr)0;
            //            break;
            //        default:
            //            base.WndProc(ref m);
            //            break;
            //    }
            //}
        }
        //方法二: 实现IMessageFilter接口  从而获取Windows消息
        public class MessageFilter : IMessageFilter
        {
            public bool PreFilterMessage(ref Message message)
            {
                switch (message.Msg)
                {
                    case 513:
                        MessageBox.Show("单机了鼠标左键", "系统信息");
                        return true;
                    case 516:
                        MessageBox.Show("单机了鼠标右键", "系统信息");
                        return true;
                    default:
                        return false;
                }
            }
        }
    

      

  • 相关阅读:
    《Maven实战》第6章 仓库
    Log4j2中的同步日志与异步日志
    CSDN VIP如何添加自定义栏目
    CSDN VIP如何添加引流自定义栏目
    kubernetes垃圾回收器GarbageCollector Controller源码分析(二)
    java图形验证码实现
    java这个404你能解决吗?
    innodb笔记
    java项目启动脚本
    服务器初始化脚本
  • 原文地址:https://www.cnblogs.com/feiyucha/p/10282718.html
Copyright © 2011-2022 走看看