Определить, какая клавиша Enter нажата

282
Saravanabalagi Ramachandran

Есть ли способ узнать, какая Enterклавиша была нажата ? Требуется ли драйвер низкого уровня или что-то подобное? ОС знает, какая Enterбыла нажата?

Я на Windows, и я попробовал Carnac, но он только говорит мне, Enterбыл нажат или нет.

4
Похоже, это возможно при программировании, например, https://stackoverflow.com/questions/8059177/distinguish-between-normal-enter-and-the-number-pad-enter-keypress, и я подозреваю, что это означает, что Python также имеет аналогичный метод, чтобы дифференцировать тоже, но у меня нет времени, чтобы проверить, но, возможно, это даст вам отправную точку для решения Python, чтобы играть и исследовать как таковые https://stackoverflow.com/questions/33863921/detecting-a- нажатие клавиши в python-в то время как в фоновом режиме. , , Отметьте меня, когда / если вы получите ответ, мне нравится этот вопрос. Pimp Juice IT 5 лет назад 0

2 ответа на вопрос

0
JJohnston2

Если вы имеете в виду цифровую клавиатуру, сценарии в AutoHotkey будут запускаться / обнаруживаться отдельно для Enter и для NumPadEnter

В зависимости от того, что вы хотите сделать, вы можете запускать их по отдельности, но позволить нажатию клавиши перейти к исходному приложению, используя тильду перед определением горячей клавиши, а затем выполнить последующее действие сбоку (параллельно ) с отправкой нажатия клавиши в приложение (отправка сообщения, запись в журнал и т. д.)

0
Yorik

Насколько я знаю, оба ключа ввода имеют одинаковый код сканирования ( VK_RETURN). Я думаю, что ключ numpad можно определить, проверив, lParamнапример, WM_KEYDOWNсообщение.

Ключи Numpad, вероятно, собираются установить для «расширенного» бита (бит 24) значение 1. Таким образом, операция AND (lParam & x1000000)будет проверять этот бит.

https://msdn.microsoft.com/en-us/library/windows/desktop/ms646280(v=vs.85).aspx

Вот как это видит Windows, но она может не отображаться во многих программах в стиле горячих клавиш.