반응형

사용자의 마우스 컨트롤 없이 자동으로 지정된 위치에서 마우스를 클릭하게 만들어 주는 기능 입니다.

 

먼저 아래와 같이 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

 

재택근무 필수 유틸 "자리안비움" - 윈도우 꺼짐 방지

요즘 코로나 바이러스 때문인지 덕분인지 재택근무를 하는 분들이 많은데요. 막상 집에 있다 보면 사무실에 있을 때 처럼 연속해서 자리에 머무르지 못하는 경우가 종종 있습니다. 애들이나 와이프가 뭐 부탁하면..

diy-dev-design.tistory.com

 

2020/07/21 - [DEV/c#] - C# 문자열 읽어서 문자열에 해당하는 변수에 값 세팅하기

 

C# 문자열 읽어서 문자열에 해당하는 변수에 값 세팅하기

오늘 소개해드릴 꿀팁은요. 문자열을 읽어 들여서 문자열 내에 들어있는 특정 단어를 이용하여 개발 중인 코드의 변수로 인식하여 해당 변수에 값을 세팅하는 방법을 소개해 드릴까 합니다. 예�

diy-dev-design.tistory.com

2023.01.31 - [DEV/c#] - [c#] Resource 에 추가한 텍스트를 소스코드에서 불러오기

 

[c#] Resource 에 추가한 텍스트를 소스코드에서 불러오기

뻔하디 뻔한 개발 노하누는 가라~ 이번에도 쓸만한 내용을 소개해 드릴 까 합니다. 개발을 하다 보면 실제 소스코드 외에도 어떤 텍스트를 resource 에 넣어 두고 소스코드에서 불러와야 하는 경우

diy-dev-design.tistory.com

 

반응형

+ Recent posts