函数说明:VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo );ParametersbVk[in] Specifies a virtual-key code. The code must be a value in the range 1 to 254. bScan[in] Specifies a hardware scan code for the key. dwFlags[in] Specifies various aspects of function operation. An application can use any combination of the following predefined constant values to set the flags. Value Description KEYEVENTF_KEYUP If specified, the key is being released. If not specified, the key is being depressed. KEYEVENTF_SILENT If specified, a keystroke is simulated, but no clicking sound is made. dwExtraInfo[in] Specifies an additional 32-bit value associated with the key stroke. Return ValuesNone.ResWhen keyboard input is disabled with EnableHardwareKeyboard(FALSE), you can simulate keyboard input using keybd_event.Although keybd_event passes an OEM-dependent hardware scan code to the system, applications should not use the scan code. The system converts scan codes to virtual-key codes internally and clears the up/down bit in the scan code before passing it to applications. An application can simulate a press of the PRINTSCREEN key in order to obtain a screen snapshot and save it to the clipboard. To do this, call keybd_event with the bVk parameter set to VK_SNAPSHOT, and the bScan parameter set to 0 for a snapshot of the full screen or set bScan to 1 for a snapshot of the active window.
VK_LBUTTON 01 Touch screen VK_CANCEL 03 Control-break processing —— 05-07 Undefined VK_BACK 08 BACKSPACE key VK_TAB 09 TAB key —— 0A-0B Undefined VK_CLEAR 0C CLEAR key VK_RETURN 0D ENTER key —— 0E-0F Undefined VK_SHIFT 10 SHIFT key VK_CONTROL 11 CTRL key VK_MENU 12 ALT key VK_CAPITAL 14 CAPS LOCK key —— 15-19 Reserved for Kanji systems —— 1A Undefined VK_ESCAPE 1B ESC key —— 1C-1F Reserved for Kanji systems VK_SPACE 20 SPACEBAR key VK_PRIOR 21 PAGE UP key VK_NEXT 22 PAGE DOWN key VK_END 23 END key VK_HOME 24 HOME key VK_LEFT 25 LEFT ARROW key VK_UP 26 UP ARROW key VK_RIGHT 27 RIGHT ARROW key VK_DOWN 28 DOWN ARROW key VK_SELECT 29 SELECT key —— 2A Original equipment manufacturer (OEM)– specific VK_EXECUTE 2B EXECUTE key VK_SNAPSHOT 2C PRINT SCREEN key for Windows 3.0 and later VK_HELP 2F HELP key VK_0 30 0 key VK_1 31 1 key VK_2 32 2 key VK_3 33 3 key VK_4 34 4 key VK_5 35 5 key VK_6 36 6 key VK_7 37 7 key VK_8 38 8 key VK_9v 39 9 key
—— 3A-40 Undefined VK_A 41 A key VK_B 42 B key VK_C 43 C key VK_D 44 D key VK_E 45 E key VK_F 46 F key VK_G 47 G key VK_H 48 H key VK_I 49 I key VK_J 4A J key VK_K 4B K key VK_L 4C L key VK_M 4D M key VK_N 4E N key VK_O 4F O key VK_P 50 P key VK_Q 51 Q key VK_R 52 R key VK_S 53 S key VK_T 54 T key VK_U 55 U key VK_V 56 V key VK_W 57 W key VK_X 58 X key VK_Y 59 Y key VK_Z 5A Z key
::keybd_event(0x56,::MapVirtualKey(0x56,0),KEYEVENTF_KEYUP,0);这是模拟字母键V的按下和抬起
keybd_event('A', 0, 0 ,0);
keybd_event('A', 0, KEYEVENTF_KEYUP,0);
keybd_event(VK_CONTROL, 0, KEYEVENTF_KEYUP,0);其它类似...
DWORD dwExtraInfo );ParametersbVk[in] Specifies a virtual-key code. The code must be a value in the range 1 to 254. bScan[in] Specifies a hardware scan code for the key. dwFlags[in] Specifies various aspects of function operation. An application can use any combination of the following predefined constant values to set the flags. Value Description
KEYEVENTF_KEYUP If specified, the key is being released. If not specified, the key is being depressed.
KEYEVENTF_SILENT If specified, a keystroke is simulated, but no clicking sound is made.
dwExtraInfo[in] Specifies an additional 32-bit value associated with the key stroke. Return ValuesNone.ResWhen keyboard input is disabled with EnableHardwareKeyboard(FALSE), you can simulate keyboard input using keybd_event.Although keybd_event passes an OEM-dependent hardware scan code to the system, applications should not use the scan code. The system converts scan codes to virtual-key codes internally and clears the up/down bit in the scan code before passing it to applications. An application can simulate a press of the PRINTSCREEN key in order to obtain a screen snapshot and save it to the clipboard. To do this, call keybd_event with the bVk parameter set to VK_SNAPSHOT, and the bScan parameter set to 0 for a snapshot of the full screen or set bScan to 1 for a snapshot of the active window.
VK_RCONTROL //右Ctrl
VK_LCONTROL //左Ctrl
VK_RMENU //右Win
VK_LSHIFT
VK_RSHIFT
VK_LMENU
VK_SHIFT
VK_MENU
{
BYTE keyState[256]; GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 ); // Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
} void main()
{
SetNumLock( TRUE );
}
VK_LBUTTON 01 Touch screen
VK_CANCEL 03 Control-break processing —— 05-07 Undefined VK_BACK 08 BACKSPACE key
VK_TAB 09 TAB key —— 0A-0B Undefined VK_CLEAR 0C CLEAR key
VK_RETURN 0D ENTER key —— 0E-0F Undefined VK_SHIFT 10 SHIFT key
VK_CONTROL 11 CTRL key
VK_MENU 12 ALT key
VK_CAPITAL 14 CAPS LOCK key —— 15-19 Reserved for Kanji systems
—— 1A Undefined VK_ESCAPE 1B ESC key —— 1C-1F Reserved for Kanji systems VK_SPACE 20 SPACEBAR key
VK_PRIOR 21 PAGE UP key
VK_NEXT 22 PAGE DOWN key
VK_END 23 END key
VK_HOME 24 HOME key
VK_LEFT 25 LEFT ARROW key
VK_UP 26 UP ARROW key
VK_RIGHT 27 RIGHT ARROW key
VK_DOWN 28 DOWN ARROW key
VK_SELECT 29 SELECT key —— 2A Original equipment manufacturer (OEM)– specific VK_EXECUTE 2B EXECUTE key
VK_SNAPSHOT 2C PRINT SCREEN key for Windows 3.0 and later
VK_HELP 2F HELP key VK_0 30 0 key
VK_1 31 1 key
VK_2 32 2 key
VK_3 33 3 key
VK_4 34 4 key
VK_5 35 5 key
VK_6 36 6 key
VK_7 37 7 key
VK_8 38 8 key
VK_9v 39 9 key
—— 3A-40 Undefined VK_A 41 A key
VK_B 42 B key
VK_C 43 C key
VK_D 44 D key
VK_E 45 E key
VK_F 46 F key
VK_G 47 G key
VK_H 48 H key
VK_I 49 I key
VK_J 4A J key
VK_K 4B K key
VK_L 4C L key
VK_M 4D M key
VK_N 4E N key
VK_O 4F O key
VK_P 50 P key
VK_Q 51 Q key
VK_R 52 R key
VK_S 53 S key
VK_T 54 T key
VK_U 55 U key
VK_V 56 V key
VK_W 57 W key
VK_X 58 X key
VK_Y 59 Y key
VK_Z 5A Z key
—— 5B-5F Undefined VK_NUMPAD0 60 Numeric keypad 0 key
VK_NUMPAD1 61 Numeric keypad 1 key
VK_NUMPAD2 62 Numeric keypad 2 key
VK_NUMPAD3 63 Numeric keypad 3 key
VK_NUMPAD4 64 Numeric keypad 4 key
VK_NUMPAD5 65 Numeric keypad 5 key
VK_NUMPAD6 66 Numeric keypad 6 key
VK_NUMPAD7 67 Numeric keypad 7 key
VK_NUMPAD8 68 Numeric keypad 8 key
VK_NUMPAD9 69 Numeric keypad 9 key
VK_MULTIPLY 6A Asterisk (*) key
VK_ADD 6B Plus sign (+) key
VK_SEPARATOR 6C Separator key
VK_SUBTRACT 6D Minus sign (–) key
VK_DECIMAL 6E Period (.) key
VK_DIVIDE 6F Slash (/) key —— 88-8F Unassigned
—— 92-B9 Unassigned
—— BA-C0 OEM-specific
—— C1-DA Unassigned
—— DB-E4 OEM-specific
—— E5 Unassigned
—— E6 OEM-specific
—— E7-E8 Unassigned
—— E9-F5 OEM-specific VK_ATTN F6
VK_CRSEL F7
VK_EXSEL F8
VK_EREOF F9
VK_PLAY FA
VK_ZOOM FB
VK_NONAME FC
VK_PA1 FD
VK_EM_CLEAR FE
VK_LWIN 5B
VK_RWIN 5C
VK_APPS 5D
VK_LSHIFT A0
VK_RSHIFT A1
VK_LCONTROL A2
VK_RCONTROL A3
VK_LMENU A4
VK_RMENU A5
兄弟,够详细了吧?!
再用PostMessage()发送按键消息给它,或者用keybd_event()
具体用法请查MSDN.