#include
#include
using namespace std;
int main() {
while (true) {
int a = 30;
int b = 90;
int s = 200;
if (GetAsyncKeyState('D') & 0x8000) {
keybd_event('D', 0, 0, 0);
Sleep(10);
DWORD startTime = GetTickCount64();
while (GetAsyncKeyState('D') & 0x8000); // Ждем отпускания 'D'
DWORD holdTime = GetTickCount64() - startTime;
int sleepTime = (holdTime > s) ? b : a;
// Удерживаем 'A'
keybd_event('A', 0, 0, 0); // Нажимаем 'A'
DWORD endTime = GetTickCount64() + sleepTime; // Время окончания удержания
// Цикл удержания 'A'
while (GetTickCount64() < endTime && GetAsyncKeyState('D') == 0) {
// Проверяем, отпустил ли пользователь 'D'
Sleep(10); // Небольшая задержка для снижения нагрузки на процессор
}
keybd_event('A', 0, KEYEVENTF_KEYUP, 0); // Отпускаем 'A'
}
if (!GetAsyncKeyState('D')) {
keybd_event('D', 0, KEYEVENTF_KEYUP, 0);
Sleep(1);
}
}
return 0;
}
#include
#include
#include
using namespace std;
int main() {
while (true) {
int a = 30;
int b = 90;
int s = 200;
if (GetAsyncKeyState('D') & 0x8000) {
keybd_event('D', 0, 0, 0);
Sleep(10);
DWORD startTime = GetTickCount64();
while (GetAsyncKeyState('D') & 0x8000);
DWORD holdTime = GetTickCount64() - startTime;
int sleepTime = (holdTime > s) ? b : a;
if (!(GetAsyncKeyState('A') & 0x8000)) {
keybd_event('A', 0, 0, 0);
DWORD aStartTime = GetTickCount64();
while ((GetTickCount64() - aStartTime < sleepTime) || (GetAsyncKeyState('A') & 0x8000)) {
Sleep(10); // Небольшая задержка для снижения нагрузки на CPU
}
keybd_event('A', 0, KEYEVENTF_KEYUP, 0);
}
}
if (!(GetAsyncKeyState('D') & 0x8000)) {
keybd_event('D', 0, KEYEVENTF_KEYUP, 0);
Sleep(1);
}
}
return 0;
}
Вопрос: Как сделать так чтобы если 'A' была нажата во время Sleep(sleepTime) то она задерживалась, пока пользователь не отпустит клавишу. Надеюсь понятно объяснил.