虚拟键码(Virtual-Key Codes)
编程虚拟键对应表

数字小键盘上的4键
VK_NUMPAD5
65
数字小键盘上的5键
VK_NUMPAD6
66
数字小键盘上的6键
VK_NUMPAD7
67
数字小键盘上的7键
VK_NUMPAD8
68
数字小键盘上的8键
VK_NUMPAD9
69
数字小键盘上的9键
VK_F1
70
F1键
VK_F2
71
F2键
VK_F3
72
F3键
VK_F4
PAGE DOWN键
VK_END
23
END键
VK_HOME
24
HOME键
VK_LEFT
25
LEFT ARROW键
VK_UP
26
UP ARROW键
VK_RIGHT
27
RIGHT ARROW键
VK_DOWN
28
DOWN ARROW键
VK_SELECT
29
SELECT键
VK_INSERT
2D
INS键
VK_DELETE
73
F4键
VK_F5
74
F5键
VK_F6
75
F6键
VK_F7
76
F7键
VK_F8
77
F8键
VK_F9
78
F9键
VK_F10
79
F10键
VK_F11
7A
F11键
VK_F12
7B
F12键
对于字母键和非小键盘上的数字键,直接在单引号中加入该键就行.
比如:a键:'A'
1键:'1'
键盘虚拟键值编码表 使用keybd

键盘虚拟键值编码表使用keybd_Event也是在cnblogs上找的,怕到时忘了,先记下来原文章:/nemolog/archive/2005/10/30/265035.ht ml模拟键盘输入首先要用到一个API函数:keybd_event。
我们是菜鸟,所以不必具体去理解它的详细用法,只要按以下方法使用即可了!呵呵!模拟按键有两个基本动作,即按下键和放开按键,所以我们每模拟一次按键就要调用两次该API函数,其方法是:例子1:模拟按下'A'键keybd_event(65,0,0,0);keybd_event(65,0,KEYEVENTF_KEYUP,0);例子2:模拟按下'ALT+F4'键keybd_event(18,0,0,0);keybd_event(115,0,0,0);keybd_event(115,0,KEYEVENTF_KEYUP,0);keybd_event(18,0,KEYEVENTF_KEYUP,0);例子3:在启动一个程序之前清空屏幕(按Win +D)[DllImport("User32.dll")]public static extern void keybd_event(Byte bVk, Byte bScan, Int32 dwFlags, Int32 dwEx traInfo);keybd_event(0x5b, 0, 0, 0);keybd_event(68, 0, 0, 0);keybd_event(0x5b, 0, 0x2, 0);keybd_event(68, 0, 0x2, 0);附:常用模拟键的键值对照表。
键盘键与虚拟键码对照表字母和数字键数字小键盘的键功能键其它键键键码键键码键键码键键码A650 96 F1 112 Backspace 8B66197 F2 113Tab 9C67 2 98 F3 114Clear12D68399 F4 115Enter13E69 4 100 F5 116Shift16F70 5 101 F6 117Control17G71 6102 F7 118 Alt18H72 7 103 F8 119Caps Lock20I73 8 104F9 120Esc27J74 9105F10121Spacebar32K75 * 106F11122Page Up33L76 + 107F12123Page Down34M77 Enter 108-- --End35N78 - 109-- -- Home36O79 . 110---- Left Arrow 37P80 / 111---- Up Arrow38Q81 -- ------ Right Arrow 39R82 -- ------ Down Arrow 40S83 -- ---- -- Insert45T84 -- ------ Delete46U85 -- ---- -- Help47V86 ------ -- Num Lock144W87X88Y89Z90048149250351452553654755856957----------------------------------与键盘上各键对应的键值在软件开发的过程中我们经常与键盘打交道,以下是我查MSDN 所得希望对各位有帮助。
arduino虚拟键盘开发环境及对应键盘按键代码

arduino虚拟键盘开发环境及对应键盘按键代码今天的stm32系列的开发先断更⼀天,来玩玩淘宝卖的虚拟键盘的硬件(oled屏幕坏了,等⼀个新屏幕)不知道⼩伙伴有没有见过下图这⼏款淘宝买的标题叫硬件虚拟键盘的设备上图这⼏款虚拟键盘其实都是⽤的同⼀个IC,多的ESP8266和内存卡插槽啊都是这个IC功能的扩展如果想了解ESP8266远程控制键盘或者内存卡提取写好脚本控制键盘可以上github找到他们的对应开源代码之后有空我也会更新⼀下我在github上⾯使⽤开源代码的效果那么这篇就介绍⼀下虚拟键盘的开发环境的搭建以及简单的使⽤⽅法介绍硬件设备:虚拟键盘IC:atmega32u4我使⽤的是下图这款,当然没有上⾯淘宝卖的好看,但是功能⼀样嘛上⾯卖的要50到70之间,我这个只花15块钱,多找找就有这种惊喜价格,这IC⾃⼰购买的话也要13块钱左右开发环境搭建3、打开项⽬–加载库中选择点击Keyboard,会将#include <Keyboard.h>⾃动添加到代码中4、在⼯具–开发板中选择arduino Leonardo,这个开发板的IC就是atmega32u4,配置好这⼏部以后就可以开始测试⼀下硬件虚拟键盘了来进⾏使⽤实战测试我们先弄⼀个打开windows下的cmd过程就是:按下win+R然后填⼊cmd后点击回车1 #include <Keyboard.h>2//为什么加⼊延时3//每个按键按下和释放都需要⼀个短暂的时间间隔4//避免按下和释放间隔时间太短电脑还没识别到按下5void setup() {6 delay(1000);7 Keyboard.press(KEY_LEFT_GUI);8 Keyboard.press('r');9 delay(100);10 Keyboard.releaseAll();11 Keyboard.print("cmd");12 delay(1000);13 Keyboard.press(KEY_RETURN);14 delay(100);15 Keyboard.release(KEY_RETURN);1617 }1819void loop() {2021 }打开cmd这⾥没有过程视频,不过确实是打开了cmd界⾯注意⼀下要关闭输⼊法,不然打到输⼊法⾥⾯去了我们在看⼀下windows下的设备显⽰未接⼊开发板时这个是笔记本⾃带的键盘来的接⼊开发板时然后就可以看到多了⼀个HID键盘啦这个端⼝COM5是因为这款IC⾃带串⼝,不仅⽅便直接写⼊重新,还剩下了⼀个USB转串⼝芯⽚真的很好⽤注意事项:按下必须和释放配合使⽤按下Keyboard.press()释放Keyboard.release()另外咱整理了⼀些代码中对应的硬件虚拟键盘键位的定义也可以在Keyboard.h的库中查看1键盘左边ctrl --- KEY_LEFT_CTRL2键盘左边shift --- KEY_LEFT_SHIFT3键盘左边alt --- KEY_LEFT_ALT4键盘左边win --- KEY_LEFT_GUI5键盘右边ctrl --- KEY_RIGHT_CTRL6键盘右边shift --- KEY_RIGHT_SHIFT7键盘右边alt --- KEY_RIGHT_ALT8键盘右边win --- KEY_RIGHT_GUI9⽅向键上 --- KEY_UP_ARROW10⽅向键下 --- KEY_DOWN_ARROW11⽅向键左 --- KEY_LEFT_ARROW12⽅向键右 --- KEY_RIGHT_ARROW13空格键 --- KEY_BACKSPACE14 tab键 --- KEY_TAB15回车键 --- KEY_RETURN16 esc键 --- KEY_ESC17 insert键 --- KEY_INSERT18 delete键 --- KEY_DELETE19 page up键 --- KEY_PAGE_UP20 page down键 --- KEY_PAGE_DOWN21 home键 --- KEY_HOME22 end键 --- KEY_END23 capslock键 --- KEY_CAPS_LOCK24 F1 --- KEY_F125 F2 --- KEY_F226 F3 --- KEY_F327 F4 --- KEY_F428 F5 --- KEY_F529 F6 --- KEY_F630 F7 --- KEY_F731 F8 --- KEY_F832 F9 --- KEY_F933 F10 --- KEY_F1034 F11 --- KEY_F1135 F12 --- KEY_F12键盘按键定义结束这款IC还可以模拟⿏标的移动,真是多功能有空的话我做⼀个硬件的外挂来玩⼀下,之后也会更新⼀下⿏标移动的开发今天也是充满希望的⼀天。
虚拟键盘值表(Virtualkeyboardvaluetable)

虚拟键盘值表(Virtual keyboard value table)Keyboard virtual key encoding table using keybd_EvAnalog keyboard input, first of all to use a API function: keybd_event.We are new, so we don't have to understand the details. Just use the following method! Ha-ha!The analog button has two basic actions, that is, press the key and release the button, so we call the two API function every time we simulate the button:Example 1: simulate pressing the'A'keyKeybd_event (65,0,0,0);Keybd_event (65,0, KEYEVENTF_KEYUP, 0);Example 2: simulate pressing the'ALT+F4'keyKeybd_event (18,0,0,0);Keybd_event (115,0,0,0);Keybd_event (115,0, KEYEVENTF_KEYUP, 0);Keybd_event (18,0, KEYEVENTF_KEYUP, 0);Example 3: empty the screen before pressing a program (press Win +D)[DllImport ("User32.dll")]Public, static, extern, void, keybd_event (Byte, bVk, Byte, bScan, Int32, dwFlags, Int32, dwExtraInfo);Keybd_event (0x5b, 0, 0, 0);Keybd_event (68, 0, 0, 0);Keybd_event (0x5b, 0, 0x2, 0);Keybd_event (68, 0, 0x2, 0);Attached: commonly used analog key key table.Keyboard key and virtual key code comparison tableLetters and numbers keys, keys, keys, keys, other keysKey, code key, key code, key key, code key, key codeA 65096, F1 112, Backspace 8B 66197, F2 113, Tab 9C 67298, F3 114, Clear 12D 68399, F4 115, Enter 13E 694100, F5 116, Shift 16F 705101, F6 117, Control 17G 716102, F7 118, Alt 18H 727103, F8 119, Caps Lock 20I 738104, F9 120, Esc 27J 749105, F10 121, Spacebar 32K 75 * 106 F11 122 Page Up 33L 76 + 107 F12 123 Page Down 34M 77, Enter 108 -- End 35no. 78 - 109 - home.(79). 110 - left arrow.n 80 / 111 - up arrow.- 81 - - - - - - - - - - - - - - - - - - right arrow.r (82) - - - - - - - - - - - - - - - - - - down arrow 40 s 83 - - - - - - - - - - - - - - - - - - insert.t 10 - - - - - - - - - - - - - - - - - delete.u - - - - - - - - - - - - - - help.(v) - - - - - - - - - - - - - - - - - - num lock. w 87x x x x x x x.y 89z 900 0 0 0 0 0 481.2 503.4.5.6.7.8 569.----------------------------------与键盘上各键对应的键值在软件开发的过程中我们经常与键盘打交道, 以下是我查msdn 所得希望对各位有帮助.可在代码中的任何地方用下列值代替键盘上的键.值描述鼠标左键 0鼠标右键 0x2键 0x3 cancel鼠标中键 0x4backspace 键 request键 0x9 tabthis 0xc 键in 键 0xd键 0x10 shift键 0x11 ctrl0x12 键 menu键 0x13 break键 0x14 caps lock0x1b is 键0x20 spacebar 键键 0x21 page up键 0x22 page down0x23 键.键 0x24 home键 0x25 left arrow 键 0x26 up arrow键 0x27 right arrow 键 0x28 down arrow0x29 select 键键 0x2a print screen0x2b execute 键the 0x2c 键键 0x2d insert键 0x2e delete0x2f help 键键 0x90 num locka 至 z 键与码相同字母的 ascii a-z: 值描述a 键.(b 键(c 键(d 键(e 键(f 键(g 键键 72 hi 键.i 键. 键 75 k the 键. 键 77 键 78.a 键. 键 80 w 键 81. 键 82 r 键. s 键. t 键 85. 键) v 键 87.键 88 x x x x x x xit 键)90% 键0 0 0 0 0 0 0 - 9 的至 9 键与数字 ascii 码相同.值描述键 48 0键. 1键 50 2.51 (3) 键键 52 4键. 56 键557 keys568 keys579 keysThe following constants represent keys on numeric keys:Value description0x60 0 key0x61 1 key0x62 2 key0x63 3 key0x64 4 key0x65 5 key0x66 6 key0x67 7 key0x68 8 key0x69 9 key0x6A, MULTIPLICATION, SIGN (*) key 0x6B, PLUS, SIGN (+) keys0x6C ENTER key0x6D, MINUS, SIGN (-) key0x6E, DECIMAL, POINT (...) key0x6F DIVISION SIGN (/) keyThe following constants represent function keys: Value description0x70 F1 key0x71 F2 key0x72 F3 key0x73 F4 key0x74 F5 key0x75 F6 key0x76 F7 key0x77 F8 key0x78 F9 key0x79 F10 key0x7A F11 key0x7B F12 key0x7C F13 key 0x7D F14 key 0x7E F15 key 0x7F F16 key。
Unity实现模拟按键

Unity实现模拟按键模拟键盘输⼊⾸先要⽤到⼀个API函数:keybd_event。
我现在要实现模拟ESC键按钮,通过下⾯的键值对照表可知ESC键的键码是27,然后我在下⾯实现了⼀个简单的例⼦。
附:常⽤模拟键的键值对照表。
键盘键与虚拟键码对照表 字母和数字键 数字⼩键盘的键 功能键 其它键 键 键码 键 键码 键 键码 键 键码 A 65 0 96 F1 112 Backspace 8 B 66 1 97 F2 113 Tab 9 C 67 2 98 F3 114 Clear 12 D 68 3 99 F4 115 Enter 13 E 69 4 100 F5 116 Shift 16 F 70 5 101 F6 117 Control 17 G 71 6 102 F7 118 Alt 18 H 72 7 103 F8 119 Caps Lock 20 I 73 8 104 F9 120 Esc 27 J 74 9 105 F10 121 Spacebar 32 K 75 * 106 F11 122 Page Up 33 L 76 + 107 F12 123 Page Down 34 M 77 Enter 108 -- -- End 35 N 78 - 109 -- -- Home 36 O 79 . 110 -- -- Left Arrow 37 P 80 / 111 -- -- Up Arrow 38 Q 81 -- -- -- -- Right Arrow 39 R 82 -- -- -- -- Down Arrow 40 S 83 -- -- -- -- Insert 45 T 84 -- -- -- -- Delete 46 U 85 -- -- -- -- Help 47 V 86 -- -- -- -- Num Lock 144 W 87 X 88 Y 89 Z 90 0 48 1 49 2 50 3 51 4 52 5 53 6 54 7 55 8 56 9 57 ----------------------------------例⼦:using UnityEngine;using System.Collections;using System.Runtime.InteropServices;public class KeybdEvent : MonoBehaviour {[DllImport("user32.dll", EntryPoint = "keybd_event")]public static extern void Keybd_event(byte bvk,//虚拟键值 ESC键对应的是27byte bScan,//0int dwFlags,//0为按下,1按住,2释放int dwExtraInfo//0);void Start(){Keybd_event(27,0,0,0);Keybd_event(27, 0, 1, 0);Keybd_event(27, 0, 2, 0);}void Update(){if (Input.GetKeyDown(KeyCode.Escape)) {print("按下了ESC键");}if (Input.GetKey(KeyCode.Escape)){print("按住了ESC键");}if(Input.GetKeyUp(KeyCode.Escape)){print("松开了ESC键");}}}。
delphi虚拟键码对应关键

delphi虚拟键码对应关键VK_LBUTTON鼠标左键VK_RBUTTON鼠标右键VK_CANCEL控制+休息VK_MBUTTON鼠标中键VK_BACK Backspace键VK_TAB Tab键VK_CLEAR清除主要VK_RETURN Enter键VK_SHIFT Shift键VK_CONTROL Ctrl键VK_MENU Alt键VK_PAUSE暂停关键VK_CAPITAL Caps Lock键VK_KANA可与输入法VK_HANGUL可与输入法VK_JUNJA可与输入法VK_FINAL可与输入法VK_HANJA可与输入法VK_KANJI可与输入法VK_CONVERT可与输入法VK_NONCONVERT可与输入法VK_ACCEPT可与输入法VK_MODECHANGE可与输入法VK_ESCAPE Esc键VK_SPACE空间酒吧VK_PRIOR页键VK_NEXT下一页关键VK_END END键VK_HOME主页关键VK_LEFT左箭头键VK_UP向上键VK_RIGHT右箭头键VK_DOWN下箭头键VK_SELECT选择关键VK_PRINT打印键(键盘的具体)VK_EXECUTE执行关键VK_SNAPSHOT Print Screen键VK_INSERT插入关键VK_DELETE Delete键VK_HELP帮助关键VK_LWIN左Windows键(微软键盘)VK_RWIN右Windows键(微软键盘)VK_APPS应用关键(微软键盘)VK_NUMPAD0 0键(数字键盘)VK_NUMPAD1 1键(数字键盘)VK_NUMPAD2 2键(数字键盘)VK_NUMPAD3 3键(数字键盘)VK_NUMPAD4 4键(数字键盘)VK_NUMPAD5 5键(数字键盘)VK_NUMPAD6 6键(数字键盘)VK_NUMPAD7 7键(数字键盘)VK_NUMPAD8 8键(数字键盘)VK_NUMPAD9 9键(数字键盘)VK_MULTIPLY多键(数字键盘)VK_ADD添加键(数字键盘)VK_SEPARATOR分离键(数字键盘)VK_SUBTRACT减去键(数字键盘)VK_DECIMAL小数点键(数字键盘)VK_DIVIDE鸿沟键(数字键盘)VK_F1 F1键VK_F2 F2键VK_F3 F3的关键VK_F4 F4键VK_F5 F5键VK_F6 F6键VK_F7 F7键VK_F8 F8键VK_F9 F9键VK_F10 F10键关键VK_F12 F12键VK_F13 F13键VK_F14 F14键VK_F15 F15键VK_F16 F16键VK_F17 F17键VK_F18 F18键VK_F19 F19键VK_F20 F20键VK_F21 F21键VK_F22 F22键VK_F23 F23键VK_F24 F24键VK_NUMLOCK数Lock键VK_SCROLL滚动Lock键VK_LSHIFT左Shift键(仅用于GetAsyncKeyState和GetKeyState )VK_RSHIFT右Shift键(仅用于GetAsyncKeyState和GetKeyState )VK_LCONTROL左Ctrl键(仅用于GetAsyncKeyState和GetKeyState )VK_RCONTROL右Ctrl键(仅用于GetAsyncKeyState和GetKeyState )VK_LMENU左Alt键(仅用于GetAsyncKeyState和GetKeyState )VK_RMENU右Alt键(仅用于GetAsyncKeyState和GetKeyState )VK_PROCESSKEY工艺关键VK_ATTN经办关键VK_CRSEL CrSel关键VK_EXSEL ExSel关键VK_EREOF擦除EOF分析关键VK_PLAY发挥关键VK_ZOOM变焦关键VK_NONAME保留以供将来使用VK_PA1 PA1关键VK_OEM_CLEAR清除主要标签数:1 “ F14键VK_F15 F15键VK_F16 F16键VK_F17 F17键VK_F19 F19键VK_F20 F20键VK_F21 F21键VK_F22 F22键VK_F23 F23键VK_F24 F24键VK_NUMLOCK数Lock键VK_SCROLL滚动Lock键VK_LSHIFT左Shift键(仅用于GetAsyncKeyState和GetKeyState )VK_RSHIFT右Shift键(仅用于GetAsyncKeyState和GetKeyState )VK_LCONTROL左Ctrl键(仅用于GetAsyncKeyState和GetKeyState )VK_RCONTROL右Ctrl键(仅用于GetAsyncKeyState和GetKeyState )VK_LMENU左Alt键(仅用于GetAsyncKeyState和GetKeyState )VK_RMENU右Alt键(仅用于GetAsyncKeyState和GetKeyState )VK_PROCESSKEY工艺关键VK_ATTN经办关键VK_CRSEL CrSel关键VK_EXSEL ExSel关键VK_EREOF擦除EOF分析关键VK_PLAY发挥关键VK_ZOOM变焦关键VK_NONAME保留以供将来使用VK_PA1 PA1关键VK_OEM_CLEAR清除主要。
鼠标键盘虚拟键值表
#define VK_RBU TTON0x02 鼠标右键#define VK_CAN CEL 0x03 Contro l-Break处理#define VK_MBU TTON 0x04 /* NOT contig uouswith L & RBUTTO N */ 鼠标中间键#define VK_BAC K 0x08 Backsp ace键#define VK_TAB0x09 Tab键#define VK_CLE AR 0x0C Clear键#define VK_RET URN 0x0D Enter键#define VK_SHI FT 0x10 Shift键#define VK_CON TROL0x11 Ctrl键#define VK_MEN U 0x12 Alt键#define VK_PAU SE 0x13#define VK_CAP ITAL0x14 Caps lock键#define VK_KAN A0x15#define VK_HAN GEUL 0x15 /* old name - should be here for compat ibili ty */#define VK_HAN GUL 0x15#define VK_JUN JA0x17#define VK_FIN AL 0x18#define VK_HAN JA0x19#define VK_KAN JI 0x19#define VK_ESC APE 0x1B Escape键#define VK_CON VERT0x1C#define VK_NON CONVE RT 0x1D#define VK_ACC EPT 0x1E#define VK_MOD ECHAN GE 0x1F#define VK_SPA CE 0x20 空格键#define VK_PRI OR 0x21 Page up键#define VK_NEX T 0x22 Page down键#define VK_END0x23 End键#define VK_HOM E 0x24 Home键#define VK_LEF T 0x25 左箭头键#define VK_UP0x26 上箭头键#define VK_RIG HT 0x27 右箭头键#define VK_DOW N 0x28 下箭头键#define VK_SEL ECT 0x29 Select键#define VK_PRI NT 0x2A#define VK_SNA PSHOT 0x2C Printscreen键#define VK_INS ERT 0x2D Insert键#define VK_DEL ETE 0x2E Delete键#define VK_HEL P 0x2F Help键/* VK_0 thru VK_9 are the same as ASCII'0' thru '9' (0x30 - 0x39) */ /* VK_A thru VK_Z are the same as ASCII'A' thru 'Z' (0x41 - 0x5A) */#define VK_LWI N 0x5B#define VK_RWI N 0x5C#define VK_APP S 0x5D#define VK_NUM PAD00x60 数字小键盘上的0#define VK_NUM PAD10x61#define VK_NUM PAD20x62#define VK_NUM PAD30x63#define VK_NUM PAD40x64#define VK_NUM PAD50x65#define VK_NUM PAD60x66#define VK_NUM PAD70x67#define VK_NUM PAD80x68#define VK_NUM PAD90x69#define VK_MUL TIPLY0x6A数字小键盘上的*#define VK_ADD0x6B 数字小键盘上的+#define VK_SEP ARATO R 0x6C 分隔符键#define VK_SUB TRACT0x6D 数字小键盘上的-#define VK_DEC IMAL0x6E 数字小键盘上的.#define VK_DIV IDE 0x6F 数字小键盘上的/#define VK_F10x70#define VK_F20x71#define VK_F30x72#define VK_F40x73#define VK_F50x74#define VK_F60x75#define VK_F70x76#define VK_F80x77#define VK_F90x78#define VK_F100x79#define VK_F110x7A#define VK_F120x7B#define VK_F130x7C#define VK_F140x7D#define VK_F150x7E#define VK_F160x7F#define VK_F170x80#define VK_F180x81#define VK_F190x82#define VK_F200x83#define VK_F210x84#define VK_F220x85#define VK_F230x86#define VK_F240x87#define VK_0 ... VK_9 0x30 - 0x39 0-9键#define VK_A ... VK_Z 0x41 - 0x5A A-Z键#define VK_NUM LOCK0x90#define VK_SCR OLL 0x91 Scroll Lock/** VK_L* & VK_R* - left and rightAlt, Ctrl and Shiftvirtua l keys.* Used only as parame tersto GetAsy ncKey State() and GetKey State().* No otherAPI or messag e will distin guish left and rightkeys in this way.*/#define VK_LSH IFT 0xA0#define VK_RSH IFT 0xA1#define VK_LCO NTROL0xA2#define VK_RCO NTROL0xA3#define VK_LME NU 0xA4 左Alt键#define VK_RME NU 0xA5 右Alt键#if(WINVER >= 0x0400)#define VK_PRO CESSK EY0xE5#endif/* WINVER >= 0x0400 */#define VK_ATT N 0xF6#define VK_CRS EL 0xF7#define VK_EXS EL 0xF8#define VK_ERE OF 0xF9#define VK_PLA Y0xFA#define VK_ZOO M 0xFB#define VK_NON AME 0xFC#define VK_PA10xFD#define VK_OEM_CLEA R 0xFEVK_OEM_1 BA Used for miscel laneo us charac ters; it can vary by keyboa rd.Window s 2000/XP: For the US standa rd keyboa rd, the ';:' keyVK_OEM_PLUS BB Window s 2000/XP: For any countr y/region, the '=+' keyVK_OEM_COMM A BC Window s 2000/XP: For any countr y/region, the ',<' keyVK_OEM_MINU S BD Window s 2000/XP: For any countr y/region, the '-_' keyVK_OEM_PERI OD BE Window s 2000/XP: For any countr y/region, the '>.' keyVK_OEM_2 BF Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '/?' keyVK_OEM_3 C0 Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '`~' key- C1-D7 Reserv ed- D8-DA Unassi gnedVK_OEM_4 DB Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '[{' keyVK_OEM_5 DC Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '\|' keyVK_OEM_6 DD Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the ']}' keyVK_OEM_7 DE Used for miscel laneo us charac ters; it can vary by keyboa rd. Window s 2000/XP: For the US standa rd keyboa rd, the '' "' key。
游戏辅助制作原理
游戏辅助制作原理目录一、前言1二、认识辅助1三、辅助技术综述2动作模拟技术2封包技术9完毕语13一、前言游戏外辅程序,可以协助玩家自动产生游戏动作、修改游戏网络数据包以及修改游戏存数据等,以实现玩家用最少的时间和金钱去完成功力升级和过关斩将。
虽然,现在对游戏辅助程序的“合法〞身份众说纷纭,在这里我不想对此发表任何个人意见,让时间去说明一切吧。
不管游戏辅助程序是不是“合法〞身份,但是它却是具有一定的技术含量的,在这些小小程序中使用了许多高端技术,如拦截Sock技术、拦截API技术、模拟键盘与鼠标技术、直接修改程序存技术等等。
本文将对常见的游戏辅助中使用的技术进展全面剖析。
二、认识辅助游戏辅助的历史可以追溯到单机版游戏时代,只不过当时它使用了另一个更通俗易懂的名字——游戏修改器。
它可以在游戏中追踪锁定游戏主人公的各项能力数值。
这样玩家在游戏中可以到达主角不掉血、不消耗魔法、不消耗金钱等目的。
这样降低了游戏的难度,使得玩家更容易通关。
随着网络游戏的时代的降临,游戏辅助在原有的功能之上进展了新的开展,它变得更加多种多样,功能更加强大,操作更加简单,以至有些游戏的辅助已经成为一个体系,比方?石器时代?,辅助品种到达了几十种,自动战斗、自动行走、自动练级、自动补血、加速、不遇敌、原地遇敌、快速增加经历值、按键精灵……几乎无所不包。
游戏辅助的设计主要是针对于某个游戏开发的,我们可以根据它针对的游戏的类型可大致可将辅助分为两种大类。
一类是将游戏量繁琐和无聊的攻击动作使用辅助自动完成,以帮助玩家轻松搞定攻击对象并可以快速的增加玩家的经历值。
比方在?龙族?中有一种工作的设定,玩家的工作等级越高,就可以驾驭越好的装备。
但是增加工作等级却不是一件有趣的事情,毋宁说是重复枯燥的机械劳动。
如果你想做法师用的杖,首先需要做根本工作--?砍树。
砍树的方法很简单,在一棵大树前不停的点鼠标就可以了,每10000的经历升一级。
这就意味着玩家要在大树前不停的点击鼠标,这种无聊的事情通过"按键精灵"就可以解决。
keybd_event,mouse_event模拟产生键盘事件、鼠标事件的使用
keybd_event,mouse_event模拟产生键盘事件、鼠标事件的使用比如一个应用:自动关闭弹出的Messagox对话框(/dijkstar/article/details/8761481)(2013-04-05编辑)void CSimulateMouseView::OnLdbclick(){//将鼠标的位置放在窗口的标题条上POINT lpPoint;CRect rc;CWnd* pParent = AfxGetApp()->GetMainWnd();pParent->GetWindowRect(&rc);lpPoint.x = rc.left+50;lpPoint.y = rc.top+10;SetCursorPos(lpPoint.x, lpPoint.y);//双击该标题条mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);}void CSimulateMouseView::OnLclick(){//将鼠标的位置放在窗口的关闭按钮上POINT lpPoint;CRect rc;CWnd* pParent = AfxGetApp()->GetMainWnd();pParent->GetWindowRect(&rc);lpPoint.x = rc.right-5;lpPoint.y = rc.top +5;SetCursorPos(lpPoint.x, lpPoint.y);//单击mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_ABSOLUTE,0,0,0,0);mouse_event(MOUSEEVENTF_LEFTUP|MOUSEEVENTF_ABS OLUTE,0,0,0,0);}BOOL CSimulateMouseView::PreTranslateMessage(MSG* pMsg){// TODO: Add your specialized code here and/or call the base classif (pMsg->message==WM_KEYDOWN && pMsg->wParam==0x41){::MessageBox(NULL, "A 键按下", "提示", MB_ICONQUESTION);return FALSE; //不翻译消息,直接将消息传递下去。
模拟按键的话还比较简单
如果你是想模拟按键的话还比较简单,一种方法是用keybd_event 来模拟,给个例子:Option ExplicitPrivate Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)Private Const VK_ADD As Long = &H6B '加号键Private Const VK_APPS As Long = &H5D 'Applications 键(相当于鼠标右键)Private Const VK_BACK As Long = &H8 'BackSpace 键Private Const VK_CAPITAL As Long = &H14 'Caps Lock 键(大小写转换键)Private Const VK_CANCEL As Long = &H3 'Ctrl + Break 过程Private Const VK_CONTROL As Long = &H11Private Const VK_DECIMAL As Long = &H6E '小数点号键Private Const VK_DELETE As Long = &H2EPrivate Const VK_DIVIDE As Long = &H6F '除号键Private Const VK_DOWN As Long = &H28Private Const VK_END As Long = &H23Private Const VK_ESCAPE As Long = &H1BPrivate Const VK_F1 As Long = &H70Private Const VK_F10 As Long = &H79Private Const VK_F11 As Long = &H7APrivate Const VK_F12 As Long = &H7BPrivate Const VK_F2 As Long = &H71Private Const VK_F3 As Long = &H72Private Const VK_F4 As Long = &H73Private Const VK_F5 As Long = &H74Private Const VK_F6 As Long = &H75Private Const VK_F7 As Long = &H76Private Const VK_F8 As Long = &H77Private Const VK_F9 As Long = &H78Private Const VK_HOME As Long = &H24Private Const VK_INSERT As Long = &H2DPrivate Const VK_LCONTROL As Long = &HA2Private Const VK_LEFT As Long = &H25Private Const VK_LMENU As Long = &HA4 '左Alt 键Private Const VK_LSHIFT As Long = &HA0Private Const VK_LWIN As Long = &H5BPrivate Const VK_MENU As Long = &H12 'Alt 键Private Const VK_MULTIPLY As Long = &H6A '乘号键Private Const VK_NEXT As Long = &H22 '下翻页键Private Const VK_NUMLOCK As Long = &H90Private Const VK_NUMPAD0 As Long = &H60Private Const VK_NUMPAD1 As Long = &H61Private Const VK_NUMPAD2 As Long = &H62Private Const VK_NUMPAD3 As Long = &H63Private Const VK_NUMPAD4 As Long = &H64Private Const VK_NUMPAD5 As Long = &H65Private Const VK_NUMPAD6 As Long = &H66Private Const VK_NUMPAD7 As Long = &H67Private Const VK_NUMPAD8 As Long = &H68Private Const VK_NUMPAD9 As Long = &H69Private Const VK_PAUSE As Long = &H13Private Const VK_PRINT As Long = &H2APrivate Const VK_PRIOR As Long = &H21 '上翻页键Private Const VK_RCONTROL As Long = &HA3Private Const VK_RETURN As Long = &HD '回车键Private Const VK_RIGHT As Long = &H27Private Const VK_RMENU As Long = &HA5 '右Alt 键Private Const VK_RSHIFT As Long = &HA1Private Const VK_RWIN As Long = &H5CPrivate Const VK_SCROLL As Long = &H91 'Scroll Lock 键Private Const VK_SEPARATOR As Long = &H6C '小键盘上的回车键Private Const VK_SHIFT As Long = &H10Private Const VK_SLEEP As Long = &H5F '休眠键Private Const VK_SNAPSHOT As Long = &H2C 'Print Screen 键Private Const VK_SPACE As Long = &H20Private Const VK_SUBTRACT As Long = &H6D '减号键Private Const VK_TAB As Long = &H9Private Const VK_UP As Long = &H26Private Const VK_OEM_1 As Long = &HBA 'Windows 2000:对于US 标准键盘,是“;:”键Private Const VK_OEM_2 As Long = &HBF 'Windows 2000:对于US 标准键盘,是“/?”键Private Const VK_OEM_3 As Long = &HC0 'Windows 2000:对于US 标准键盘,是“`~”键Private Const VK_OEM_4 As Long = &HDB 'Windows 2000:对于US 标准键盘,是“[{”键Private Const VK_OEM_5 As Long = &HDC 'Windows 2000:对于US 标准键盘,是“\|”键Private Const VK_OEM_6 As Long = &HDD 'Windows 2000:对于US 标准键盘,是“]}”键Private Const VK_OEM_7 As Long = &HDE 'Windows 2000:对于US 标准键盘,是“单/双引号”键Private Const VK_OEM_COMMA As Long = &HBC 'Windows 2000:对于任何国家/地区,是“,”键Private Const VK_OEM_MINUS As Long = &HBD 'Windows 2000:对于任何国家/地区,是“-”键Private Const VK_OEM_PERIOD As Long = &HBE 'Windows 2000:对于任何国家/地区,是“.”键Private Const VK_OEM_PLUS As Long = &HBB 'Windows 2000:对于任何国家/地区,是“+”键Private Const KEYEVENTF_KEYUP = &H2'根据指定的映射类型,执行不同的扫描码和字符转换,0——wCode是个虚拟键码。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
虚拟键码虚拟键码适用于:桌面应用程序只下表显示了符号常量的名称,十六进制值,鼠标或键盘等值的系统所使用的虚拟键码。
按数字顺序列出的代码。
恒/值描述VK_LBUTTON鼠标左键0X01VK_RBUTTON鼠标右键0X02VK_CANCEL控制中断处理0x03的VK_MBUTTON鼠标中键(三键鼠标)0X04VK_XBUTTON1X1鼠标按钮0X05VK_XBUTTON2X2鼠标按钮0X06-未定义0X07VK_BACK退格键0X08VK_TABTAB键0X09-保留的0X0A-0BVK_CLEARCLEAR键0X0CVK_RETURN回车键0X0D-未定义0X0E-0FVK_SHIFT按住SHIFT键为0x10VK_CONTROLCTRL键为0x11VK_MENUALT键0X12VK_PAUSEPAUSE键值0x13VK_CAPITAL0x14的CAPS LOCK键VK_KANA0x15IME假名模式VK_HANGUEL 0x15 IME Hanguel模式(保持兼容性;使用VK_HANGUL的)VK_HANGUL0x15IME韩文模式-0x16未定义VK_JUNJA0x17IME Junja模式VK_FINAL为0x18IME的最终模式VK_HANJA0×19IME汉字模式VK_KANJI0×19IME汉字模式-0x1A的未定义VK_ESCAPE0x1BESC键VK_CONVERT为0x1CIME转换VK_NONCONVERT0x1DIME nonconvert VK_ACCEPT0X1EIME接受VK_MODECHANGE0x1F的IME模式变更请求VK_SPACE0X20空格键VK_PRIOR0×21PAGE UP键VK_NEXT为0x22PAGE DOWN键VK_END0X23END键VK_HOME0X24HOME键VK_LEFT$ 25左箭头键VK_UP向上箭头键0X26VK_RIGHT右箭头键0x27VK_DOWN向下箭头键为0x28VK_SELECTSELECT键0x29VK_PRINTPRINT键0x2A表示VK_EXECUTE执行关键0x2B中VK_SNAPSHOTPrint Screen键0x2c为VK_INSERTINS键0x2DVK_DELETEDEL键0x2E的VK_HELPHELP键值为0x2F0X30 0键0X31 1键0x32 2键地址0x33 3个关键0x34 4个关键0x35 5个关键0x36 6个关键0x37 7个关键0x38 8键0x39 9键-未定义0x3A-40$ 41 一个关键的0x42 B键×43 C键0×44 D键0X45 E键0x46 F键0X47 G键0X48 H键0X49 I键0x4A J键0x4B K键0x4C L键0x4D M键0x4E N键0x4F O键为0x50 P键0x51 Q键0x52 R键0x53 S键0x54 T键。
0x55的U键0X56 V键的0x57 W键0x58 X键0x59 Y键。
为0x5A Z键VK_LWIN左边的Windows键(键盘)0x5BVK_RWIN正确的Windows键(键盘)0x5CVK_APPS应用键(自然科学键盘)0x5D-保留的0x5e者VK_SLEEP计算机休眠键到0x5FVK_NUMPAD0数字小键盘的0键从0x60VK_NUMPAD1数字小键盘1键31:8VK_NUMPAD2数字小键盘数字键20x62VK_NUMPAD3数字键盘3键0x63VK_NUMPAD4数字小键盘4键0x64VK_NUMPAD5数字小键盘5键0x65VK_NUMPAD6数字小键盘6键0x66VK_NUMPAD7数字小键盘7键0x67VK_NUMPAD8数字键盘8键为0x68VK_NUMPAD99键数字键盘0×69VK_MULTIPLY乘关键0x6AVK_ADD添加关键0x6BVK_SEPARATOR分隔符键0x6CVK_SUBTRACT减去关键0x6DVK_DECIMAL十进位的关键0x6EVK_DIVIDE除以关键0x6FVK_F1F1键0x70VK_F2F2键0x71VK_F3F3键0x72VK_F4F4键为0x73VK_F5F5键0x74VK_F6F6键0x75VK_F7F7键0x76VK_F8F8键0x77VK_F9F9键0x78VK_F10F10键值为0x79VK_F11F11键0x7AVK_F12F12键0x7B的VK_F13F13键0x7CVK_F14F14键0x7DVK_F15F15键0x7E的VK_F16F16键0x7F的VK_F17F17键0X80VK_F18F18键0x81表示VK_F19F19键0X82VK_F20F20键0X83VK_F21F21键的0x84VK_F22F22键0x85VK_F23F23键0x86VK_F24F24键87H的-未分配均为0x88-8FVK_NUMLOCKNUM LOCK键0x90VK_SCROLLSCROLL LOCK键0x91的0x92-96 OEM特定-未分配0x97-9FVK_LSHIFT左边的Shift键为0xA0VK_RSHIFT右SHIFT键0XA1VK_LCONTROL左侧控制键0xA2VK_RCONTROL右边的Control键0xA3执行VK_LMENU左边的菜单键0xA4VK_RMENU右侧的菜单键0xA5的VK_BROWSER_BACK浏览器的后退键0xA6VK_BROWSER_FORWARD浏览器快进键0xA7VK_BROWSER_REFRESH浏览器刷新键0XA8VK_BROWSER_STOP浏览器停止键0xA9VK_BROWSER_SEARCH浏览器搜索键0XAAVK_BROWSER_FAVORITES浏览器的收藏夹键0xABVK_BROWSER_HOME浏览器启动和Home键0xACVK_VOLUME_MUTE静音键写0xADVK_VOLUME_DOWN音量键0xAEVK_VOLUME_UP音量键0xAFVK_MEDIA_NEXT_TRACK下一首键0XB0VK_MEDIA_PREV_TRACK上一曲目键31:8VK_MEDIA_STOP停止媒体键0xB2然后VK_MEDIA_PLAY_PAUSE播放/暂停媒体键0xB3VK_LAUNCH_MAIL启动邮件键0xB4VK_LAUNCH_MEDIA_SELECT选择媒体键0xB5VK_LAUNCH_APP11键启动应用程序0xB6VK_LAUNCH_APP22键启动应用程序0xB7-保留的0XB8-B9VK_OEM_1用于其他字符,它可以通过键盘的不同而有所0xBA 差异。
美国标准键盘,':'关键VK_OEM_PLUS0xBB对于任何一个国家/地区,'+'键VK_OEM_COMMA0xBC对于任何国家/地区,','关键VK_OEM_MINUS0xBD对于任何国家/地区,“ - ”键VK_OEM_PERIOD从0xBE对于任何一个国家/地区的'。
' 关键VK_OEM_2 0xBF 用于其他字符,它可以通过键盘的不同而有所差异。
对于美国标准键盘的“/?”关键VK_OEM_3 0XC0 用于其他字符,它可以通过键盘的不同而有所差异。
美国标准键盘,`〜“键-0xC1-D7保留的-0xD8-DA未分配VK_OEM_4使用0xDB 用于其他字符,它可以通过键盘的不同而有所差异。
美国标准键盘,“[{'键VK_OEM_5 0xDC 用于其他字符,它可以通过键盘的不同而有所差异。
美国标准键盘的“\ |”键VK_OEM_6 0xDD 用于其他字符,它可以通过键盘的不同而有所差异。
美国标准键盘,']}“键VK_OEM_7 0xDE 用于其他字符,它可以通过键盘的不同而有所差异。
对于美国标准键盘,single-quote/double-q uote“键VK_OEM_8 0xDF 用于其他字符,它可以通过键盘的不同而有所差异。
-0XE0保留的为0xE1 OEM特定VK_OEM_102 0xE2之后无论是尖括号键或RT 102键键盘上的反斜杠键0xE3-E4 OEM特定VK_PROCESSKEY IME处理重要0xE50xE6 OEM特定VK_PACKET 0xE7 用于传递Unicode字符,如果他们的击键。
VK_PACKET关键是一个32位的虚拟键值用于非键盘输入法的低字中。
有关详细信息,请参阅“备注”KEYBDINPUT,SendInput,WM_KEYDOWN,WM_KEYUP-0xE8未分配0xE9-F5 OEM特定VK_ATTN0xF6联系人键VK_CRSEL0XF7CRSEL关键VK_EXSEL0XF8ExSel关键VK_EREOF0xF9删除EOF键VK_PLAY第二套播放键VK_ZOOM0xFB的才能变焦键VK_NONAME0xFC有保留的VK_PA1是0xFDPA1键VK_OEM_CLEAR0xFE的清除键需求最低支持的客户端Windows 2000专业版最低支持的服务器Windows 2000 Server的头Winuser.h中。