winform模拟鼠标按键的具体实现

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

  首先要引用下user32.dll文件,电脑里就有,C:\Windows\System32搜索下出来了,复制出来放到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);
            }
        }

这是设计界面

 最小化到右下角用了一个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控件上个图标。运行起来,启动按钮,最小化程序,鼠标就会间隔性地点击啦。
  拓展:可以加入键盘按键功能,指定时间模拟出键盘按键。是否还可以加入模拟鼠标滚轮。以后有需要可以继续写出来。

(0)

相关推荐

  • C# WinForm中Panel实现用鼠标操作滚动条的实例方法

    方法如下:在窗体的Load事件注册滚动事件,并增加对应的方法 复制代码 代码如下: private void FormSample_Load(object sender, EventArgs e)        { //注册事件            this.MouseWheel += new MouseEventHandler(FormSample_MouseWheel);        } /// <summary>        /// 滚动方法        /// </sum

  • winform实现限制及解除鼠标移动范围的方法

    本文实例讲述了winform实现限制及解除鼠标移动范围的方法.分享给大家供大家参考.具体如下: 限制鼠标的移动范围: // this.Cursor = new Cursor(this.Cursor.Handle); // Cursor.Position = new Point(Cursor.Position.X, Cursor.Position.Y); Cursor.Clip = new Rectangle(this.Location, this.Size); 解除限制鼠标的移动范围: Scre

  • Winform实现鼠标可穿透的窗体镂空效果

    今天找到一个名叫LICEcap的录屏软件,录制界面是这样的: 这个炫酷的空心窗口就是镜头,调整好大小,然后对准需要录制的地方按下Record就可以生成gif了. 卧槽太NB了我也要做一个! 根据StackOverflow站的提示(在这里),我们需要使用一个在Windows2000及之后平台可用的,用以实现不规则窗体的分层窗口API (SetLayerWindowAttributes).根据百度我们先需要使用一个名为SetWindowLong的Win32 API来把窗体设定为分层窗体. 为了在.N

  • 解决C# winForm自定义鼠标样式的两种实现方法详解

    第一种:(调用系统API)首先引入两个命名空间 复制代码 代码如下: using System.Runtime.InteropServices;using System.Reflection; 导入API 复制代码 代码如下: [DllImport("user32.dll")]public static extern IntPtr LoadCursorFromFile(string fileName);[DllImport("user32.dll")]public

  • C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法

    本文实例讲述了C#实现Winform鼠标拖动窗口大小时设定窗口最小尺寸的方法.分享给大家供大家参考,具体如下: winform 程序运行过程中,用户用鼠标拖动窗体大小时,如将窗体调整得极小,可能窗体上的控件就面目全非(或看不到了),用下面的代码可以设定窗口的最小尺寸,以防止这种情况 private void Form1_ResizeEnd(object sender, EventArgs e) { //this.Text = "2width:" + this.Width.ToStrin

  • winform模拟鼠标按键的具体实现

    今天朋友说被他们公司的学习网站恶心到了,下班后要他看学习资料,看完点下一页,而且一页必须停留多少时间才能点击下一页,想不看都不行,于是晚上我突发奇想要给他做一个模拟鼠标按键的程序,可以让鼠标定时间隔触发单击,顺便做下程序最小化到右下角. 首先要引用下user32.dll文件,电脑里就有,C:\Windows\System32搜索下出来了,复制出来放到debug目录下就行. 以下是解决方案代码 复制代码 代码如下: [DllImport("user32.dll", CharSet = C

  • C# winform 模拟键盘输入自动接入访问网络的实例

    背景: 由于所在办公室网络限制,笔者每天都使用网络都要先连接无线网.如下图,输入授权用户信息登录后才能使用WIFI. 丧心病狂的是该网页Cookie 过期时间为24小时,所以每天重复以下动作:打开浏览器 -> 手动输入 工号密码.密码 -> 点击"登录"按钮. 作为一个懒出天际的程序员,逃避这种重复劳动是必须滴~~ 解决方案: 创建一个C# 应用程序,使用WebBrowser控件加载该页面,模拟键盘输入账号.密码,把用户配置分别赋值给两个控件,然后调用按钮的点击事件. 具体

  • Python+Selenium键盘鼠标模拟事件操作详解

    目录 元素的基本操作 鼠标键盘模拟事件操作 利用 Keys 模块模拟键盘操作事件 利用 Action 类模拟鼠标操作事件 当我们定位到具体的一个元素的时候就可以对这个元素进行具体的操作,比如之前章节所执行的 click 操作.这是最简单的操作,webdriver 还有其他的操作.比如元素的基本操作(点击.输入.清除),还有一些高级操作如鼠标键盘模拟事件.弹出框处理.多页面切换等… 这些都是需要我们了解的内容,也是在做自动化测试的时候经常遇到的一些基本场景.今天这一章节,我们就先来学习一下元素的基

  • 英雄联盟辅助lol挂机不被踢的方法(lol挂机脚本)

    调用API设置鼠标位置并模拟鼠标右键让人物走动,全局钩子等 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; using System.Windows.Forms;using System.Runtime.InteropServices;using System.Threading; namespace LOLSetCursor{    public cla

  • 易语言仿按键精灵录制键盘鼠标操作的代码

    DLL命令表 .版本 2 .DLL命令 取按键状态, 短整数型, "user32.dll", "GetAsyncKeyState" .参数 鼠标键, 整数型 .DLL命令 取鼠标位置, 整数型, "user32.dll", "GetCursorPos" .参数 当前鼠标位置, 鼠标位置, 传址 .DLL命令 模拟鼠标按键, , , "mouse_event" .参数 鼠标动作, 整数型 .参数 水平位置,

  • Python利用Selenium实现网站自动签到功能

    目录 什么是Selenium 前情提要 准备工作 代码及讲解 点击登录 点击跳过弹窗 小结 什么是Selenium 先带领大家学习下Selenium的基本概念吧. Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化. 它的特点如下: 开源,免费 多浏览器支持:Firefox.Chrome.IE等 多平台支持:Linux.Windows.Mac 多语言支持:Java.Python.Ruby.C#.JavaScript.C++ 对web页面有良

  • 利用Python实现网站自动签到

    目录 前情提要 准备工作 代码及讲解 小结 前情提要 小五收藏了一些论坛网站,经常需要自己登录签到,以此来获得积分金币等等. 步骤倒是并不复杂,只需要填写账号密码登录,然后点击签到即可. 但天天手动太容易忘了这件事啦.毕竟我们都会用python了,那就可以使用Selenium操作:浏览器实现自动签到啊! 现在开始上手工作 准备工作 首先我们需要先安装Selenium,从而实现后续自动化操控浏览器.我们可以利用它来模拟鼠标按键,跟按键精灵很类似. pip install selenium 待其安装

  • Python 实现键盘鼠标按键模拟

    有时候我们需要使用python执行一些脚本,可能需要让程序自动按键或自动点击鼠标,下面的代码实现了对键盘的模拟按键, 需要安装pypiwin32,当然也可以直接用ctypes来实现. pip install pypiwin32 安装pypiwin32. 键盘模拟 # coding=utf-8 import win32con import win32api import time key_map = {     "0": 49, "1": 50, "2&qu

  • .Net WInform开发笔记(五)关于事件Event

    我前面几篇博客中提到过.net中的事件与Windows事件的区别,本文讨论的是前者,也就是我们代码中经常用到的Event.Event很常见,Button控件的Click.KeyPress等等,PictureBox控件的Paint等等都属于本文讨论范畴,本文会例举出有关"事件编程"的几种方法,还会提及由"事件编程"引起的MemoryLeak(跟"内存泄露"差不多),以及由"事件编程"引起的一些异常. 引子: .net中事件最常用

  • C#之WinForm WebBrowser实用技巧汇总

    本文实例汇总了C#中WinForm WebBrowser常见的实用技巧,对于C#程序开发来说有不错的借鉴价值.分别叙述如下: 方法1:获取状态栏信息 void webBrowser1_StatusTextChanged(object sender, EventArgs e) { label1.Text = webBrowser1.StatusText; } 方法2:页面跳转后改变地址栏地址 //在Navigated事件处理函数中改变地址栏地址是最恰当的: private void webBrow

随机推荐