keybd_event函数功能:该函数为Windows提供的虚拟键盘API函数,可合成一次击键事件。系统可使用该函数屏蔽相应键盘动作,合成的击键事件来产生WM_KEYUP或WM_KEYDOWN消息,触发一个按键事件。
keybd_event函数原型:
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
);
参数介绍:
使用实例:
/****模拟按下“Hello”****/
keybd_event(16,0,0,0); //按下Shift键
keybd_event('H',0,0,0); //按下h键
keybd_event('H',0,KEYEVENTF_KEYUP,0);//松开h键
keybd_event(16,0,KEYEVENTF_KEYUP,0);//松开Shift键,构成组合键——按下Shift的同时按下h,形成H
keybd_event('E',0,0,0);
keybd_event('E',0,KEYEVENTF_KEYUP,0);//松开e键
keybd_event('L',0,0,0);
keybd_event('L',0,KEYEVENTF_KEYUP,0);//松开l键
keybd_event('L',0,0,0);
keybd_event('L',0,KEYEVENTF_KEYUP,0);//松开l键
keybd_event('O',0,0,0);
keybd_event('O',0,KEYEVENTF_KEYUP,0);//松开o键
mouse_event函数功能: mouse_event函数功能是综合鼠标移动和按钮点击。如果鼠标被移动,用设置MOUSEEVENTF_MOVE来表明,dX和dy保留移动的信息。给出的信息是绝对或相对整数值。
函数原型:
VOID mouse_event(
DWORD dwFlags, // motion and click options
DWORD dx, // horizontal position or change
DWORD dy, // vertical position or change
DWORD dwData, // wheel movement
ULONG_PTR dwExtraInfo // application-defined information
);
参数介绍:
使用实例:
/****模拟鼠标点击****/
void CMouseEventDlg::OnButton1()
{
CPoint point;
GetCursorPos(&point);
SetCursorPos( ** , ** );//任意坐标
mouse_event( MOUSEEVENTF_LEFTDOWN, 0,0,0,NULL);//鼠标down事件
mouse_event( MOUSEEVENTF_LEFTUP, 0,0,0,NULL);//鼠标up事件
SetCursorPos(point.x,point.y);
}
官方介绍:
https://msdn.microsoft.com/en-us/library/ms646260(VS.85).aspx
附录:常用模拟键的键值对照表
键盘键与虚拟键码对照表
字母和数字键 数字小键盘的键 功能键 其它键
键 键码 键 键码 键 键码 键 键码
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