티스토리 뷰

반응형

마우스 이벤트 발생하기

윈도우 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
반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함