# 窗口钓鱼自动化脚本 这是一个用于自动化钓鱼操作的Python脚本,可以识别指定窗口并循环发送钓鱼和收杆消息。 ## 功能特点 - 自动查找并激活目标窗口 - 发送钓鱼和收杆文字消息(可自定义内容) - 时间间隔可配置 - 支持有限循环或无限循环 - 完整的日志记录 - 错误处理和重试机制 ## 系统要求 - Python 3.6+ - Windows系统(支持macOS/Linux但可能需要调整) ## 安装依赖 ```bash pip install -r requirements.txt ``` 或者手动安装: ```bash pip install pyautogui pygetwindow ``` ## 使用方法 ### 基本使用 ```bash # 使用默认设置(窗口标题包含"魔兽世界",间隔5秒,无限循环) python main.py # 指定窗口标题和间隔 python main.py --window "游戏窗口" --interval 10.0 # 指定循环次数 python main.py --window "游戏窗口" --cycles 100 # 测试模式(检查功能是否正常) python main.py --test ``` ### 命令行参数 | 参数 | 简写 | 默认值 | 说明 | |------|------|--------|------| | `--window` | `-w` | `"魔兽世界"` | 目标窗口标题(支持部分匹配) | | `--interval` | `-i` | `5.0` | 钓鱼和收杆之间的时间间隔(秒) | | `--cycles` | `-c` | `0` | 循环次数(0表示无限循环) | | `--test` | `-t` | `False` | 测试模式,只运行一个周期并显示详细信息 | ### 自定义消息 如果需要修改发送的钓鱼/收杆消息内容,请编辑 `main.py` 文件中的以下方法: 1. `send_fishing_message()` - 默认输入 "钓鱼" 文字 2. `send_reel_message()` - 默认输入 "收杆" 文字 可以修改为其他文字或按键操作,例如: ```python # 改为其他文字 pyautogui.typewrite('开始钓鱼') # 改为按键操作 pyautogui.press('f') # 组合键发送 pyautogui.hotkey('enter') ``` ## 稳定性验证 脚本包含以下稳定性措施: 1. **错误处理**:所有关键操作都有try-catch保护 2. **日志记录**:详细日志记录到文件和终端 3. **窗口重试**:每次循环都会重新查找窗口,避免窗口丢失 4. **用户中断**:支持Ctrl+C安全退出 5. **资源管理**:循环间有短暂暂停,避免CPU占用过高 ### 验证方法 1. **功能测试**: ```bash python main.py --test ``` 检查是否能正确找到窗口、激活窗口。 2. **短期运行测试**: ```bash python main.py --cycles 10 --interval 2 ``` 运行10个周期,观察是否有错误。 3. **日志检查**: 查看 `fishing_bot.log` 文件,确认没有异常错误。 4. **压力测试**: ```bash # 长时间运行(如1000个周期) python main.py --cycles 1000 --interval 5 ``` ## 注意事项 1. **窗口焦点**:脚本需要激活目标窗口,期间不要操作鼠标键盘 2. **时间间隔**:根据实际游戏需要调整间隔时间 3. **防检测**:某些游戏禁止自动化,使用前请了解游戏规则 4. **分辨率**:脚本不依赖于屏幕坐标,但窗口需要可见 5. **中文输入**:脚本直接输入中文字符,请确保输入法处于英文状态或游戏支持直接输入 6. **回车确认**:如需在输入后按回车发送,可在`typewrite()`后添加`pyautogui.press('enter')` ## 故障排除 ### 找不到窗口 - 确认窗口标题正确 - 窗口是否最小化或隐藏 - 尝试使用部分标题匹配 ### 消息不起作用 - 确认游戏窗口处于激活状态 - 检查输入法状态,确保处于英文输入模式 - 确认游戏聊天框已打开并可以输入文字 - 如需回车发送,在代码中添加`pyautogui.press('enter')` - 尝试增加激活后的等待时间 ### 权限问题 - 以管理员身份运行(某些游戏需要) - 关闭杀毒软件或防火墙的干扰 ## 许可证 MIT License