Ваш код проверяется на значение "1"
.Это ваше прощение за то, что вы заявили очевидное, что возвращает pynput
, если вы нажмете клавишу 1
.Вы хотите ответить на клавишу NumLock
.
Вместо
if str(format(key)) == '1':
вы можете кодировать любой из этих тестов, оба из которых проверяют значение, которое вы ищете:
if key == keyboard.Key.num_lock:
if str(format(key)) == "Key.num_lock":
Но ... Есть два вида клавиш NumLock
.
Один из них - Клавиатура NumLock and Clear , которая имеет как код USB (0x53), так и код виртуальной клавиши Windows (0x90).pynput
будет реагировать на нажатие этой клавиши.
Другой тип Блокировка клавиатуры NumLock , которая работает на уровне клавиатуры: она меняет поведение вашей клавиатуры, а Windows не получаетслышать об этом.Он имеет код USB (0x83), но не имеет кода виртуальной клавиши Windows.Если для клавиши нет кода виртуальной клавиши, не будет сообщения Windows для его нажатия, и pynput
сообщает о сообщениях Windows.
Таким образом, это зависит от аппаратного обеспечения и можетМашина имеет второй вид NumLock
ключ.Если это произойдет, то ничего, что вы можете сказать pynput
, не поможет.Это маловероятно, если только вы не работаете с очень ограниченной клавиатурой ноутбука.