如何在不按键的情况下改变大写锁定状态

13 投票
2 回答
11977 浏览
提问于 2025-04-15 18:42

我正在使用一个Python程序,这个程序会在按下大写锁定键(Caps Lock)时启动。我希望在这个程序运行时能够打开或关闭大写锁定的状态。

我尝试过用virtkey发送按键,但显然这不行,因为这些按键只是激活了应用程序,并没有改变大写锁定的状态。那么,使用Python实现这个功能的最佳方法是什么呢?

我在使用Ubuntu系统。

2 个回答

3

可以使用 sendkeys 来改变状态,使用 keyboardleds 来改变LED指示灯。

sendkeys:

来自 另一个讨论:

import SendKeys

SendKeys.SendKeys("""
{CAPSLOCK}
{SCROLLOCK}
{NUMLOCK}
""")

keyboardleds:

这个工具包似乎只适用于POSIX系统(如果你在用Ubuntu的话,这没问题),你可以 在这里了解更多

7

在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 - Stack Overflow: 在Python中更改键盘锁定


在Windows上:

你可以使用SendKeys来实现这个功能,下面是一个示例:

import SendKeys

SendKeys.SendKeys("""
{CAPSLOCK}
""")

撰写回答