Qflow 是一个基于 Python 开发的轻量级、可视化自动化流程引擎。通过简单直观的节点拖拽与连线,即可构建复杂的桌面自动化任务。
- 完全开源:透明的逻辑实现,无后门。
- 绿色便携:无需繁琐的数据库配置,即开即用。
- 隐私安全:纯离线运行,不联网,不上传任何数据。
- 低资源占用:无需独显,普通办公电脑即可流畅运行。
- 📦 一键打包独立应用 (EXE Export)
- 支持将构建好的自动化流程一键编译为独立的
.exe应用程序。 - 无痕运行模式:支持隐藏控制台,在右下角系统托盘驻留,非常适合分发给终端客户使用。
- 专业级控制:支持自定义应用图标、内置防多开保护、任务结束后自动完全退出。
- 专属快捷键:打包的程序支持设置独立的全局热键(启动、停止、紧急退出)。
- 支持将构建好的自动化流程一键编译为独立的
- 🤖 随机延时 (Anti-Detection)
- 【延时】组件新增“随机延时”模式,支持设置最小与最大秒数,智能模拟真人操作节奏,降低被风控或检测的概率。
- ⌨️ 全量键盘支持 (Full Keyboard Support)
- 彻底重构键盘底层引擎,现已全面支持
F1-F24、Numpad 0-9(小键盘) 及所有特殊控制键的组合发送。
- 彻底重构键盘底层引擎,现已全面支持
- 🎯 特征识图强化 (Enhanced Vision)
- 微调 AKAZE 特征点匹配算法的置信度权重。在目标因环境或分辨率发生形变时,只要关键特征吻合即可成功触发,大幅提升脚本在不同电脑上的兼容性。
- 🎨 可视化编排:支持节点拖拽、无限画布缩放/平移、框选操作、历史记录(撤销/重做)。
- 👁️ 视觉感知:
- 智能找图:集成 OpenCV,支持智能混合、模板匹配、特征匹配,支持未找到时自动滚动页面。
- 静止监控:监控屏幕区域画面是否停止变化(非常适合判断网页或软件是否加载完成)。
- 🖱️ 物理级外设控制:支持鼠标点击/移动/拖拽/定向滚动,支持防乱码文本输入及组合键触发。
- 🔊 音频触发:内置音频峰值检测(Windows),实现“听到指定声音大小即触发”的自动化操作。
- 🧠 复杂逻辑流:
- 流控制:循环 (Loop)、多路径顺序尝试 (Sequence)、条件判断 (Switch)。
- 变量与数据:支持内存变量存取、剪贴板读写,轻松实现多软件之间的数据流转与协同。
- 🛠️ 沉浸式辅助工具:内置像素级屏幕截图截取、窗口智能拾取绑定、坐标扣除补偿、实时匹配测试。
- 新增:支持导出独立(需要Qflow.exe)的引导执行程序,支持无头/托盘静默运行。
- 新增:组件增加“随机延时”参数支持。
- 新增:右侧属性面板在空闲状态下增加图文引导,包含对【变量】组件的用法科普。
- 优化:重构【键盘】组件组合按键底层驱动,修复 F 区及小键盘无法触发的问题,增强文本输入粘贴模式的防乱码能力。
- 优化:梳理【鼠标】组件的交互结构,双击操作合并至点击选项;修复定向滚动时坐标未跟随移动导致滚动失效的问题。
- 优化:优化 AKAZE 特征识图的相似度分值映射,解决“测试能通过但实际运行失败”的严格阈值问题。
- 优化:找图组件的“未找到尝试滚动”功能,现在会自动将鼠标移动到识别区域居中再进行滚动,防止越界失效。
- 修复:解决
WindowEngine遍历系统进程快照时,因解码异常导致的句柄泄露问题。 - 修复:修复图像匹配测试(Test Match)在后台线程调用 UI 导致的偶发性闪退。
- 优化:统一可选依赖库(如
pyperclip,opencv)的导入与检查逻辑。
- 新增:提示节点(
notify)增加{ALL_VARS}宏支持,可一键打印所有内存变量供调试。 - 优化:改用原生
user32.GetCursorPos检索绝对物理坐标,解决混合 DPI 缩放下的像素偏离。
- 左侧工具箱:包含所有可用的流程控制节点,按逻辑、动作、视觉分组。
- 中间画布:主要工作区。拖入节点进行连接,右键点击节点可呼出操作菜单。
- 右侧属性面板:点击任意节点后,在此配置该节点的详细参数(如坐标、图片、命令等)。
- 底部日志栏:实时显示当前运行状态、执行节点追踪及报错信息。
| 操作 | 默认快捷键 |
|---|---|
| 启动流程 | F9 |
| 停止 / 紧急中断 | F10 |
| 保存项目 | Ctrl + S |
| 撤销 / 重做 | Ctrl + Z / Ctrl + Y |
| 删除选中节点 | Delete |
- 拖拽:从左侧工具栏拖入一个
▶ 开始节点。 - 抓图:拖入一个
🎯 找图节点,选中它并在右侧属性面板点击 "📸 截取目标",框选屏幕上的图标(如微信图标)。 - 连接:点击开始节点右侧的圆圈端口,拖出连线连接到找图节点的输入端口。
- 动作:拖入一个
👆 鼠标节点,动作设置为“点击”,连接找图节点的found(找到) 端口。 - 执行:点击顶部工具栏的
▶ 启动,或按键盘F9即可自动执行找图点击。
-
环境准备:确保系统已安装 Python 3.8+。
-
克隆项目:
git clone https://github.com/Qwejay/Qflow.git cd Qflow -
安装依赖 建议使用虚拟环境:
pip install -r requirements.txt
-
运行程序
python main.py
- 左侧工具栏:包含所有可用节点,按类别分组(逻辑、动作、视觉)。
- 中间画布:主要工作区。右键点击画布也可呼出节点菜单。
- 右侧属性面板:点击任意节点,在此处配置详细参数(如点击坐标、图片阈值、循环次数等)。
- 底部日志:显示当前的运行状态和错误信息。
| 操作 | 快捷键 |
|---|---|
| 启动流程 | <Alt> + 1 (默认) |
| 停止流程 | <Alt> + 2 (默认) |
| 删除节点 | Delete |
| 撤销 | Ctrl + Z |
| 重做 | Ctrl + Y |
| 多选节点 | 按住鼠标左键拖拽框选 |
- 拖入一个 Start (开始) 节点。
- 拖入一个 Image (找图) 节点。
- 点击找图节点,在右侧属性面板点击 "📸 截取",框选屏幕上的目标。
- 将 Start 的
out端口连接到 Image 的in端口。 - 拖入一个 Mouse (鼠标) 节点,设置为点击操作,连接 Image 的
found端口。 - 点击顶部 "▶ 启动" 或按
Alt+1运行。
- tkinter:构建 GUI 界面。
- pyautogui: 实现鼠标和键盘的模拟控制。
- opencv-python (cv2): 提供强大的图像识别算法。
- pycaw / comtypes: 用于 Windows 系统下的音频会话捕捉。
- pynput: 用于监听全局快捷键。
本工具仅供学习和个人办公辅助使用。请勿用于开发违反游戏服务条款的脚本或恶意软件。作者不对使用本工具造成的任何后果负责。
GPL-3.0 license