以编程方式更改播放设备xp

时间:2010-11-06 23:13:53

标签: c# .net windows windows-xp .net-3.5

如何更改当前正在使用的声卡(xp),而无需进入控制面板>声音设备>选择播放设备。

任何语言都足够,或者批处理文件,只需要每天更换设备进行大约50次播放,每次都需要加载控制面板。

如何?

1 个答案:

答案 0 :(得分:3)

要在Windows XP中设置默认声音播放设备,您可以更改以下注册表项的值:

HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper\Playback

对于您希望能够从安装中选择的所有设备的现有配置,可能最容易做的事情是在声音和音频设备属性控件中一次选择一个声音播放设备面板并将此注册表项的设置导出到文件。因此,如果您有3个声音播放设备,您希望能够在它们之间进行选择,那么最终会有3个单独的.REG文件,每个文件对应一个播放设备。否则,您必须动态地以编程方式生成注册表项文件。

生成这些.REG文件后,只需在资源管理器中双击其中一个文件,就会将其中包含的信息插入注册表中的相应位置,这将选择相应的播放设备。您可以以编程方式轻松执行这些注册表脚本。在C#中,您可能会使用System.Diagnostics.Process.Start之类的内容并传递要生效的.REG文件的位置。或者,您可以编写一个简单的批处理文件,静默导入注册条目文件,而无需确认:

@echo off
%windir%\regedit.exe /s ExternalSpeakers.reg

毋庸置疑,在应用此解决方案并手动编辑注册表时,您将对您在安装Windows时可能造成的任何破坏承担全部责任。

(我知道Windows XP解决方案是提问者正在寻找的解决方案,但对于未来的任何Google员工,请注意,这不适用于Windows Vista或更高版本,后者使用Core Audio APIs来管理这些设置。有关解决方案,请参阅this question。)