c# 마우쓰 클릭 제어하기

아래 코드는 마우쓰 포인터가 있는 위치에서 왼쪽 버튼을 클릭하게 하는 예제다. 버튼을 누른 뒤에는 반드시 떼어야 클릭이 된다.

[DllImport("user32.dll")]
public static extern void mouse_event(UInt32 dwFlags, UInt32 dx, UInt32 dy, UInt32 dwData, IntPtr dwExtraInfo);

private void Form1_KeyDown(object sender, KeyEventArgs e)
{
    mouse_event(0x0002, 0, 0, 0, 0); // 누르고
    mouse_event(0x0004, 0, 0, 0, 0); // 떼고
}

아래 코드는 c++ 문법이다.

void mouse_event(
  [in] DWORD     dwFlags,
  [in] DWORD     dx,
  [in] DWORD     dy,
  [in] DWORD     dwData,
  [in] ULONG_PTR dwExtraInfo
);

DWORD는 UInt32로 ULONG_PTR는 IntPtr로 바꾼 거에 유의한다.

0x0002와 0x0004는 상수 변수들인 MOUSEEVENTF_LEFTDOWN과 MOUSEEVENTF_LEFTDOWNUP의 값들이다. 상수로 선언해서 써도 되고 위와 같이 그냥 써도 된다. 다른 패러미터들은 mouse_event function (winuser.h)에서 확인할 수 있다.