C# 마우스이벤트

SetCursorPos / mouse_event

 

활성중인 영역에 마우스 커서 이동및 마우스 버튼 클릭, 휠 스크롤 이벤트를 발생 시킨다.

 

 

 

 

선언:

private const uint LBDOWN = 0x00000002; // 왼쪽 마우스 버튼 눌림
private const uint LBUP = 0x00000004; // 왼쪽 마우스 버튼 떼어짐
private const uint RBDOWN = 0x00000008; // 오른쪽 마우스 버튼 눌림
private const uint RBUP = 0x000000010; // 오른쪽 마우스 버튼 떼어짐
private const uint MBDOWN = 0x00000020; // 휠 버튼 눌림
private const uint MBUP = 0x000000040; // 휠 버튼 떼어짐
private const uint WHEEL = 0x00000800; //휠 스크롤

[DllImport("user32.dll")] // 입력 제어
static extern void mouse_event(uint dwFlags, uint dx, uint dy, int dwData, int dwExtraInfo);

[DllImport("user32.dll")] // 커서 위치 제어
static extern int SetCursorPos(int x, int y);

 

 

mouse_event(이벤트종류, x좌표(0), y좌표(0), 휠 스크롤, 마우스타입)

SetCursorPos( x좌표, y좌표)

 

mouse_event에서도 커서위치까지 제어할 수 있지만 계산을 필요로 하므로 0,0 현재 위치값을 주고

SetCursorPos를 쓰는것이 간편하고 가독성이 좋아진다.

 

휠 스크롤은 위로 굴리면 양수, 아래로 굴리면 음수 값으로 120에서 -120사이로 입력한다.

마우스타입은 일반마우스는 모두 0에 해당한다.

 

 

 

 

 

 

호출:

SetCursorPos(100, 100); // 100*100위치에
mouse_event(LBDOWN, 0, 0, 0, 0); // 왼쪽 버튼 누르고
mouse_event(LBUP, 0, 0, 0, 0); // 떼고
mouse_event(WHEEL, 0, 0, -10, 0); // 휠 아래로

 

or 을 이용해 여러동작을 한줄에 구현할 수 있다.

mouse_event(누르고 | 떼고, .........)

 

드래그 : 다운 -> 커서 이동 -> 업

mouse_event(누르고, .......);

SetCursorPos(x, y);

mouse_event(떼고, .........);

 

'.NET > WinAPI' 카테고리의 다른 글

C# 키보드이벤트  (0) 2014.01.19
C# 윈도우 위치,크기 정보얻기 GetWindowPlacement  (0) 2014.01.06
C# 핫키 설정 RegisterHotKey  (0) 2013.12.28
C# 윈도우핸들 얻기 FindWindow  (0) 2013.12.20
C#에 Windows API 사용하기  (0) 2013.12.19