#include <stdio.h>
#include <windows.h>
#define KEYDOWN(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 1 : 0)
#define KEYUP(vk_code) ((GetAsyncKeyState(vk_code) & 0x8000) ? 0 : 1)
#define DELAY_TIME 50
void info(const char str[]) {
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
printf("\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b\b");
printf("%s ",str);
}
int main(void){
printf("======Jason制作=====\n");
printf("模拟W键和鼠标右键\n");
printf("按Esc键停止按键模拟!\n");
printf("按F12键开始按键模拟!\n");
printf("====================\n");
info("5秒后自动开启按键模拟!");
Sleep (5000);
info("已启动按键模拟!");
while(1) {
if(KEYDOWN(VK_ESCAPE)) { // 按Esc键停止按键模拟
info("已停止按键模拟!");
while (!KEYDOWN(VK_F12)) Sleep(10); // 按F12键结束循环休眠
info("已启动按键模拟!");
} else {
keybd_event ('W' , 0, 0, 0);
Sleep (DELAY_TIME / 2);
keybd_event ('W', 0, KEYEVENTF_KEYUP, 0);
Sleep (DELAY_TIME / 2);
mouse_event (MOUSEEVENTF_RIGHTDOWN | MOUSEEVENTF_RIGHTUP, 0, 0, 0, 0 );
}
}
return 0;
}
输出结果
======Jason制作=====
模拟W键和鼠标右键
按Esc键停止按键模拟!
按F12键开始按键模拟!
====================
已停止按键模拟!