一、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. Delphi实现获取句柄并发送消息的方法(FindWindow、FindWindowEx、EnumChildWindows、SendMessage)

    Delphi实现获取句柄并发送消息的方法 本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil, ...

  2. Openfire 单人聊天和多人聊天(发送消息、接收消息)

    Openfire 单人聊天和多人聊天(发送消息.接收消息) 一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFrie ...

  3. WebSocket.之.基础入门-前端发送消息

    WebSocket.之.基础入门-前端发送消息 在<WebSocket.之.基础入门-建立连接>的代码基础之上,进行添加代码.代码只改动了:TestSocket.java 和 index. ...

  4. openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)

    一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...

  5. 【转载】Delphi7从子线程中发送消息到主线程触发事件执行

    在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...

  6. [转] C#中发送消息给指定的窗口,以及接收消息

    原文C#中发送消息给指定的窗口,以及接收消息 public class Note { //声明 API 函数 [DllImport("User32.dll", EntryPoint ...

  7. keybd_event函数用法

    转自不用winio,直接达到驱动级模拟键盘效果的keybd_event函数用法 键盘模拟技术是在编写游戏外挂时经常使用的技术.但是由于很多游戏采用了directinput的方式,使得发送的一般键盘消息 ...

  8. Netty客户端发送消息并同步获取结果

    客户端发送消息并同步获取结果,其实是违背Netty的设计原则的,但是有时候不得不这么做的话,那么建议进行如下的设计: 比如我们的具体用法如下: NettyRequest request = new N ...

  9. 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)

    作者:https://blog.csdn.net/qq_16234613/article/details/79155632 附:https://www.programcreek.com/python/ ...

随机推荐

  1. 2. ELK 之kibana 简介、获取、安装

    简介 kibana是什么?简单理解就是一种可视化工具,比如日志记录之后的可视化操作工具,支持 折线图,饼状图,表格等,支持按时间维度等自定义维度角度 数据搜索.分析等等. 2.   获取 https: ...

  2. Comparison of several types of convergence

    In functional analysis, several types of convergence are defined, namely, strong convergence for ele ...

  3. drone的pipeline原理与代码分析

    最近的一个项目,需要实现一个工作任务流(task pipeline),基于之前CICD的经验,jenkins pipeline和drone的pipeline进入候选. drone是基于go的cicd解 ...

  4. python全栈开发day61-django简单的出版社网站展示,添加,删除,编辑(单表的增删改查)

    day61 django内容回顾: 1. 下载: pip install django==1.11.14 pip install -i 源 django==1.11.14 pycharm 2. 创建项 ...

  5. 【原创】python 豆瓣采集

    新手今天刚学python~~~ 有点凌乱~勉强看吧 只能算是给新手看看,见谅 简单版本的 豆瓣采集美图~~~~~~ 美女天天有 有木有~~~ python 3.4 sqlite3 BeautifulS ...

  6. Python学习(二十四)—— 前端基础之Bookstrap

    转载自:http://www.cnblogs.com/liwenzhou/p/8214637.html 一.Bootstrap介绍 Bootstrap是Twitter开源的基于HTML.CSS.Jav ...

  7. js下拉列表

    js清除下拉列表所选默认值 $("#lineId").val(“”); js清除下拉列表所有选项 $("#type").html(""); ...

  8. 查找常用字符(给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。)

    给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表. 例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 ...

  9. Qt错误 —— 无法启动此程序 因为计算机丢失QtCore5.dll 以及 无法定位程序输入点于动态链接库QtCore5.dll

    首先,设置计算机的环境变量Path,计算机=>右键属性=>高级设置=>环境变量=>系统变量=>双击Path,在Path后面增加C:\Qt\Qt5.8.0\5.8\ming ...

  10. Zookeeper常用命令行及API

    一.Zookeeper常用命令行 1.启动zookeeper客户端(在启动zookeeper集群后启动进行调试) zkCli.sh 2.查看帮助.操作历史 help.history 3.查看当前Zno ...