Skip to content

Qwejay/Qflow

Repository files navigation

Qflow - 可视化桌面自动化引擎 (Desktop Automation Engine)

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

📖 简介 (Introduction)

Qflow 是一个基于 Python 开发的轻量级、可视化自动化流程引擎。通过简单直观的节点拖拽与连线,即可构建复杂的桌面自动化任务。

  • 完全开源:透明的逻辑实现,无后门。
  • 绿色便携:无需繁琐的数据库配置,即开即用。
  • 隐私安全:纯离线运行,不联网,不上传任何数据。
  • 低资源占用:无需独显,普通办公电脑即可流畅运行。

🔥 2.0 重磅更新 (What's New in 2.0)

  • 📦 一键打包独立应用 (EXE Export)
    • 支持将构建好的自动化流程一键编译为独立的 .exe 应用程序。
    • 无痕运行模式:支持隐藏控制台,在右下角系统托盘驻留,非常适合分发给终端客户使用。
    • 专业级控制:支持自定义应用图标、内置防多开保护、任务结束后自动完全退出。
    • 专属快捷键:打包的程序支持设置独立的全局热键(启动、停止、紧急退出)。
  • 🤖 随机延时 (Anti-Detection)
    • 【延时】组件新增“随机延时”模式,支持设置最小与最大秒数,智能模拟真人操作节奏,降低被风控或检测的概率。
  • ⌨️ 全量键盘支持 (Full Keyboard Support)
    • 彻底重构键盘底层引擎,现已全面支持 F1-F24Numpad 0-9 (小键盘) 及所有特殊控制键的组合发送。
  • 🎯 特征识图强化 (Enhanced Vision)
    • 微调 AKAZE 特征点匹配算法的置信度权重。在目标因环境或分辨率发生形变时,只要关键特征吻合即可成功触发,大幅提升脚本在不同电脑上的兼容性。

✨ 核心功能 (Features)

  • 🎨 可视化编排:支持节点拖拽、无限画布缩放/平移、框选操作、历史记录(撤销/重做)。
  • 👁️ 视觉感知
    • 智能找图:集成 OpenCV,支持智能混合、模板匹配、特征匹配,支持未找到时自动滚动页面。
    • 静止监控:监控屏幕区域画面是否停止变化(非常适合判断网页或软件是否加载完成)。
  • 🖱️ 物理级外设控制:支持鼠标点击/移动/拖拽/定向滚动,支持防乱码文本输入及组合键触发。
  • 🔊 音频触发:内置音频峰值检测(Windows),实现“听到指定声音大小即触发”的自动化操作。
  • 🧠 复杂逻辑流
    • 流控制:循环 (Loop)、多路径顺序尝试 (Sequence)、条件判断 (Switch)。
    • 变量与数据:支持内存变量存取、剪贴板读写,轻松实现多软件之间的数据流转与协同。
  • 🛠️ 沉浸式辅助工具:内置像素级屏幕截图截取、窗口智能拾取绑定、坐标扣除补偿、实时匹配测试。

📋 更新日志 (Changelog)

[2.0.0] - 2026-06-20

  • 新增:支持导出独立(需要Qflow.exe)的引导执行程序,支持无头/托盘静默运行。
  • 新增:组件增加“随机延时”参数支持。
  • 新增:右侧属性面板在空闲状态下增加图文引导,包含对【变量】组件的用法科普。
  • 优化:重构【键盘】组件组合按键底层驱动,修复 F 区及小键盘无法触发的问题,增强文本输入粘贴模式的防乱码能力。
  • 优化:梳理【鼠标】组件的交互结构,双击操作合并至点击选项;修复定向滚动时坐标未跟随移动导致滚动失效的问题。
  • 优化:优化 AKAZE 特征识图的相似度分值映射,解决“测试能通过但实际运行失败”的严格阈值问题。
  • 优化:找图组件的“未找到尝试滚动”功能,现在会自动将鼠标移动到识别区域居中再进行滚动,防止越界失效。

[1.7.6] - 2026-06-19

  • 修复:解决 WindowEngine 遍历系统进程快照时,因解码异常导致的句柄泄露问题。
  • 修复:修复图像匹配测试(Test Match)在后台线程调用 UI 导致的偶发性闪退。
  • 优化:统一可选依赖库(如 pyperclip, opencv)的导入与检查逻辑。

[1.7.5] - 2026-05-23

  • 新增:提示节点(notify)增加 {ALL_VARS} 宏支持,可一键打印所有内存变量供调试。
  • 优化:改用原生 user32.GetCursorPos 检索绝对物理坐标,解决混合 DPI 缩放下的像素偏离。

🎮 快速上手 (Quick Start)

界面概览

  • 左侧工具箱:包含所有可用的流程控制节点,按逻辑、动作、视觉分组。
  • 中间画布:主要工作区。拖入节点进行连接,右键点击节点可呼出操作菜单。
  • 右侧属性面板:点击任意节点后,在此配置该节点的详细参数(如坐标、图片、命令等)。
  • 底部日志栏:实时显示当前运行状态、执行节点追踪及报错信息。

快捷键对照表

操作 默认快捷键
启动流程 F9
停止 / 紧急中断 F10
保存项目 Ctrl + S
撤销 / 重做 Ctrl + Z / Ctrl + Y
删除选中节点 Delete

创建你的第一个流程

  1. 拖拽:从左侧工具栏拖入一个 ▶ 开始 节点。
  2. 抓图:拖入一个 🎯 找图 节点,选中它并在右侧属性面板点击 "📸 截取目标",框选屏幕上的图标(如微信图标)。
  3. 连接:点击开始节点右侧的圆圈端口,拖出连线连接到找图节点的输入端口。
  4. 动作:拖入一个 👆 鼠标 节点,动作设置为“点击”,连接找图节点的 found (找到) 端口。
  5. 执行:点击顶部工具栏的 ▶ 启动,或按键盘 F9 即可自动执行找图点击。

⚙️ 源码部署与安装 (Installation)

  1. 环境准备:确保系统已安装 Python 3.8+

  2. 克隆项目

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

    pip install -r requirements.txt
  4. 运行程序

    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

Packages

 
 
 

Contributors