您的位置:首页 > 编程语言 > C#

C#模拟PrtScn实现截屏预备知识--keybd_event使用方法

2015-08-20 09:55 417 查看
Windows提供了一个模拟键盘API函数Keybd_event(),使用该函数可以相应的屏蔽键盘的动作。Keybd_event()函数能触发一个按键事件,也就是说会产生一个WM_KEYDOWN或WM_KEYUP消息。但是已经被SendInput取代。

语法:

VOID keybd_event(BYTE bVk,BYTE bScan,DWORD dwFlags,Ptr dwExtralnfo);

参数:

bVk:定义一个虚拟键码。键码值必须在1~254之间。  

bScan: 定义该键的硬件扫描码。  

dwFlags: 定义函数操作的各个方面的一个标志位集。应用程序可使用如下一些预定义常数的组合设置标志位。  

KEYEVENTF_EXTENDEDKEY:若指定该值,则扫描码前一个值为OXEO(224)的前缀字节。  

KEYEVENTF_KEYUP:若指定该值,该键将被释放;若未指定该值,该键将被按下。

dwExtralnfo:定义与击键相关的附加的32位值。   

返回值:该函数无返回值。

keybd_event(16,0,0,0);//按下Shift键  
keybd_event('A',0,0,0);//按下a键  
keybd_event('A',0,KEYEVENTF_KEYUP,0);//松开a键
keybd_event(16,0,KEYEVENTF_KEYUP,0);//松开Shift键


在C#中导入keybd_event函数如下:

[DllImport("user32.dll")]
static extern void keybd_event
(
byte bVk,// 虚拟键值
byte bScan,// 硬件扫描码
uint dwFlags,// 动作标识
IntPtr dwExtraInfo// 与键盘动作关联的辅加信息
);

**键盘键与虚拟键码对照表**
      字母和数字键       数字小键盘的键       功能键             其它键
      键   键码       键   键码    键   键码     键       键码
      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  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: