美文网首页程序员
关于使用sendkeys函数后,NumLock被更改的问题

关于使用sendkeys函数后,NumLock被更改的问题

作者: zhanguoru01 | 来源:发表于2019-10-16 14:54 被阅读0次

关于使用sendkeys函数后,NumLock会被更改的问题,开始我以为是键盘坏了,由于无线键盘没有Number LOCK灯,后特意接上有线,并测试代码,发再使用Sendkeys会更改NumLock,经在网上查证确实存在此BUG,并给出替代方案,请使用API代替Sendkeys.

'1.宣称API

Public Declare Sub keybd_event Lib "use32.dll" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)

'2.函数应用

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)

常用键值:

功能键 其它键 

键   键码    键   键码    键   键码     键    键码 

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

相关文章

网友评论

    本文标题:关于使用sendkeys函数后,NumLock被更改的问题

    本文链接:https://www.haomeiwen.com/subject/tlcumctx.html