From 314b30f691ab38307f2d96f9c5c9ea7b56dcea76 Mon Sep 17 00:00:00 2001 From: Devilflasher <33209468+devilflasher@users.noreply.github.com> Date: Sat, 26 Apr 2025 03:29:49 +0800 Subject: [PATCH] Add files via upload --- README.md | 156 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 105 insertions(+), 51 deletions(-) diff --git a/README.md b/README.md index 004850c..a4fffb1 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@
-# Chrome 多窗口管理器 +# Chrome 多窗口管理器 V2.0 [![Python](https://img.shields.io/badge/Python-3.9%2B-3776AB.svg?style=flat&logo=python&logoColor=white)](https://www.python.org) [![Windows](https://img.shields.io/badge/Windows-10%2B-0078D6.svg?style=flat&logo=windows&logoColor=white)](https://www.microsoft.com/windows) @@ -17,7 +17,6 @@
-> [!IMPORTANT] > ## ⚠️ 免责声明 > > 1. **本软件为开源项目,仅供学习交流使用,不得用于任何闭源商业用途** @@ -28,29 +27,35 @@ ## 工具介绍 Chrome 多窗口管理器是一款专门为 `NoBiggie社区` 准备的Chrome浏览器多窗口管理工具。它可以帮助用户轻松管理多个 Chrome 窗口,实现窗口批量打开、排列以及之间的同步操作,大大提高交互效率。 -## 功能特性 +## ❇️ 功能特性 - `批量管理功能`:一键打开/关闭单个、多个Chrome实例 -- `智能布局系统`:支持自动网格排列和自定义坐标布局 +- `批量环境创建`:便捷创建多个Chrome独立数据目录和快捷方式 +- `智能布局系统`:支持自动网格排列和自定义坐标布局,优化多屏幕支持 - `多窗口同步控制`:实时同步鼠标/键盘操作到所有选定窗口 -- `批量打开网页`:支持批量相同网页打开 +- `批量打开网页`:支持在多窗口中同时打开指定网页 - `快捷方式图标替换`:支持一键替换多个快捷方式图标(带序号的图标已准备在icon文件夹) -- `插件窗口同步`:支持弹出的插件窗口内的键盘和鼠标同步 +- `插件窗口同步`:优化支持弹出的插件窗口内的键盘和鼠标同步 +- `右键菜单管理`:支持窗口列表右键关闭窗口等快捷操作 -## 环境要求 +## ❇️ 环境要求 - Windows 10/11 (64-bit) - Python 3.9+ - Chrome浏览器 最新 -## 运行教程 +## ❇️ 运行教程 +## 🎬️ 视频版教程请移步本人推特这篇推文观看 [![X](https://img.shields.io/badge/本程序视频教程已发布在更新推文中-1DA1F2.svg?style=flat&logo=x&logoColor=white)](https://x.com/DevilflasherX) + + + ### 方法一:打包成独立exe可执行文件(推荐) 如果你想自己打包程序,请按以下步骤操作: 1. **安装 Python 和依赖** ```bash - # 安装 Python 3.9 或更高版本 + # 安装 Python 最新版本 # 从 https://www.python.org/downloads/ 下载 ``` @@ -60,6 +65,8 @@ Chrome 多窗口管理器是一款专门为 `NoBiggie社区` 准备的Chrome浏 - build.py(打包脚本) - app.manifest(管理员权限配置) - app.ico(程序图标) + - requirements.txt(依赖包清单,包含程序所需的所有Python包) + 3. **运行打包脚本** ```bash @@ -71,18 +78,25 @@ Chrome 多窗口管理器是一款专门为 `NoBiggie社区` 准备的Chrome浏 - 打包完成后,在 `dist` 目录下找到 `chrome_manager.exe` - 双击运行 `chrome_manager.exe` 即可打开程序 -### 方法二:从源码运行 +### 方法二:从源码运行 (非推荐) 1. **安装 Python** ```bash - # 下载并安装 Python 3.9 或更高版本 + # 下载并安装Python最新版本 # 从 https://www.python.org/downloads/ 下载 ``` 2. **安装依赖包** + ```bash # 打开命令提示符(CMD)并运行: - pip install tkinter pywin32 keyboard mouse sv-ttk typing-extensions + pip install -r requirements.txt + + # 或者手动安装基本依赖: + pip install pyinstaller==6.12.0 sv-ttk==2.6.0 keyboard==0.13.5 mouse==0.7.1 pywin32==309 wmi==1.5.1 requests==2.32.3 pillow==11.1.0 + + # Win11 用户可选安装(如果安装失败可以忽略,程序会自动适配): + pip install win11toast==0.32 ``` 3. **运行程序** @@ -91,53 +105,58 @@ Chrome 多窗口管理器是一款专门为 `NoBiggie社区` 准备的Chrome浏 python chrome_manager.py ``` -## 使用说明 +## ❇️ 使用说明 -### 前期准备 +### 前期准备:批量创建环境 +V2.0版本新增了批量创建环境功能,无需手动创建多开结构: -- 在您存放 Chrome 多开快捷方式的文件夹下,快捷方式的文件名应按照 `1`、`2`、`3`... 的格式命名。 -- 同一个文件夹下建立 `Data` 文件夹,`Data` 文件夹下存放每个浏览器独立的数据文件,文件夹名应按照 `1`、`2`、`3`... 的格式命名。 +1. **设置软件参数** + - 软件主界面右上角打开设置页面 + - 设置快捷方式存放的目录 + - 设置缓存存放的目录 -```目录结构示例: - 多开chrome的目录 +2. **打开批量创建环境** + - 点击软件下方功能标签页中的"批量创建环境" - ├── 1.lnk - ├── 2.lnk - ├── 3.lnk - └── Data - ├── 1 - ├── 2 - └── 3 -``` -- 浏览器快捷方式的目标参数因为:(请根据您的浏览器安装路径修改) -``` -"C:\Program Files\Google\Chrome\Application\chrome.exe" --user-data-dir="D:\chrom duo\Data\编号" -``` +3. **创建环境** + - 设置需要创建的环境数量(例如:1-100 就是创建编号为1至100的窗口) + - 点击"开始创建"按钮 + - 系统将自动创建对应编号的快捷方式以及对应的缓存目录 + - 创建完成后会显示成功消息 + +4. **环境结构** + 创建完成后,将自动生成如下结构: + ``` + 您选择的存放快捷方式的目录 + ├── 1.lnk + ├── 2.lnk + ├── 3.lnk + └── Data (您选择的存放数据的缓存目录) + ├── 1 + ├── 2 + └── 3 + ``` ### 基本操作 1. **打开窗口** - - 软件下方的"打开窗口"标签下,填入存放浏览器快捷方式的目录 - - "窗口编号"里填入想要打开的浏览器编号 + - 软件下方的"打开窗口"标签下,在"窗口编号"里填入想要打开的浏览器编号(格式可以是1-10这样,也可以是1,3,5这样,或者两者结合 1-10,13,15) - 点击"打开窗口"按钮即可打开对应编号的chrome窗口 2. **导入窗口** - 点击"导入窗口"按钮导入当前打开的 Chrome 窗口 - - 在列表中选择要操作的窗口 + - 在列表中选择要操作的窗口,通常点击全部选择按钮即可,2.0版本的程序已经可以自动排除系统主浏览器 3. **窗口排列** - 使用"自动排列"快速整理窗口 - - 或使用"自定义排列"设置详细的排列参数 + - 或使用"自定义排列"通过自定义参数排列窗口 4. **开启同步** - - 选择一个主控窗口(点击"主控"列) - - 选择要同步的从属窗口 + - 选择一个主控窗口(点击"主控"列),若没有选择程序会自动选择第一个窗口为主控窗口 - 点击"开始同步"或使用设定的快捷键 - - -## 注意事项 +## ❇️ 注意事项 - 同步功能需要管理员权限 - 虽然理论上不会被杀毒软件误报或干扰,但请在报错时检查杀毒软件是否拦截相关功能 @@ -145,20 +164,55 @@ Chrome 多窗口管理器是一款专门为 `NoBiggie社区` 准备的Chrome浏 ## 常见问题 -1. **无法开启同步** - - win10和win11家庭版操作系统目前有兼容性上的问题 - - 如果你是chrome多账户多开,那无法使用同步功能 - - 如果仅是鼠标或者键盘无法同步,可能是打包的时候某个依赖出错,请重新打包程序文件 +1. **无法打包程序❓️** + - 主要原因是Python没有正确安装或环境变量未正确设置 + - 确保Python在默认位置安装且安装时勾选了"Add Python to PATH"选项 + - 检查pip是否正常工作,尝试运行`pip --version`验证 + - 确保已安装所有依赖包 + - 如果打包过程中仍然出现其他错误,请尝试以管理员权限运行命令提示符 -2. **窗口未正确导入** - - 尝试重新点击"导入窗口"按钮 - - -3. **滚动条同步幅度不同** - - 目前的解决办法就是通过pageup和pagedown以及键盘上下左右键来调整同步幅度 - - +2. **无法导入窗口❓️** + - 主要原因是Chrome窗口不是使用`--user-data-dir=`参数启动的 + - 请使用正确创建的快捷方式打开窗口 + - 确保Chrome快捷方式的目标包含了类似`--user-data-dir="D:\chrome duo\data\1"`的参数 -## 更新日志 +3. **无法开启同步❓️** + - 程序不支持谷歌账号登录后多开的窗口形式,这类窗口无法正确同步 + - 请确保通过`--user-data-dir`参数的快捷方式打开窗口 + - 检查是否以管理员身份运行程序 + - 确保已正确选择一个主控窗口 + - 如果使用多显示器,确认屏幕设置正确 + - 开启同步后如果部分窗口没有同步,可以多次单击主控窗口来校准同步 + +## ❇️ 更新日志 + +### v2.0 🆕 +- **✨ 核心技术改进** + - **CDP 技术支持**:引入 Chrome DevTools Protocol,实现更精确的浏览器控制和通信 + - **多线程框架升级**:使用 concurrent.futures 实现高效并行任务处理,提升整体性能 + - **同步引擎重构**:重写鼠标和键盘事件处理算法,大幅降低系统资源占用 + - **安全性增强**:新增路径验证和进程所有者验证,提高程序运行安全性 + - **内存管理优化**:修复内存泄漏问题,显著改善长时间运行的稳定性 + +- **🌟 新增功能** + - **批量环境创建**:支持一键创建多个Chrome浏览器环境,大幅提升效率 + - **多屏幕支持**:添加多显示器识别和管理,可在不同屏幕上独立排列窗口(此功能由网友buyun00添加) + - **标签批量管理**:新增"仅保留当前标签"和"仅保留新标签页"功能 + - **窗口右键菜单**:增加窗口列表右键关闭功能,提供更便捷的窗口管理 + - **同步状态通知**:添加开关同步状态的系统通知,清晰提示当前操作状态 + - **批量文本输入**:支持随机数字和指定文本批量输入到多个窗口 + +- **📊 优化项目** + - **UI 界面优化**:整合设置部分的 UI,提供更直观的用户体验 + - **窗口层级优化**:改进开启窗口排列和同步时的屏幕层级关系,避免窗口被遮挡 + - **窗口排列算法**:优化窗口自动排列算法,更合理地利用屏幕空间 + - **窗口列表管理**:修复窗口顺序在列表中混乱的问题,保持一致性 + - **同步机制改进**:修复切换主控后的同步 BUG,提高多窗口协同稳定性 + - **批量打开网页优化**:优化批量打开网页效果,打开效果更佳稳定丝滑 + - **鼠标滚轮优化**:修复了鼠标滚轮同步时幅度不一样的问题 + - **弹窗处理增强**:优化插件弹出窗口的同步问题,提升扩展程序操作体验 + - **性能优化**:降低 CPU 和内存占用,优化高负载下的响应速度 + - **错误恢复**:添加自动恢复机制,减少操作中断的可能性 ### v1.0 - 首次发布