public MouseEntry(bool isUp, MouseButtons button, ManagedWinapi.Windows.POINT point) { this.isUp = isUp; this.button = button; this.point = point; llEntry = new LLRecordEntry(); }
protected void MouseHook_MouseIntercepted(int msg, ManagedWinapi.Windows.POINT pt, int mouseData, int flags, int time, IntPtr dwExtraInfo, ref bool handled) { // Translate raw mouse event into individiual events (MouseDown, MouseUp, and MouseMove) and stop the mouse event chain if // one of the individual events handled it. MouseEventTranslator.TranslateMouseEvent(new LowLevelMouseMessage(msg, pt, mouseData, flags, time, dwExtraInfo)); handled = MouseEventTranslator.Handled; }
void mouseHook_MouseIntercepted(int msg, ManagedWinapi.Windows.POINT pt, int mouseData, int flags, int time, IntPtr dwExtraInfo, ref bool handled) { if (msg == 513 || msg == 516) { Close(); } return; }
private void llMouseHook_MouseIntercepted(int msg, ManagedWinapi.Windows.POINT pt, int mouseData, int flags, int time, IntPtr dwExtraInfo, ref bool handled) { int lastIndex = 0; switch (msg) { case (int)Structures.MouseMessages.WM_LBUTTONDOWN: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(false, MouseButtons.Left, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; case (int)Structures.MouseMessages.WM_LBUTTONUP: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(true, MouseButtons.Left, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; case (int)Structures.MouseMessages.WM_MBUTTONDOWN: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(false, MouseButtons.Middle, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; case (int)Structures.MouseMessages.WM_MBUTTONUP: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(true, MouseButtons.Middle, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; case (int)Structures.MouseMessages.WM_RBUTTONDOWN: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(false, MouseButtons.Right, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; case (int)Structures.MouseMessages.WM_RBUTTONUP: threads.Add(new Thread(new ParameterizedThreadStart(CreateMouseEntry))); lastIndex = threads.Count - 1; threads[lastIndex].SetApartmentState(ApartmentState.STA); threads[lastIndex].Start( new MouseEntry(true, MouseButtons.Right, pt)); threads[lastIndex].Join(); threads.RemoveAt(lastIndex); break; default: break; } }
private void msHook_MouseIntercepted(int msg, ManagedWinapi.Windows.POINT pt, int mouseData, int flags, int time, IntPtr dwExtraInfo, ref bool handled) { MouseEvents evt = 0; Win32Input input = new Win32Input(); MouseMessages mouseMessage = (MouseMessages)msg; input.type = 0; input.mi = new MouseInput(); input.mi.dx = (int)(pt.X * (65535f / (Screen.PrimaryScreen.Bounds.Width))); input.mi.dy = (int)(pt.Y * (65535f / Screen.PrimaryScreen.Bounds.Height)); input.mi.mouseData = 0; switch (mouseMessage) { case MouseMessages.WM_MOUSEMOVE: evt = MouseEvents.MOVE; break; case MouseMessages.WM_LBUTTONDOWN: evt = MouseEvents.LEFTDOWN; break; case MouseMessages.WM_LBUTTONUP: evt = MouseEvents.LEFTUP; break; case MouseMessages.WM_MBUTTONDOWN: evt = MouseEvents.MIDDLEDOWN; break; case MouseMessages.WM_MBUTTONUP: evt = MouseEvents.MIDDLEUP; break; case MouseMessages.WM_RBUTTONDOWN: evt = MouseEvents.RIGHTDOWN; break; case MouseMessages.WM_RBUTTONUP: evt = MouseEvents.RIGHTUP; break; case MouseMessages.WM_MOUSEWHEEL: case MouseMessages.WM_MOUSEHWHEEL: evt = MouseEvents.WHEEL; input.mi.mouseData = (uint)(mouseData >> 16); break; case MouseMessages.WM_XBUTTONDOWN: evt = MouseEvents.XDOWN; input.mi.mouseData = (uint)(mouseData >> 16); break; case MouseMessages.WM_XBUTTONUP: evt = MouseEvents.XUP; input.mi.mouseData = (uint)(mouseData >> 16); break; default: break; } evt |= MouseEvents.ABSOLUTE; input.mi.dwFlags = (uint)evt; input.mi.time = 0; input.mi.dwExtraInfo = IntPtr.Zero; macroEntries.Add(new MacroRecordEntry(input, watch.ElapsedMilliseconds)); }