Python 键盘记录程序:截图功能实现

本程序使用 Python 和 PyHook 库实现键盘记录功能,当用户连续输入三个“*”时,程序会自动截取屏幕并保存为图片。图片存储在程序所在目录下的“screenshot”文件夹中,并以时间戳命名。

代码

# -*- coding: UTF-8 -*-
import os
import time
import win32gui
import win32ui
import win32con
import win32api
import pyHook
import pythoncom

def get_current_time():
    current_time = time.localtime()
    year = str(current_time.tm_year)
    month = str(current_time.tm_mon).rjust(2, '0')
    day = str(current_time.tm_mday).rjust(2, '0')
    hour = str(current_time.tm_hour).rjust(2, '0')
    minute = str(current_time.tm_min).rjust(2, '0')
    second = str(current_time.tm_sec).rjust(2, '0')
    return year + '-' + month + '-' + day + '_' + hour + '-' + minute + '-' + second

def screen_shot():
    hdesktop = win32gui.GetDesktopWindow()  # 获得桌面窗口句柄

    # 获得显示器尺寸
    width = win32api.GetSystemMetrics(win32con.SM_CXVIRTUALSCREEN)
    height = win32api.GetSystemMetrics(win32con.SM_CYVIRTUALSCREEN)
    left = win32api.GetSystemMetrics(win32con.SM_XVIRTUALSCREEN)
    top = win32api.GetSystemMetrics(win32con.SM_YVIRTUALSCREEN)

    desktop_dc = win32gui.GetWindowDC(hdesktop)  # 创建设备描述表
    img_dc = win32ui.CreateDCFromHandle(desktop_dc)

    mem_dc = img_dc.CreateCompatibleDC()  # 创建基于内存的设备描述表

    screenshot = win32ui.CreateBitmap()
    screenshot.CreateCompatibleBitmap(img_dc, width, height)  # 创建位图对象
    mem_dc.SelectObject(screenshot)
    mem_dc.BitBlt((0, 0), (width, height), img_dc, (left, top), win32con.SRCCOPY)  # 复制屏幕

    # 保存到文件
    file_name = get_current_time() + '.bmp'
    file_path = os.path.join(os.getcwd(), 'screenshot', file_name)
    screenshot.SaveBitmapFile(mem_dc, file_path)

    # 内存释放
    mem_dc.DeleteDC()
    win32gui.DeleteObject(screenshot.GetHandle())

def key_event(event):
    global count
    if event.Ascii == 42: # * 键
        count += 1
        if count == 3:
            screen_shot()
            print('截图已保存')
            count = 0
    elif event.Key == 'Escape': # exit
        exit(0)
    else:
        count = 0
    return True

if __name__ == '__main__':
    if not os.path.exists('screenshot'):
        os.mkdir('screenshot')
    count = 0
    hooker = pyHook.HookManager()  # 创建钩子函数管理器
    hooker.KeyDown = key_event  # 注册钩子按键事件的处理函数
    hooker.HookKeyboard()  # 创建键盘钩子
    pythoncom.PumpMessages()

使用方法

  1. 确保已安装 PyHook 库。
  2. 运行程序。
  3. 连续输入三个“*”即可截取屏幕并保存。
  4. 输入“exit”或按下“Esc”键退出程序。

注意

  • 该程序需要管理员权限才能运行。
  • 程序会记录用户所有的键盘输入,建议仅用于学习和测试目的。

其他功能

该程序可以进一步扩展,例如:

  • 设置截图间隔时间。
  • 自定义截图保存路径。
  • 添加其他键盘快捷键功能。
  • 将截图保存到云端存储。

免责声明

本程序仅供学习和研究使用,请勿用于任何非法目的。开发者不对任何因使用本程序造成的损失负责。

Python 键盘记录程序:截图功能实现

原文地址: https://www.cveoy.top/t/topic/nAO0 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录