Files
remote-volume-monitor/Code/验证轮询生效.md
Agent 45e7d9553a Initial commit - 按新规范整理目录结构
- Code/: 源代码、配置文件、文档、工具
- Releases/: 发布包(v1.0)
- Test/: 测试用例和测试脚本
2026-03-20 06:54:40 +08:00

270 lines
6.1 KiB
Markdown
Raw 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.
# 验证轮询检测生效的方法
## 🎯 方法 1查看实时日志最简单
### 步骤 1启动程序
```bash
cd D:\Software\remote-volume-monitor
python src\remote_volume_monitor.py
```
### 步骤 2打开日志文件
```
D:\Software\remote-volume-monitor\logs\remote_volume.log
```
用记事本或 VS Code 打开,**实时查看更新**。
### 步骤 3观察日志输出
**正常轮询的日志特征:**
```
2026-03-07 19:xx:xx - INFO - 🚀 监控器已启动(轮询模式)
2026-03-07 19:xx:xx - INFO - 📊 检测间隔5 秒
2026-03-07 19:xx:xx - INFO - 🔍 正在检测 RDP 连接状态...
2026-03-07 19:xx:xx - INFO - ✓ 检测结果:本地会话
2026-03-07 19:xx:05 - INFO - 🔄 第 1 次检测 (5 秒)
2026-03-07 19:xx:05 - INFO - 🔍 正在检测 RDP 连接状态...
2026-03-07 19:xx:05 - INFO - ✓ 检测结果:本地会话
2026-03-07 19:xx:10 - INFO - 🔄 第 2 次检测 (10 秒)
2026-03-07 19:xx:10 - INFO - 🔍 正在检测 RDP 连接状态...
2026-03-07 19:xx:10 - INFO - ✓ 检测结果:本地会话
2026-03-07 19:xx:15 - INFO - 🔄 第 3 次检测 (15 秒)
...
```
**关键验证点:**
- ✅ 每隔 5 秒出现一次 `🔄 第 N 次检测`
- ✅ 时间戳递增,间隔均匀
- ✅ 检测次数持续增加
---
## 🎯 方法 2使用 PowerShell 实时监控日志
### 命令:
```powershell
# 实时监控日志文件(类似 tail -f
Get-Content D:\Software\remote-volume-monitor\logs\remote_volume.log -Wait -Tail 20
```
**效果:**
- 日志会实时滚动显示
- 每 5 秒看到一次新的检测记录
- 按 Ctrl+C 停止监控
---
## 🎯 方法 3RDP 连接/断开测试
### 步骤 1启动程序并记录当前状态
```bash
python src\remote_volume_monitor.py
```
### 步骤 2打开日志文件观察
```
logs\remote_volume.log
```
### 步骤 3用另一台电脑 RDP 连接到此电脑
**观察日志变化:**
```
2026-03-07 19:xx:xx - INFO - 🔄 第 N 次检测 (xx 秒)
2026-03-07 19:xx:xx - INFO - 🔍 正在检测 RDP 连接状态...
2026-03-07 19:xx:xx - INFO - ✓ 检测到 RDP 会话(环境变量)
2026-03-07 19:xx:xx - INFO - 🔔 检测到远程连接
2026-03-07 19:xx:xx - INFO - ✓ 音量已设置为 30% (nircmd)
```
### 步骤 4断开 RDP 连接
**观察日志变化:**
```
2026-03-07 19:xx:xx - INFO - 🔄 第 N 次检测 (xx 秒)
2026-03-07 19:xx:xx - INFO - 🔍 正在检测 RDP 连接状态...
2026-03-07 19:xx:xx - INFO - ✓ 检测结果:本地会话
2026-03-07 19:xx:xx - INFO - 🔔 检测到远程断开
2026-03-07 19:xx:xx - INFO - ✓ 音量已设置为 80% (nircmd)
```
---
## 🎯 方法 4使用任务管理器验证
### 步骤 1启动程序
### 步骤 2打开任务管理器
```
Ctrl + Shift + Esc
```
### 步骤 3查看 Python 进程
**观察:**
- ✅ Python 进程持续运行
- ✅ CPU 占用极低(<0.1%
- ✅ 内存占用稳定(约 20-30MB
**如果轮询停止:**
- ❌ 进程消失
- ❌ 日志不再更新
- ❌ RDP 连接/断开无反应
---
## 🎯 方法 5修改检测间隔验证
### 步骤 1编辑配置文件
```
config\config.ini
```
### 步骤 2修改检测间隔
```ini
[monitor]
# 改为 2 秒(更容易观察)
check_interval = 2
```
### 步骤 3重启程序
```bash
python src\remote_volume_monitor.py
```
### 步骤 4观察日志
**应该看到:**
```
🔄 第 1 次检测 (2 秒)
🔄 第 2 次检测 (4 秒)
🔄 第 3 次检测 (6 秒)
...
```
**如果间隔变成 2 秒,说明轮询配置生效!**
---
## 🎯 方法 6添加自定义日志标记
如果你想更明显地看到轮询,可以临时修改代码:
### 编辑 `src/remote_volume_monitor.py`
找到 `run()` 方法,添加自定义输出:
```python
def run(self):
logger.info("🚀 监控器已启动")
detection_count = 0
start_time = time.time()
try:
while True:
time.sleep(self.check_interval)
detection_count += 1
elapsed = int(time.time() - start_time)
# 添加这行,更明显的标记
print(f"【轮询心跳】第 {detection_count} 次 - {elapsed}秒 - 正常运行的")
logger.info(f"🔄 第 {detection_count} 次检测 ({elapsed}秒)")
self.run_once()
except KeyboardInterrupt:
logger.info(f"👋 已停止")
```
**运行后控制台会显示:**
```
【轮询心跳】第 1 次 - 5 秒 - 正常运行的
【轮询心跳】第 2 次 - 10 秒 - 正常运行的
【轮询心跳】第 3 次 - 15 秒 - 正常运行的
...
```
---
## 📊 快速验证清单
用这个清单快速确认轮询是否正常:
- [ ] 程序启动后没有立即退出
- [ ] 日志文件持续有新内容
- [ ] 每隔 5 秒出现一次检测记录
- [ ] 检测次数持续增加1, 2, 3...
- [ ] Python 进程在任务管理器中可见
- [ ] RDP 连接时音量自动变化
- [ ] RDP 断开时音量自动恢复
**全部打勾 = 轮询正常工作!**
---
## 🔍 故障排查
### 问题 1日志不更新
**可能原因:**
- 程序已崩溃
- 日志文件路径错误
- 权限问题
**解决:**
```bash
# 重新运行
python src\remote_volume_monitor.py --test
```
### 问题 2检测间隔不均匀
**可能原因:**
- 系统资源紧张
- 检测逻辑卡住
- 磁盘 I/O 慢
**解决:**
- 检查 CPU/内存占用
- 查看日志中的错误信息
- 增加检测间隔到 10 秒
### 问题 3RDP 连接/断开无反应
**可能原因:**
- 检测逻辑问题
- 环境变量未更新
- 配置错误
**解决:**
```bash
# 运行诊断工具
python src\test_rdp_detection.py
```
---
## 💡 推荐验证流程
**最快验证方法2 分钟):**
1. 启动程序
```bash
python src\remote_volume_monitor.py
```
2. 打开日志文件(用记事本)
```
D:\Software\remote-volume-monitor\logs\remote_volume.log
```
3. 等待 15 秒,观察是否有 3 条新的检测记录
4. 用另一台电脑 RDP 连接,观察音量是否自动降低
5. 断开 RDP观察音量是否自动恢复
**完成以上步骤 = 轮询完全正常!**
---
*如果还有疑问,把日志文件内容发我,我帮你分析!*