• winform模拟鼠标按键


      今天朋友说被他们公司的学习网站恶心到了,下班后要他看学习资料,看完点下一页,而且一页必须停留多少时间才能点击下一页,想不看都不行,于是晚上我突发奇想要给他做一个模拟鼠标按键的程序,可以让鼠标定时间隔触发单击,顺便做下程序最小化到右下角。

      首先要引用下user32.dll文件,电脑里就有,C:WindowsSystem32搜索下出来了,复制出来放到debug目录下就行。

      以下是解决方案代码

              [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
              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; //标示是否采用绝对坐标 
    
    
            public Form1()
            {
                InitializeComponent();
            }
    
              private void timer1_Tick(object sender, EventArgs e)
            {
                if (rbtnClick.Checked)
                {
                    mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
                }
                if (rbtnDoubClick.Checked)
                {
                    mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP | MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, Cursor.Position.X, Cursor.Position.Y, 0, 0);
                }
            }
    View Code

      这是设计界面

       最小化到右下角用了一个notifyIcon控件,在窗体变化时触发事件

      

           private void Form1_Resize(object sender, EventArgs e)
            {
                if (this.WindowState == FormWindowState.Minimized)
                {
                    notifyIcon1.Visible = true;
                    this.Hide();
                    this.ShowInTaskbar = false;//是否在windows任务栏中显示窗体
                }
            }

      双击最小化图标时要恢复窗体

            private void notifyIcon1_MouseDoubleClick(object sender, MouseEventArgs e)
            {
                if (!this.ShowInTaskbar)
                {               
                    this.ShowInTaskbar = true;
                    this.Show();
                    this.Activate();
                    this.WindowState = FormWindowState.Normal;
                }
            }

      总体工作做好了,记得给notifyIcon控件上个图标。运行起来,启动按钮,最小化程序,鼠标就会间隔性地点击啦。
      拓展:可以加入键盘按键功能,指定时间模拟出键盘按键。是否还可以加入模拟鼠标滚轮。以后有需要可以继续写出来。

      

  • 相关阅读:
    052-159
    ConfigurationManager.AppSettings["SiteUrl"] DataIDField="Id"
    for循环提交Grid中的数据,防止乱码的问题
    d_YWZC_new_Main中如何发送邮件
    EditGrid中的用法
    extjs中的suspendLayouts、suspendEvents、resumeEvents、resumeLayouts;
    如何保存复选框中的值,以及如何显示复选框中的值
    提交时,若Grid列表框中没有数据,如何利用js提示
    上传文件的时候,如何只获取选中的文件名
    复选框的全选和取消全选功能(来自华三,使用js代码实现)
  • 原文地址:https://www.cnblogs.com/wuyouyu/p/3356303.html
Copyright © 2020-2023  润新知