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

问题描述 投票:0回答:3

我正在使用一个Python程序,按下Caps Lock键时会激活,我希望能够在程序处于活动状态时打开/关闭大写锁定状态。

我尝试使用 virtkey 发送密钥,但它显然不起作用,因为密钥只是激活应用程序并且不会更改大写锁定状态。那么使用 python 实现这一目标的最佳方法是什么?

我正在使用Ubuntu

python keyboard capslock
3个回答
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}
""")

3
投票

使用

sendkeys
更改状态,使用
keyboardleds
更改 LED 指示灯。

发送密钥:

来自另一个SO讨论

import SendKeys

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

键盘 LED:

这个软件包似乎仅适用于 POSIX(如果您使用的是 Ubuntu,则可以),您可以 在此处阅读更多信息


0
投票

在 Linux 上,SendKeys 软件包不需要安装,因为它需要 windows.h

一种选择是使用 xdotool:

os.system( 'xdotool key Caps_Lock' )
© www.soinside.com 2019 - 2024. All rights reserved.