Esempio n. 1
0
 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));
 }
Esempio n. 2
0
 private int CallNextHook(int nCode, int wParam, IntPtr lParam)
 {
     return(Hooker.CallNextHookEx(HookHandle, nCode, wParam, lParam));
 }