Есть ли способ заблокировать все ключи, кроме CAPS с pyhook
Я пытаюсь заблокировать все клавиши на клавиатуре, кроме клавиши "caps lock", используя pyHook. Ниже приведен код, который блокирует только клавиши "А" и "А". Я собираюсь сделать обратное. Что мне нужно сделать, чтобы изменить это?
Я попытался поставить все клавиши на клавиатуре рядом с заглавными буквами, но это кажется неправильным способом подойти к нему
def OnKeyboardEvent(событие):
# блокировать только букву А, строчные и прописные
возврат (event.Ascii не в (ord('a'), ord('A')))
2 ответа
Поскольку сам caps lock не предназначен для печати, он не отражается в атрибуте Ascii вашего мероприятия.
Но есть и другие атрибуты, а именно KeyID:
http://pyhook.sourceforge.net/doc_1.5.0/
Используйте это, чтобы найти заглавные буквы, согласно этой таблице:
https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
Кажется, что если функция возвращает True
событие не заблокировано.
import string
def OnKeyboardEvent(event):
return event.Ascii in string.ascii_uppercase
Или возможно return.Ascii in map(ord, string.ascii_uppercase)
,