Есть ли способ заблокировать все ключи, кроме 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),

Другие вопросы по тегам