티스토리 뷰

Windows/API

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

최우림 -=HaeJuK=- 2015.06.15 18:36

간단한 마우스 이벤트 발생 코드 입니다. 


Header 파일 입니다.

void ClickMouse(int parm_x, int parm_y, char parm_left_flag)

Source 파일 입니다.

void ClickMouse(int parm_x, int parm_y, char parm_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(parm_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()); 
	} 
} 

사용법 입니다.

int main()
{
    Sleep(1000);
	POINT MousePos;
	::GetCursorPos(&MousePos);

    // 0,0, 으로 이동 후 왼쪽 버튼을 클립합니다.
	ClickMouse(0, 0, 1); 

    // 0,0, 기존 마우스 포인트로 복귀 하여 왼쪽을 클릭 합니다.
	ClickMouse(MousePos.x, MousePos.y, 1); 
	return 0;					
}
댓글
  • 프로필사진 11 긁히지 않게 해 놓으려면 뭐하러 코드 공개 해 놓으신건지... 따라서 타이핑 하라고요? 2019.05.22 00:07
  • 프로필사진 22 코드 설명도아니고 공유하는 글 같은데 복사를 못하게하면 어쩌란건지 모르겠네요 코드자랑하려고 올리신건 아니죠? 2019.05.30 17:27
댓글쓰기 폼