반응형

 

 

특정 위치 마우스 자동 클릭

 

 

프로그램 이해하는데에는 크게 문제없을 겁니다.

시작 위에 나와있는 좌표 보고 자동클릭할 좌표를 텍스트 박스에 적어주시고

반복할 횟수 값 넣어주시면 됩니다.

 

 

<실행 화면>

 

 

 

<실행 파일>

 

 

XY_Click.exe

 

 

 

<소스코드>

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Muse_con
{
    public partial class Form1 : Form
    {
        [DllImport("User32.dll")]
        private static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);

        private static int Cur_x, Cur_y; // text박스에서 가져올 X축, Y축
        private static int Loop_cun; // 반복횟수

        private const uint L_down = 0x0002;//왼쪽 마우스 버튼 누름
        private const uint L_up = 0x0004; // 왼쪽 마우스 버튼 땜

        public Form1()
        {
            InitializeComponent();
        }
        private void Form1_Load(object sender, EventArgs e)
        {
            timer1_Tick(sender, e);
            timer1.Interval = 300; //스케쥴 간격을 0.3초로 준 것이다.
            timer1.Start(); //타이머를 발동시킨다.
        }
        private void timer1_Tick(object sender, EventArgs e)
        {
            Cur_label.Text = "X : " + Cursor.Position.X.ToString() + "   Y : " + Cursor.Position.Y.ToString();
        }
        private void start_Click(object sender, EventArgs e)
        {
            if (!String.IsNullOrEmpty(text_x.Text)&& !String.IsNullOrEmpty(text_y.Text))
            {
                Cur_x = Convert.ToInt32(text_x.Text);
                Cur_y = Convert.ToInt32(text_y.Text);
                Cursor.Position = new Point(Cur_x, Cur_y); // XY축으로 마우스 이동
            }
            Loop_cun = Convert.ToInt32(text_cun.Text);

            
            for (int i = 0; i <Loop_cun; i++)
            {
                mouse_event(L_down, 0, 0, 0, 0);
                mouse_event(L_up, 0, 0, 0, 0);
            }
        }
        private void exit_Click(object sender, EventArgs e)
        {
            Application.Exit();
        }

    }
}

 

<참고자료>

https://docs.microsoft.com/en-us/windows/desktop/api/winuser/nf-winuser-mouse_event

문제점이나 개선사항은 댓글 부탁드립니다.

반응형

+ Recent posts