#include <windows.h>
bool check = false;
void KeyDown(int vk){
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = vk;
ip.ki.dwFlags = 0;
SendInput(1, &ip, sizeof(INPUT));
}
void KeyUp(int vk) {
INPUT ip;
ip.type = INPUT_KEYBOARD;
ip.ki.wScan = 0;
ip.ki.time = 0;
ip.ki.dwExtraInfo = 0;
ip.ki.wVk = vk;
ip.ki.dwFlags = KEYEVENTF_KEYUP;
SendInput(1, &ip, sizeof(INPUT));
}
int main(){
while(true){
if ( (GetKeyState(0x57) & 0x8000) || (GetKeyState(0x44) & 0x8000) || //Получаем нажата ли одна или несколько клавиш wasd
(GetKeyState(0x53) & 0x8000) || (GetKeyState(0x41) & 0x8000) )
{
KeyDown(0x11); //нажимаем контрол
check = true;
}
else {
if (check) {
KeyUp(0x11); // отжимаем контрол
check = false; // эта переменная нужна чтобы отжать только один раз, иначе будут приколы
}
}
Sleep(10); // нужно чтобы лагов не было
}
}