• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

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

  • Автор темы 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]
Но как сделать так, чтобы можно было нажимать больше одной клавиши, и все работали одновременно?
 
P

Poseidon

А не получится! Windows корректно может отловить нажатие "буквенной" клавиши с какой-нибудь функциональной (Shift, Alt и т.п.). Нажатие одновременно двух буквенных клавиш невозможно отловить стандартными способами ввиду того, что при нажатии каждой из клавишь Windows посылает WM_KeyDown каждый раз и не смотрит, нажата при этом еще какая-то клавиша или нет (кроме упомянутых функциональных). А вообще, какие комбинации нужно отловить?
 
E

etc

Почемуц бы не воспользоваться шорткатами?
 

Kmet

Well-known member
25.05.2006
904
8
BIT
0
обрабатывать WM_KEYDOWN, WM_KEYUP и следить ручками.
вариант два на каждый keydown делать GetKeyboardState и его анализировать
 
M

Myc0n

А можете показать, как это все применить? Уж извините, что я такой чайник.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!