C# 模拟Windows键盘事件
发送键盘消息
1 [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)] 2 public static extern void keybd_event( 3 byte bVk, //虚拟键值 4 byte bScan,// 一般为0 5 int dwFlags, //这里是整数类型 0 为按下,2为释放 6 int dwExtraInfo //这里是整数类型 一般情况下设成为 0 7 );
使用系统dll下的keybd_event,来发送键盘消息。
dwFlags:0为按下,2为释放
所以发送一个组合键:LeftCtrl+LeftShift+Divide,需要如下操作:
- 组合键,每个键都需要发送
- 按键有按下和抬起操作。如果只发送按下,表示按键长按。。。
1 keybd_event((byte)Keys.LControlKey, 0, 0, 0); 2 keybd_event((byte)Keys.LShiftKey, 0, 0, 0); 3 keybd_event((byte)Keys.Divide, 0, 0, 0); 4 keybd_event((byte)Keys.LControlKey, 0, 2, 0); 5 keybd_event((byte)Keys.LShiftKey, 0, 2, 0); 6 keybd_event((byte)Keys.Divide, 0, 2, 0);
参考资料:
keybd_event模拟对照表以及用法.
接收键盘消息
1 private void UIElement_OnPreviewKeyDown(object sender, KeyEventArgs e) 2 { 3 OutputTextBox.Text += string.IsNullOrEmpty(OutputTextBox.Text) ? e.Key.ToString() : "\r\n" + e.Key.ToString(); 4 OutputTextBox.SelectionStart = OutputTextBox.Text.Length + 1; 5 }
Demo:https://github.com/Kybs0/KeyBoardEventDemo
转载于:https://www.cnblogs.com/kybs0/p/11507718.html
C# 模拟Windows键盘事件相关推荐
- WINDOWS键盘事件的挂钩监控原理及其应用技术
WINDOWS键盘事件的挂钩监控原理及其应用技术 WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接 各种反调函数(HOOK)的功能.这种挂钩函数(HOOK)类似扩 ...
- WINDOWS键盘事件监控原理及应用 (转)
WINDOWS键盘事件监控原理及应用 (转)[@more@]windows键盘事件监控原理及应用 赵桂华 ·逸仙时空 WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种 ...
- Linux 模拟 鼠标 键盘 事件
/************************************************************************* Linux 模拟 鼠标 键盘 事件* 说明:* 以 ...
- Java中使用JNA实现全局监听Windows键盘事件
title: Java中使用JNA实现全局监听Windows键盘事件 date: 2019-05-02 21:55:00 Java中使用JNA实现全局监听Windows键盘事件 前言: 一直打算做一个 ...
- java 模拟鼠标键盘_使用SWT模拟鼠标键盘事件
二.使用SWT中的鼠标键盘事件 在SWT的snippets中有两个例子用来介绍这两个方法的使用,如下: (1).模拟鼠标事件 * UI Automation (for testing tools) s ...
- C#全局监听Windows键盘事件
本方法只涉及到如何应用现有工具类实现监听,其具体的原理主要涉及到调用Windows底层API:定义一个钩子钩住键盘事件,在这里不讲具体原理. 1.工具类代码 引用 using System; usin ...
- cocos2dx 响应windows键盘事件
2019独角兽企业重金招聘Python工程师标准>>> GetAsyncKeyState #include <windows.h> #define KEY_DOWN(vk ...
- 模拟鼠标键盘操作,含硬件模拟技术。
键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样 ...
- 模拟鼠标键盘操作,含硬件模拟技术。[转]
模拟鼠标键盘操作,含硬件模拟技术. 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就 ...
最新文章
- java例程练习(批量修改文件后缀名)
- 震惊!html文件注释也会影响运行代码!(werkzeug.routing.BuildError: Could not build url for endpoint)莫名其妙
- OPPO R9凭创新赢得2000万销量,成2016年热销手机
- multisim秒信号发生器_频谱中射频干扰信号流化、分析与回放
- img之间出现缝隙的原因_神马情况?美缝剂施工出现脱胶是什么原因?
- python列表去重_python 字典列表/列表套字典 去重重复的字典数据
- Pulseaudio之模式设置(二十一)
- 我的.emacs(Ubuntu版)
- JDK11即将来临,新特性了解一下
- SpringMVC 增删改查小案例-医院挂号系统
- 信号与系统中的信号带宽理解
- win8.1下安装vc6
- C杂讲 字符串格式化 组包与解包
- 软件测试基本方法介绍
- 高中数学必修二立体几何中的向量方法(经典案例讲解)
- WPT2F06-3/TR通用晶体管PNP 设计放大器应用WILLSEM
- 知识累积——这些年写过的博文(博客目录索引)
- Part6---Java创建Hbase表
- linux9.0安装教程,RedHat Linux 9.0安装过程小记
- android中的热词搜索的实现
热门文章
- 【leetcodeMySQL每周一练】- 5道题带你练习mysql
- java await signal_【Java并发008】原理层面:ReentrantLock中 await()、signal()/signalAll()全解析...
- 【ZOJ - 4024】Peak(模拟,水题)
- 【牛客 - 280C】约数(数论,GCD,数学,分解因子)
- 【HDU - 1870】愚人节的礼物(水题模拟 思想类似于栈?)
- 【uva-673】 Parentheses Balance(括号匹配问题)
- Coursera自动驾驶课程第7讲:Vehicle Lateral Control
- 动手学无人驾驶(5):多传感器数据融合
- android 居右属性,使用layoutDirection属性设置布局靠左或靠右
- 谷歌浏览器打开tif_谷歌打开后是搜狗浏览器??怎么办