Как нажать две клавиши, чтобы они работали одновременно.

  • Автор темы Автор темы Myc0n
  • Дата начала Дата начала
M

Myc0n

Когда я нажимаю две клавиши одновременно, работает только одна из них.
Я написал:[codebox]procedure TForm1.FormKeyDown2(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=37 then a:=a-2;
if key=38 then b:=b-2;
if key=39 then a:=a+2;
if key=40 then b:=b+2;
end;[/codebox]
Но как сделать так, чтобы можно было нажимать больше одной клавиши, и все работали одновременно?
 
А не получится! Windows корректно может отловить нажатие "буквенной" клавиши с какой-нибудь функциональной (Shift, Alt и т.п.). Нажатие одновременно двух буквенных клавиш невозможно отловить стандартными способами ввиду того, что при нажатии каждой из клавишь Windows посылает WM_KeyDown каждый раз и не смотрит, нажата при этом еще какая-то клавиша или нет (кроме упомянутых функциональных). А вообще, какие комбинации нужно отловить?
 
Стрелочки и 3 любые другие
 
Почемуц бы не воспользоваться шорткатами?
 
обрабатывать WM_KEYDOWN, WM_KEYUP и следить ручками.
вариант два на каждый keydown делать GetKeyboardState и его анализировать
 
А можете показать, как это все применить? Уж извините, что я такой чайник.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab

🚀 Первый раз на Codeby?
Гайд для новичков: что делать в первые 15 минут, ключевые разделы, правила
Начать здесь →
🔴 Свежие CVE, 0-day и инциденты
То, о чём ChatGPT ещё не знает — обсуждаем в реальном времени
Threat Intel →
💼 Вакансии и заказы в ИБ
Pentest, SOC, DevSecOps, bug bounty — работа и проекты от проверенных компаний
Карьера в ИБ →

HackerLab