예제 #1
0
        private static bool HandleMouseInput(MouseHook.MSLLHOOKSTRUCT strct, MouseHook.MouseMessages mm)
        {
            if (strct.flags != 0U || !Program.isToggled || !(a.minecraft != IntPtr.Zero))
            {
                return(true);
            }
            switch (mm)
            {
            case MouseHook.MouseMessages.WM_LBUTTONDOWN:
                MouseHook.isLeftDown = true;
                MouseHook.PostMessage(a.minecraft, 513U, 0, 0);
                break;

            case MouseHook.MouseMessages.WM_LBUTTONUP:
                MouseHook.isLeftDown = false;
                MouseHook.PostMessage(a.minecraft, 514U, 0, 0);
                break;

            case MouseHook.MouseMessages.WM_RBUTTONDOWN:
                MouseHook.PostMessage(a.minecraft, 516U, 0, 0);
                break;

            case MouseHook.MouseMessages.WM_RBUTTONUP:
                MouseHook.PostMessage(a.minecraft, 517U, 0, 0);
                break;

            default:
                return(true);
            }
            return(false);
        }
예제 #2
0
        private void DoMouseMoveAbsolute(int x, int y, MouseHook.MouseMessages message)
        {
            var xx = x * 65536 / width;
            var yy = y * 65536 / height;

            var dwFlags = User32.MouseEvent.MOUSEEVENTF_MOVE | User32.MouseEvent.MOUSEEVENTF_ABSOLUTE;

            if (message == MouseHook.MouseMessages.WM_LBUTTONDOWN)
            {
                dwFlags |= User32.MouseEvent.MOUSEEVENTF_LEFTDOWN;
            }
            if (message == MouseHook.MouseMessages.WM_LBUTTONUP)
            {
                dwFlags |= User32.MouseEvent.MOUSEEVENTF_LEFTUP;
            }

            User32.mouse_event((uint)dwFlags, xx, yy, 0, IntPtr.Zero);
        }
예제 #3
0
 public MouseHookEventArgs(Point point, MouseHook.MouseMessages message)
 {
     Point   = point;
     Message = message;
 }