#include <windows.h>
#include <iostream>
using namespace std;
// 模拟键盘按下输入字符
void SendKey(WORD key, bool isExtended = false)
{
INPUT input[2] = {};
input[0].type = INPUT_KEYBOARD;
input[0].ki.wVk = key;
if(isExtended) input[0].ki.dwFlags = KEYEVENTF_EXTENDEDKEY;
input[1].type = INPUT_KEYBOARD;
input[1].ki.wVk = key;
if(isExtended) input[1].ki.dwFlags = KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP;
else input[1].ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(2, input, sizeof(INPUT));
}
int main()
{
cout << "===== 代码自动换行器 =====" << endl;
cout << "按下 ; 自动输入; 并换行" << endl;
cout << "ESC 退出程序\n" << endl;
bool triggerLock = false; // 防重复连续触发
while (true)
{
// ESC退出
if (GetAsyncKeyState(VK_ESCAPE) & 0x8000)
{
cout << "程序退出!" << endl;
break;
}
// 检测分号键 VK_OEM_1 美式键盘 ;: 键
if ((GetAsyncKeyState(VK_OEM_1) & 0x8000) && !triggerLock)
{
triggerLock = true;
// 先释放当前按下的;(防止重复输入)
INPUT upKey{};
upKey.type = INPUT_KEYBOARD;
upKey.ki.wVk = VK_OEM_1;
upKey.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &upKey, sizeof(INPUT));
Sleep(10);
SendKey(VK_RETURN); // 按下回车换行
Sleep(150); // 冷却时间
triggerLock = false;
}
Sleep(10);
}
system("pause");
return 0;
}
