리눅스맨

c# 마우스 전역 포인트 이동 및 클릭 (매크로 만들때 활용)

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;

}

이렇게 하면 마우스 포지션및 마우스위치 클릭이 가능해져서

원하는 매크로를 만들 수 있습니다.

네이버 로그인 자동만들기 완성!^^


게시됨

카테고리

작성자

태그: