C#实现鼠标的自动循环指定操作
来源:互联网 发布:php删除数据库指定元素 编辑:程序博客网 时间:2024/06/05 08:57
C#实现鼠标的自动循环指定操作
本文将以写过的一款实用软件:鼠标自动指定操作的实现为例,详细介绍C#如何实现对鼠标的操作,同时包括对键盘事件的捕捉。
废话不多说,先给大家看看实现的软件功能:
如上图所示:该款软件可设定鼠标单击还是双击、自动点击速度、需要循环点击的位置(通过捕捉键盘的1234键确认鼠标位置)。并且可依据键盘事件中e的监听停止鼠标的循环点击。
首先需要定义一些从非托管DLL导出来的函数:
//是鼠标自动移动到某个位置 [DllImport("user32.dll", EntryPoint = "SetCursorPos")] public extern static bool SetCursorPos(int x, int y); //获取鼠标当前的位置 [StructLayout(LayoutKind.Sequential)] public struct POINT { public int X; public int Y; } [DllImport("User32")] public extern static bool GetCursorPos(out POINT p); //是否显示鼠标箭头 [DllImport("User32")] public extern static int ShowCursor(bool bShow); //调用系统函数 模拟鼠标事件函数 [DllImport("user32", EntryPoint = "mouse_event")] private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
详细实现可参见我的上一篇博客:http://blog.csdn.net/laozhuxinlu/article/details/50429743。
接下来就是获取指定需要单击或者双击的位置。
首先定义四个私有int型参数:
private int x1,y1,x2,y2,x3,y3,x4,y4;
private void Automatic_mouse_click_KeyPress(object sender, KeyPressEventArgs e) { if(e.KeyChar == '1') { //获取当前鼠标的位置 POINT p = new POINT(); GetCursorPos(out p); x1 = p.X; y1 = p.Y; textBox1.Text = "" + p.X + "--" + p.Y; } if (e.KeyChar == '2') { //获取当前鼠标的位置 POINT p = new POINT(); GetCursorPos(out p); x2 = p.X; y2 = p.Y; textBox2.Text = "" + p.X + "--" + p.Y; } if (e.KeyChar == '3') { //获取当前鼠标的位置 POINT p = new POINT(); GetCursorPos(out p); x3 = p.X; y3 = p.Y; textBox3.Text = "" + p.X + "--" + p.Y; } if (e.KeyChar == '4') { //获取当前鼠标的位置 POINT p = new POINT(); GetCursorPos(out p); x4 = p.X; y4 = p.Y; textBox4.Text = "" + p.X + "--" + p.Y; } if (e.KeyChar == 's') { times = 0; timer1.Enabled = true; } if (e.KeyChar == 'e') { timer1.Enabled = false; } }
数字键1/2/3/4实现对鼠标位置的捕获,s键开启定时器开始循环点击,e键取消定时器的循环。
单击、双击的设定:
private void radioButton1_CheckedChanged(object sender, EventArgs e) { one_or_two = true; } private void radioButton2_CheckedChanged(object sender, EventArgs e) { one_or_two = false; }
鼠标点击快慢的设定(主要是通过checkBox控件实现对定时器timer1的属性Interval进行赋值更改选择):
private void checkBox1_CheckedChanged(object sender, EventArgs e) { checkBox2.Checked = false; checkBox3.Checked = false; timer1.Interval = 2000; } private void checkBox2_CheckedChanged(object sender, EventArgs e) { checkBox1.Checked = false; checkBox3.Checked = false; timer1.Interval = 1000; } private void checkBox3_CheckedChanged(object sender, EventArgs e) { checkBox1.Checked = false; checkBox2.Checked = false; timer1.Interval = 600; }
源代码资源:http://download.csdn.net/detail/laozhuxinlu/9510294。
0 0
- C#实现鼠标的自动循环指定操作
- C#实现对鼠标的操作
- C#模拟鼠标在指定区域进行指定操作的小工具
- C# 中实现鼠标自动隐藏
- C#对鼠标的操作
- C# SendInput 实现模拟鼠标操作
- C# SendInput 实现模拟鼠标操作
- C# WPF 实现鼠标固定在指定范围内运动
- C#鼠标自动点击
- 软件在指定时间间隔内无鼠标移动键盘点击等动作自动锁定的实现
- 软件在指定时间间隔内无鼠标移动键盘点击等动作自动锁定的实现
- AJAX实现类似百度的搜索提示,自动补全和键盘、鼠标操作
- C#模拟window操作鼠标的方法
- c#实现自动点击鼠标左键(例子)
- 如何在C#中用程序执行指定的SQL脚本文件,实现自动安装创建数据库
- C# 系统应用之鼠标模拟技术及自动操作鼠标
- Android关于界面一定时间无操作自动跳转到指定界面的实现
- Android关于界面一定时间无操作自动跳转到指定界面的实现
- USACO - 2.2 Subset Sums(DP)
- DOM编程艺术学习(一)
- 性能调优,知多少?
- 漫谈Quora,知乎和StackOverflow
- 正则表达式
- C#实现鼠标的自动循环指定操作
- TortoiseSVN基本操作和冲突演示2
- Linux环境编程 背景知识
- Java中throw和throws的区别
- USACO - 2.2 Runaround Numbers(枚举)
- hdu 3240 卡特兰数+质因数分解+扩展欧几里得求乘法逆元
- NSDate--自学习笔记
- C#调用SQL Server分页存储过程
- Linux 动态链接和静态链接简析(库名与库文件名)