• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

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

  • Автор темы Автор темы 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 каждый раз и не смотрит, нажата при этом еще какая-то клавиша или нет (кроме упомянутых функциональных). А вообще, какие комбинации нужно отловить?
 
Почемуц бы не воспользоваться шорткатами?
 
обрабатывать WM_KEYDOWN, WM_KEYUP и следить ручками.
вариант два на каждый keydown делать GetKeyboardState и его анализировать
 
А можете показать, как это все применить? Уж извините, что я такой чайник.
 
Мы в соцсетях:

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