2010-11-06 37 views
1

如何更改这是在使用(XP)当前声卡,没有进入控制面板>声音设备>选择播放设备。更改播放设备编程XP

任何语言就足够了,或批处理文件,只是,我必须改变设备中进行播放的日期和其各自具有的时间来加载控制面板疼痛约50倍。

有谁知道怎么样?

+0

一个是完美的数字。 – 2010-11-06 23:20:11

+0

控制面板很可能只是更改注册表设置。我会跑将procmon(http://technet.microsoft.com/en-us/sysinternals/bb896645.aspx),仅捕获注册事件,以及设备的开关,然后看进行了哪些注册表更改。一旦找出需要更改默认值的更改,您可以编写一个脚本(从.NET到AutoHotKey的任何内容),为您执行注册表更改。请记住,如果您在注册表中出现错误,可能会永久性地损坏您的音频设备设置。 – patrickmdnet 2010-11-06 23:46:13

+0

可能的重复:http://stackoverflow.com/questions/1555156/c-how-to-programatically-change-the-playback-device – 2010-11-07 10:50:53

回答

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一个解决方案。)