# VPet(虚拟桌宠模拟器)自动工作 **Repository Path**: logicliu/vpet-auto-work ## Basic Information - **Project Name**: VPet(虚拟桌宠模拟器)自动工作 - **Description**: 一个用于 VPet(虚拟桌宠模拟器)的 Windows 自动化操作工具。解放双手,让你的宠物无限工作下去(万恶的资本家) - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 1 - **Forks**: 0 - **Created**: 2026-03-22 - **Last Updated**: 2026-04-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # VPet 自动操作工具 一个用于 VPet(虚拟桌宠模拟器)的 Windows 自动化操作工具(写着玩儿的) VPet 开源仓库:[[GitHub 地址]](https://github.com/LorisYounger/VPet),Steam 应用:[[Steam 地址]](https://store.steampowered.com/app/1920960) ## 功能简介 - 自动启动 VPet 游戏程序 - 自动打开游戏菜单并执行一系列预设操作 - 自动选择"互动"→"工作"→"直播"→"开始工作" - 无限循环工作模式,每3小时重新执行一次工作流程 - 支持显示工作时间和循环次数 - 支持 DPI 感知,确保在高分辨率显示器上正确点击 - 提供点击标记显示功能,方便调试 - 支持两种点击方式(PostMessage / SendInput) ## 环境要求 - Windows 操作系统 - Python 3.8+ - VPet 已安装 ## 快速开始 ### 克隆项目 ```bash git clone https://gitee.com/logicliu/vpet-auto-work.git cd vpet-auto-work ``` ### 依赖安装 ```bash pip install -r requirements.txt ``` ### 配置说明 在 `app.py` 中修改 `AppConfig` 类的配置项: ```python @dataclass class AppConfig: # 程序路径配置 EXE_PATH: str = r"D:\OS.Windows\Program Files (x86)\Steam\steamapps\common\VPet\VPet-Simulator.Windows.exe" # VPet 可执行文件路径 PROCESS_NAME: str = "VPet-Simulator.Windows.exe" # 进程名称 WINDOW_TITLE: str = "MainWindow" # 窗口标题 # 启动配置 STARTUP_DELAY: int = 10 # 启动延迟(秒) MARKER_DURATION: int = 3000 # 点击标记显示时长(毫秒) CLICK_METHOD: str = "sendinput" # 点击方式:sendinput(模拟真实鼠标)或 postmessage(消息投递) SHOW_MARKER: bool = True # 是否显示点击标记 # 互动菜单点击坐标(百分比) CLICK_INTERACTION_X: float = 63.0 CLICK_INTERACTION_Y: float = 93.8 CLICK_WORK_X: float = 63.0 CLICK_WORK_Y: float = 70.0 # 工作面板点击坐标(百分比) CLICK_SELECT_WORK_TYPE_X: float = 34.15 CLICK_SELECT_WORK_TYPE_Y: float = 21.67 CLICK_YOUR_WORK_TYPE_X: float = 34.15 CLICK_YOUR_WORK_TYPE_Y: float = 30.5 CLICK_START_WORK_X: float = 79.79 CLICK_START_WORK_Y: float = 88.83 ``` ### 运行程序 ```bash python app.py ``` ## 程序流程 程序会自动执行以下步骤: 1. **检查并启动 VPet** - 检测游戏是否运行,若未运行则启动 2. **查找游戏窗口** - 获取窗口位置和 DPI 信息 3. **右键点击打开菜单** - 在窗口中心发送右键点击 4. **点击"互动"** - 在指定相对位置点击 5. **点击"工作"** - 在指定相对位置点击 6. **选择工作类型** - 点击"请选择工作"→"直播" 7. **开始工作** - 点击"开始工作"按钮 8. **循环等待** - 每3小时自动重新执行工作流程 ## 核心模块 | 模块 | 说明 | |------|------| | `ColoredFormatter` | 彩色日志格式化器,支持不同日志级别显示不同颜色 | | `DpiHelper` | DPI 感知启用和缩放比例计算 | | `ProcessHelper` | 进程检测、启动和 PID 获取 | | `WindowHelper` | 窗口查找、位置获取和窗口激活 | | `KeyboardHelper` | 键盘操作(如发送 ESC 键关闭菜单) | | `MouseAction` | 鼠标点击操作抽象基类 | | `PostMessageAction` | 使用 PostMessage 方式发送鼠标点击 | | `SendInputAction` | 使用 SendInput 模拟真实鼠标点击 | | `ClickAction` | 统一的点击操作封装类,支持中心点/相对位置点击 | | `ClickMarker` | 点击位置标记显示,方便调试 | | `VPetAutomation` | VPet 自动化操作主逻辑 | ## 点击方法说明 程序支持两种鼠标点击方式: ### SendInput(推荐) - 模拟真实的鼠标移动和点击事件 - 不会被游戏识别为脚本操作 - 兼容性好,适用于大多数场景 - 设置 `CLICK_METHOD = "sendinput"` ### PostMessage - 直接向窗口投递鼠标消息 - 速度快,但不移动鼠标光标 - 某些游戏可能无法识别 - 设置 `CLICK_METHOD = "postmessage"` ## 日志输出 程序运行时会在终端输出彩色日志,包括: - 操作步骤进度 - 点击坐标信息 - 窗口状态 - 错误警告 日志级别默认为 INFO,可通过修改 `setup_logger()` 的 `level` 参数调整。 ## 注意事项 1. 运行前请确保 VPet 游戏路径配置正确 2. 程序运行期间请勿移动或操作游戏窗口 3. 如遇点击位置偏差,可调整 `click_by_percentage` 方法中的百分比参数 4. 为确保能正常点击游戏菜单,VPet 请勿开启鼠标穿透模式,并建议开启置顶模式 5. VPet 建议开启 `让宠物自己买东西吃`,不然会真的会累死的(⊙﹏⊙) 6. 如遇到点击无效问题,可尝试切换 `CLICK_METHOD` 为不同的点击方式 ## 常见问题 **Q: 点击位置有偏差怎么办?** - A: 调整 `AppConfig` 中对应的 X/Y 百分比坐标参数。 **Q: 游戏无法响应点击怎么办?** - A: 尝试将 `CLICK_METHOD` 从 "sendinput" 改为 "postmessage",或反之。同时检查 VPet 是否关闭了鼠标穿透并开启窗口置顶。 **Q: 如何关闭点击标记?** - A: 设置 `SHOW_MARKER = False`。 **Q: 程序显示"无法启用DPI感知"怎么办?** - A: 这通常不影响正常使用,但如果点击位置有偏差,可以尝试以管理员权限运行程序。 ## 许可证 写着玩儿的,纯娱乐,随便用 [MIT License](LICENSE)