private int MouseHookProc(int nCode, int wParam, IntPtr lParam) { if (nCode >= 0) { //把参数lParam在内存中指向的数据转换为MOUSEHOOKSTRUCT结构 MOUSEHOOKSTRUCT mouse = (MOUSEHOOKSTRUCT)Marshal.PtrToStructure(lParam, typeof(MOUSEHOOKSTRUCT));//鼠标 //这句为了看鼠标的位置 this.Text = "MousePosition:" + mouse.pt.ToString(); if (wParam == Hooker.WM_RBUTTONDOWN || wParam == Hooker.WM_RBUTTONUP) { //鼠标按下或者释放时候截获 if (newTaskBarRect.Contains(mouse.pt)) { //当鼠标在任务栏的范围内 //如果返回1,则结束消息,这个消息到此为止,不再传递。 //如果返回0或调用CallNextHookEx函数则消息出了这个钩子继续往下传递,也就是传给消息真正的接受者 return(1); } } } return(Hooker.CallNextHookEx(Hooker.hMouseHook, nCode, wParam, lParam)); }
private int CallNextHook(int nCode, int wParam, IntPtr lParam) { return(Hooker.CallNextHookEx(HookHandle, nCode, wParam, lParam)); }