# 窗口鼠标坐标追踪器使用说明

**作者**: BS  
**微信**: duyanbz  
**版本**: 1.0  
**更新时间**: 2026-01-05

---

## 📋 功能概述

窗口鼠标坐标追踪器是一个基于Python和tkinter开发的实用工具，专门用于实时追踪和记录鼠标在指定窗口内的坐标位置。该工具具有强大的窗口管理功能、实时坐标显示、坐标复制等特性，广泛应用于GUI自动化、游戏辅助、界面测试等场景。

## 🎯 主要功能

### 1. 窗口绑定与追踪
- **自动窗口检测**: 实时扫描并显示系统所有可见窗口
- **窗口绑定**: 支持将鼠标追踪绑定到指定窗口
- **相对坐标计算**: 自动计算鼠标相对于绑定窗口的坐标
- **实时坐标显示**: 实时显示鼠标的窗口内坐标和全局坐标

### 2. 坐标记录与复制
- **一键复制**: 按C键快速复制当前鼠标坐标
- **批量复制**: 点击"复制全部坐标"按钮，复制所有记录的历史坐标
- **历史管理**: 显示所有复制过的坐标历史记录
- **格式标准**: 坐标格式为`[x,y]`，支持批量复制时用换行符分隔

### 3. 智能状态显示
- **绑定状态**: 实时显示当前窗口绑定状态
- **坐标状态**: 显示鼠标是否在窗口内，以及具体坐标信息
- **复制状态**: 显示最近一次复制操作的结果
- **调试信息**: 提供详细的调试信息（可关闭）

### 4. 窗口管理功能
- **窗口置顶**: 自动将绑定窗口提到前台
- **窗口恢复**: 如果窗口最小化，自动恢复窗口
- **窗口验证**: 自动验证窗口句柄的有效性
- **异常处理**: 优雅处理窗口关闭等异常情况

## 🚀 安装与运行

### 环境要求
- **操作系统**: Windows 7/8/10/11
- **Python版本**: 3.10+


### 依赖库安装
在命令行中执行以下命令安装必要的依赖库：

```bash
pip install pywin32
pip install pygetwindow
pip install pyperclip
pip install pynput
```

### 运行程序
1. 确保已安装所有依赖库
2. 双击运行 `mouse_tracker.py` 文件
3. 或在命令行中执行: `python mouse_tracker.py`

## 📖 详细使用教程

### 第一步：启动程序
运行程序后，您将看到一个500x400像素的窗口，包含以下主要区域：

```
┌─────────────────────────────────────────────┐
│          窗口鼠标坐标追踪器                    │
├─────────────────────────────────────────────┤
│ 选择窗口                                      │
│ ┌─────────────────────────────────────────┐ │
│ │ 窗口列表...                              │ │
│ └─────────────────────────────────────────┘ │
│ [刷新窗口列表] [绑定选中窗口]                  │
├─────────────────────────────────────────────┤
│ 状态信息                                      │
│ 状态: 未绑定                                 │
│ 窗口: 无                                     │
│ 句柄: 无                                     │
│ 坐标: ---                                   │
├─────────────────────────────────────────────┤
│ 复制功能 (按C键复制当前坐标)                   │
│ 复制状态: 等待复制...                        │
│ ┌─────────────────────────────────────────┐ │
│ │ 暂无复制历史                            │ │
│ └─────────────────────────────────────────┘ │
│ [清空历史] [复制全部坐标]                      │
├─────────────────────────────────────────────┤
│ [解绑窗口] [测试坐标获取]                      │
└─────────────────────────────────────────────┘
```

### 第二步：选择目标窗口
1. **查看窗口列表**: 程序启动后会自动扫描并显示所有可见窗口
2. **刷新窗口列表**: 如果窗口列表没有更新，点击"刷新窗口列表"按钮
3. **选择窗口**: 在窗口列表中点击选择您要追踪坐标的目标窗口
4. **窗口信息**: 选择后可以看到窗口标题和句柄信息

### 第三步：绑定窗口
1. **点击绑定**: 选中目标窗口后，点击"绑定选中窗口"按钮
2. **确认绑定**: 程序会显示绑定成功的消息框
3. **窗口置顶**: 程序会自动将目标窗口提到前台并激活
4. **状态更新**: 界面状态会更新为"已绑定"

### 第四步：坐标追踪
绑定窗口后，您可以：
1. **移动鼠标**: 将鼠标移动到绑定窗口内
2. **实时显示**: 坐标标签会实时显示窗口内坐标和全局坐标
3. **状态指示**: 
   - 绿色背景：鼠标在窗口内
   - 红色背景：鼠标在窗口外
   - 橙色背景：等待鼠标进入窗口

### 第五步：坐标复制
#### 单个坐标复制（推荐）
- **按键复制**: 直接按键盘上的"C"键
- **即时生效**: 按键后会立即复制当前鼠标坐标到剪贴板
- **格式标准**: 复制的格式为`[x,y]`，例如`[123,456]`

#### 批量坐标复制
- **复制全部**: 点击"复制全部坐标"按钮
- **包含换行**: 所有坐标会用换行符分隔，格式为：
  ```
  [123,456]
  [234,567]
  [345,678]
  ```
- **历史记录**: 所有复制操作都会记录在历史列表中
- **最新标记**: 最新复制的坐标会用"▶"符号标记

### 第六步：历史管理
1. **查看历史**: 复制历史区域显示所有复制过的坐标
2. **清空历史**: 点击"清空历史"按钮清除所有记录
3. **状态反馈**: 每次操作都会显示相应的状态信息

## 🔧 高级功能

### 测试坐标获取
- **功能说明**: 点击"测试坐标获取"按钮可以测试当前鼠标位置
- **详细信息**: 显示当前鼠标的全局坐标、所在窗口、窗口句柄等
- **应用场景**: 用于验证坐标获取的准确性

### 调试模式
- **开启方式**: 程序默认开启调试模式
- **调试信息**: 在界面底部显示详细的调试信息
- **关闭方法**: 可以修改代码中的`debug_mode = False`来关闭调试信息

### 异常处理
- **窗口关闭**: 如果绑定的窗口被关闭，程序会自动解除绑定
- **权限问题**: 对于某些特殊窗口，可能会出现权限限制
- **错误提示**: 所有错误都会有相应的提示信息

## 📊 坐标格式说明

### 单个坐标格式
```
[x,y]
```
- `x`: 鼠标相对于绑定窗口左边缘的像素距离
- `y`: 鼠标相对于绑定窗口上边缘的像素距离
- 坐标原点(0,0)位于绑定窗口的左上角

### 批量坐标格式
```
[123,456]
[234,567]
[345,678]
[456,789]
```
- 每个坐标占一行
- 使用换行符(\n)分隔
- 便于在其他程序中批量处理

## 🎮 应用场景

### 1. GUI自动化
- **自动化脚本**: 为自动化脚本收集精确的坐标点
- **界面测试**: 测试软件界面的响应性和准确性
- **用户行为模拟**: 模拟用户的鼠标操作路径

### 2. 游戏辅助
- **坐标收集**: 收集游戏中重要位置的坐标
- **脚本编写**: 为游戏脚本提供准确的点击位置
- **辅助工具**: 开发各种游戏辅助工具

### 3. 界面开发
- **UI调试**: 调试用户界面的布局和响应
- **截图标记**: 在截图中标记重要位置
- **原型验证**: 验证界面设计的可用性

### 4. 数据采集
- **坐标数据**: 收集大量坐标数据用于分析
- **模式识别**: 分析用户的操作模式和习惯
- **行为研究**: 研究用户与界面的交互行为

## ⚠️ 注意事项

### 系统权限
- **管理员权限**: 某些系统操作可能需要管理员权限
- **防火墙**: 确保程序能够正常访问系统API
- **杀毒软件**: 可能需要将程序添加到杀毒软件白名单

### 性能考虑
- **刷新频率**: 程序默认50Hz刷新频率，如需调整可修改代码
- **内存使用**: 大量历史记录会占用内存，建议定期清空
- **CPU占用**: 全局键盘监听会占用少量CPU资源

### 兼容性说明
- **操作系统**: 主要针对Windows系统优化
- **显示器**: 在多显示器环境下可能需要调整
- **DPI缩放**: 高DPI显示器可能需要调整程序设置

## 🔧 故障排除

### 常见问题
1. **无法绑定窗口**
   - 确认窗口已完全加载
   - 尝试以管理员身份运行
   - 检查窗口是否被其他程序占用

2. **坐标不准确**
   - 确认窗口没有被缩放或变形
   - 检查是否在多显示器环境下使用
   - 尝试重新绑定窗口

3. **复制功能不工作**
   - 确认已安装pyperclip库
   - 检查剪贴板权限
   - 重启程序尝试

4. **程序无法启动**
   - 检查Python版本是否兼容
   - 确认所有依赖库已正确安装
   - 查看错误信息进行针对性解决

### 错误代码说明
- **"无效的窗口句柄"**: 窗口句柄无效，可能窗口已关闭
- **"窗口列表为空"**: 系统无法获取窗口列表
- **"选中的窗口索引无效"**: 窗口选择异常
- **"鼠标不在绑定窗口内"**: 当前鼠标位置不在绑定窗口内

## 📞 技术支持

### 联系方式
- **作者**: BS
- **微信**: duyanbz
- **技术支持**: 如遇到问题请通过微信联系

### 更新日志
- **v1.0** (2026-01-05): 初始版本发布
  - 基础窗口绑定功能
  - 实时坐标追踪
  - 坐标复制功能
  - 历史记录管理

### 未来计划
- [ ] 支持多窗口同时追踪
- [ ] 添加坐标点绘制功能
- [ ] 支持导出坐标数据为CSV格式
- [ ] 添加快捷键自定义功能
- [ ] 优化界面布局和用户体验

---

**感谢使用窗口鼠标坐标追踪器！**

如有任何问题或建议，欢迎通过微信 `duyanbz` 联系我，我会尽快回复并改进产品。