键盘虚拟键值编码表 使用keybd

您所在的位置:网站首页 vsc按键 键盘虚拟键值编码表 使用keybd

键盘虚拟键值编码表 使用keybd

2023-09-21 06:58| 来源: 网络整理| 查看: 265

也是在cnblogs上找的,怕到时忘了,先记下来 原文章 :http://www.cnblogs.com/nemolog/archive/2005/10/30/265035.html 模拟键盘输入首先要用到一个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);

另外,keybd_event的函数原型为:

VOID WINAPI keybd_event(   _In_  BYTE bVk,   _In_  BYTE bScan,   _In_  DWORD dwFlags,   _In_  ULONG_PTR dwExtraInfo );

第二个参数是scancode(扫描码)。由虚拟按键得到扫描码使用函数MapVirtualKey。MapVirtualKey还可以由扫描码得到虚拟按键编码。

UINT WINAPI MapVirtualKey(   _In_  UINT uCode,   _In_  UINT uMapType );

Parameters     uCode [in] Type: UINT     The virtual key code or scan code for a key. How this value is interpreted depends on the value of the uMapType parameter. uMapType [in]     Type: UINT     The translation to be performed. The value of this parameter depends on the value of the uCode parameter. Value                                   (1)MAPVK_VK_TO_CHAR  2 uCode is a virtual-key code and is translated into an unshifted character value in the low-order word of the return value. Dead keys (diacritics) are indicated by setting the top bit of the return value. If there is no translation, the function returns 0. (2)MAPVK_VK_TO_VSC    0 uCode is a virtual-key code and is translated into a scan code. If it is a virtual-key code that does not distinguish between left- and right-hand keys, the left-hand scan code is returned. If there is no translation, the function returns 0. (3)MAPVK_VSC_TO_VK   1 uCode is a scan code and is translated into a virtual-key code that does not distinguish between left- and right-hand keys. If there is no translation, the function returns 0. (4)MAPVK_VSC_TO_VK_EX   3 uCode is a scan code and is translated into a virtual-key code that distinguishes between left- and right-hand keys. If there is no translation, the function returns 0.

Return value Type: UINT

The return value is either a scan code, a virtual-key code, or a character value, depending on the value of uCode and uMapType. If there is no translation, the return value is zero.

例子:在启动一个程序之前清空屏幕(按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);    附:常用模拟键的键值对照表。                       键盘键与虚拟键码对照表       字母和数字键     数字小键盘的键       功能键         其它键       键   键码     键   键码       键   键码     键      键码       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   ---------------------------------- 与键盘上各键对应的键值 在软件开发的过程中我们经常与键盘打交道,以下是我查MSDN 所得希望对各位有帮助。 可在代码中的任何地方用下列值代替键盘上的键: 值 描述 0x1 鼠标左键 0x2 鼠标右键 0x3 CANCEL 键 0x4 鼠标中键 0x8 BACKSPACE 键 0x9 TAB 键 0xC CLEAR 键 0xD ENTER 键 0x10 SHIFT 键 0x11 CTRL 键 0x12 MENU 键 0x13 PAUSE 键 0x14 CAPS LOCK 键 0x1B ESC 键 0x20 SPACEBAR 键 0x21 PAGE UP 键 0x22 PAGE DOWN 键 0x23 END 键 0x24 HOME 键 0x25 LEFT ARROW 键 0x26 UP ARROW 键 0x27 RIGHT ARROW 键 0x28 DOWN ARROW 键 0x29 SELECT 键 0x2A PRINT SCREEN 键 0x2B EXECUTE 键 0x2C SNAPSHOT 键 0x2D INSERT 键 0x2E DELETE 键 0x2F HELP 键 0x90 NUM LOCK 键 A 至 Z 键与 A - Z 字母的 ASCII 码相同: 值 描述 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 键 0 至 9 键与数字 0 - 9 的 ASCII 码相同: 值 描述 48 0 键 49 1 键 50 2 键 51 3 键 52 4 键 53 5 键 54 6 键 55 7 键 56 8 键 57 9 键 下列常数代表数字键盘上的键: 值 描述 0x60 0 键 0x61 1 键 0x62 2 键 0x63 3 键 0x64 4 键 0x65 5 键 0x66 6 键 0x67 7 键 0x68 8 键 0x69 9 键 0x6A MULTIPLICATION SIGN (*) 键 0x6B PLUS SIGN (+) 键 0x6C ENTER 键 0x6D MINUS SIGN (-) 键 0x6E DECIMAL POINT (.) 键 0x6F DIVISION SIGN (/) 键 下列常数代表功能键: 值 描述 0x70 F1 键 0x71 F2 键 0x72 F3 键 0x73 F4 键 0x74 F5 键 0x75 F6 键 0x76 F7 键 0x77 F8 键 0x78 F9 键 0x79 F10 键 0x7A F11 键 0x7B F12 键 0x7C F13 键 0x7D F14 键 0x7E F15 键 0x7F F16 键


【本文地址】


今日新闻


推荐新闻


    CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3