模拟键盘输入字符串,由于字符的ASCII和键盘码不是一样的,所以写个函数出来自己用用!
由于我先现在需要输入的信息只是字符和数字,所以没有考虑中文的问题!
1
void EnterString(const char* text)
2
{
3
bool bShift = false;
4
size_t length = strlen(text);
5
for(size_t index = 0;index < length;index++)
6
{
7
int val = text[index];
8
if(val >= 97 && val <= 122) //小写a-z
9
{
10
val -= 32;
11
bShift = false;
12
}
13
else if(val >= 65 && val <= 90) //大写A-Z
14
{
15
bShift = true;
16
}
17
else if(val >= 48 && val <= 57) //数字0-9
18
{
19
bShift = false;
20
}
21
else //特殊符号
22
{
23
switch(val)
24
{
25
case \'`\':
26
val = 192;
27
bShift = false;
28
break;
29
case \'~\':
30
val = 192;
31
bShift = true;
32
break;
33
case \'!\':
34
val = \'1\'; //!和1在同一个键盘,使用同一个键盘码,以下相同
35
bShift = true;
36
break;
37
case \'@\':
38
val = \'2\'; //@和2在同一个键盘,使用同一个键盘码,以下相同
39
bShift = true;
40
break;
41
case \'#\':
42
val = \'3\';
43
bShift = true;
44
break;
45
case \'$\':
46
val = \'4\';
47
bShift = true;
48
break;
49
case \'%\':
50
val = \'5\';
51
bShift = true;
52
break;
53
case \'^\':
54
val = \'6\';
55
bShift = true;
56
break;
57
case \'&\':
58
val = \'7\';
59
bShift = true;
60
break;
61
case \'*\':
62
val = \'8\';
63
bShift = true;
64
break;
65
case \'(\':
66
val = \'9\';
67
bShift = true;
68
break;
69
case \')\':
70
val = \'0\';
71
bShift = true;
72
break;
73
case \'-\':
74
val = 189;
75
bShift = false;
76
break;
77
case \'=\':
78
val = 187;
79
bShift = false;
80
break;
81
case \'_\':
82
val = 189;
83
bShift = true;
84
break;
85
case \'+\':
86
val = 187;
87
bShift = true;
88
break;
89
case \'[\':
90
val = 219;
91
bShift = false;
92
break;
93
case \'{\':
94
val = 219;
95
bShift = true;
96
break;
97
case \']\':
98
val = 221;
99
bShift = false;
100
break;
101
case \'}\':
102
val = 221;
103
bShift = true;
104
break;
105
case \'\\\':
106
val = 220;
107
bShift = false;
108
break;
109
case \'|\':
110
val = 220;
111
bShift = true;
112
break;
113
case \';\':
114
val = 186;
115
bShift = false;
116
break;
117
case \':\':
118
val = 186;
119
bShift = true;
120
case \'\\'\':
121
val = 222;
122
bShift = false;
123
break;
124
case \'\"\':
125
val = 222;
126
bShift = true;
127
break;
128
case \',\':
129
val = 188;
130
bShift = false;
131
break;
132
case \'<\':
133
val = 188;
134
bShift = true;
135
break;
136
case \'.\':
137
val = 190;
138
bShift = false;
139
break;
140
case \'>\':
141
val = 190;
142
bShift = true;
143
break;
144
case \'/\':
145
val = 191;
146
bShift = false;
147
break;
148
case \'?\':
149
val = 191;
150
bShift = true;
151
break;
152
default:
153
break;
154
}
155
}
156
157
if(bShift)
158
keybd_event(VK_SHIFT,0,0,0);
159
keybd_event(val,0,0,0);
160
keybd_event(val,0,KEYEVENTF_KEYUP,0);
161
if(bShift)
162
keybd_event(VK_SHIFT,0,KEYEVENTF_KEYUP,0);
163
}
164
}
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164