C# 마우스 전역 포인트 이동 할 때 사용합니다.
[DllImport("user32.dll")] static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInf); private const uint MOUSEMOVE = 0x0001; // 마우스 이동 private const uint LBUTTONDOWN = 0x0002; // 왼쪽 마우스 버튼 눌림 private const uint LBUTTONUP = 0x0004; // 왼쪽 마우스 버튼 떼어짐 private const uint RBUTTONDOWN = 0x0008; // 오른쪽 마우스 버튼 눌림 private const uint RBUTTONUP = 0x00010; // 오른쪽 마우스 버튼 떼어짐 private const uint ABSOLUTEMOVE = 0x8000; // 전역 위치
우선 Win32 API 함수를 호출해야하므로 mouse_event 함수를 Dll Import 선언합니다.
그리고 클릭과 이동에 대한 함수를 하나 만들어두세요
private void MouseClick(bool isClick, Point point, uint width, uint height) { Rectangle rtScreen = Screen.PrimaryScreen.Bounds; uint nX = (uint)(65535 * (point.X + width) / rtScreen.Width); uint nY = (uint)(65535 * (point.Y + height)/ rtScreen.Height); if (isClick) { mouse_event(ABSOLUTEMOVE | MOUSEMOVE | LBUTTONDOWN, nX, nY, 0, 0); mouse_event(ABSOLUTEMOVE | MOUSEMOVE | LBUTTONUP, nX, nY, 0, 0); } else { mouse_event(ABSOLUTEMOVE | MOUSEMOVE, nX, nY, 0, 0); } }
그리고 최종적으로 메소드가 들어갈 위치에 배치하면 됩니다.
if (input.GetAttribute("id").Equals("loginId")) { Point 현재마우스위치 = GetRealOffset(input); input.Focus(); MouseClick(true, 현재마우스위치, 0, 0); Thread.Sleep(100); KeyboardPress(VK_BACKSPACE); break; }
이렇게 하면 마우스 포지션및 마우스위치 클릭이 가능해져서
원하는 매크로를 만들 수 있습니다.
네이버 로그인 자동만들기 완성!^^