C#에서 마우스 이벤트 에뮬레이션
사실 주로 보여드리는 거예요.
[DllImport("user32.dll")]
static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo);
의 사용법, 이 코드에서 button1은 항상 초점이 있기 때문에MainFormKeyDown이 실행되지 않습니다.그런데 제가 다른 방법으로 마우스를 촉발했어요이벤트 결과 button1 클릭 이벤트가 실행되지 않았습니다.그건 내가 좀 더 연구해 볼게.
프로그램에서 마우스 자동 실행 이벤트도 사용할 수 있습니다.그것의 원리는user32를 호출하는 것이다.dll 방법으로 실행합니다.다음 코드는 마우스 자동 클릭 이벤트의 예입니다.새 c# 창 프로젝트를 만듭니다. 창에 button을 끌어다 놓고 button의 마우스 클릭 이벤트를 등록합니다.다음과 같습니다.
public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Button1 !"); } }
user32를 호출할 클래스를 추가합니다.dll의 mouse이벤트 방법:
public class MouseFlag { [DllImport("user32.dll")] static extern void mouse_event(MouseEventFlag flags, int dx, int dy, uint data, UIntPtr extraInfo); [Flags] enum MouseEventFlag : uint { Move = 0x0001, LeftDown = 0x0002, LeftUp = 0x0004, RightDown = 0x0008, RightUp = 0x0010, MiddleDown = 0x0020, MiddleUp = 0x0040, XDown = 0x0080, XUp = 0x0100, Wheel = 0x0800, VirtualDesk = 0x4000, Absolute = 0x8000 } public static void MouseLefDownEvent(int dx, int dy, uint data) { mouse_event(MouseEventFlag.LeftDown,dx, dy, data, UIntPtr.Zero); } }
테스트는 다음과 같습니다: 창에 KeyDown 이벤트를 추가하고 자동으로 클릭하는 방법을 호출합니다.
public partial class MainForm : Form { public MainForm() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { MessageBox.Show("Button1 !"); } private void MainForm_KeyDown(object sender, KeyEventArgs e) { MouseFlag.MouseLefDownEvent(this.button1.Location.X, this.button1.Location.Y,0); } }
실행 후 창에 초점이 있는 상태에서 키보드의 키를 누르면 button의 클릭 이벤트를 터치합니다. 그림:
관심 있을 수도 있습니다: c# 인터페이스 마우스 드래그 컨트롤이 부모 창이나 화면에 있는 절대 좌표
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.