python keyboard方法_python 偷懒技巧——使用 keyboard 录制键盘事件
之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库。
后来几经尝试,始终不能成功运行。原来它只支持 Python2 和 32 位的 Windows 系统。。。Excuse me?
于是在网上查找可行的替代方案,比如 pyHook 。呃,不合胃口。安装比较繁琐(有依赖库且不能通过 pip 命令安装),只支持 Windows 系统,况且又是十年前就没再更新的项目。。。看了下函数调用也算不上简洁直观。
后来又多番搜索,终于找到了一个名为keyboard 的 Python 库,可以绑定全局事件、录制及模拟键盘输入、设置热键等。
尤其是安装和使用足够简单,比较合我的心意(毕竟 Github 上将近 1.5K 的小星星)。
一、特性
全局范围内的键盘事件绑定。即程序可以后台运行,捕捉其他软件下的按键动作。
跨平台,支持 Windows 、Linux 以及 MacOS 系统。支持 Python2 和 Python3 。
纯 Python 代码,无需编译 C 语言模块。无依赖库,安装简单(只是复制文件就可以)。
通过独立的线程捕捉事件,不阻塞主程序的运行。
很详细的文档,参见项目主页的 README 。
其实我真的有点感觉,这才是我心目中比较“现代”的工具。
二、录制及模拟按键动作
就像前面提到的,安装 keyboard 的流程非常简单,无需考虑任何兼容性或者依赖问题,只需要一条简短的命令:
$ pip install keyboard
可以使用下面的代码录制 10 秒钟的键盘事件,并将其回放一遍(即重复按下之前操作的按键):
import keyboard
import time
keyboard.start_recording()
time.sleep(10)
events = keyboard.stop_recording()
keyboard.replay(events)
可以使用如下代码制作一个简单的 “键盘录制器” (打印输出全局范围内的按键动作,并将按键顺序保存在文本文件中):
import keyboard
def print_pressed_keys(e):
line = ', '.join(str(code) for code in keyboard._pressed_events)
print(line)
with open('keylogger.txt', 'a+') as f:
f.write(line + '\n')
keyboard.hook(print_pressed_keys)
keyboard.wait()
PS:上述代码中的 code 并不是对应按键的 ASCII 码,而是根据键盘布局为按键指定的数值(如 a 键为 30,b 键为 42 等等),可以通过自行测试确认具体的对应关系。
如同时按下两个或多个按键,则上述程序会以 code, code... 的形式输出。
三、热键捕获及绑定
可以使用如下代码录制热键并为该热键绑定上特定的触发事件:
import keyboard
print('Press and release your desired hotkey: ')
hotkey = keyboard.read_hotkey()
print('Hotkey selected: ', hotkey)
def on_triggered():
print("Triggered!")
keyboard.add_hotkey(hotkey, on_triggered)
print("Press ESC to stop.")
其他的使用方式就不再一一列举了,可以参考 keyboard 项目的 Github 主页 。
几种常见的使用示例也已经包含在项目代码的 examples 目录下。
以上就是python 偷懒技巧——使用 keyboard 录制键盘事件的详细内容,更多关于python keyboard 录制键盘事件的资料请关注我们其它相关文章!
本文标题: python 偷懒技巧——使用 keyboard 录制键盘事件
本文地址: http://www.cppcns.com/jiaoben/python/347553.html
python keyboard方法_python 偷懒技巧——使用 keyboard 录制键盘事件相关推荐
- python keyboard方法_python 偷懒技巧――使用 keyboard 录制键盘事件
之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库. 后来几经尝试,始终不能成功运行.原来它只支持 Python2 和 32 位的 Window ...
- python编程midi键盘按键_python 偷懒技巧——使用 keyboard 录制键盘事件
之前在某本书上看到一个程序,可以通过 Python 记录下全局范围内的键盘事件,使用的是 ctypes 库. 后来几经尝试,始终不能成功运行.原来它只支持 Python2 和 32 位的 Window ...
- python魔法方法_Python魔法方法指南
有很多人说学习Python基础之后不知道干什么,不管你是从w3c还是从廖雪峰的教程学习的,这些教程都有一个特点:只能引你快速入门,但是有关于Python的很多基础内容这些教程中都没介绍,而这些你没学习 ...
- python wait方法_Python条件类| 带有示例的wait()方法
python wait方法 Python Condition.wait()方法 (Python Condition.wait() Method) wait() is an inbuilt method ...
- python 计时方法_Python计时器类| cancel()方法与示例
python 计时方法 Python Timer.cancel()方法 (Python Timer.cancel() Method) cancel() is an inbuilt method of ...
- python __repr__方法_Python __repr__()方法起什么作用呢?
摘要: 下文讲述Python中 __repr__()方法的功能说明,如下所示: __repr__()方法的功能: 用于修改实例化对象的print效果, 如:print(实例化对象) 此时则返回 __r ...
- python魔法方法_python,魔法方法指南
1.简介 本指南归纳于我的几个月的博客,主题是 魔法方法 . 什么是魔法方法呢?它们在面向对象的Python的处处皆是.它们是一些可以让你对类添加"魔法"的特殊方法. 它们经常是两 ...
- [转载] python并行处理任务_Python 并行任务技巧
参考链接: Python的惊人技巧 Python的并发处理能力臭名昭著.先撇开线程以及GIL方面的问题不说,我觉得多线程问题的根源不在技术上而在于理念.大部分关于Pyhon线程和多进程的资料虽然都很不 ...
- python爬虫难点_Python爬虫技巧
在本文中,我们将分析几个真实网站,来看看我们在<用Python写网络爬虫(第2版)>中学过的这些技巧是如何应用的.首先我们使用Google演示一个真实的搜索表单,然后是依赖JavaScr ...
最新文章
- python中字符串的rstrip()方法
- MySQL-日志、完全备份恢复和增量备份恢复
- python模块之configparser
- Java 中textarea 换行,textarea 中的换行符
- 佳能lbp611cn硒鼓_佳能lbp611cn说明书
- 两年数据对比柱形图_堆积柱形图+散点图=数据对比完美呈现(附视频)
- 如何在R中画出高效美观的相关性分析图
- 手把手教你创建第一个Vivado工程
- 今年出现了5种电子商务SEO趋势
- 15分钟带你了解lower_bound和upper_bound
- 爱普生连续供墨系统故障排除方法
- 看完面经,他拿出一打大厂offer玩起了斗地主,人生不过是如此枯燥乏味....
- 长尾效应环境下的电子商务
- html鼠标悬停事件 dw,dw制作鼠标放上去图片就显示鼠标离开图片就消失
- 随机森林python_实战:用Python实现随机森林
- 裸辞一年再就业,上班第一天就想辞职是什么体验?
- 紫禁繁花服务器维护一般多久,紫禁繁花手游2020年12月30日更新公告
- 一文弄懂软件发布生命周期中各阶段名称及代表含义
- 项目E-shopping cart记录
- 移动端的tap事件你知道多少
热门文章
- bios设置u盘启动重装系统教程
- 【绝版C++书籍】《Effective STL》读书笔记
- python 3.8.2(32-bit)安装教程_Python 3.8.2详细图文安装教程(附安装包)
- 花千骨计算机,花千骨电脑版
- 同构JavaScript应用以及前后端分离
- 防删图制作实操:贴吧防删图用什么工具软件可以制作
- 基于python的小说大数据预测可视化分析系统
- 经验小波MATLAB,EWT经验小波matlab应用实现(信号处理) 适用于一维EWT的变换文件 - 下载 - 搜珍网...
- 手机关闭网络没有信号显示无服务器,手机信号差怎么解决 手机没信号怎么回事...
- android实现一段文字中不同颜色