티스토리 뷰

개발/WIN32-MFC

[WIN32] 마우스 이벤트 발생하기

최우림 -=HaeJuK=- 2015. 6. 15. 18:36

마우스 이벤트 발생하기

윈도우 OS 내에서 마우스 이벤트를 발생 코드입니다. 

 

코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
void ClickMouse(int parm_x, int parm_y, bool left_flag) 
    int x_pos = parm_x*65535/GetSystemMetrics(SM_CXSCREEN); 
    int y_pos = parm_y*65535/GetSystemMetrics(SM_CYSCREEN); 
 
    ::mouse_event(MOUSEEVENTF_MOVE | MOUSEEVENTF_ABSOLUTE, x_pos, y_pos, 
        0, ::GetMessageExtraInfo()); 
 
    if(left_flag){
        ::mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_ABSOLUTE, 
            x_pos, y_pos, 0, ::GetMessageExtraInfo()); 
        ::mouse_event(MOUSEEVENTF_LEFTUP | MOUSEEVENTF_ABSOLUTE, 
            x_pos, y_pos, 0, ::GetMessageExtraInfo()); 
    } 
    else
     { 
        ::mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_ABSOLUTE, 
            x_pos, y_pos, 0, ::GetMessageExtraInfo()); 
        ::mouse_event(MOUSEEVENTF_RIGHTUP | MOUSEEVENTF_ABSOLUTE, 
            x_pos, y_pos, 0, ::GetMessageExtraInfo()); 
    } 
 
cs

 

 

사용방법

1
2
3
4
5
6
7
8
9
10
11
12
13
int main()
{
    Sleep(1000);
    POINT MousePos;
    ::GetCursorPos(&MousePos);
 
    // 0,0, 으로 이동 후 왼쪽 버튼을 클립합니다.
    ClickMouse(001); 
 
    // 0,0, 기존 마우스 포인트로 복귀 하여 왼쪽을 클릭 합니다.
    ClickMouse(MousePos.x, MousePos.y, 1); 
    return 0;                    
}
cs
댓글
댓글쓰기 폼