我需要一个步骤记录器,需求如下:1.当每次点击鼠标后记录使用的是左键右键,单击双击 2.每次鼠标点击记录后需要截屏一次 3.用一个前端界面来开始或者结束记录或者退出程序.4,结束记录时弹出另存为对话框选择保存路径并保存为DOC文件
时间: 2024-02-17 17:02:45 浏览: 193
好的,根据您的需求,您需要一个能够记录鼠标点击事件、截屏并保存为DOC文件的程序。以下是一个简单的Python程序示例,您可以根据自己的需要进行修改和优化。
```python
import tkinter as tk
from tkinter import filedialog
import pyautogui
import datetime
import docx
class MouseRecorder:
def __init__(self):
self.root = tk.Tk()
self.root.title("鼠标操作记录器")
self.root.geometry("300x150")
self.label = tk.Label(self.root, text="点击开始记录", font=("Arial", 20))
self.label.pack(pady=20)
self.start_button = tk.Button(self.root, text="开始记录", command=self.start_recording)
self.start_button.pack(side="left", padx=20)
self.stop_button = tk.Button(self.root, text="停止记录", state="disabled", command=self.stop_recording)
self.stop_button.pack(side="left", padx=20)
self.quit_button = tk.Button(self.root, text="退出", command=self.quit)
self.quit_button.pack(side="right", padx=20)
self.is_recording = False
self.clicks = []
self.screen_shots = []
def start_recording(self):
self.is_recording = True
self.start_button.config(state="disabled")
self.stop_button.config(state="normal")
self.label.config(text="正在记录鼠标操作")
self.root.after(100, self.record)
def stop_recording(self):
self.is_recording = False
self.start_button.config(state="normal")
self.stop_button.config(state="disabled")
self.label.config(text="点击开始记录")
self.save_record()
def record(self):
if self.is_recording:
x, y = pyautogui.position()
button = pyautogui.mouseInfo().split("\t")[1]
clicks = pyautogui.clicks()
self.clicks.append((datetime.datetime.now(), button, clicks))
self.screen_shots.append(pyautogui.screenshot())
self.root.after(100, self.record)
def save_record(self):
if len(self.clicks) > 0:
file_path = filedialog.asksaveasfilename(defaultextension=".docx")
if file_path:
doc = docx.Document()
doc.add_heading("鼠标操作记录", 0)
for i, (time, button, clicks) in enumerate(self.clicks):
doc.add_heading("鼠标点击{}:{}".format(i+1, time.strftime("%Y-%m-%d %H:%M:%S")), level=1)
doc.add_paragraph("使用的鼠标键:{}".format(button))
doc.add_paragraph("单击/双击:{}".format("双击" if clicks == 2 else "单击"))
doc.add_picture(self.screen_shots[i], width=docx.shared.Inches(6))
doc.save(file_path)
def quit(self):
self.root.destroy()
if __name__ == "__main__":
recorder = MouseRecorder()
recorder.root.mainloop()
```
这个程序使用了Tkinter库创建了一个简单的前端界面,可以通过点击"开始记录"按钮开始记录鼠标操作,点击"停止记录"按钮停止记录并保存为DOC文件,点击"退出"按钮退出程序。在记录期间,程序会每隔100毫秒记录一次鼠标点击事件和截屏,保存在`self.clicks`和`self.screen_shots`列表中。最后,将记录保存为DOC文件时,使用`filedialog`库选择保存路径并创建一个docx.Document对象,将所有记录添加为标题和段落,最后保存为DOC文件。
阅读全文