python实现类似rpa按键精灵录制与回放鼠标键盘操作代码

代码语言:python

所属分类:其他

代码描述:python实现类似rpa按键精灵录制与回放鼠标键盘操作代码

代码标签: python 类似 rpa 按键 精灵 录制 回放 鼠标 键盘 操作 代码

下面为部分代码预览,完整代码请点击下载或在bfwstudio webide中打开

import tkinter as tk
from tkinter import ttk, messagebox, scrolledtext, filedialog
import threading
import time
import json
import keyboard
import mouse
from pynput import mouse as pynput_mouse
from pynput import keyboard as pynput_keyboard
from dataclasses import dataclass
from typing import List, Optional
import math

# ───────────────── 数据模型 ─────────────────
@dataclass
class ActionEvent:
    action_type: str      # 'mouse_move', 'mouse_click', 'key_press', 'key_release', 'mouse_scroll'
    timestamp: float      # 距离录制开始的秒数
    x: Optional[int] = None
    y: Optional[int] = None
    button: Optional[str] = None
    key: Optional[str] = None
    pressed: Optional[bool] = None
    dx: Optional[int] = None
    dy: Optional[int] = None

# ───────────────── 按键名转换工具 ─────────────────
def convert_button(button_str: str) -> str:
    """将 pynput 的 'Button.left' 转换为 mouse 库可用的 'left'"""
    mapping = {
        'Button.left': 'left',
        'Button.right': 'right',
        'Button.middle': 'middle',
    }
    return mapping.get(button_str, button_str)

def convert_key(key_str: str) -> str:
    """将 pynput 的特殊键名转换为 keyboard 库可用键名"""
    # pynput 格式: 'Key.enter' → 'enter'
    prefix = 'Key.'
    if key_str.startswith(prefix):
        name = key_str[len(prefix):]
        # 常见转换映射
        mapping = {
            'space': 'space',
            'enter': 'enter',
            'tab': 'tab',
            'shift': 'shift',
            'ctrl': 'ctrl',
            'alt': 'alt',
            'esc': 'esc',
            'backspace': 'backspace',.........完整代码请登录后点击上方下载按钮下载查看

网友评论0