利用SendInput函数模拟按键
时间:2011-02-06 来源:Moodsky

1 const
2 {增添系统未定义的键值}
3 VK_0 = $30; VK_1 = $31; VK_2 = $32; VK_3 = $33;
4 VK_4 = $34; VK_5 = $35; VK_6 = $36; VK_7 = $37;
5 VK_8 = $38; VK_9 = $39; VK_A = $41; VK_B = $42;
6 VK_C = $43; VK_D = $44; VK_E = $45; VK_F = $46;
7 VK_G = $47; VK_H = $48; VK_I = $49; VK_J = $4A;
8 VK_K = $4B; VK_L = $4C; VK_M = $4D; VK_N = $4E;
9 VK_O = $4F; VK_P = $50; VK_Q = $51; VK_R = $52;
10 VK_S = $53; VK_T = $54; VK_U = $55; VK_V = $56;
11 VK_W = $57; VK_X = $58; VK_Y = $59; VK_Z = $5A;
12
13 procedure KEystoke(bVk: Byte; State: Byte); stdcall;
14 const
15 {增添系统未定义的键值}
16 KEYEVENTF_KEYDOWN = 0;
17 var
18 Inp: TInput;
19 begin
20 Inp.Itype := INPUT_KEYBOARD;
21 case State of
22 1:
23 with Inp.ki do
24 begin
25 wVk := bVk;
26 wScan := 0;
27 dwFlags := KEYEVENTF_KEYDOWN;
28 time := GetTickCount;
29 dwExtraInfo := GetMessageExtraInfo;
30 end;
31 0:
32 with Inp.ki do
33 begin
34 wVk := bVk;
35 wScan := 0;
36 dwFlags := KEYEVENTF_KEYUP;
37 time := GetTickCount;
38 dwExtraInfo := GetMessageExtraInfo;
39 end;
40 end;
41 SendInput(1, Inp, SizeOf(TInput));
42 {
43 UINT SendInput{
44 UINT nInput; //指定ninput 数组中元素的个数。
45 LPINPUT pInput; //指向一个类型为INPUT的数组变量,
46 //该数组中的每个元素代表一个将要
47 //插入到线程事件中去的键盘或鼠标事件。
48 INT cbSize; //指定INPUT结构的大小。
49 }
50
51 end;
相关阅读 更多 +
排行榜 更多 +