Есть ли способ заблокировать все ключи, кроме CAPS с pyhook - PullRequest
0 голосов
/ 02 февраля 2019

Я пытаюсь заблокировать все клавиши на клавиатуре, кроме клавиши caps lock, используя pyHook.Ниже приведен код, который блокирует только клавиши «А» и «А». Я собираюсь сделать обратное.Что мне нужно сделать, чтобы изменить это?

Я пытался поместить все клавиши на клавиатуре рядом с заглавными буквами, но это кажется неправильным способом приблизиться к нему

def OnKeyboardEvent (событие):
# блокировать только букву A, строчные и прописные буквы
return (event.Ascii not in (ord ('a'), ord ('A')))

Ответы [ 2 ]

0 голосов
/ 02 февраля 2019

Поскольку сам caps lock не предназначен для печати, он не отражается в Ascii-атрибуте вашего мероприятия.

Но есть и другие атрибуты, а именно KeyID:

http://pyhook.sourceforge.net/doc_1.5.0/

Используйте это для поиска заглавных букв, согласно этой таблице:

https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes

0 голосов
/ 02 февраля 2019

Похоже, что если функция возвращает True, событие не блокируется.

import string
def OnKeyboardEvent(event):
    return event.Ascii in string.ascii_uppercase

Или, возможно, return.Ascii in map(ord, string.ascii_uppercase).

...