마우스 이벤트와 관련된 함수로 아래와 같은 것들이 있습니다.
◎ GetCursorPos
현재 마우스 커서의 위치를 얻어주는 함수이며 원형은 아래와 같습니다.
GetCursorPos(LPPOINT lpPoint)
CPoint 형으로 변수를 하나 선언하고 그 주소를 인자로 넣어주면 마우스 커서의 x, y 좌표를 변수에 담
아줍니다.
◎ SetCursorPos
마우스 커서를 X, Y의 위치로 이동시키는 함수이며 원형은 아래와 같습니다.
SetCursorPos(int X, int Y)
인자로 넣는 x, y 좌표의 위치로 마우스 커서를 이동시켜줍니다.
◎ mouse_event
마우스와 관련된 여러가지 이벤트를 발생시키는 함수입니다. 원형은 아래와 같습니다.
mouse_event( DWORD dwFlags, DWORD dx, DWORD dy, DWORD dwData, DWORD dwExtraInfo)
dwFlags의 값에 따라서 이벤트를 구분하며 아래에 정리된 인자를 사용하여 원하는 이벤트를 발생시
키면 됩니다.
MOUSEEVENTF_MOVE - mouse move
MOUSEEVENTF_LEFTDOWN - left button down
MOUSEEVENTF_LEFTUP - left button up
MOUSEEVENTF_RIGHTDOWN - right button down
MOUSEEVENTF_RIGHTUP - right button up
MOUSEEVENTF_MIDDLEDOWN - middle button down
MOUSEEVENTF_MIDDLEUP - middle button up
MOUSEEVENTF_WHEEL - wheel button rolled
MOUSEEVENTF_ABSOLUTE - absolute move
dx, dy는 각각 마우스 커서의 위치를 나타내며 dwData는 dwFlags가 MOUSEEVENTF_WHEEL 일 때
의 무브먼트 값이며, dwFlags가 MOUSEEVENTF_WHEEL이 아닐 때는 0입니다.
◎ 위의 함수들을 이용한 간단한 예제. (x, y에 이벤트가 발생할 마우스 좌표를 넣어서 사용)
- Mouse Drag
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
setcursorpos(x, y);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
- Mouse Right Button Click
setcursorpos(x, y);
mouse_event(MOUSEEVENTF_RIGHTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_RIGHTUP,0,0,0,0);
- Mouse Left Button Double Click
setcursorpos(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
Sleep(10);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);