一、C#中SendKeys的用法

功能:将一个或多个按键消息发送到活动窗口,就如同在键盘上进行输入一样。

语法: SendKeys.Send(string keys);

SendKeys.SendWait(string keys);

说明:

(1)发送字符串

SendKeys.SendWait("A"); //发送字母A

SendKeys.SendWait("ABC"); //发送字符串ABC

SendKeys.SendWait("输入汉字"); //发送输入汉字

(2)模拟发送+、^、%、~及圆括号 ( ) ,要将它放在大括号 ({}) 当中。

SendKeys.SendWait("{+}");  //发送加号

(3)模拟发送那些不显示的字符,也要将它放在大括号 ({}) 当中。

SendKeys.SendWait("{Enter}");  //发送回车

SendKeys.SendWait("{TAB}");  //发送TAB

SenKeys.SendWait("{END}"); //发送END
   SenKeys.SendWait("{F5}"); //发送F5

(4)模拟发送 SHIFT、CTRL 及 ALT 等按键结合的组合键:

按键 代码
Shift +
Ctrl ^
Alt %
      SenKeys.SendWait("^c"); //发送Ctrl+C ,必须是小写!C#区分大小写的,下同
  SendKeys.SendWait("v"); //发送Ctrl+v

SendKeys.SendWait("{A 10}");  //模拟10次按下字母A

二、C#中Keybd_event的用法

语法:

[DllImport("user32.dll",EntryPoint="keybd_event",SetLastError=true)]
 public static extern void keybd_event(byte bVk,byte bScan,int dwFlags,int dwExtraInfo);

从上述原型可以看出,Keybd_event()共有四个参数:

第一个为按键的虚拟键值,建议统一用(byte)Keys.*形式,便于记忆

例如:A (byte)Keys.A,Tab (byte)Keys.Tab
第二个参数为扫描码,一般不用设置,用0代替就行;

第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP" 或是 "0x2"或是2,建议用0按下、2弹起简单;

第四个参数一般也是置0即可。

keybd_event((byte)Keys.A,0,0,0);  //按下A
    keybd_event((byte)Keys.A,0,2,0);  //弹起A

keybd_event((byte)Keys.Enter,0,0,0);  //模拟按下回车

//模拟Ctrl+V:
     //keybd_event((byte)Keys.ControlKey,0,0,0);//按下
      //keybd_event((byte)Keys.V,0,0,0);//按下
      //keybd_event((byte)Keys.V,0,2,0);//弹起
      //keybd_event((byte)Keys.ControlKey,0,2,0);//弹起

keybd_event((byte)Keys.A,0,0,0);  //模拟按下A
   SenKeys.SendWait("{END}"); //发送END
---------------------
作者:xtfnpgy
来源:CSDN
原文:https://blog.csdn.net/xtfnpgy/article/details/40511747
版权声明:本文为博主原创文章,转载请附上博文链接!

C# 发送消息SendKeys、SendMessage、keybd_event的用法相关推荐

  1. Win32 API 发送消息 SendMessage/PostMessage

    1. Windows消息 Windows是一个基于事件的操作系统, 事件的本质是对消息的封装, 如鼠标移动点击, 键盘按键, 窗口移动尺寸变化等都会发送相应的消息. Windows操作系统中包括以下几 ...

  2. ActiveMQ使用spring JmsTemplate发送消息(一)

    下载地址:http://activemq.apache.org/download-archives.html 解压 启动bin\activemq.bat 生产者接口: public interface ...

  3. tim-js-sdk 登录、接收信息、发送消息

    简介 本文主要介绍如何快速地将腾讯云 IM SDK 集成到您的 Web 项目中. 腾讯云即时通信IM SDK API 文档 示例demo下载 tim-js-sdk 功能扩展 (好友接口) 准备工作 在 ...

  4. RabbitMQ与SpringMVC集成并实现发送消息和接收消息(持久化)方案一

    RabbitMQ是用于应用程序之间或者程序的不同组件之间的消息通信,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量,也就是生产-消费模型,一端往消息队列中 ...

  5. 发送消息(SendMessage)常识普及

    点击阅读原文 现在易论坛很多人都喜欢在"发送消息"等操作时直接用数字,往往又不知道什么数字代表什么意思,也无从查起. 比如,有人说16是关闭窗口,那么请问17是什么?绝大部分的人不 ...

  6. SendMessage和PostMessage发送消息(不同进程传递字符串)

    一.函数功能 SendMessage函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线程的消息 ...

  7. 【Android WebSocket】Android 端 WebSocket 基本用法 ( 添加依赖和权限 | 创建 WebSocketClient 客户端类 | 建立连接并发送消息 )

    文章目录 一.添加依赖和权限 二.创建 WebSocketClient 客户端类 三.建立连接并发送消息 使用 https://github.com/TooTallNate/Java-WebSocke ...

  8. C#中发送消息给指定的窗口到消息循环

    public class Note     {         //声明 API 函数         [DllImport("User32.dll", EntryPoint =  ...

  9. java sendmessage函数_vc中SendMessage自定义消息函数用法实例

    本文实例讲述了vc中SendMessage自定义消息函数用法,分享给大家供大家参考.具体如下: SendMessage的基本结构如下: SendMessage( HWND hWnd,  //消息传递的 ...

最新文章

  1. 鸿蒙系统tee内核,厉害!鸿蒙内核的技术定位,是赶第三代微内核的潮流
  2. mysql 最大链接数 max_connections 设置
  3. asp.net ajax聊天室,ASP.NET MVC4异步聊天室的示例代码
  4. SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
  5. 分享云及人工智能的一些学习资源和学习心得
  6. Python 开篇及第一个Python程序
  7. IMP导入报语句超过缓冲区长度
  8. js初步简单的编程代码
  9. java冒泡法排序实例_Java冒泡法排序实例
  10. 如何设置ubuntu的PATH环境变量
  11. JSdom操作内容,样式,属性
  12. Android移动应用开发大作业
  13. java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
  14. 删除文件时提示:无法读源文件或磁盘之解决办法
  15. MySQL高可用架构故障自动转移插件MHA
  16. 《轩辕剑四》:一场关于青铜朋客古代黑科技的浪漫幻想
  17. Doctrine 查询语法
  18. win10 pycharm安装使用 MySQLdb
  19. MMpose代码讲解之关键点Heatmap可视化
  20. 2020年有寓意的领证日期_2020领证吉日

热门文章

  1. OpenCV为轮廓创建边界旋转框和椭圆
  2. C语言unit test单元测试类的实现(附完整源码)
  3. C++counting sort计数排序的实现算法(附完整源码)
  4. C语言实现二分法检索binary search(附完整源码)
  5. QT的QGradient类的使用
  6. 有什么办法可以判断页面是静态还是动态?_网络营销——网络营销专员到底是教你如何选择网站页面制作...
  7. php如何实现添加到购物车_PHP实现添加购物车功能
  8. 「Self-driving: KITTI」KITTI数据集简介
  9. PyTorch的六个学习率调整
  10. 3、常用关键字,变量赋值,多个变量赋值,标准数据类型,数字,字符串,列表,元组,字典,数据类型转换