Python 键盘记录程序:截图功能实现
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()
使用方法
- 确保已安装 PyHook 库。
- 运行程序。
- 连续输入三个“*”即可截取屏幕并保存。
- 输入“exit”或按下“Esc”键退出程序。
注意
- 该程序需要管理员权限才能运行。
- 程序会记录用户所有的键盘输入,建议仅用于学习和测试目的。
其他功能
该程序可以进一步扩展,例如:
- 设置截图间隔时间。
- 自定义截图保存路径。
- 添加其他键盘快捷键功能。
- 将截图保存到云端存储。
免责声明
本程序仅供学习和研究使用,请勿用于任何非法目的。开发者不对任何因使用本程序造成的损失负责。
原文地址: https://www.cveoy.top/t/topic/nAO0 著作权归作者所有。请勿转载和采集!