c#语言模拟键盘输入,C#模拟键盘按键的三种方式实现
1.System.Windows.Forms.SendKeys
组合键:Ctrl = ^ 、Shift = + 、Alt = %
模拟按键:A
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
SendKeys.Send("{A}");
}
模拟组合键:CTRL + A
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
SendKeys.Send("^{A}");
}
SendKeys.Send // 异步模拟按键(不阻塞UI)
SendKeys.SendWait // 同步模拟按键(会阻塞UI直到对方处理完消息后返回)
//这种方式适用于WinForm程序,在Console程序以及WPF程序中不适用
2.keybd_event
DLL引用
[DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true)]
public static extern void keybd_event(Keys bVk, byte bScan, uint dwFlags, uint dwExtraInfo);
模拟按键:A
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
keybd_event(Keys.A, 0, 0, 0);
}
模拟组合键:CTRL + A
public const int KEYEVENTF_KEYUP = 2;
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
keybd_event(Keys.ControlKey, 0, 0, 0);
keybd_event(Keys.A, 0, 0, 0);
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);
}
3.PostMessage
上面两种方式都是全局范围呢,现在介绍如何对单个窗口进行模拟按键
模拟按键:A / 两次
[DllImport("user32.dll", EntryPoint = "PostMessageA", SetLastError = true)]
public static extern int PostMessage(IntPtr hWnd, int Msg, Keys wParam, int lParam);
public const int WM_CHAR = 256;
private void button1_Click(object sender, EventArgs e)
{
textBox1.Focus();
PostMessage(textBox1.Handle, 256, Keys.A, 2);
}
模拟组合键:CTRL + A
如下方式可能会失效,所以最好采用上述两种方式1
public const int WM_KEYDOWN = 256;
public const int WM_KEYUP = 257;
private void button1_Click(object sender, EventArgs e)
{
webBrowser1.Focus();
keybd_event(Keys.ControlKey, 0, 0, 0);
keybd_event(Keys.A, 0, 0, 0);
PostMessage(webBrowser1.Handle, WM_KEYDOWN, Keys.A, 0);
keybd_event(Keys.ControlKey, 0, KEYEVENTF_KEYUP, 0);
}
c#语言模拟键盘输入,C#模拟键盘按键的三种方式实现相关推荐
- Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式
Android App监听软键盘按键的三种方式与改变软键盘右下角确定键样式 actionNone : 回车键,按下后光标到下一行 actionGo : Go, actionSearch : 放大镜 a ...
- 计算机键盘输入错乱,win10电脑键盘错乱的三种解决方法
近期,看到许多小伙伴抱怨说win10电脑更新后键盘错乱了,平时聊天.玩游戏都会用到键盘,键盘错乱严重影响使用体验,有什么办法解决呢?其实可以试试更新驱动,或者杀毒一下,下面一起来看看具体的三种解决方法 ...
- Android App监听软键盘按键的三种方式(转)
最近有类似需求,在csdn上刚好发现,粘贴过来,以防止忘记喽 前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的&quo ...
- Android App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点 ...
- 键盘-App监听软键盘按键的三种方式
前言: 我们在android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"GO"按键加载url页面:在点击搜索框的时候,点 ...
- Android 监听软键盘按键的三种方式
前言: 我们在Android手机上面有时候会遇到监听手机软键盘按键的时候,例如:我们在浏览器输入url完毕后可以点击软键盘右下角的"Go"按键加载url页面:在点击搜索框的时候,点 ...
- Android App监听软键盘按键的三种方式 以及 输入法删除退格键的冲突问题解决
输入法删除退格键的冲突问题解决 /***返回键处理 */@Overridepublic boolean onKeyDown(int keyCode, KeyEvent event) {if( even ...
- 格式化输入数字_Python格式化输出的三种方式
一.占位符 程序中经常会有这样场景:要求用户输入信息,然后打印成固定的格式 比如要求用户输入用户名和年龄,然后打印如下格式:My name is xxx,my age is xxx. 很明显,用逗号进 ...
- html语言闪烁特效代码,css3 实现文字闪烁效果的三种方式示例代码
1.通过改变透明度来实现文字的渐变闪烁,效果图: 文字闪烁 星星之火可以燎原 .myclass{ letter-spacing:5px;/*字间距*/ color: red; font-weight: ...
- 计算机键盘能直接接手机吗,手机变成电脑!将键盘和鼠标连接到智能手机的3种方式...
尽管智能手机很方便,但在触摸屏上打字时,屏幕太小,键盘也很小,无法避免打字错误和打字效率低下的问题. 您是否曾经想过使用计算机的键盘和鼠标在手机上打字并上网? 随着科学技术的发展,越来越多的想象成为现 ...
最新文章
- 特权级——保护模式的特权级检查 DPL,RPL,CPL, 一致代码段,非一致代码段
- 【javascript基础】8、闭包
- 字符串操作以及打印 —— 实现上传下载的进度条功能
- 粒子网格算法 pm_使粒子网格与Blynk一起使用的2种最佳方法
- Spring boot :使用 Swagger 2 构建 RESTful APIs
- drools规则引擎 java_Drools规则引擎的使用总结
- 小程序调用豆瓣公开接口解决办法
- Reversing Encryption(Reverse函数的应用)
- java线程期末考试_mooc课程 java 期末考试试卷
- 一气呵成:用Compose完美复刻Flappy Bird!
- Win10 系统设置共享文件
- 航班信息的查询与检索Java,航班信息的查询与检索
- 山西工商学院计算机二级网址,2021年山西工商学院教务处登录入口
- CSR8670学习笔记:OTA升级固件
- 车载显示屏申请E-mark认证需要测试些什么?
- Kubernetes pod 状态出现 ImagePullBackOff 的原因
- AndroidStudio layout Inspector工具无法连接真机
- oracle之查询某一列是否含有英文字符
- 推荐系统:最大边缘相关多样性算法(MMR)(python实现)
- 渗透技巧——程序的降权启动
热门文章
- Windows 取证
- 让程序员崩溃的瞬间(非程序员勿入)
- 由内而外全面造就自己(七)
- Cannot uninstall ‘llvmlite‘. It is a distutils installed project and thus we cannot accurately deter
- 外键的约束(Mysql、PostgreSQL)
- 用Tableau制作10种漂亮的饼图
- AVFrame的数据填充方式
- 支付宝小程序对接错误
- stream流倒序排序_Stream流排序
- Sigfox的物联网生意经:弱水三千只取一瓢饮