C# 마우스이벤트
.NET/WinAPI 2014. 1. 18. 23:08
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 |