Files
test/README.md
Ke 5065fd4ff5 修改脚本发送文字消息
- 将按键操作改为输入'钓鱼'和'收杆'文字
- 添加输入后的短暂延迟确保输入完成
- 更新文档说明文字消息功能
- 添加中文输入和回车确认注意事项
2026-04-02 15:12:06 +08:00

140 lines
3.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 窗口钓鱼自动化脚本
这是一个用于自动化钓鱼操作的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