* C# API 를 이용한 마우스 커서 이동 및 마우스 버튼 클릭 이벤트 예제...
전체 소스 코드
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
https://kdsoft-zeros.tistory.com/76
https://kdsoft-zeros.tistory.com/165
'C# Programming' 카테고리의 다른 글
[C#] [WMI] 실시간 메모리 사용량 체크 (Memory Check) - Progressbar (0) | 2020.03.17 |
---|---|
[C#] 제어판 프린터(Printer) 목록 불러오기 (0) | 2020.03.13 |
[C#] [API] 마우스 커서 좌표 얻어 오기 (0) | 2020.03.09 |
[C#] [API] 한/영 키 상태 값 구하기 (0) | 2020.03.05 |
[C#] 윈도우 폼(Window Form) - 폼(Form) 화면 그대로 프린트(Print) (0) | 2020.03.03 |