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);
반응형
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
예외처리 메커니즘 (SEH) (0) | 2012.11.01 |
---|---|
__try __finaly SEH(Structured Exception Handling) 중.. (0) | 2012.11.01 |
CreateDirectory (0) | 2012.11.01 |
SHFILEOPSTRUCT와 폴더를 이동시킬 때 주의점 (0) | 2012.11.01 |
다시 수행했을때 중복되지 않는 난수발생 CryptGenRandom (0) | 2012.11.01 |