Как изменить статус блокировки шапки без нажатия клавиши
Я использую программу на Python, которая активируется при нажатии клавиши Caps Lock, и я хочу иметь возможность включать / выключать статус Caps Lock, когда программа активна.
Я пытался отправить ключи с помощью virtkey, но это, очевидно, не работает, так как ключи просто активируют приложение и не меняют статус Caps Lock. Так каков наилучший способ достичь этого с помощью Python?
Я пользуюсь Ubuntu
2 ответа
В Linux:
import fcntl
import os
KDSETLED = 0x4B32
console_fd = os.open('/dev/console', os.O_NOCTTY)
# Turn on caps lock
fcntl.ioctl(console_fd, KDSETLED, 0x04)
# Turn off caps lock
fcntl.ioctl(console_fd, KDSETLED, 0)
Источник: Benji York - Переполнение стека: изменение блокировки клавиатуры в Python
В Windows:
Вы должны быть в состоянии использовать SendKeys для этого, как в следующем примере:
import SendKeys
SendKeys.SendKeys("""
{CAPSLOCK}
""")
Использование sendkeys
изменить статус и keyboardleds
поменять светодиодные индикаторы.
SendKeys:
import SendKeys
SendKeys.SendKeys("""
{CAPSLOCK}
{SCROLLOCK}
{NUMLOCK}
""")
keyboardleds:
Этот пакет, кажется, работает только для POSIX (что нормально, если вы используете Ubuntu), и вы можете прочитать больше здесь.