现在的位置: 首页 > 综合 > 正文

模拟键盘输入字符串

2011年02月04日 ⁄ 综合 ⁄ 共 4597字 ⁄ 字号 评论关闭

模拟键盘输入字符串,由于字符的ASCII和键盘码不是一样的,所以写个函数出来自己用用!
由于我先现在需要输入的信息只是字符和数字,所以没有考虑中文的问题!

  1void 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}

抱歉!评论已关闭.