public void MoveCalculate() { if (m_pntPrev.x != m_pntCurr.x || m_pntPrev.y != m_pntCurr.y) { mousePacket mp = new mousePacket(); mp.flags = (int)MouseEventFlag.MOUSEEVENTF_MOVE; mp.x = m_pntCurr.x; mp.y = m_pntCurr.y; MouseEvent(mp); m_pntPrev.x = m_pntCurr.x; m_pntPrev.y = m_pntCurr.y; } }
public int hookProc(int nCode, IntPtr wParam, IntPtr lParam) { if (nCode >= 0) { MouseHookStruct hookStruct = (MouseHookStruct)Marshal.PtrToStructure(lParam, typeof(MouseHookStruct)); mousePacket mp = new mousePacket(); switch ((MouseMessages)wParam) { case MouseMessages.WM_LBUTTONDOWN: mp.flags = (int)MouseEventFlag.MOUSEEVENTF_LEFTDOWN; break; case MouseMessages.WM_LBUTTONUP: mp.flags = (int)MouseEventFlag.MOUSEEVENTF_LEFTUP; break; case MouseMessages.WM_RBUTTONDOWN: mp.flags = (int)MouseEventFlag.MOUSEEVENTF_RIGHTDOWN; break; case MouseMessages.WM_RBUTTONUP: mp.flags = (int)MouseEventFlag.MOUSEEVENTF_RIGHTUP; break; case MouseMessages.WM_MOUSEMOVE: if (hookStruct.pt.x < 0) { return(1); } m_pntCurr.x = (int)((double)hookStruct.pt.x / (double)Screen.PrimaryScreen.Bounds.Width * 65535.0d); m_pntCurr.y = (int)((double)hookStruct.pt.y / (double)Screen.PrimaryScreen.Bounds.Height * 65535.0d); return(0); case MouseMessages.WM_MOUSEWHEEL: mp.flags = (int)MouseEventFlag.MOUSEEVENTF_WHEEL; mp.y = (int)(short)(hookStruct.mouseData >> 16); Debug.WriteLine("mouseData : {0}", mp.y); break; } MouseEvent(mp); return(1); } return(NativeMethods.CallNextHookEx(ms_hHook, nCode, wParam, lParam)); }
public static string getLogMessage(mousePacket a_mp) { switch ((MouseEventFlag)a_mp.flags) { case MouseEventFlag.MOUSEEVENTF_MOVE: return(string.Format("패킷 마우스 : 이동 {0}, {1}", a_mp.x, a_mp.y)); break; case MouseEventFlag.MOUSEEVENTF_LEFTDOWN: return(string.Format("패킷 마우스 : 좌누름 {0}, {1}", a_mp.x, a_mp.y)); break; case MouseEventFlag.MOUSEEVENTF_LEFTUP: return(string.Format("패킷 마우스 : 좌풀림 {0}, {1}", a_mp.x, a_mp.y)); break; case MouseEventFlag.MOUSEEVENTF_RIGHTDOWN: return(string.Format("패킷 마우스 : 우누름 {0}, {1}", a_mp.x, a_mp.y)); break; case MouseEventFlag.MOUSEEVENTF_RIGHTUP: return(string.Format("패킷 마우스 : 우풀림 {0}, {1}", a_mp.x, a_mp.y)); break; case MouseEventFlag.MOUSEEVENTF_WHEEL: if (a_mp.y > 0) { return(string.Format("패킷 마우스 : 휠내림 {0}", a_mp.y)); } else { return(string.Format("패킷 마우스 : 휠올림 {0}", a_mp.y)); } } return(""); }
public void FireMouseEvent(IMouseSimulator a_ims, mousePacket a_mhs) { switch ((MouseEventFlag)a_mhs.flags) { case MouseEventFlag.MOUSEEVENTF_MOVE: a_ims.MoveMouseTo(a_mhs.x, a_mhs.y); break; case MouseEventFlag.MOUSEEVENTF_LEFTDOWN: a_ims.LeftButtonDown(); break; case MouseEventFlag.MOUSEEVENTF_LEFTUP: a_ims.LeftButtonUp(); break; case MouseEventFlag.MOUSEEVENTF_RIGHTDOWN: a_ims.RightButtonDown(); break; case MouseEventFlag.MOUSEEVENTF_RIGHTUP: a_ims.RightButtonUp(); break; case MouseEventFlag.MOUSEEVENTF_WHEEL: if (a_mhs.y > 0) { a_ims.VerticalScroll(3); } else { a_ims.VerticalScroll(-3); } break; } }