实现效果:

知识运用:
通过在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;
}
}
}
浙公网安备 33010602011771号