|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 黑龍 于 2016-1-17 18:49 编辑
只是把刚刚写的博文发上来
其实 keybd_event 这个API的模拟按键需要按键码,如果用户输入一个字符,怎么用这个API打印出来呢?
其实很简单。这个我是在易语言中发现的
易语言中的一个 #R键 的值和R的ASCII码是一样的。也就是说,用户输入一个字符,用keybd_event这个API打印出来是很简单的。我们可以全部读取,取出一个字符的ASCII码,然后打出来,再取出另一个,以此类推。。。。。。
全部读取的话用动态数组是很好实现的。
拼音必须是大写的,否则打的可能都是数字
还有一个MFC版本的
http://bbs.fishc.com/thread-68043-1-1.html
- #include <stdio.h>
- #include <stdlib.h>
- #include <windows.h>
- int main(int argc,char *argv[])
- {
- char *a;
- char b[100];
- int size;
- FILE *TEXTFILE;
- SetConsoleTitleA("自动打字工具");
- printf("文本路径:");
- scanf("%s",b);
- TEXTFILE=fopen(b,"rb+");
- if(!TEXTFILE)
- {
- printf("打开文件失败\n");
- system("pause");
- return 0;
- }
- if(!feof(TEXTFILE))
- {
- fseek(TEXTFILE,0L,SEEK_END);
- size=ftell(TEXTFILE);
- a=(char*)malloc(size*sizeof(char));
- if(!a)
- {
- printf("内存申请失败\n");
- fclose(TEXTFILE);
- return 0;
- }
- fseek(TEXTFILE,0,SEEK_SET);
- fread(a,1,size,TEXTFILE);
- printf("5秒后程序就开始工作\n");
- Sleep(5000);
- printf("开始工作\n");
- for(int i=0;i<size;i++)
- {
- keybd_event((int)a[i],0,0,0);
- keybd_event((int)a[i],0,2,0);
- keybd_event((int)a[i],0,2,0);
- Sleep(100);
- }
- }
- fclose(TEXTFILE);
- free(a);
- system("cls");
- system(argv[0]);
- exit(0);
- return 0;
- }
复制代码 |
评分
-
查看全部评分
|