admin 发表于 2018-6-27 00:31:29

模拟键盘API函数Keybd_event用法

模拟键盘API函数Keybd_event用法
Windows提供了一个模拟键盘API函数Keybd_event(),使用该函数可以相应的屏蔽键盘的动作。Keybd_event()函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。win32api.keybd_event该函数原型如下:VOID keybd_event(
  BYTE bVk, // virtual-key code
  BYTE bScan, // hardware scan code
  DWORD dwFlags, // flags specifying various function options
  DWORD dwExtraInfo // additional data associated with keystroke
  );  从原型可以看出,Keybd_event()共有四个参数:
      第一个为按键的虚拟键值,如回车键为vk_return, tab键为vk_tab(其他具体的参见附录:常用模拟键的键值对照表);      第二个参数为扫描码,一般不用设置,用0代替就行;      第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP";      第四个参数一般也是置0即可。
例子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);附:常用模拟键的键值对照表(实际上字母的大小写键代码是不同的 )      字母和数字键 数字小键盘的键
功能键 其它键   
      键   键码  键   键码    键   键码   键    键码   
      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  

按键键码按键键码按键键码按键键码
A656(数字键盘)102;59:58
B667(数字键盘)103=61+                   43
C678(数字键盘)104,44< 60
D689(数字键盘)105-45_95
E69*106.46> 62
F70!33/47?63
G71Enter13`96~126
H72@64[91{123
I73#35\92|124
J74$36}125]93
K75F1112a97b98
L76F2113c99d100
M77F3114e101f102
N78F4115g103h104
O79F5116i105j106
P80F6117k107l108
Q81F7118m109n110
R82F8119o111p112
S83F9120q113r114
T84F10121s115t116
U85F11122u117v118
V86F12123w119x120
W87Backspace8y121z122
X88Tab90(数字键盘)96Up Arrow38
Y89Clear121(数字键盘)97Right Arrow39
Z90Shift162(数字键盘)98Down Arrow40
0(小键盘)48Control173(数字键盘)99Insert45
1(小键盘)49Alt184(数字键盘)100Delete46
2(小键盘)50Cap Lock205(数字键盘)101Num Lock144
3(小键盘)51Esc272(数字键盘)98Down Arrow40
4(小键盘)52Spacebar323(数字键盘)99Insert45
5(小键盘)53Page Up334(数字键盘)100Delete46
6(小键盘)54Page Down345(数字键盘)101Num Lock144
7(小键盘)55End35

8(小键盘)56Home36

9(小键盘)57Left Arrow37



页: [1]
查看完整版本: 模拟键盘API函数Keybd_event用法