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_ABSOLUTE8000x, y mouse의 위치값을 포함하여 event를 발생함
MOUSEEVENTF_MOVE1x, y에 지정한 위치로 이동
MOUSEEVENTF_LEFTDOWN2왼쪽 button down
MOUSEEVENTF_LEFTUP4왼쪽 button up
MOUSEEVENTF_RIGHTDOWN8오른쪽 button down
MOUSEEVENTF_RIGHTUP10오른쪽 button up
MOUSEEVENTF_MIDDLEDOWN20가운데 button down
MOUSEEVENTF_MIDDLEUP40가운데 button up
MOUSEEVENTF_WHEEL800mouse 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);

반응형

+ Recent posts