一、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. P4714 「数学」约数个数和

    题解: 会了Miller-Rabin这题就很简单了 首先这种题很容易想到质因数分解 但是暴力根号算法是不行的 所以要用到 Miller-Rabin素数 https://blog.csdn.net/lt ...

  2. P2860 [USACO06JAN]冗余路径Redundant Paths

    题解: 首先要边双缩点这很显然 然后变成树上问题 发现dp,dfs好像不太对 考虑一下度数 发现只要在度数为1的点之间连边 但我好像不太会证明这个东西.. 网上也没有看到比较正确的证明方法和连边策略. ...

  3. 分享几个在线生成网址二维码的API接口

    现在很多大网站都有这样的一个功能,使用手机扫描一下网页上的二维码便可快速在手机上访问网站.想要实现这样的功能其实很简单,下面麦布分享几个在线生成网址二维码的API接口.都是采用http协议接口,无需下 ...

  4. go-关于指针和地址

    经常会见到: p . *p , &p 三个符号  p是一个指针变量的名字,表示此指针变量指向的内存地址,如果使用%p来输出的话,它将是一个16进制数. 而*p表示此指针指向的内存地址中存放的内 ...

  5. mysql主从复制(半同步方式)

    mysql主从复制(半同步方式) 博客分类: MySQL mysqlreplication复制  一.半同步复制原理介绍 1. 优点 当事务返回客户端成功后,则日志一定在至少两台主机上存在. MySQ ...

  6. Python学习(十三) —— 网络编程

    一.操作系统基础 操作系统(Operating System):OS是管理和控制计算机硬件和软件资源的计算机程序,是直接运行在“裸机”上的最基本的系统软件,任何其他软件都必须在操作系统的支持下才能运行 ...

  7. 移动端line-height问题

    ios5  上:82px;下:84px; ios6  上:82px;下:84px; ios6 plus 上:124px;下:126px; mi4w 上:118px;下:130px; vivo  上:5 ...

  8. SpringMVC-1-(简介及HelloWord)

    首先我们来看一下servlet的处理请求的方式: 一:SpringMVC简介: 一)SpringMVC中的几个重要组件 1.DispatchServlet: 前端控制器,mvc模式中的c,是整个流程的 ...

  9. HDU-1170的解题报告

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1170 题意:要求输入几个案例,每个案例包含操作符(+,-,*,/),操作数(两个整数).现在要求分别输 ...

  10. 【python】常用内建模块

    [datetime] No1: 获取当前时间 No2: 时区转换 >>> from datetime import datetime, timedelta, timezone > ...