반응형
화면의 특정 위치에서 마우스 클릭을 시뮬레이션하려면 어떻게 해야 합니까?
제가 하고 싶은 것은 마우스를 조작하는 것입니다.그것은 나만의 목적을 위한 간단한 매크로가 될 것입니다.따라서 마우스를 화면의 특정 위치로 이동하고 특정 간격으로 클릭하는 것처럼 클릭합니다.
다음은 관리되지 않는 기능을 사용하여 마우스 클릭을 시뮬레이션하는 코드입니다.
//This is a replacement for Cursor.Position in WinForms
[System.Runtime.InteropServices.DllImport("user32.dll")]
static extern bool SetCursorPos(int x, int y);
[System.Runtime.InteropServices.DllImport("user32.dll")]
public static extern void mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
public const int MOUSEEVENTF_LEFTDOWN = 0x02;
public const int MOUSEEVENTF_LEFTUP = 0x04;
//This simulates a left mouse click
public static void LeftMouseClick(int xpos, int ypos)
{
SetCursorPos(xpos, ypos);
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
}
특정 기간 동안 마우스를 계속 누르고 있으려면 다음을 수행합니다.Sleep()
이 함수를 실행하는 스레드, 예:
mouse_event(MOUSEEVENTF_LEFTDOWN, xpos, ypos, 0, 0);
System.Threading.Thread.Sleep(1000);
mouse_event(MOUSEEVENTF_LEFTUP, xpos, ypos, 0, 0);
위의 코드는 사용자가 마우스 버튼을 누르지 않는 한 마우스를 1초 동안 누른 상태로 유지합니다.또한 메인 UI 스레드에서 이 코드를 실행하지 마십시오. 메인 UI 스레드가 중단될 수 있습니다.
XY 위치로 이동할 수 있습니다.아래의 예:
windows.Forms.Cursor.Position = New System.Drawing.Point(Button1.Location.X + Me.Location.X + 50, Button1.Location.Y + Me.Location.Y + 30)
클릭하려면 다음 코드를 사용할 수 있습니다.
using System.Runtime.InteropServices;
private const UInt32 MOUSEEVENTF_LEFTDOWN = 0x0002;
private const UInt32 MOUSEEVENTF_LEFTUP = 0x0004;
[DllImport("user32.dll")]
private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, uint dwExtraInf);
private void btnSet_Click(object sender, EventArgs e)
{
int x = Convert.ToInt16(txtX.Text);//set x position
int y = Convert.ToInt16(txtY.Text);//set y position
Cursor.Position = new Point(x, y);
mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);//make left button down
mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);//make left button up
}
JONYKUTTY에 대한 크레딧
언급URL : https://stackoverflow.com/questions/8272681/how-can-i-simulate-a-mouse-click-at-a-certain-position-on-the-screen
반응형
'programing' 카테고리의 다른 글
Azure 웹 사이트가 절전 모드로 전환되는 것을 방지하는 방법은 무엇입니까? (0) | 2023.04.26 |
---|---|
SQL Server 커서에서 여러 값 가져오기 (0) | 2023.04.26 |
Eclipse 글꼴 및 배경색 (0) | 2023.04.26 |
각도 재료가 각도 재료 코어 테마를 찾을 수 없습니다. (0) | 2023.04.26 |
함수 호출 시 목록을 *args로 변환 (0) | 2023.04.26 |