博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# mouse keyboard monitor
阅读量:7078 次
发布时间:2019-06-28

本文共 4093 字,大约阅读时间需要 13 分钟。

/*********************************************************************************** *                          C# mouse keyboard monitor * 说明: *     最近想用C#做一个鼠标、键盘模拟器,所以找了点资料模拟一下。 * *                                                 2016-7-10 深圳 南山平山村 曾剑锋 **********************************************************************************/一、参考文档:    1. C# 如何用按钮实现鼠标滚轮操作        http://blog.csdn.net/jglie/article/details/6872333    2. c#  mouse_event 模拟鼠标点击事件 绝对位置        http://blog.sina.com.cn/s/blog_71d894bd01013goa.html    3. C# Win32API 模拟鼠标移动及点击事件        http://www.cnblogs.com/08shiyan/archive/2011/07/18/2109086.html    4. How to: Simulate Mouse and Keyboard Events in Code        https://msdn.microsoft.com/en-us/library/ms171548.aspx    5. SendKeys Class        https://msdn.microsoft.com/en-us/library/system.windows.forms.sendkeys.aspx    6. Virtual-Key Codes        https://msdn.microsoft.com/zh-cn/library/dd375731(v=vs.85).aspx    7. C#中将字母/字符转换为键盘的key/键值/keycode        http://www.crifan.com/convert_char_letter_to_key_keycode_in_csharp/    8. VkKeyScan function        https://msdn.microsoft.com/en-us/library/ms646329(VS.85).aspx二、KeyBoard    using System;    using System.Collections.Generic;    using System.Linq;    using System.Text;    using System.Threading.Tasks;    using System.Runtime.InteropServices;    using System.Windows.Forms;    namespace MouseMonitorW    {        class KeyBoard        {            [DllImport("user32.dll")]            static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);            [DllImport("user32.dll")]            public static extern Keys VkKeyScan(char ch);             public static void sendKey(char key)            {                keybd_event((byte)VkKeyScan(key), 0, 0, 0);                keybd_event((byte)VkKeyScan(key), 0, 2, 0);            }        }    }三、Mouse:    using System;    using System.Collections.Generic;    using System.Linq;    using System.Text;    using System.Threading.Tasks;    using System.Runtime.InteropServices;    namespace MouseMonitorW    {        class Mouse        {            private const int MOUSEEVENTF_MOVE          = 0x0001;   // 移动鼠标             private const int MOUSEEVENTF_LEFTDOWN      = 0x0002;   // 模拟鼠标左键按下             private const int MOUSEEVENTF_LEFTUP        = 0x0004;   // 模拟鼠标左键抬起             private const int MOUSEEVENTF_RIGHTDOWN     = 0x0008;   // 模拟鼠标右键按下             private const int MOUSEEVENTF_RIGHTUP       = 0x0010;   // 模拟鼠标右键抬起             private const int MOUSEEVENTF_WHEEL         = 0x0800;   // 模拟鼠标滚轮            private const int MOUSEEVENTF_MIDDLEDOWN    = 0x0020;   // 模拟鼠标中键按下             private const int MOUSEEVENTF_MIDDLEUP      = 0x0040;   // 模拟鼠标中键抬起             private const int MOUSEEVENTF_ABSOLUTE      = 0x8000;   // 标示是否采用绝对坐标             [DllImport("user32")]            private static extern int mouse_event(int dwFlags, int dx, int dy, int cButtons, int dwExtraInfo);            public static void move(int dx, int dy)            {                mouse_event(MOUSEEVENTF_MOVE, dx, dy, 0, 0);             }            public static void absMove(int x, int y)            {                mouse_event(MOUSEEVENTF_ABSOLUTE | MOUSEEVENTF_MOVE, 500, 500, 0, 0);            }            public static void wheel(int roll)             {                mouse_event(MOUSEEVENTF_WHEEL, 0, 0, roll, 0);            }            public static void leftSingle()            {                mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);            }            public static void leftDouble()            {                mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);                mouse_event(MOUSEEVENTF_LEFTDOWN | MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);            }            public static void right()            {                mouse_event(MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0);            }            public static void middle()            {                mouse_event(MOUSEEVENTF_MIDDLEUP | MOUSEEVENTF_MIDDLEDOWN, 0, 0, 0, 0);            }        }    }

 

你可能感兴趣的文章
C/C++字符串函数之复制函数
查看>>
ELK5.0安装教程
查看>>
Spring MVC 之拦截器(八)
查看>>
[LeetCode] Remove Duplicates from Sorted List II 移除有序链表中的重复项之二
查看>>
EF架构~mysql数据库无法创建数据模型
查看>>
docker~linux下的部署和基本命令
查看>>
java 数组插入元素
查看>>
Mybatis 中$与#的区别
查看>>
在GridView列表中使用图片显示记录是否包含附件
查看>>
[本周] 随手记下 Asp.net 5种页面转向方法
查看>>
初探React,将我们的View标签化
查看>>
Lua 错误 收集
查看>>
在AE10.1环境下调试其他版本的程序
查看>>
26.4. 线程例子
查看>>
[数学故事]狼狐决斗
查看>>
js 批量设置css样式
查看>>
Service层getParameter方法接受字符转换成int类型
查看>>
监控利器 sysdig - 每天5分钟玩转 Docker 容器技术(79)
查看>>
mssql中sp_executesql的用法
查看>>
Oracle 数据库实例启动关闭过程
查看>>