11点左右突然想完成一个比较繁杂的应用 (- – 原因这里就不说了)
之前有个蛮不错鼠标按键模拟exe,今天有些地方懒得点鼠标,却找不到了,
自己写个吧
1,实现任务: 模拟连续点击鼠标左键
2,附加功能: 自定义选择延时,支持捕获键盘按键来启动或终止
初步需要达成函数功能
1 模拟鼠标点击
2 计时功能的实现和时间循环
3 键盘事件的实现
以前完全没试过,开始只是有以上大概的想法,在vs里乱逛了会,决定用C#实现,无他…简单点吧…
参考资料 : googlegooglegooglegoogle…… 写到最后整合的时候已经打开一堆窗口…
好在完成了
下面把在网上找到的最有价值参考和自己的相应代码贴上来
//标题为”桔子”
MessageBox.Show(“URL:http://www.shx.name/”, “桔子”);
……………….
MessageBox.Show(“URL:http://www.shx.name/”, “桔子”, MessageBoxButtons.YesNoCancel, MessageBoxIcon.Warning,MessageBoxDefaultButton.Button2);
– -这里是因为开始我都不记得怎么弹出对话框了..有时测试时会用上,这个事查资料时的小插曲…
以下是模拟鼠标的实现参考
这个函数在user32.dll这个库文件里面。我们可以在C:\WINDOWS\system32(XP系统)这个目录下找到这个文件,他是系统自带的。我们以C#直接调用这个文件中的API为例子来说下怎么进行鼠标操作,首先在我们C#中声明引用,如果是一个基于From的程序,这个声明的位置写在你的 From class就可以了
[System.Runtime.InteropServices.DllImport(“user32”)]
private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);
…………………………….
const int MOUSEEVENTF_MOVE = 0x0001; 移动鼠标
const int MOUSEEVENTF_LEFTDOWN = 0x0002; 模拟鼠标左键按下
const int MOUSEEVENTF_LEFTUP = 0x0004; 模拟鼠标左键抬起
const int MOUSEEVENTF_RIGHTDOWN = 0x0008; 模拟鼠标右键按下
const int MOUSEEVENTF_RIGHTUP = 0x0010; 模拟鼠标右键抬起
const int MOUSEEVENTF_MIDDLEDOWN = 0x0020; 模拟鼠标中键按下
const int MOUSEEVENTF_MIDDLEUP = 0x0040; 模拟鼠标中键抬起
const int MOUSEEVENTF_ABSOLUTE = 0x8000; 标示是否采用绝对坐标
程序中我们直接调用mouse_event函数就可以了
………………………
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 )
3、两次连续的鼠标左键单击事件 构成一次鼠标双击事件:
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
mouse_event (MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0 )
………………………………….
之后是timer部分参考 参考页面里的MM照片很漂亮
using System.Threading;
using System.Timers;
………………….private System.Timers.Timer timerClock = new System.Timers.Timer();
timerClock.Elapsed += new ElapsedEventHandler(OnTimer);
timerClock.Interval = 1000;
timerClock.Enabled = true;public void OnTimer( Object source, ElapsedEventArgs e )
{
//Your code here
}
最后是键盘事件的实现
这一部分个人觉得最好的参考是2005年写的..
在C#程序定义”KeyDown”、”KeyUp”事件的语法如下:
“组件名称”.”事件名称”+= new Syetem.Windows.Froms. KeyEventHandler(”事件名称”);
下面是程序中具体实现代码:
button1. KeyUp += new Syetem.Windows.Froms. KeyEventHandler(button1_KUp); 下面是响应上面事件的基本结构。
private void button1_KUp ( object sender , Syetem.Windows.Froms. KeyEventArgs e )
{
此处加入响应此事件的代码
}
还有顺眼看见的,加到代码里。判断ctrl+p时会用
private void Form1_KeyDown(object sender, KeyEventArgs e)
{ if(e.Control && e.KeyCode == Keys.A)
this.BackColor = Color.Red; }
至于我自己的代码部分再发帖吧。