如何使用 Python 模块“keyboardleds”来确定 Caps Lock 状态?

如何使用 Python 模块“keyboardleds”来确定 Caps Lock 状态?
  1. 我希望我的系统通过直接检查键盘来确定大写锁定的状态(是打开还是关闭)。经过大量搜索,我了解到这可以通过使用模块“keyboardleds”在Python中完成。

    我对Python不熟悉,所以我的主要请求是,你能告诉我如何在Python脚本中使用keyboardleds模块,以便它告诉我Caps Lock的状态是什么?我系统上的Python版本是2.7.3rc2。

  2. 我发现的有关“keyboardleds”的信息对我来说技术性太强,无法理解。我还发现了一个如何使用键盘的例子,使用了我也不理解的复杂的Python编程。另外,我看过的示例使用键盘作为其之一其他目的,而不是我想要的目的(即确定大写锁定的状态)。

    我什至不知道示例脚本开头的“导入”命令是什么意思,以及我是否需要所有这些命令。

    如果您能告诉我需要使用哪些Python命令,以及我在其中放置了哪些详细内容,我将不胜感激。

  3. 我只需要 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
    
  4. 我相信重要的是:

    关于访问键盘,我发现的信息是指使用/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),尽管我不了解它的来龙去脉。

  5. 以下是我找到有关键盘的信息的网站:

    1. 第一个让我使用键盘的网站(其中的示例对我来说太复杂):

      在 Linux 中使用 Python 访问键盘 LED 的替代方法

      我对这个网站特别感兴趣的是“程序 [keyboardleds] 直接访问键盘”的评论。

    2. 我相信,关于键盘的官方文档(太复杂我无法理解):

      python-keyboardleds 0.3.3 文档

    3. Keyboardleds 作者的网站:

      python-keyboardleds — Jakub Wilk 的软件

答案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 上执行此操作的人来说,这在这种情况下肯定有效 - 我自己见过它。

兰迪

相关内容