C语言模拟按键
本帖最后由 黑龍 于 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;
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,0,0,0);
keybd_event((int)a,0,2,0);
keybd_event((int)a,0,2,0);
Sleep(100);
}
}
fclose(TEXTFILE);
free(a);
system("cls");
system(argv);
exit(0);
return 0;
} 占个一楼 啦啦啦{:10_245:} @小甲鱼 @牡丹花下死做鬼 @无名侠 @康小泡 @拈花小仙 @康小泡 @竹林小溪 哈哈,支持下~ 萨法 支持下~ 啦啦啦啦 来支持一下 优秀优秀 我以前用这个方法编过qq刷屏程序的~~ zzk176 发表于 2016-1-31 18:07
我以前用这个方法编过qq刷屏程序的~~
那是用keybd_evend模拟按Ctrl+V和回车吧 黑龍 发表于 2016-2-2 19:14
那是用keybd_evend模拟按Ctrl+V和回车吧
是的,第一次是模拟打字发现效率太低,后来换成ctrl+v的 用sendmessage打字效率能高一点 有只小稚飞不起 发表于 2016-2-13 19:51
用sendmessage打字效率能高一点
这样啊,有时间我去试试。 不明觉厉,有时间试试哦 {:5_90:}{:5_90:}{:5_90:}{:5_90:} 好厉害 支持下~支持下~ {:10_249:} 支持一下.