Winform窗体任意位置模拟鼠标点击

2025-10-27 00:42:38

1、首先小编创建一个winform程序,然后在主窗口中添加两个按钮,这里我们要实现的功能是点击A按钮的时候,程序自动点击B按钮,如下图:

Winform窗体任意位置模拟鼠标点击

2、这里是具体的代码,这里面实现了两个按钮的点击事件,点击A按钮的时候弹出对话框我是A按钮,点击B按钮的时候弹出对话框我是B按钮,如下图:

Winform窗体任意位置模拟鼠标点击

3、接下来我们创建一个鼠标点击的新类,按照下图中红色箭头指示步骤右键点击项目,然后点击添加,如下图:

Winform窗体任意位置模拟鼠标点击

4、在弹出的添加新项的对话框中,选择 类,然后在名称处输入任意名称,这里小编的类名称为MouseFlag,然后点击添加,如下图;

Winform窗体任意位置模拟鼠标点击

5、下图中代码就是新建的MouseFlag类的具体实现,小编将其中主要的代码进行解释:

其中的枚举部分不是重要部分,直接写上就好

mouse_event方法,这个方法的作用是模拟鼠标点击事件 

SetCursorPos方法,这个方法是移动鼠标到指定位置

MouseLefClickEvent(int dx, int dy, uint data)方法实现的是将鼠标移动到指定位置并且进行点击,

如下图:

Winform窗体任意位置模拟鼠标点击

6、下图中是Form1.cs的代码,在A按钮的点击事件中添加一些代码,对其中重要的代码做出解释

 Point p_orignal = Control.MousePosition;

这句代码意思是获取当前鼠标位置

 Point p = new Point(0,0);

创建一个点,这个点表示整体屏幕的左上角的起始点(0,0)

 int click_x = this.button2.PointToScreen(p).X;

这里是获取B按钮的左上角相对于屏幕的位置X

int click_y = this.button2.PointToScreen(p).Y;

这里是获取B按钮的左上角相对于屏幕的位置Y

MouseFlag.MouseLefClickEvent(click_x, click_y, 0);

这里调用鼠标点击事件

MouseFlag.SetCursorPos(p_orignal.X,p_orignal.Y);

这里将鼠标的位置还原

如下图:

Winform窗体任意位置模拟鼠标点击

7、启动程序,然后点击A按钮,会发现,程序会自动执行点击A按钮然后再程序中模拟执行点击B按钮,并且会自动将鼠标位置还原。

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢