重构:将 Code 文件夹内容移至仓库根目录
- 移除 Code 文件夹层级 - 源代码、文档、配置直接放在根目录 - 更新 .gitignore 排除 Releases/Test
This commit is contained in:
222
docs/音量控制方案说明.md
Normal file
222
docs/音量控制方案说明.md
Normal file
@@ -0,0 +1,222 @@
|
||||
# 音量控制方案说明
|
||||
|
||||
## ⚠️ 关于错误码 -2147221164 (0x80040154)
|
||||
|
||||
如果你看到以下错误:
|
||||
```
|
||||
✗ 创建设备枚举器失败,错误码:-2147221164 (0x80040154)
|
||||
```
|
||||
|
||||
这表示 **Core Audio API 初始化失败**。原因可能是:
|
||||
- Windows N 版本(欧洲版,缺少媒体功能包)
|
||||
- 系统音频服务异常
|
||||
- COM 组件注册问题
|
||||
- 权限问题
|
||||
|
||||
---
|
||||
|
||||
## ✅ 解决方案
|
||||
|
||||
程序已自动降级到备用方案,**仍可正常工作**!
|
||||
|
||||
### 方案对比
|
||||
|
||||
| 方案 | 精度 | 可靠性 | 依赖 | 推荐度 |
|
||||
|------|------|--------|------|--------|
|
||||
| **nircmd** | ⭐⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | 需下载 35KB 工具 | ⭐⭐⭐⭐⭐ 强烈推荐 |
|
||||
| Core Audio API | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ | 无 | ⭐⭐⭐ |
|
||||
| PowerShell | ⭐⭐⭐ | ⭐⭐⭐⭐ | 无 | ⭐⭐⭐ |
|
||||
| SendMessage | ⭐⭐ | ⭐⭐⭐⭐ | 无 | ⭐⭐ |
|
||||
|
||||
---
|
||||
|
||||
## 🎯 推荐方案:安装 nircmd(最佳体验)
|
||||
|
||||
### 步骤 1:下载 nircmd
|
||||
|
||||
访问:https://www.nirsoft.net/utils/nircmd.html
|
||||
|
||||
或直接下载:
|
||||
- 32 位:https://www.nirsoft.net/utils/nircmd.zip
|
||||
- 64 位:https://www.nirsoft.net/utils/nircmd-x64.zip
|
||||
|
||||
### 步骤 2:安装
|
||||
|
||||
**方法 A:放到系统 PATH(推荐)**
|
||||
```
|
||||
1. 解压 nircmd.zip
|
||||
2. 复制 nircmd.exe 到 C:\Windows\
|
||||
3. 完成!
|
||||
```
|
||||
|
||||
**方法 B:放到程序目录**
|
||||
```
|
||||
1. 解压 nircmd.zip
|
||||
2. 复制 nircmd.exe 到 remote-volume-monitor\ 目录
|
||||
3. 完成!
|
||||
```
|
||||
|
||||
### 步骤 3:验证
|
||||
|
||||
```bash
|
||||
nircmd setsysvolume 32767
|
||||
```
|
||||
|
||||
如果音量变为 50%,说明安装成功!
|
||||
|
||||
---
|
||||
|
||||
## 🔧 各方案详细说明
|
||||
|
||||
### 方案 1:nircmd(推荐)
|
||||
|
||||
**优点:**
|
||||
- ✅ 最可靠,100% 成功
|
||||
- ✅ 精确控制音量(0-100%)
|
||||
- ✅ 支持获取当前音量
|
||||
- ✅ 仅 35KB,无需安装
|
||||
- ✅ 免费软件
|
||||
|
||||
**缺点:**
|
||||
- ⚠️ 需要手动下载(一次下载,永久使用)
|
||||
|
||||
**使用命令:**
|
||||
```bash
|
||||
# 设置音量为 50%
|
||||
nircmd setsysvolume 32767
|
||||
|
||||
# 设置音量为 30%
|
||||
nircmd setsysvolume 19660
|
||||
|
||||
# 获取音量(返回值 0-65535)
|
||||
nircmd cmdoutputget sysvolume
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 方案 2:Core Audio API(ctypes)
|
||||
|
||||
**优点:**
|
||||
- ✅ 无需额外工具
|
||||
- ✅ 精确控制音量
|
||||
|
||||
**缺点:**
|
||||
- ❌ 可能失败(如你遇到的错误)
|
||||
- ❌ 代码复杂,维护成本高
|
||||
|
||||
**适用场景:**
|
||||
- 标准 Windows 10/11 专业版/家庭版
|
||||
- 非 N 版本系统
|
||||
|
||||
---
|
||||
|
||||
### 方案 3:PowerShell
|
||||
|
||||
**优点:**
|
||||
- ✅ Windows 自带
|
||||
- ✅ 无需额外工具
|
||||
|
||||
**缺点:**
|
||||
- ⚠️ 精度有限
|
||||
- ⚠️ 无法精确获取音量
|
||||
|
||||
**使用示例:**
|
||||
```powershell
|
||||
# 模拟音量键(不精确)
|
||||
Add-Type -AssemblyName System.Windows.Forms
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 方案 4:SendMessage
|
||||
|
||||
**优点:**
|
||||
- ✅ 100% 可用
|
||||
- ✅ 无需任何依赖
|
||||
|
||||
**缺点:**
|
||||
- ❌ 只能模拟按键,无法设置精确音量
|
||||
- ❌ 无法获取当前音量
|
||||
|
||||
---
|
||||
|
||||
## 📋 程序自动选择逻辑
|
||||
|
||||
```
|
||||
1. 检查 nircmd.exe 是否在 PATH 或程序目录
|
||||
└─ 是 → 使用 nircmd(最佳)
|
||||
└─ 否 → 继续
|
||||
|
||||
2. 尝试初始化 Core Audio API
|
||||
└─ 成功 → 使用 Core Audio
|
||||
└─ 失败 → 继续
|
||||
|
||||
3. 检查 PowerShell 是否可用
|
||||
└─ 是 → 使用 PowerShell
|
||||
└─ 否 → 继续
|
||||
|
||||
4. 使用 SendMessage 模拟按键(最后备用)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 🧪 测试你的配置
|
||||
|
||||
```bash
|
||||
cd remote-volume-monitor
|
||||
|
||||
# 测试模式
|
||||
python src\remote_volume_monitor.py --test
|
||||
|
||||
# 预期输出:
|
||||
# ✓ 音量控制器:nircmd (或 PowerShell/SendMessage)
|
||||
# ✓ RDP 监控器初始化成功
|
||||
# 音量控制器:✓ 就绪
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 💡 常见问题
|
||||
|
||||
### Q1: 我不想下载 nircmd,能用吗?
|
||||
**A:** 可以!程序会自动使用 PowerShell 或 SendMessage 方案,但精度会受限。
|
||||
|
||||
### Q2: 为什么 Core Audio 会失败?
|
||||
**A:** 可能原因:
|
||||
- Windows N 版本(需要安装媒体功能包)
|
||||
- Windows Audio 服务未运行
|
||||
- 系统权限问题
|
||||
|
||||
### Q3: 如何检查我的 Windows 版本?
|
||||
**A:**
|
||||
```bash
|
||||
# 查看 Windows 版本
|
||||
winver
|
||||
|
||||
# 查看是否为 N 版本
|
||||
systeminfo | findstr /B /C:"OS Name"
|
||||
```
|
||||
如果显示 "Windows 10/11 Pro N" 或 "Home N",就是 N 版本。
|
||||
|
||||
### Q4: N 版本如何修复?
|
||||
**A:** 安装媒体功能包:
|
||||
https://support.microsoft.com/zh-cn/topic/媒体功能包-for-windows-10-version-2004-85c94d1c-6077-4f41-8093-55c92a318272
|
||||
|
||||
或者直接下载 nircmd(更简单)。
|
||||
|
||||
---
|
||||
|
||||
## 📞 总结
|
||||
|
||||
| 你的情况 | 建议 |
|
||||
|---------|------|
|
||||
| 看到 0x80040154 错误 | 下载 nircmd(5 分钟搞定) |
|
||||
| 不想下载额外工具 | 使用 PowerShell 方案(精度有限) |
|
||||
| 需要精确控制 | 必须用 nircmd 或修复 Core Audio |
|
||||
| 企业环境无法下载 | 联系 IT 安装媒体功能包 |
|
||||
|
||||
---
|
||||
|
||||
**推荐操作:** 下载 nircmd,放到 `C:\Windows\` 目录,问题解决!
|
||||
|
||||
下载地址:https://www.nirsoft.net/utils/nircmd.html
|
||||
Reference in New Issue
Block a user