반응형

* C# API 를 이용한 마우스 커서 이동 및 마우스 버튼 클릭 이벤트 예제...

 

Main

전체 소스 코드

Form1.cs

 

- API 선언 함수

 : mouse_event , GetCursorPos, SetCursorPos

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace CSharp_MouseClick
{
    public partial class Form1 : Form
    {

        //API 선언
        [DllImport("user32.dll")]
        static extern void mouse_event(uint dwFlags, uint dx, uint dy, uint dwData, int dwExtraInfo);
        [DllImport("user32.dll")] 
        static extern bool GetCursorPos(ref Point lpPoint);
        [DllImport("user32.dll")] 
        static extern int SetCursorPos(int x, int y);


        //변수 선언...
        private const uint MOUSE_LBUTTONDOWN = 0x0002;   // 왼쪽 마우스 버튼 눌림
        private const uint MOUSE_LBUTTONUP = 0x0004;   // 왼쪽 마우스 버튼 떼어짐

        Point pi = new Point();

        public Form1()
        {
            InitializeComponent();
        }

        protected override void OnLoad(EventArgs e)
        {
            base.OnLoad(e);

            timer1.Start();

        }

        protected override void OnClosed(EventArgs e)
        {
            base.OnClosed(e);

            timer1.Stop();

        }

        private void button2_Click(object sender, EventArgs e)
        {
            //Start
            if (IsInt(txtX.Text) == 0 && IsInt(txtY.Text) == 0)
            {
                MessageBox.Show("TextBox Value Not Number !!! Check Please...", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
                txtX.Focus();
                return;
            }

            //Cursor Location
            SetCursorPos(Convert.ToInt32(txtX.Text), Convert.ToInt32(txtY.Text));

            //Mouse Left Button Click
            mouse_event(MOUSE_LBUTTONDOWN, 0, 0, 0, 0); //Mouse LEFT Down Event
            mouse_event(MOUSE_LBUTTONUP, 0, 0, 0, 0);   //Mouse LEFT UP Event
            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            //Result
            MessageBox.Show("API Mouse Button Click Success...", "확 인", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            //Mouse Cursor Location
            if (GetCursorPos(ref pi))
            {
                lblX.Text = pi.X.ToString();
                lblY.Text = pi.Y.ToString();
            }
        }


        private int IsInt(object ob)
        { 
            if (ob == null) return 0; 
            
            int iCheck = 0; 
            bool bCheck = int.TryParse(ob.ToString(), out iCheck); 
            
            if (!bCheck) 
            { 
                return 0; 
            } 

            return iCheck;
        }

        

    }
}

 

 

*예제 결과

 

결과 화면

 

https://kdsoft-zeros.tistory.com/162

 

[C#] [API] 마우스 커서 좌표 얻어 오기

* C# API 를 이용한 마우스 커서 좌표 얻어오기 예제... 전체 소스 코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; us..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/76

 

[C#] string 을 int 및 double 형으로 변환 하기, null 체크

* string 문자열을 정수 및 실수 형으로 변환 하기 예제... 전체 소스코드 Form1.cs using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing;..

kdsoft-zeros.tistory.com

 

https://kdsoft-zeros.tistory.com/165

 

[VBNET] [API] Mouse Cursor Move And AutoClick Event

* VBNET API 를 이용한 마우스 커서 좌표 이동 및 이동한 위치 자동 클릭 이벤트 예제... 전체 소스 코드 Form1.vb Imports System.Runtime.InteropServices Public Class Form1 'API선언... <dllimport("user32"..< p=""> </dllimport("user32"..<>

kdsoft-zeros.tistory.com

 

반응형

+ Recent posts