Как изменить статус блокировки шапки без нажатия клавиши

Я использую программу на 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), и вы можете прочитать больше здесь.

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