首页 > 代码库 > C语言模拟按键代码

C语言模拟按键代码

其实 keybd_event 这个API的模拟按键需要按键码,如果用户输入一个字符,怎么用这个API打印出来呢?
其实很简单。这个我是在易语言中发现的
易语言中的一个 #R键 的值和R的ASCII码是一样的。也就是说,用户输入一个字符,用keybd_event这个API打印出来是很简单的。我们可以全部读取,取出一个字符的ASCII码,然后打出来,再取出另一个,以此类推。。。。。。
全部读取的话用动态数组是很好实现的。

拼音必须是大写的,否则打的可能都是数字
还有一个MFC版本的 http://www.cnblogs.com/mimiaisini/p/6977705.html

 1 #include <stdio.h>
 2 #include <stdlib.h>
 3 #include <windows.h>
 4 
 5 int main(int argc,char *argv[])
 6 {
 7         char *a;
 8         char b[100];
 9         int size;
10         FILE *TEXTFILE;
11         SetConsoleTitleA("自动打字工具");
12         printf("文本路径:");
13         scanf("%s",b);
14         TEXTFILE=fopen(b,"rb+");
15         if(!TEXTFILE)
16         {
17                 printf("打开文件失败\n");
18                 system("pause");
19                 return 0;
20         }
21         if(!feof(TEXTFILE))
22         {
23                 fseek(TEXTFILE,0L,SEEK_END);
24                 size=ftell(TEXTFILE);
25                 a=(char*)malloc(size*sizeof(char));
26                 if(!a)
27                 {
28                         printf("内存申请失败\n");
29                         fclose(TEXTFILE);
30                         return 0;
31                 }
32                 fseek(TEXTFILE,0,SEEK_SET);
33                 fread(a,1,size,TEXTFILE);
34                 printf("5秒后程序就开始工作\n");
35                 Sleep(5000);
36                 printf("开始工作\n");
37                 for(int i=0;i<size;i++)
38                 {
39                         keybd_event((int)a[i],0,0,0);
40                         keybd_event((int)a[i],0,2,0);
41                         keybd_event((int)a[i],0,2,0);
42                         Sleep(100);
43                 }
44         }
45         fclose(TEXTFILE);
46         free(a);
47         system("cls");
48         system(argv[0]);
49         exit(0);
50         return 0;
51 }

 

C语言模拟按键代码