我正在尝试在Windows 10上编写一个批处理文件,允许我在运行它时在我的耳机和扬声器之间切换为默认音频设备。我不想使用任何第三方软件。
我试着四处寻找,但我只找到了似乎不起作用的旧脚本,并且还引用了HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\
一条似乎不再存在的路径。我在Windows 10注册表中找不到关于此的任何信息,如果我不确定我在做什么,我也不习惯在寄存器上摆弄太多。
我正在尝试在Windows 10上编写一个批处理文件,允许我在运行它时在我的耳机和扬声器之间切换为默认音频设备。我不想使用任何第三方软件。
我试着四处寻找,但我只找到了似乎不起作用的旧脚本,并且还引用了HKCU:\Software\Microsoft\Windows\CurrentVersion\Applets\Volume Control\
一条似乎不再存在的路径。我在Windows 10注册表中找不到关于此的任何信息,如果我不确定我在做什么,我也不习惯在寄存器上摆弄太多。
Answers:
我感谢您不希望使用任何第三方软件,但作为一个选项,如果您不介意使用~100kb exe,您可以使用Nircmd命令:
nircmd setdefaultsounddevice "Speakers" 1
要么
nircmd setdefaultsounddevice "Headphones" 1
您需要确保使用下面列出的音频设备的确切名称Playback Devices
(右键单击系统托盘中的声音控件)。将它们重命名Properties
为更简单的名称可能更容易,特别是如果名称以任何方式发生冲突。
将1
在命令的末尾表示“默认设备”。使用2
表示“默认通信设备”。
如果你真的不想使用第三方工具,这里是一个注册表项的差异,当我改变我的默认声音设备似乎改变了,它可能对你有用,但我不知道究竟是什么它正在做。它不像1或0那么简单,表明它是否是默认值,看起来如此。
由于Windows 8(或可能更早?)PC的音频配置存储在HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\MMDevices\Audio\Render
。在Render
GUID命名的键下面,每个键都包含DeviceState
root的dword值。但它是如何编码的?
所以powershell / bat脚本在1和2之间切换应该可以解决问题。
编辑:要获得人类可读的设备名称,请{b3f8fa53-0004-438e-9003-51a46e139bfc},6
在Properties
子项下阅读