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的用法相关推荐
- Win32 API 发送消息 SendMessage/PostMessage
1. Windows消息 Windows是一个基于事件的操作系统, 事件的本质是对消息的封装, 如鼠标移动点击, 键盘按键, 窗口移动尺寸变化等都会发送相应的消息. Windows操作系统中包括以下几 ...
- ActiveMQ使用spring JmsTemplate发送消息(一)
下载地址:http://activemq.apache.org/download-archives.html 解压 启动bin\activemq.bat 生产者接口: public interface ...
- tim-js-sdk 登录、接收信息、发送消息
简介 本文主要介绍如何快速地将腾讯云 IM SDK 集成到您的 Web 项目中. 腾讯云即时通信IM SDK API 文档 示例demo下载 tim-js-sdk 功能扩展 (好友接口) 准备工作 在 ...
- RabbitMQ与SpringMVC集成并实现发送消息和接收消息(持久化)方案一
RabbitMQ是用于应用程序之间或者程序的不同组件之间的消息通信,进行了异步处理,而这种异步处理的方式大大的节省了服务器的请求响应时间,从而提高了系统的吞吐量,也就是生产-消费模型,一端往消息队列中 ...
- 发送消息(SendMessage)常识普及
点击阅读原文 现在易论坛很多人都喜欢在"发送消息"等操作时直接用数字,往往又不知道什么数字代表什么意思,也无从查起. 比如,有人说16是关闭窗口,那么请问17是什么?绝大部分的人不 ...
- SendMessage和PostMessage发送消息(不同进程传递字符串)
一.函数功能 SendMessage函数将指定的消息发送到一个或多个窗口.此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回.而函数PostMessage不同,将一个消息寄送到一个线程的消息 ...
- 【Android WebSocket】Android 端 WebSocket 基本用法 ( 添加依赖和权限 | 创建 WebSocketClient 客户端类 | 建立连接并发送消息 )
文章目录 一.添加依赖和权限 二.创建 WebSocketClient 客户端类 三.建立连接并发送消息 使用 https://github.com/TooTallNate/Java-WebSocke ...
- C#中发送消息给指定的窗口到消息循环
public class Note { //声明 API 函数 [DllImport("User32.dll", EntryPoint = ...
- java sendmessage函数_vc中SendMessage自定义消息函数用法实例
本文实例讲述了vc中SendMessage自定义消息函数用法,分享给大家供大家参考.具体如下: SendMessage的基本结构如下: SendMessage( HWND hWnd, //消息传递的 ...
最新文章
- 鸿蒙系统tee内核,厉害!鸿蒙内核的技术定位,是赶第三代微内核的潮流
- mysql 最大链接数 max_connections 设置
- asp.net ajax聊天室,ASP.NET MVC4异步聊天室的示例代码
- SQL2005 四个排名函数(row_number、rank、dense_rank和ntile)的比较
- 分享云及人工智能的一些学习资源和学习心得
- Python 开篇及第一个Python程序
- IMP导入报语句超过缓冲区长度
- js初步简单的编程代码
- java冒泡法排序实例_Java冒泡法排序实例
- 如何设置ubuntu的PATH环境变量
- JSdom操作内容,样式,属性
- Android移动应用开发大作业
- java用户登录进入系统_Java CRM系统用户登录功能实现代码实例
- 删除文件时提示:无法读源文件或磁盘之解决办法
- MySQL高可用架构故障自动转移插件MHA
- 《轩辕剑四》:一场关于青铜朋客古代黑科技的浪漫幻想
- Doctrine 查询语法
- win10 pycharm安装使用 MySQLdb
- MMpose代码讲解之关键点Heatmap可视化
- 2020年有寓意的领证日期_2020领证吉日
热门文章
- OpenCV为轮廓创建边界旋转框和椭圆
- C语言unit test单元测试类的实现(附完整源码)
- C++counting sort计数排序的实现算法(附完整源码)
- C语言实现二分法检索binary search(附完整源码)
- QT的QGradient类的使用
- 有什么办法可以判断页面是静态还是动态?_网络营销——网络营销专员到底是教你如何选择网站页面制作...
- php如何实现添加到购物车_PHP实现添加购物车功能
- 「Self-driving: KITTI」KITTI数据集简介
- PyTorch的六个学习率调整
- 3、常用关键字,变量赋值,多个变量赋值,标准数据类型,数字,字符串,列表,元组,字典,数据类型转换