C#实现想法小记

   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; }

至于我自己的代码部分再发帖吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值