/// <summary>/// 这个类可以让你得到一个在运行中程序的所有鼠标事件/// 并且引发一个带MouseEventArgs参数的.NET鼠标事件以便你很容易使用这些信息/// </summary>public class MouseHook{private const int WM_MOUSEMOVE = 0x200;private const int WM_LBUTTONDOWN = 0x201;private const int WM_RBUTTONDOWN = 0x204;private const int WM_MBUTTONDOWN = 0x207;private const int WM_LBUTTONUP = 0x202;private const int WM_RBUTTONUP = 0x205;private const int WM_MBUTTONUP = 0x208;private const int WM_LBUTTONDBLCLK = 0x203;private const int WM_RBUTTONDBLCLK = 0x206;private const int WM_MBUTTONDBLCLK = 0x209;//全局的事件public event MouseEventHandler OnMouseActivity;(就这个东西)static int hMouseHook = 0; //鼠标钩子句柄//鼠标常量...............................................................中间省略很多//从回调函数中得到鼠标的信息MouseHookStruct MyMouseHookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct));MouseEventArgs e = new MouseEventArgs(button, clickCount, MyMouseHookStruct.pt.x, MyMouseHookStruct.pt.y, 0);OnMouseActivity(this, e);(怎么使用这个onMouseActivity?)}return CallNextHookEx(hMouseHook, nCode, wParam, lParam);}}}
1 回答
qq_笑_17
TA贡献1818条经验 获得超7个赞
直接为OnMouseActivity事件注册响应方法就行了
例如:
MouseHook mh =new MouseHook();
mh.OnMouseActivity += new MouseEventHandler(mh_OnMouseActivity);
事件响应方法:
private void mh_OnMouseActivity(object source, MouseEventArgs e)
{
//操作
}
- 1 回答
- 0 关注
- 213 浏览
添加回答
举报
0/150
提交
取消
