我希望我的系统通过直接检查键盘来确定大写锁定的状态(是打开还是关闭)。经过大量搜索,我了解到这可以通过使用模块“keyboardleds”在Python中完成。
我对Python不熟悉,所以我的主要请求是,你能告诉我如何在Python脚本中使用keyboardleds模块,以便它告诉我Caps Lock的状态是什么?我系统上的Python版本是2.7.3rc2。
我发现的有关“keyboardleds”的信息对我来说技术性太强,无法理解。我还发现了一个如何使用键盘的例子,使用了我也不理解的复杂的Python编程。另外,我看过的示例使用键盘作为其之一其他目的,而不是我想要的目的(即确定大写锁定的状态)。
我什至不知道示例脚本开头的“导入”命令是什么意思,以及我是否需要所有这些命令。
如果您能告诉我需要使用哪些Python命令,以及我在其中放置了哪些详细内容,我将不胜感激。
我只需要 python 脚本在大写锁定关闭时给出退出状态 0 (true),如果大写锁定打开则给出退出状态 1 (false)。
假设 python 脚本名为“capslockstate”。然后我将在 bash 脚本中使用它,如下所示:
if capslockstate then <perform an action based on the fact that Caps Lock is off> else <perform an action based on the fact that Caps Lock is on> fi
我相信重要的是:
关于访问键盘,我发现的信息是指使用
/dev/console
、/dev/input/event*
和/dev/input/by-path/*-event-kbd
。在我的系统上,这三个都存在。在后两种情况下,我的系统上有以下内容:/dev/input/event0 through to /dev/input/event9. /dev/input/by-path/platform-i8042-serio-0-event-kbd ### ie only ^this^ one item exists
“旁路”是实际的目录名称。
我相信上述 2 个“/dev/input/...”实体之一是我需要使用的(而不是
/dev/console
),尽管我不了解它的来龙去脉。以下是我找到有关键盘的信息的网站:
第一个让我使用键盘的网站(其中的示例对我来说太复杂):
在 Linux 中使用 Python 访问键盘 LED 的替代方法
我对这个网站特别感兴趣的是“程序 [keyboardleds] 直接访问键盘”的评论。
我相信,关于键盘的官方文档(太复杂我无法理解):
Keyboardleds 作者的网站:
答案1
我使用以下产品时运气不错:
from win32con import VK_CAPITAL
if GetKeyState(VK_CAPITAL) == 1:
print ("CAPS Lock is on.")
elif GetKeyState(VK_CAPITAL) == 0:
print ("CAPS Lock is off.")
这是在带有 Python3 的 Windows 计算机上,所以不能 100% 确定它是否也可以在 Linux 上工作,但值得注意的是,对于那些需要在 Windows 上执行此操作的人来说,这在这种情况下肯定有效 - 我自己见过它。
兰迪