반응형
사용자의 마우스 컨트롤 없이 자동으로 지정된 위치에서 마우스를 클릭하게 만들어 주는 기능 입니다.
먼저 아래와 같이 DLL 을 불러들여 주어야 하겠습니다.
class 정의 바로 아래부분에 넣어 주면 무난하겠네요.
[DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
[DllImport("user32")]
public static extern int SetCursorPos(int x, int y);
DllImport 부분에 빨간 줄이 나온다면 제일 상단에 아래의 같이 지시문을 추가합니다
using System.Runtime.InteropServices;
using System.Threading;
<2022/12/28 누락된 코드가 있어 추가하였습니다>
그런 다음 마우스를 이동하는 함수를 만들어야 겠습니다.
먼저 상수값을 지정해 주어야 합니다. 마우스의 각 이벤트에 대응되는 상수인데요. 이름은 적당히 적어 주면 됩니다.
역시 Form 상단 클래스 정의 이후에 아래와 같이 정의해주면 되겠습니다.
private const int MouseEV_Move = 0x0001; /* mouse move */
private const int MouseEV_LeftDown = 0x0002; /* left button down */
private const int MouseEV_LeftUp = 0x0004; /* left button up */
private const int MouseEV_RightDown = 0x0008; /* right button down */
private int interval_;
private readonly ManualResetEvent stoppeing_event_ = new ManualResetEvent(false); //System.Threading;
<2022/12/28 누락된 코드가 있어 추가하였습니다>
그런 다음 아래에 실제 함수를 작성해 봅니다.
public void MouseSetPosNclick(int x, int y)
{
try
{
SetCursorPos(x, y);
stoppeing_event_.WaitOne(interval_);
MouseClick_now();
}
catch (Exception e)
{
MessageBox.Show("MouseSetPosNclick\r\n" + e.Message);
}
}
public void MouseClick_now()
{
try
{
mouse_event(MouseEV_LeftDown, 0, 0, 0, 0);
mouse_event(MouseEV_LeftUp, 0, 0, 0, 0);
stoppeing_event_.WaitOne(100);
}
catch (Exception e)
{
MessageBox.Show("MouseClick_now\r\n" + e.Message);
}
}
사용하실 때에는 아래와 같이 사용하시면 되겠습니다.
MouseSetPosNclick(467, 280); // 원하는 좌표를 입력하면 됩니다.
궁금하신 부분은 뎃글로 질문 남겨 주세요~
뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 도움이 되었다 생각되시면 클릭!! 부탁드려요~ |
본 기능을 이용하여 윈도우 잠금 방지 유틸리티를 하나 만들어 보았습니다.
https://diy-dev-design.tistory.com/98
2020/07/21 - [DEV/c#] - C# 문자열 읽어서 문자열에 해당하는 변수에 값 세팅하기
2023.01.31 - [DEV/c#] - [c#] Resource 에 추가한 텍스트를 소스코드에서 불러오기
반응형
'DEV > c#' 카테고리의 다른 글
재택근무 필수 유틸 "자리안비움" - 윈도우 꺼짐 방지 (81) | 2020.03.09 |
---|---|
Excel Automate, 엑셀 자동화 프로그램 (54) | 2020.01.08 |
[C#] C# APP 에서 엑셀 연동해보기 (2) | 2020.01.03 |
[C#] C# .NET 프로젝트에서 ImageMagick 이용하기 (0) | 2019.06.21 |
[C#] Delay 기능 (0) | 2019.06.21 |