프로그래밍(Programming)/c++, 11, 14 , 17, 20
마우스 이벤트 강제발생
3DMP
2012. 11. 1. 18:27
http://www.cyworld.com/01099811833/3457820
마우스 이벤트를 강제로 발생하는 API함수
VOID mouse_event(
DWORD dwFlags, // 동작 지정 Flag
DWORD dx, // x좌표
DWORD dy, // y좌표
DWORD dwData , // 휠정보
PTR dwExtraInfo // 추가 정보
);
dwFlags 정보
상수 | 값 | 설명 |
MOUSEEVENTF_ABSOLUTE | 8000 | x, y mouse의 위치값을 포함하여 event를 발생함 |
MOUSEEVENTF_MOVE | 1 | x, y에 지정한 위치로 이동 |
MOUSEEVENTF_LEFTDOWN | 2 | 왼쪽 button down |
MOUSEEVENTF_LEFTUP | 4 | 왼쪽 button up |
MOUSEEVENTF_RIGHTDOWN | 8 | 오른쪽 button down |
MOUSEEVENTF_RIGHTUP | 10 | 오른쪽 button up |
MOUSEEVENTF_MIDDLEDOWN | 20 | 가운데 button down |
MOUSEEVENTF_MIDDLEUP | 40 | 가운데 button up |
MOUSEEVENTF_WHEEL | 800 | mouse wheel 동작 |
표의 값은 VB.NET에선 &H로, C#에선 0x로 처리
dx, dy는 이동시킬 좌표를 지정, 단 OUSEEVENTF_MOVE와 MOUSEEVENTF_ABSOLUTE가 지정되어야 실제로 마우스 커서가 이동되는 효과를 볼 수 있음
Mouse의 좌표 지정시 실제 Monitor화면의 해상도를 기준점으로 잡으려면 65535로 가로세로 해상도를 나누고 Mouse Cursor를 위치시킬 위치를 곱하면 됩니다. 예를 들어 화면 해상도가 1024*768일 경우 (65535 / 1024) * y, (65535 / 768) * y 와 같이 처리하시면 원하는 곳으로 이동하게 됩니다.
| (or연산)을 통해서 여러가지 동작을 한번에 지정할 수 있다
ex) 마우스 오른쪽 버튼을 눌렀다 떼는 동작
mouse_event(0x8 | 0x10, 0, 0, 0, 0);
반응형