发送键盘消息

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键盘事件相关推荐

  1. WINDOWS键盘事件的挂钩监控原理及其应用技术

    WINDOWS键盘事件的挂钩监控原理及其应用技术     WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接 各种反调函数(HOOK)的功能.这种挂钩函数(HOOK)类似扩 ...

  2. WINDOWS键盘事件监控原理及应用 (转)

    WINDOWS键盘事件监控原理及应用 (转)[@more@]windows键盘事件监控原理及应用 赵桂华 ·逸仙时空 WINDOW的消息处理机制为了能在应用程序中监控系统的各种事件消息,提供了挂接各种 ...

  3. Linux 模拟 鼠标 键盘 事件

    /************************************************************************* Linux 模拟 鼠标 键盘 事件* 说明:* 以 ...

  4. Java中使用JNA实现全局监听Windows键盘事件

    title: Java中使用JNA实现全局监听Windows键盘事件 date: 2019-05-02 21:55:00 Java中使用JNA实现全局监听Windows键盘事件 前言: 一直打算做一个 ...

  5. java 模拟鼠标键盘_使用SWT模拟鼠标键盘事件

    二.使用SWT中的鼠标键盘事件 在SWT的snippets中有两个例子用来介绍这两个方法的使用,如下: (1).模拟鼠标事件 * UI Automation (for testing tools) s ...

  6. C#全局监听Windows键盘事件

    本方法只涉及到如何应用现有工具类实现监听,其具体的原理主要涉及到调用Windows底层API:定义一个钩子钩住键盘事件,在这里不讲具体原理. 1.工具类代码 引用 using System; usin ...

  7. cocos2dx 响应windows键盘事件

    2019独角兽企业重金招聘Python工程师标准>>> GetAsyncKeyState #include <windows.h> #define KEY_DOWN(vk ...

  8. 模拟鼠标键盘操作,含硬件模拟技术。

    键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就有了用程序来代替人们按键的方法,这样 ...

  9. 模拟鼠标键盘操作,含硬件模拟技术。[转]

    模拟鼠标键盘操作,含硬件模拟技术. 键盘是我们使用计算机的一个很重要的输入设备了,即使在鼠标大行其道的今天,很多程序依然离不开键盘来操作.但是有时候,一些重复性的,很繁琐的键盘操作总会让人疲惫,于是就 ...

最新文章

  1. java例程练习(批量修改文件后缀名)
  2. 震惊!html文件注释也会影响运行代码!(werkzeug.routing.BuildError: Could not build url for endpoint)莫名其妙
  3. OPPO R9凭创新赢得2000万销量,成2016年热销手机
  4. multisim秒信号发生器_频谱中射频干扰信号流化、分析与回放
  5. img之间出现缝隙的原因_神马情况?美缝剂施工出现脱胶是什么原因?
  6. python列表去重_python 字典列表/列表套字典 去重重复的字典数据
  7. Pulseaudio之模式设置(二十一)
  8. 我的.emacs(Ubuntu版)
  9. JDK11即将来临,新特性了解一下
  10. SpringMVC 增删改查小案例-医院挂号系统
  11. 信号与系统中的信号带宽理解
  12. win8.1下安装vc6
  13. C杂讲 字符串格式化 组包与解包
  14. 软件测试基本方法介绍
  15. 高中数学必修二立体几何中的向量方法(经典案例讲解)
  16. WPT2F06-3/TR通用晶体管PNP 设计放大器应用WILLSEM
  17. 知识累积——这些年写过的博文(博客目录索引)
  18. Part6---Java创建Hbase表
  19. linux9.0安装教程,RedHat Linux 9.0安装过程小记
  20. android中的热词搜索的实现

热门文章

  1. 【leetcodeMySQL每周一练】- 5道题带你练习mysql
  2. java await signal_【Java并发008】原理层面:ReentrantLock中 await()、signal()/signalAll()全解析...
  3. 【ZOJ - 4024】Peak(模拟,水题)
  4. 【牛客 - 280C】约数(数论,GCD,数学,分解因子)
  5. 【HDU - 1870】愚人节的礼物(水题模拟 思想类似于栈?)
  6. 【uva-673】 Parentheses Balance(括号匹配问题)
  7. Coursera自动驾驶课程第7讲:Vehicle Lateral Control
  8. 动手学无人驾驶(5):多传感器数据融合
  9. android 居右属性,使用layoutDirection属性设置布局靠左或靠右
  10. 谷歌浏览器打开tif_谷歌打开后是搜狗浏览器??怎么办