iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 键盘鼠标监听
  • 395
分享到

Python 键盘鼠标监听

键盘鼠标Python 2023-01-31 03:01:22 395人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的api就可以了。 下面是我在使用pyHook 的过程中遇到的问题和经验总

异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的api就可以了。

下面是我在使用pyHook 的过程中遇到的问题和经验总结

准备工作

API 基础

PyHook是一个基于Python的“钩子”库,主要用于监听当前电脑上鼠标和键盘的事件。这个库依赖于另一个Python库PyWin32,如同名字所显示的,PyWin32只能运行在Windows平台,所以PyHook也只能运行在Windows平台。

pyHook里面最重要的大致有三个API比较常用。如下:


  • HookManager()

创建一个“钩子”管家,便于接下的全局设置

  • HookManager.onMouseEvent + HookManager.HookMouse()

    监听鼠标事件,并且设置鼠标钩子。这两个应该作为原子操作同时出现。

  • HookManager.onKeyboardEvent + HookManager.HookKeyboard()

    监听键盘事件,并且设置键盘钩子,同样这两个应该同时出现。

  • 案例展示

    下面是我自己写的一个测试代码,具体内容如下:

    # coding:utf-8
    
    #    __author__ = 'Mark sinoberg'
    #    __date__ = '2016/6/24'
    #    __Desc__ = 简单的入门示例程序
    import pyHook
    import pythoncom
    from time import *
    
    result = ''
    
    def onMouseEvent(event):
        # 监听鼠标事件
        print "Message Name :", event.MessageName
        print "Message:",event.Message
        print "Time: " , event.Time
        print "Window: ",event.Window
        print "Window Name : " ,event.WindowName
        print "Position : ",event.Position
        print "Wheel : ",event.Wheel
        print "Injected: ",event.Injected
    
        # 需要注意的是返回True,以便将事件传给其他的处理程序,如果返回False的话,鼠标事件在这里就会被拦截,即鼠标会僵在此处失去响应
        return True
    
    def onKeyboardEvent(event):
        # 监听键盘事件
        print "MessageName:", event.MessageName
        print "Message:", event.Message
        print "Time:", event.Time
        print "Window:", event.Window
        print "WindowName:", event.WindowName
        print "Ascii:", event.Ascii, chr(event.Ascii)
        print "Key:", event.Key
        print "KeyID:", event.KeyID
        print "ScanCode:", event.ScanCode
        print "Extended:", event.Extended
        print "Injected:", event.Injected
        print "Alt", event.Alt
        print "Transition", event.Transition
        print "---"
        # 同鼠标事件监听函数的返回值
        # 写一个保存到本地文件的方法,而且应该以写二进制的方式来写入,设置result为全局的,避免文件被覆盖
        global result
        file = open(r'F:/log.txt','wb')
        result = result + "Time : " + str(asctime())+"|:"+"WindowName:"+str( event.WindowName)+"|"+"Key:"+str( event.Key)+"|"+"MessageName:"+str( event.MessageName)
        file.writelines(result)
        if event.Key == "q":
            file.close()
        return True
    
    def main():
        # 创建一个:钩子“管理对象
        hm = pyHook.HookManager()
        # 监听所有的键盘事件
        hm.KeyDown = onKeyboardEvent
        #设置键盘”钩子“
        hm.HookKeyboard()
        # 监听鼠标事件
        hm.mouseAll = onMouseEvent
        # 设置鼠标钩子
        hm.HookMouse()
        # 进入循环侦听,需要手动进行关闭,否则程序将一直处于监听的状态。可以直接设置而空而使用默认值
        pythoncom.PumpMessages()
        # 我也不知道为什么直接放置到main函数中不管用
    
    if __name__ == "__main__":
        main()

    global result 的设置,这样就可以记录下来之前的result来保证之前的数据不被覆盖!

    测试结果

    验证键盘监听结果

    这是实时的检测结果,是我在程序中添加设置result为全局的,避免文件被覆盖
    时所截获的数据流。

    问题分析

    在上面的代码中,注释已经做的很详细了。但还是有一些奇怪的现象要讲一讲:

    • main函数:这里单独定义了一个main函数,然后让主函数来进行调用。也许,你会认为这不是多此一举吗?然而,事实是只有这样才能让代码顺利执行下去。真的是有悖常理。

    • 使用了全局变量result: 这里就是为了防止在向文件中写入数据的时候覆盖之前的文件信息 。

    • 在判断键盘按下Q键的时候,停止键盘事件的记录。如果想彻底的停止程序的监听的话,需要调用win32api.PostQuitMessage().

    拓展

    有了这些基础性的知识之后,就可以大胆的思考做一些有意思的东西了。除了记录自己在电脑上的行为,还可以将这些数据整合起来,利用数据挖掘的相关的技术,做更加高深的处理。

    或者,你想偷偷的知道别人在电脑上的操作行为,这些都可以很愉快的实现。

    而且通过发邮件的形式或者链接远程服务器的方式同样可以远程的进行更Hack的操作。

    这里只是抛砖引玉,有兴趣的不妨在下面留言哦。

    --结束END--

    本文标题: Python 键盘鼠标监听

    本文链接: https://www.lsjlt.com/news/187527.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Python 键盘鼠标监听
      异想天开的想记录一下自己每天的键盘键位走向,于是就在网上搜索了一下相关的实现,然后就发现了一个第三方的库pyHook.封装的很好,我们只需要傻瓜式的调用里面的API就可以了。 下面是我在使用pyHook 的过程中遇到的问题和经验总...
      99+
      2023-01-31
      键盘鼠标 Python
    • 用Python监听鼠标和键盘事件
      最近有点想法,想自己写点小软件,看到网上有篇博客是我想要的,这里记录下。 原文地址:点击打开链接   发现他也是转载的,真正的原文出处是: 点击打开链接    只是记得不够详细环境搭建等问题,我也搞了差不多10多分钟才把环境搭建好,环境...
      99+
      2023-01-31
      鼠标 键盘 事件
    • python pyautogui+pynput鼠标键盘自动控制与监听
      PyAutoGUI 参考https://blog.csdn.net/hfy1237/article/details/127960423 官方文档 https://pyautogui.readthedo...
      99+
      2023-10-11
      python 自动化
    • python pynput监听键盘
      1 """小白随笔,大佬勿喷""" 2 #键盘输入 3 from pynput.keyboard import Key,Controller,Listener 4 keyboard = Controller() 5 keybo...
      99+
      2023-01-30
      键盘 python pynput
    • Android 键盘监听 键盘展开/收起监听
      如和优雅地实现键盘展开/收起监听 Android 键盘的展开与收起一直是个很遭人诟病的东西 方法各式各样都有,但是基本都不是很好用,有各种限制 这里编写了一个优雅地实现方式,利用屏幕实际高度与显示...
      99+
      2023-09-01
      android kotlin android studio
    • Python:监控键盘输入、鼠标操作,并
        使用pyhook模块可以很快地完成键盘及鼠标事件捕获,此模块可从http://sourceforge.net/projects/pyh...
      99+
      2023-01-31
      鼠标 键盘输入 操作
    • python 键盘监听+记录 [ p
      今天想做一个键盘监听的小程序,去网上搜了一下,发现用Python写键盘监听主要有pyhook和pynput两种……… 这里用的是pynput,logging。 本来想用Jupyter Notebook写的,但是发现运行不了,可...
      99+
      2023-01-31
      键盘 python
    • python怎么实现监听键盘
      小编给大家分享一下python怎么实现监听键盘,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Python的优点有哪些1、简单易用,与C/C++、Java、C# 等...
      99+
      2023-06-14
    • jquery如何禁止鼠标右键并监听右键事件
      这篇文章主要介绍jquery如何禁止鼠标右键并监听右键事件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!禁止鼠标右键:$(document).ready(function(){ &n...
      99+
      2024-04-02
    • python模拟鼠标键盘操作
      1. python打开exe程序 很多软件打开都需要自己的运行环境,所以需要改变文件目录为exe目录,再打开exe #! -*- coding: utf-8 -*-import osimport subprocess# 改变当前工作目录ne...
      99+
      2023-10-05
      开发语言 python 经验分享
    • python使用pynput库操作、监控你的鼠标和键盘
      目录楔子鼠标操作鼠标监控鼠标键盘监控楔子 python是一门很神奇的语言,原因在于它有很多的库可以实现各种意想不到的功能。当然我们这次介绍的库所实现的功能却是已经很常见了,就是操作...
      99+
      2024-04-02
    • Python 通过api操控鼠标键盘
      标签: python PyMouse http://blog.sina.com.cn/s/blog_60b45f230101kucn.html [python-sendkeys 模拟键盘事件的模块](http:/...
      99+
      2023-01-31
      鼠标键盘 Python api
    • 怎么用Python控制键盘鼠标
      今天小编给大家分享一下怎么用Python控制键盘鼠标的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。这个库让你可以控制和监控输...
      99+
      2023-06-19
    • Python键盘监听:实现快捷操作和自动化脚本(监听组合键
      前言 本文主要介绍一下使用Python进行事件监听功能,以实现一些特有的操作。本文旨在介绍如何实现这一功能。 笔者根据一些需求写了一个小工具,流程和功能如下图所示(实际功能有更多): 该工具...
      99+
      2023-09-13
      python 计算机外设 自动化 键盘监听
    • 怎么在python中使用pynput库对鼠标、键盘进行监控
      这篇文章将为大家详细讲解有关怎么在python中使用pynput库对鼠标、键盘进行监控,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。python是什么意思Python是一种跨平台的、具有解释...
      99+
      2023-06-08
    • JS的鼠标监听mouseup鼠标抬起失效如何解决
      本篇文章和大家了解一下JS的鼠标监听mouseup鼠标抬起失效如何解决。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。一、起因及解决由于很少使用除了click的监听事件,今天在使用mouseup时遇到一个坑,找了好久的bu...
      99+
      2023-08-03
    • jQuery如何监听鼠标点击事件?
      这篇文章将为大家详细讲解有关jQuery如何监听鼠标点击事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery监听鼠标点击事件 jQuery提供了多种方式来监听鼠标点击事件,最常用的方法如下: ...
      99+
      2024-04-02
    • jQuery如何监听鼠标双击事件?
      这篇文章将为大家详细讲解有关jQuery如何监听鼠标双击事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery监听鼠标双击事件 jQuery提供了多种监听鼠标事件的方法,其中包括监听鼠标双击事件...
      99+
      2024-04-02
    • jQuery如何监听鼠标离开事件?
      这篇文章将为大家详细讲解有关jQuery如何监听鼠标离开事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。如何使用 jQuery 监听鼠标离开事件 jQuery 提供了多种方法来监听鼠标离开事件,它们以...
      99+
      2024-04-02
    • jQuery如何监听键盘按键事件?
      这篇文章将为大家详细讲解有关jQuery如何监听键盘按键事件?,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。jQuery监听键盘按键事件 jQuery 提供了多种方法来监听键盘按键事件。最常用的方法是使用...
      99+
      2024-04-02
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作