Как изменить статус блокировки шапки без нажатия клавиши
Я использую программу python, которая активируется при нажатии клавиши Caps Lock, и я хочу, чтобы включить/выключить статус блокировки колпачка, когда программа активна.
Я попытался отправить ключи с помощью virtkey, но, очевидно, это не сработает, так как ключи просто активируют приложение и не меняют статус блокировки кепок. Итак, каков наилучший способ достичь этого с помощью python?
Я использую Ubuntu
Ответы
Ответ 1
В 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}
""")
Ответ 2
Используйте sendkeys
, чтобы изменить статус и keyboardleds
, чтобы измените светодиодные индикаторы.
SendKeys:
Из еще одна SO dicussion:
import SendKeys
SendKeys.SendKeys("""
{CAPSLOCK}
{SCROLLOCK}
{NUMLOCK}
""")
keyboardleds:
Этот пакет работает только для POSIX (это нормально, если вы используете Ubuntu), и вы можете читать дальше здесь.