• Linux下如何用Python监控键盘记录思路在上篇已经说到如何使用Python获取/dev/input目录下event对应的设备的名字。那么我们可以知道设备的名字,就可以通过名字知道哪些event对应的是键盘(可能不只一个键盘)。...

    在Linux下如何用Python监控键盘记录

    思路

    上篇已经说到如何使用Python获取/dev/input目录下event对应的设备的名字。那么我们可以知道设备的名字,就可以通过名字知道哪些event对应的是键盘(可能不只一个键盘)。然后在/dev/input/下的对应的event就是负责处理键盘输入的数据的event。

    evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。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()
    

    其中select的作用是等待dev改变后再运行后面的代码,dev.read()返回的是buffer数组,里面存有input_event类型数据

    使用root权限执行程序,通过观察可知。它的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下如何用Python监控键盘记录evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。evdev 输入事件驱动从底层接收事件信息,将其反映...

    evdev 输入事件驱动,为输入子系统提供了一个默认的事件处理方法。其接收来自底层驱动的大多数事件,并使用相应的逻辑对其进行处理。

    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:
    这里写图片描述

    假如要同时监控多个键盘输入的话,开多个线程监控就可以了。

    展开全文
  • pyhook监听鼠标事件键盘事件转载:https://blog.csdn.net/matrix_google/article/details/71512495anaconda自带pythoncom模块,pythoncom包其实就是pywin32,也就是python控制windows系统的API。想要支持pyhook...

    pyhook监听鼠标事件和键盘事件

    转载:https://blog.csdn.net/matrix_google/article/details/71512495


    anaconda自带pythoncom模块,pythoncom包其实就是pywin32,也就是python控制windows系统的API。

    想要支持pyhook必须先有pythoncom包,如果没有pythoncom就先下载一个pywin32。


    Windows平台你需要下载:

    第一步,安装pywin32,地址:http://www.lfd.uci.edu/~gohlke/pythonlibs/#pywin32

    第二步,下载pyhook_py3k,地址:https://github.com/Answeror/pyhook_py3k

    第三步,下载swig.exe,地址:http://www.swig.org/download.html

    第四步,解压缩pyhook_py3k,并进行编译,cmd进入到setup.py的目录,执行命令:Python setup.py build_ext --swig=“这里是你的swig.exe的路径”\swigwin-3.0.12\swig.exe,可以根据实际情况修改swig.exe的路径,另外本机最好已安装VC2008

        第五步,安装编译好的pyhook_py3k,命令:pip install .


    举例:

    1. # -*-coding:utf-8 -*-  
    2. import pythoncom  
    3. import pyHook  
    4. def onMouseEvent(event):  
    5.   
    6.     # 监听鼠标事件  
    7.     print "MessageName:",event.MessageName  
    8.     print "Message:", event.Message  
    9.     print "Time:", event.Time  
    10.     print "Window:", event.Window  
    11.     print "WindowName:", event.WindowName  
    12.     print "Position:", event.Position  
    13.     print "Wheel:", event.Wheelkkk9  
    14.     print "Injected:", event.Injected  
    15.     print"---"  
    16.   
    17.     # 返回 True 以便将事件传给其它处理程序  
    18.     # 注意,这儿如果返回 False ,则鼠标事件将被全部拦截  
    19.     # 也就是说你的鼠标看起来会僵在那儿,似乎失去响应了  
    20.     return True  
    21.   
    22. def onKeyboardEvent(event):  
    23.  # 监听键盘事件  
    24.   print "MessageName:", event.MessageName  
    25.   print "Message:", event.Message  
    26.   print "Time:", event.Time  
    27.   print "Window:", event.Window  
    28.   print "WindowName:", event.WindowName  
    29.   print "Ascii:", event.Ascii, chr(event.Ascii)  
    30.   print "Key:", event.Key  
    31.   print "KeyID:", event.KeyID  
    32.   print "ScanCode:", event.ScanCode  
    33.   print "Extended:", event.Extended  
    34.   print "Injected:", event.Injected  
    35.   print "Alt", event.Alt  
    36.   print "Transition", event.Transition  
    37.   print "---"  
    38.   # 同鼠标事件监听函数的返回值  
    39.   return True  
    40.   
    41. def main():  
    42.   # 创建一个“钩子”管理对象  
    43.   hm = pyHook.HookManager()  
    44.   # 监听所有键盘事件  
    45.   hm.KeyDown = onKeyboardEvent  
    46.   # 设置键盘“钩子”  
    47.   hm.HookKeyboard()  
    48.   # 监听所有鼠标事件  
    49.   hm.MouseAll = onMouseEvent  
    50.   # 设置鼠标“钩子”  
    51.   hm.HookMouse()  
    52.   # 进入循环,如不手动关闭,程序将一直处于监听状态  
    53.   pythoncom.PumpMessages()  
    54.   
    55. if __name__ == "__main__":  
    56.   main() 



    展开全文
  • 前言:之前在window上使用pyhook监控鼠标键盘事件,后来因为家里没有window只有centos系统,准备继续开发的时候发现了pyhook只支持win系统。所以找其它的库的支持,发现了一个pyxhook的库,支持liunx系统。pyxhook这...

    前言:之前在window上使用pyhook监控鼠标键盘事件,后来因为家里没有window只有centos系统,准备继续开发的时候发现了pyhook只支持win系统。所以找其它的库的支持,发现了一个pyxhook的库,支持liunx系统。

    pyxhook

    这个库是不可以直接运行的,必须要依赖xlib库。
    这个xlib最好从这里下载安装,我之前从其他地方下载安装的一直运行出错。下载完之后

    python setup.py install 安装完毕,然后运行上面的库就可以监控键盘了。

    如果你想监控鼠标,自己加一行代码就可以了。完全类似pyhook的API。

    自己已经验证过,上面的这个库是可以运行的。

    展开全文
  • 最近有点想法,想自己写点小软件,看到网上有

    最近有点想法,想自己写点小软件,看到网上有篇博客是我想要的,这里记录下。

    原文地址:点击打开链接   发现他也是转载的,真正的原文出处是: 点击打开链接   

    只是记得不够详细环境搭建等问题,我也搞了差不多10多分钟才把环境搭建好,环境搭建也参考了网上一篇文章 点击打开链接

    首先搭建环境(软件包可以到我的资源去下载):

    1.安装:ActivePython-2.7.8.10-win32-x86.msi

    2.安装:pywin32-217.win32-py2.7.exe

    3.安装:pyHook-1.5.1.win32-py2.7.exe

    环境就搭建好了

    直接执行第一篇博客中的脚本即可。


    结果截图如下:


    展开全文
  • 在终端读取键盘事件  1.py文件 为一个节点 import rospy import sys, select, tty, termios from std_msgs.msg import String def getKey():  tty.setraw(sys.stdin.fileno())  rlist, _, _ = select.select(...
  • ROS Indigo learning_tf-02 编写一个 监听器 程序 (Python版)我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04.4 LTS ROS 版本:ROS Indigo 1. 这一节要做的事情:上一节我们已经编写了...
  • 使用外部库PyMouse,使用pip可以直接下载 pip install pymouse安装pymouse必须要xlib的支持,刚开始以为xlib仅仅是在windows里面可用的,原来linux里面也有。用apt-get下载安装sudo apt-get install python-...
  • 前几天看PHP的框架的时候,发现了一个强大的叫Hook(钩子)的东西,可以挂在系统的挂钩点上由系统自动运行钩子函数。搞懂PHP的钩子怎么用后,马上google了一下Python是不是也有...-------------------------------------
  • 笔记来源于开源项目:基于PX4和ROS的无人机仿真平台 ...(2)、while循环监听键盘的输入做出反应 二、打开程序,查看节点话题关系图 一、解读启动通信的multirotor_keyboard_control.py脚本 ..
  • py测试一个Socket实例

    2019-08-09 01:49:45
    1.服务器端搭建py监听程序。 在客户端搭建python,linux默认自带了python2.7,先不管安装了。 接着编写socket程序,可以在本地编辑上传,或者用vim编辑,这里用本地编辑上传,vim还是有不方便的地方。 python怎么...
  • 叮铃铃!叮铃铃!老师:“小明 你的梦想是什么?...一提到爬虫,好多人先想到python 没错就是那个py交易的那个,这货所为是什么都能干 上九天揽月下五洋捉鳖无处不出现它的身影 鄙人对它也是不得不折
  • 1.以前没注意过的,略写的命令option后面只能空格后加参数,而标准option即可以空格也可以等号后跟着参数,如date命令,date -r filename ;; date --reference filename ;; date --reference=filename 都是正确的。...
  • 一、linux 网络调试助手 linux端一款不错的socket调试工具,叫“mNetAssist”也行,直接叫做“网络调试助手”也行。 感谢作者 感谢作者:enjoying-spring 原帖地址:...
  • 以python3为例: 1.pip3 install pymouse ,安装pymouse 2. sudo apt-get install python-xlib, pymouse...3. mouse.py -------------------------- from pymouse import PyMouse m = PyMouse() m.positio...
  • 今天在阿里云买了个服务器,开始研究python的简单web监听,使用python test.py开启了监听,但最后随手通过了ctrl+z结束,再次启动的时候就提示: Traceback (most recent call last): File "test.py", line 19, in ...
  • linux必备软件合集

    2017-06-15 22:54:28
    Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,...刚装上ubuntu,看起来很朴素,而且用起来很多习惯发生了变化,也不怎么美观,但是ubuntu因为linux强大的软件集和扩展新,可以让ubuntu
  • Linux中最多的一种文件类型, 包括 纯文本文件(ASCII);二进制文件(binary);数据格式的文件(data);各种压缩文件.第一个属性为 [-] 目录文件 就是目录, 能用 # cd 命令进入的。第一个属性为 [d],例如 [drwxrwxrwx...
  • 本文通过介绍 Linux 系统工具(Ftkimage、xmount、Volatility、dd、netcat)来介绍使用计算机取证的方法和步骤。 硬盘数据的取证是指为了证据保全,确保取证工作造成数据丢失,在获取到证据介质后,首先要做的就是对...
1 2 3 4 5 ... 20
收藏数 1,288
精华内容 515