Подтвердить что ты не робот

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

Я использую программу python, которая активируется при нажатии клавиши Caps Lock, и я хочу, чтобы включить/выключить статус блокировки колпачка, когда программа активна.

Я попытался отправить ключи с помощью virtkey, но, очевидно, это не сработает, так как ключи просто активируют приложение и не меняют статус блокировки кепок. Итак, каков наилучший способ достичь этого с помощью python?

Я использую Ubuntu

4b9b3361

Ответ 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), и вы можете читать дальше здесь.