Skip to content

qianiqan2000/Qflow

 
 

Repository files navigation

Qflow - 可视化桌面自动化工具(Desktop Automation Tool)

demo
无需编程基础,通过节点拖拽实现强大的桌面自动化流程。

📖 简介 (Introduction)

Qflow 是一个本人原创基于 Python 开发的轻量级可视化自动化流程编辑器。用户通过简单拖拽节点、连接连线的方式,构建复杂的桌面自动化任务,源码开放、绿色单文件、离线不联网、不需要独显!

它集成了 图像识别 (OpenCV)键鼠模拟音频检测 以及 逻辑控制,非常适合用于办公自动化或重复性任务处理。

✨ 核心功能 (Features)

  • 🎨 可视化编辑器:支持节点拖拽、无限画布缩放/平移、框选。
  • 👁️ 视觉感知
    • 图像寻找:集成 OpenCV,支持模板匹配和特征匹配(SIFT/AKAZE),支持多尺度搜索。
    • 静止检测:监控屏幕特定区域是否静止(例如判断加载是否完成)。
  • 🖱️ 键鼠控制
    • 支持鼠标点击、移动、拖拽、滚动。
    • 支持键盘文本输入及组合键(快捷键)操作。
  • 🔊 音频触发:能够检测系统音量峰值(Windows),实现"听到声音执行操作"。
  • 🧠 逻辑控制
    • 包含循环 (Loop)、序列 (Sequence)、延时 (Wait)。
    • 支持变量 (Set/Get) 和条件分流 (Switch),可构建复杂的业务逻辑。
    • 剪贴板交互:支持读取系统剪贴板到变量,或将文本写入剪贴板。
  • 🛠️ 便捷工具
    • 内置截图工具,直接截取屏幕目标作为节点参数。
    • 支持多种主题切换(Dark/Light)。
    • 全局快捷键启停。

📋 更新日志 (Changelog)

[1.7.3] - 2026-03-14

Added (新增)

  • 动态 UI 布局
    • 工具箱滚动条:左侧组件工具箱新增滚轮滑动支持,避免溢出无法选择。
    • 可调节日志栏:底部的执行日志输出栏采用分割面板,方便查看长段执行日志。

Changed (变更/优化)

  • 静止检测防遮挡 (Anti-Occlusion):优化 ⏸️ 静止 节点的检测逻辑。在静止画面检测期间,如果绑定的目标窗口失去焦点或被其他应用遮挡,引擎会自动将其拉回最前,并重置静止计时器,避免因窗口被遮挡导致“画面不变”而产生的流程误判 BUG。

[1.7.2] - 2026-03-14

Added (新增)

  • 剪贴板节点 (Clipboard):逻辑组件中新增 📋 剪贴板 节点,支持读取剪贴板到变量,或将文本/变量写入剪贴板。
  • 文件保存机制增强
    • 顶部操作栏新增 📝 另存 按钮。
    • 💾 保存 按钮现支持原位覆盖保存,并支持全局快捷键 Ctrl + S
    • 软件主标题栏现在会实时显示当前正在编辑的文件路径与名称。

Changed (优化)

  • 全局字体升级:将全局 UI 字体从 Segoe UI 替换为 Microsoft YaHei (微软雅黑),并适度调大了基础字号。大幅提升了高分屏及常规屏幕下的中文显示清晰度与阅读体验。

Fixed (修复)

  • 截图被遮挡:修复了在找图/静止检测模块中点击“截取目标”时,因时序逻辑错误导致主界面未能及时隐藏,从而误将主界面截取进去的BUG。
  • 输入框打断:修复了在右侧属性面板的输入框中打字时,因 UI 强制双向同步刷新导致输入被打断、无法连续输入的问题。现在输入丝滑流畅,并在失去焦点或回车时自动保存历史记录(支持撤销)。

[1.7.1] - 2025-12-27

Added (新增)

  • 快捷键增强:设置面板现在支持绑定 F1 - F12 功能键、小键盘按键以及更多特殊字符组合,不再局限于 Alt+数字/字母。
  • UI 交互提示
    • 左侧组件工具箱新增鼠标悬停提示 (Tooltip),显示组件功能说明。
    • 右侧属性面板在未选中节点时,现在会显示操作指引而非空白。
  • 鼠标滚动参数:为鼠标组件的“滚动”模式新增了“滚动量”输入框,支持自定义滚动幅度(正数为上滚,负数为下滚)。

Changed (变更/优化)

  • 窗口绑定逻辑优化:在执行找图、鼠标、键盘等交互操作前,现在会强制将绑定的目标窗口置顶并聚焦
    • 说明:解决了窗口在后台或被遮挡时,截图识别和模拟输入坐标偏移或失效的问题。
  • 双击设置简化:优化了鼠标组件的属性面板逻辑。选择“双击”动作时自动隐藏“点击次数”选项,避免逻辑重复。

Fixed (修复)

  • 修复找图超时与滚动失效:修正了 VisionEngine 内部的循环逻辑,解决了找图组件中“超时时间”不生效以及“未找到时尝试滚动”无法触发的问题。
  • 修复特征匹配(Feature Match)失败:修复了 AKAZE 特征匹配算法在运行时因图像格式不一致导致无法识别目标的问题(统一了灰度图处理逻辑)。
  • 修复属性面板同步问题:修复了在画布节点上直接修改参数(如鼠标动作下拉框)时,右侧属性面板未能实时刷新显示对应设置项的 Bug。
  • 修复鼠标滚动操作:解决了鼠标组件选择“滚动”模式后因缺少参数导致操作无法执行的问题。

v1.7

Added (新增)

  • 通知节点 (Notify Node)
    • 新增 🔔 提示 节点,支持自定义文本、持续时间及提示音。
    • 采用非阻塞式 Toast 弹窗(VisualTips),不影响流程运行。
  • 多屏幕支持 (Multi-Monitor Support)
    • 引入虚拟屏幕坐标系 (Virtual Screen Geometry)。
  • 键盘“粘贴模式”
    • 键盘 节点中新增“粘贴模式”选项。
    • 利用剪贴板输入文本,解决中文乱码及输入速度过慢的问题(需安装 pyperclip)。
  • 🛠️ 修复 (Bug Fixes)
    • 修复了在不同节点间快速切换时,上一个节点的属性值错误覆盖当前节点数据的严重 Bug(通过闭包绑定解决)。
    • 修复截图坐标错误。

v1.6

  • 新增绑定窗口节点:所有操作都可以绑定到用户选定的窗口中,确保后续操作在目标窗口内进行。
  • 新增程序控制节点
    • 🚀 打开程序:支持启动外部应用程序
    • ⚓ 绑定窗口:可精确绑定特定窗口,实现更稳定的窗口内操作
  • 界面优化
    • 移除了 Hacker 主题,保留 Dark 和 Light 主题
    • 优化了节点颜色配置,新增窗口节点专用颜色
  • 功能增强
    • 日志系统重构,简化了日志级别显示
    • 端口连接增强,新增 success/fail 端口支持
  • 稳定性提升
    • 改进了 DPI 缩放处理
    • 优化了窗口检测算法,提高了准确性

⚙️ 安装与运行 (Installation)

环境要求

  • Python 3.8+
  • Windows (音频检测功能依赖 Windows API,其他功能可在 macOS/Linux 运行但需调整部分代码)

步骤

  1. 克隆仓库

    git clone https://github.com/Qwejay/Qflow.git
    cd Qflow
  2. 安装依赖 建议使用虚拟环境:

    pip install -r requirements.txt

    注意:如果没有安装 opencv-python,程序仍可运行,但高级图像识别功能受限。

  3. 运行程序

    python main.py

🎮 使用说明 (Usage)

界面概览

  • 左侧工具栏:包含所有可用节点,按类别分组(逻辑、动作、视觉)。
  • 中间画布:主要工作区。右键点击画布也可呼出节点菜单。
  • 右侧属性面板:点击任意节点,在此处配置详细参数(如点击坐标、图片阈值、循环次数等)。
  • 底部日志:显示当前的运行状态和错误信息。

快捷键 (Hotkeys)

操作 快捷键
启动流程 <Alt> + 1 (默认)
停止流程 <Alt> + 2 (默认)
删除节点 Delete
撤销 Ctrl + Z
重做 Ctrl + Y
多选节点 按住鼠标左键拖拽框选

快速开始

  1. 拖入一个 Start (开始) 节点。
  2. 拖入一个 Image (找图) 节点。
  3. 点击找图节点,在右侧属性面板点击 "📸 截取",框选屏幕上的目标。
  4. 将 Start 的 out 端口连接到 Image 的 in 端口。
  5. 拖入一个 Mouse (鼠标) 节点,设置为点击操作,连接 Image 的 found 端口。
  6. 点击顶部 "▶ 启动" 或按 Alt+1 运行。

📦 依赖库说明

  • tkinter:构建 GUI 界面。
  • pyautogui: 实现鼠标和键盘的模拟控制。
  • opencv-python (cv2): 提供强大的图像识别算法。
  • pycaw / comtypes: 用于 Windows 系统下的音频会话捕捉。
  • pynput: 用于监听全局快捷键。

⚠️ 免责声明

本工具仅供学习和个人办公辅助使用。请勿用于开发违反游戏服务条款的脚本或恶意软件。作者不对使用本工具造成的任何后果负责。

📄 License

GPL-3.0 license

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 99.3%
  • Batchfile 0.7%