[DllImport("USER32.DLL")]
public static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); //导入模拟键盘的方法
从上述原型可以看出,Keybd_event()共有四个参数,第一个为按键的虚拟键值,如回车键为vk_return,
tab键为vk_tab。第二个参数为扫描码,一般不用设置,用0代替就行第三个参数为选项标志,如果为keydown则置0即可,如果为keyup则设成"KEYEVENTF_KEYUP" 或是 "0x2",第四个参数一般也是置0即可。'A'的虚拟键值为65,所以可以用如下代码实现模拟按下'A'键,
keybd_event方法的第一个参数值有:(例如:keybd_event(0x11, 0, 0, 0)是CTRL 键 按下 keybd_event(0x11, 0, 2, 0)是CTRL 键 松开)
vbKeyCancel 0x3 CANCEL 键
vbKeyBack 0x8 BACKSPACE 键
vbKeyTab 0x9 TAB 键
vbKeyClear 0xC CLEAR 键
vbKeyReturn 0xD ENTER 键
vbKeyShift 0x10 SHIFT 键
vbKeyControl 0x11 CTRL 键
vbKeyMenu 0x12 MENU 键
vbKeyPause 0x13 PAUSE 键
vbKeyCapital 0x14 CAPS LOCK 键
vbKeyEscape 0x1B ESC 键
vbKeySpace 0x20 SPACEBAR 键
vbKeyPageUp 0x21 PAGE UP 键
vbKeyEnd 0x23 END 键
vbKeyHome 0x24 HOME 键
vbKeyLeft 0x25 LEFT ARROW 键
vbKeyUp 0x26 UP ARROW 键
vbKeyRight 0x27 RIGHT ARROW 键
vbKeyDown 0x28 DOWN ARROW 键
vbKeySelect 0x29 Select 键
vbKeyPrint 0x2A PRINT SCREEN 键
vbKeyExecute 0x2B EXECUTE 键
vbKeySnapshot 0x2C SNAPSHOT 键
vbKeyDelete 0x2E Delete 键
vbKeyHelp 0x2F HELP 键
vbKeyNumlock 0x90 NUM LOCK 键
小写与大写在方法中的数值是一样的,主要以是否有打开大小键区别
vbKeyA 65 A/a 键
vbKeyB 66 B/b 键
vbKeyC 67 C/c 键
vbKeyD 68 D/d 键
vbKeyE 69 E/e 键
vbKeyF 70 F/f 键
vbKeyG 71 G/g 键
vbKeyH 72 H/h 键
vbKeyI 73 I/i 键
vbKeyJ 74 J/j 键
vbKeyK 75 K/k 键
vbKeyL 76 L/l 键
vbKeyM 77 M/m 键
vbKeyN 78 N/n 键
vbKeyO 79 O/o 键
vbKeyP 80 P/p 键
vbKeyQ 81 Q/q 键
vbKeyR 82 R/r 键
vbKeyS 83 S/s 键
vbKeyT 84 T/t 键
vbKeyU 85 U/u 键
vbKeyV 86 V/v 键
vbKeyW 87 W/w 键
vbKeyX 88 X/x 键
vbKeyY 89 Y/y 键
vbKeyZ 90 Z/z 键
vbKey0 48 0 键
vbKey1 49 1 键
vbKey2 50 2 键
vbKey3 51 3 键
vbKey4 52 4 键
vbKey5 53 5 键
vbKey6 54 6 键
vbKey7 55 7 键
vbKey8 56 8 键
vbKey9 57 9 键
vbKeyNumpad0 0x60 0 键
vbKeyNumpad1 0x61 1 键
vbKeyNumpad2 0x62 2 键
vbKeyNumpad3 0x63 3 键
vbKeyNumpad4 0x64 4 键
vbKeyNumpad5 0x65 5 键
vbKeyNumpad6 0x66 6 键
vbKeyNumpad7 0x67 7 键
vbKeyNumpad8 0x68 8 键
vbKeyNumpad9 0x69 9 键
vbKeyMultiply 0x6A MULTIPLICATIONSIGN(*)键
vbKeyAdd 0x6B PLUS SIGN (+) 键
vbKeySeparator 0x6C ENTER 键
vbKeySubtract 0x6D MINUS SIGN (-) 键
vbKeyDecimal 0x6E DECIMAL POINT (.) 键
vbKeyDivide 0x6F DIVISION SIGN (/) 键
vbKeyF1 0x70 F1 键
vbKeyF2 0x71 F2 键
vbKeyF3 0x72 F3 键
vbKeyF4 0x73 F4 键
vbKeyF5 0x74 F5 键
vbKeyF6 0x75 F6 键
vbKeyF7 0x76 F7 键
vbKeyF8 0x77 F8 键
vbKeyF9 0x78 F9 键
vbKeyF10 0x79 F10 键
vbKeyF11 0x7A F11 键
vbKeyF12 0x7B F12 键
出处:http://www.cnblogs.com/tianguook/archive/2010/07/06/1772438.html
http://blog.csdn.net/trandy/article/details/7384109