본문 바로가기
Development/C|C++|C#

[C#]마우스 제어, 컨트롤(클릭, 위치 가져오기)

by True Life 2017. 1. 12.


[C#]마우스 제어, 컨트롤(클릭, 위치 가져오기)


최근 매크로 관련 프로그램 제작중 마우스를 컨트롤해야 할 경우가 있었다.

먼저 AhnLab Online Security 등의 키보드/마우스 원격제어 방지 보안된 프로그램에는 적용되지 않는다는걸 알려주고 시작한다.


어렵지 않다.

일단 user32.dll에 있는 mouse_event WINAPI를 import해야한다.



위와 같이 Form1 안에 넣어주면 된다.

나는 클릭만 할거라서 일단 이렇게 했지만 전체 명령 인자는 아래와 같다.



그런데 조금 삽질했던게.. 위치가 이상하다.

분명히 현재 커서를 보여주는 아래와 같은 구문으로는 좌표값이 잘 보이는데



이걸 mouse_event( ... ) 에 적용만 하면 위치가 이상해지는 것이었다.

ABSOLUTE도 적용해보고 해서 했는데 위치가 문제가 많았다.

그래서 일단 클릭 이벤트는 아래와 같이 구현하고



마우스 좌표 이동은 다른 메서드를 사용했다.

더 간단하다.



mouse_event 2,3번째 값은 일단 좌표값이긴 한데 절대좌표는 아닌것 같고 상대좌표정도가 아닐까..
절대좌표화 하려고 명령인자를 or해주어도 좀 이상하다.

아무튼 이렇게 마무리 지으면 된다.