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

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  

你可能感兴趣的:(C#,截屏)