C# keybd_event模拟对照表以及用法.
Windows提供了一个模拟键盘API函数Keybd_event(),该函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。
[DllImport("user32.dll", EntryPoint = "keybd_event")]
public static extern void keybd_event(
byte bVk, //虚拟键值
byte bScan,// 一般为0
int dwFlags, //这里是整数类型 0 为按下,2为释放
int dwExtraInfo //这里是整数类型 一般情况下设成为 0
);
使用方法:
keybd_event((byte)Keys.LWin, 0, 0, 0); //按下LWIN
keybd_event((byte)Keys.D, 0, 0, 0); //按下D
keybd_event((byte)Keys.LWin, 0, 2, 0); //释放LWIN
keybd_event((byte)Keys.D, 0, 2, 0); //释放D
补充:
1.调用API函数记得引用:using System.Runtime.InteropServices;
2.表格如下,是转过来的。
PS:如果上面(byte)keys.Alt等出现overflow 的问题,可以直接用表格的数字来代替。
| 虚拟键码 | 对应值 | 对应键 | 
| VK_LBUTTON | 1 | 鼠标左键 | 
| VK_RBUTTON | 2 | 鼠标右键 | 
| VK_CANCEL | 3 | Cancel | 
| VK_MBUTTON | 4 | 鼠标中键 | 
| VK_XBUTTON1 | 5 | |
| VK_XBUTTON2 | 6 | |
| VK_BACK | 8 | Backspace | 
| VK_TAB | 9 | Tab | 
| VK_CLEAR | 12 | Clear | 
| VK_RETURN | 13 | Enter | 
| VK_SHIFT | 16 | Shift | 
| VK_CONTROL | 17 | Ctrl | 
| VK_MENU | 18 | Alt | 
| VK_PAUSE | 19 | Pause | 
| VK_CAPITAL | 20 | Caps Lock | 
| VK_KANA | 21 | |
| VK_HANGUL | 21 | |
| VK_JUNJA | 23 | |
| VK_FINAL | 24 | |
| VK_HANJA | 25 | |
| VK_KANJI | 25* | |
| VK_ESCAPE | 27 | Esc | 
| VK_CONVERT | 28 | |
| VK_NONCONVERT | 29 | |
| VK_ACCEPT | 30 | |
| VK_MODECHANGE | 31 | |
| VK_SPACE | 32 | Space | 
| VK_PRIOR | 33 | Page Up | 
| VK_NEXT | 34 | Page Down | 
| VK_END | 35 | End | 
| VK_HOME | 36 | Home | 
| VK_LEFT | 37 | Left Arrow | 
| VK_UP | 38 | Up Arrow | 
| VK_RIGHT | 39 | Right Arrow | 
| VK_DOWN | 40 | Down Arrow | 
| VK_SELECT | 41 | Select | 
| VK_PRINT | 42 | Print | 
| VK_EXECUTE | 43 | Execute | 
| VK_SNAPSHOT | 44 | Snapshot | 
| VK_INSERT | 45 | Insert | 
| VK_DELETE | 46 | Delete | 
| VK_HELP | 47 | Help | 
| 48 | 0 | |
| 49 | 1 | |
| 50 | 2 | |
| 51 | 3 | |
| 52 | 4 | |
| 53 | 5 | |
| 54 | 6 | |
| 55 | 7 | |
| 56 | 8 | |
| 57 | 9 | |
| 65 | A | |
| 66 | B | |
| 67 | C | |
| 68 | D | |
| 69 | E | |
| 70 | F | |
| 71 | G | |
| 72 | H | |
| 73 | I | |
| 74 | J | |
| 75 | K | |
| 76 | L | |
| 77 | M | |
| 78 | N | |
| 79 | O | |
| 80 | P | |
| 81 | Q | |
| 82 | R | |
| 83 | S | |
| 84 | T | |
| 85 | U | |
| 86 | V | |
| 87 | W | |
| 88 | X | |
| 89 | Y | |
| 90 | Z | |
| VK_LWIN | 91 | |
| VK_RWIN | 92 | |
| VK_APPS | 93 | |
| VK_SLEEP | 95 | |
| VK_NUMPAD0 | 96 | 小键盘 0 | 
| VK_NUMPAD1 | 97 | 小键盘 1 | 
| VK_NUMPAD2 | 98 | 小键盘 2 | 
| VK_NUMPAD3 | 99 | 小键盘 3 | 
| VK_NUMPAD4 | 100 | 小键盘 4 | 
| VK_NUMPAD5 | 101 | 小键盘 5 | 
| VK_NUMPAD6 | 102 | 小键盘 6 | 
| VK_NUMPAD7 | 103 | 小键盘 7 | 
| VK_NUMPAD8 | 104 | 小键盘 8 | 
| VK_NUMPAD9 | 105 | 小键盘 9 | 
| VK_MULTIPLY | 106 | 小键盘 * | 
| VK_ADD | 107 | 小键盘 + | 
| VK_SEPARATOR | 108 | 小键盘 Enter | 
| VK_SUBTRACT | 109 | 小键盘 - | 
| VK_DECIMAL | 110 | 小键盘 . | 
| VK_DIVIDE | 111 | 小键盘 / | 
| VK_F1 | 112 | F1 | 
| VK_F2 | 113 | F2 | 
| VK_F3 | 114 | F3 | 
| VK_F4 | 115 | F4 | 
| VK_F5 | 116 | F5 | 
| VK_F6 | 117 | F6 | 
| VK_F7 | 118 | F7 | 
| VK_F8 | 119 | F8 | 
| VK_F9 | 120 | F9 | 
| VK_F10 | 121 | F10 | 
| VK_F11 | 122 | F11 | 
| VK_F12 | 123 | F12 | 
| VK_F13 | 124 | |
| VK_F14 | 125 | |
| VK_F15 | 126 | |
| VK_F16 | 127 | |
| VK_F17 | 128 | |
| VK_F18 | 129 | |
| VK_F19 | 130 | |
| VK_F20 | 131 | |
| VK_F21 | 132 | |
| VK_F22 | 133 | |
| VK_F23 | 134 | |
| VK_F24 | 135 | |
| VK_NUMLOCK | 144 | Num Lock | 
| VK_SCROLL | 145 | Scroll | 
| VK_LSHIFT | 160 | |
| VK_RSHIFT | 161 | |
| VK_LCONTROL | 162 | |
| VK_RCONTROL | 163 | |
| VK_LMENU | 164 | |
| VK_RMENU | 165 | |
| VK_BROWSER_BACK | 166 | |
| VK_BROWSER_FORWARD | 167 | |
| VK_BROWSER_REFRESH | 168 | |
| VK_BROWSER_STOP | 169 | |
| VK_BROWSER_SEARCH | 170 | |
| VK_BROWSER_FAVORITES | 171 | |
| VK_BROWSER_HOME | 172 | |
| VK_VOLUME_MUTE | 173 | VolumeMute | 
| VK_VOLUME_DOWN | 174 | VolumeDown | 
| VK_VOLUME_UP | 175 | VolumeUp | 
| VK_MEDIA_NEXT_TRACK | 176 | |
| VK_MEDIA_PREV_TRACK | 177 | |
| VK_MEDIA_STOP | 178 | |
| VK_MEDIA_PLAY_PAUSE | 179 | |
| VK_LAUNCH_MAIL | 180 | |
| VK_LAUNCH_MEDIA_SELECT | 181 | |
| VK_LAUNCH_APP1 | 182 | |
| VK_LAUNCH_APP2 | 183 | |
| VK_OEM_1 | 186 | ; : | 
| VK_OEM_PLUS | 187 | = + | 
| VK_OEM_COMMA | 188 | |
| VK_OEM_MINUS | 189 | - _ | 
| VK_OEM_PERIOD | 190 | |
| VK_OEM_2 | 191 | / ? | 
| VK_OEM_3 | 192 | ` ~ | 
| VK_OEM_4 | 219 | [ { | 
| VK_OEM_5 | 220 | \ | | 
| VK_OEM_6 | 221 | ] } | 
| VK_OEM_7 | 222 | ' " | 
| VK_OEM_8 | 223 | |
| VK_OEM_102 | 226 | |
| VK_PACKET | 231 | |
| VK_PROCESSKEY | 229 | |
| VK_ATTN | 246 | |
| VK_CRSEL | 247 | |
| VK_EXSEL | 248 | |
| VK_EREOF | 249 | |
| VK_PLAY | 250 | |
| VK_ZOOM | 251 | |
| VK_NONAME | 252 | |
| VK_PA1 | 253 | |
| VK_OEM_CLEAR | 254 | 
| ASCII码 | 键盘 | ASCII 码 | 键盘 | ASCII 码 | 键盘 | ASCII 码 | 键盘 | 
| 27 | ESC | 32 | SPACE | 33 | ! | 34 | " | 
| 35 | # | 36 | $ | 37 | % | 38 | & | 
| 39 | ' | 40 | ( | 41 | ) | 42 | * | 
| 43 | + | 44 | ' | 45 | - | 46 | . | 
| 47 | / | 48 | 0 | 49 | 1 | 50 | 2 | 
| 51 | 3 | 52 | 4 | 53 | 5 | 54 | 6 | 
| 55 | 7 | 56 | 8 | 57 | 9 | 58 | : | 
| 59 | ; | 60 | <  | 61 | = | 62 | >  | 
| 63 | ? | 64 | @ | 65 | A | 66 | B | 
| 67 | C | 68 | D | 69 | E | 70 | F | 
| 71 | G | 72 | H | 73 | I | 74 | J | 
| 75 | K | 76 | L | 77 | M | 78 | N | 
| 79 | O | 80 | P | 81 | Q | 82 | R | 
| 83 | S | 84 | T | 85 | U | 86 | V | 
| 87 | W | 88 | X | 89 | Y | 90 | Z | 
| 91 | [ | 92 | \ | 93 | ] | 94 | ^ | 
| 95 | _ | 96 | ` | 97 | a | 98 | b | 
| 99 | c | 100 | d | 101 | e | 102 | f | 
| 103 | g | 104 | h | 105 | i | 106 | j | 
| 107 | k | 108 | l | 109 | m | 110 | n | 
| 111 | o | 112 | p | 113 | q | 114 | r | 
| 115 | s | 116 | t | 117 | u | 118 | v | 
| 119 | w | 120 | x | 121 | y | 122 | z | 
| 123 | { | 124 | | | 125 | } | 126 | ~ | 
C# keybd_event模拟对照表以及用法.的更多相关文章
- C/C++使用keybd_event模拟键盘按键
		#include <stdio.h> #include <Windows.h> /* 设置键盘大小写状态 big:为TRUE则切换大写状态,否则切换小写状态 */ VOID M ... 
- Python win32api.keybd_event模拟键盘输入
		win32api.keybd_event 该函数原型:keybd_event(bVk, bScan, dwFlags, dwExtraInfo) 第一个参数:虚拟键码(键盘键码对照表见附录): 第二个 ... 
- keybd_event模拟键盘按键,mouse_event怎么用
		从 模仿UP主,用Python实现一个弹幕控制的直播间! - 蛮三刀酱 - 博客园 (cnblogs.com) 知道了 PyAutoGUI: * Moving the mouse and clicki ... 
- curl_multi_*模拟多线程异步用法
		测试环境: PHP版本:php7.0.10 mysql版本:5.7.14 测试用例:循环插入两千行数据到数据库 public function test_syn($pc){ // $pc = trim ... 
- 自己模拟的ftl 用法:
		基类 public class Ftl_object_data_model { //三种基本属性 private boolean canRead=true;//是否能读取 ;//长度 private ... 
- C# 模拟Windows键盘事件
		发送键盘消息 [DllImport("user32.dll", EntryPoint = "keybd_event", SetLastError = true) ... 
- 键盘虚拟键值编码表 使用keybd_Event
		键盘虚拟键值编码表 使用keybd_Event 模拟键盘输入首先要用到一个API函数:keybd_event. 我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵! 模拟按键有 ... 
- 如何用Delphi开发网游外挂
		1.动作式,所谓动作式,就是指用API发命令给窗口或API控制鼠标.键盘等,使游戏里的人物进行流动或者攻击,最早以前的“石器”外挂就是这种方式.2.本地修改式,这种外挂跟传统上的一些游戏修改器没有两样 ... 
- Python基础系列讲解-自动控制windows桌面
		原链接:https://zhuanlan.zhihu.com/p/73001806 在使用PC时与PC交互的主要途径是看屏幕显示.听声音,点击鼠标和敲键盘等等.在自动化办公的趋势下,繁琐的工作可以让程 ... 
随机推荐
- jquery load 加载改造,只加载body
			背景: 项目中大量用到了jquery和easyui组件,原生load经常出现主页面异常,原因是组件被重复初始化.也考虑过用iframe,但是在实际项目中的效果,最终取消了iframe方案,也尝试了其他 ... 
- 1029. Median (25)
			分析: 考察归并排序,用简单的快排会超时. #include <iostream> #include <stdio.h> #include <algorithm> ... 
- 解决ubuntu bash: cd: ~:Permission denied
			cd /usr/local/hadoop 报错:bash: cd: /usr/local/hadoop:Permission denied 输入指令: /usr/local/hadoop 原因是没有权 ... 
- jquery基本选择器,一张页面全搞定
			<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ... 
- C#函数式编程之部分应用
			何谓函数式编程 相信大家在实际的开发中,很多情况下完成一个功能都需要借助多个类,那么我们这里的基本单元就是类.而函数式编程则更加细化,致使我们解决一个功能的基本单元是函数,而不是类,每个功能都是由多个 ... 
- RabbitMQ(一) -- Hello world
			RabbitMQ -- Hello world RabbitMQ使用AMQP通信协议(AMQP是一个提供统一消息服务的应用层标准协议,基于此协议的客户端与消息中间件可传递消息,并不受客户端/中间件不同 ... 
- [MFC] MFC 打开HTML资源(用ID版,也可加载到自己的web控件上)
			@ ^ @:如果是加载到web控件上,就把注释掉的解除注释(改为web控件点后面的函数),把下一句注释 BOOL Button::LoadFromResource(UINT nRes){//打开网页加 ... 
- [MFC] MFC编译程序,缺少MFC动态链接库的解决
			问题:VS2010 c++编写的程序在别人的机子运行不了,缺少mfc100u.dll xxx100d.dll等的解决方法 解决方法: 1.将这些dll打包,和应用程序一起发布; 2.采用MFC静态 ... 
- ASP.NET MVC中三方登录: 微软、谷歌、Office365
			创建一个MVC的工程,在Startup.Auth.cs文件中,我们能看到这样的一些代码: 这其实是微软已经帮我们实现好的三方登录的接口,我们只需要创建相应的开发者账号,并在其中配置好跟我们应用程序相关 ... 
- Msbuild利用cpu多核加速
			msbuild /t:Rebuild /p:Configuration=Release /m /m 自动检测cpu数量启动对应数量进程 
