在Linux下如何用Python监控键盘记录
2015-08-10 10:59
531 查看
evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。
evdev 输入事件驱动从底层接收事件信息,将其反映到 sys 文件系统中,用户程序通过对 sys 文件系统的操作,就能够达到处理事件的能力。
这里使用一个叫做evdev的库进行处理,其原理是用C函数evdev_read()读取/dev/eventX设备中的buffer数组,里面存有input_event类型数据,下面内核上报的事件都会存在这里。
编写以下程序:
使用root权限执行程序,通过观察可知。
注意:如果python执行器报错evdev库错误,可以去https://pypi.python.org/pypi/evdev下载,并 sudo python setup.py install
它的code就是输入的键值,它的value就是对应其状态,按下一个键时,它的value为1,松开时value为0。
那么稍微修改一下代码就可以知道输入值和状态了。
这样就实现了能够读取键盘输入的键和其状态的程序了。
执行程序,依次按下zxc:
这里写图片描述
假如要同时监控多个键盘输入的话,开多个线程监控就可以了。
evdev 输入事件驱动从底层接收事件信息,将其反映到 sys 文件系统中,用户程序通过对 sys 文件系统的操作,就能够达到处理事件的能力。
这里使用一个叫做evdev的库进行处理,其原理是用C函数evdev_read()读取/dev/eventX设备中的buffer数组,里面存有input_event类型数据,下面内核上报的事件都会存在这里。
编写以下程序:
#!/usr/bin/env python #coding: utf-8 from evdev import InputDevice from select import select def detectInputKey(): dev = InputDevice('/dev/input/event4') while True: select([dev], [], []) for event in dev.read(): print "code:%s value:%s" % (event.code, event.value) if __name__ == '__main__': detectInputKey()
使用root权限执行程序,通过观察可知。
注意:如果python执行器报错evdev库错误,可以去https://pypi.python.org/pypi/evdev下载,并 sudo python setup.py install
它的code就是输入的键值,它的value就是对应其状态,按下一个键时,它的value为1,松开时value为0。
那么稍微修改一下代码就可以知道输入值和状态了。
def detectInputKey(): dev = InputDevice('/dev/input/event4') while True: select([dev], [], []) for event in dev.read(): if (event.value == 1 or event.value == 0) and event.code != 0: print "Key: %s Status: %s" % (event.code, "pressed" if event.value else "release")
这样就实现了能够读取键盘输入的键和其状态的程序了。
执行程序,依次按下zxc:
这里写图片描述
假如要同时监控多个键盘输入的话,开多个线程监控就可以了。
相关文章推荐
- Linux下搭建Android开发环境
- Linux中搭建SVN服务器
- php实现web端批量杀死Linux进程和清理内存
- Centos系统查找软件url
- Kalilinux 2.0明天就要发布了
- Linux下Java程序不识别宋体
- Installing NodeJS, Grunt, and Bower with cPanel and CentOS or CloudLinux
- linux设备驱动归纳总结(一):内核的相关基础概念
- Linux系统安装
- 工作总结(一):Linux C
- Autojump:一个可以在 Linux 文件系统快速导航的高级 cd 命令
- linux之cut用法
- linux启动时进入只读系统的恢复方法
- CentOS安装Firefox的Flash播放器插件
- 查看 SELinux状态及关闭SELinux
- CentOS安装KVM步骤虚拟机,绝对实用!
- ubuntu鼠标闪烁
- linux下的文件权限与目录配置
- Linux 数据库学习的准备工作---mysql数据库的安装
- kali修改时间