C# 发送消息SendKeys、SendMessage、keybd_event的用法
一、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的用法的更多相关文章
- Delphi实现获取句柄并发送消息的方法(FindWindow、FindWindowEx、EnumChildWindows、SendMessage)
Delphi实现获取句柄并发送消息的方法 本文以实例形式详细说明了Delphi获取句柄并发送消息的方法,具体用法说明如下: 查找另外一个窗口的句柄: handle := FindWindow(nil, ...
- Openfire 单人聊天和多人聊天(发送消息、接收消息)
Openfire 单人聊天和多人聊天(发送消息.接收消息) 一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFrie ...
- WebSocket.之.基础入门-前端发送消息
WebSocket.之.基础入门-前端发送消息 在<WebSocket.之.基础入门-建立连接>的代码基础之上,进行添加代码.代码只改动了:TestSocket.java 和 index. ...
- openfire Android 学习(四)----单人聊天和多人聊天(发送消息、接收消息)
一.单人聊天 1)发送消息: 首先要获取一个聊天窗口,getConnection()为获取连接connection的方法,调用getFriendChat()获取 [java] view plainco ...
- 【转载】Delphi7从子线程中发送消息到主线程触发事件执行
在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...
- [转] C#中发送消息给指定的窗口,以及接收消息
原文C#中发送消息给指定的窗口,以及接收消息 public class Note { //声明 API 函数 [DllImport("User32.dll", EntryPoint ...
- keybd_event函数用法
转自不用winio,直接达到驱动级模拟键盘效果的keybd_event函数用法 键盘模拟技术是在编写游戏外挂时经常使用的技术.但是由于很多游戏采用了directinput的方式,使得发送的一般键盘消息 ...
- Netty客户端发送消息并同步获取结果
客户端发送消息并同步获取结果,其实是违背Netty的设计原则的,但是有时候不得不这么做的话,那么建议进行如下的设计: 比如我们的具体用法如下: NettyRequest request = new N ...
- 【转】python win32api win32gui win32con 简单操作教程(窗口句柄 发送消息 常用方法 键盘输入)
作者:https://blog.csdn.net/qq_16234613/article/details/79155632 附:https://www.programcreek.com/python/ ...
随机推荐
- weblogic弱密码检测
http://www.secbox.cn/hacker/tools/6252.html http://60.12.168.73:8088/console/login/LoginForm.jsp htt ...
- ELK使用2-Kibana使用
一.创建kibana索引 1.es索引可以在这儿查看 2.kibana创建索引可以在这儿查看(必须es中存在相应的索引才能在kibana中创建) 点击创建然后选择es中存在的索引即可创建相应的索引 3 ...
- NowCoder Wannafly 27E 黄魔法师 构造
原文链接https://www.cnblogs.com/zhouzhendong/p/NowCoder-Wannafly27E.html 题目传送门 - NowCoder Wannafly 27E 题 ...
- BZOJ4566 [Haoi2016]找相同字符 字符串 SAM
原文链接https://www.cnblogs.com/zhouzhendong/p/BZOJ4566.html 题目传送门 - BZOJ4566 题意 给定两个字符串 $s1$ 和 $s2$ ,问有 ...
- RocketMQ事务消息回查设计方案
用户U1从A银行系统转账给B银行系统的用户U2的处理过程如下:第一步:A银行系统生成一条转账消息,以事务消息的方式写入RocketMQ,此时B银行系统不可见这条消息(Prepare阶段) 第二步:写入 ...
- Linux安装Tomcat-Nginx-FastDFS-Redis-Solr-集群——【第十二集之FastDFS的使用】
(自己的项目路径)相关项目在web部分中priv.lirenhe.fastdfs 官方提供一个fastdfs开发项目,下载下来maven install 以下内容是借鉴网上的一篇文章,但是不知道网址了 ...
- group by 和where 条件后面不能用刚设置的别名。
select count(*),c_xy_bj a from z_user group by c_xy_bj 这个group by后面不能使用c_xy_bj 字段的别名a,只有外面再嵌套sel ...
- The Monocycle(bfs)
题目描述: 转载自:https://blog.csdn.net/h1021456873/article/details/54572767 题意: 给你一个转轮,有5种颜色,为了5中颜色的位置是确定的, ...
- Java中 输入字符串的时候next()和nextLine()有什么区别
假设有一段文本如下:abc def ghijkl mno pqr stuvw xyz 用next(),第一次取的是abc,第二次取的是def,第三次取的是ghij用nextLine(),第一次取的是a ...
- HDU 1054 Strategic Game (最小点覆盖)【二分图匹配】
<题目链接> 题目大意:鲍勃喜欢玩电脑游戏,特别是战略游戏,但有时他无法找到解决方案,速度不够快,那么他很伤心.现在,他有以下的问题.他必须捍卫一个中世纪的城市,形成了树的道路.他把战士的 ...