Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式更改播放设备xp_C#_.net_Windows_Windows Xp_.net 3.5 - Fatal编程技术网

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

C# 以编程方式更改播放设备xp,c#,.net,windows,windows-xp,.net-3.5,C#,.net,Windows,Windows Xp,.net 3.5,如何在不进入“控制面板>声音设备>选择播放设备”的情况下更改当前正在使用的xp声卡 任何语言或批处理文件都可以,只是我必须每天更换设备50次,每次都要加载控制面板,这很痛苦 如何设置?要在Windows XP中设置默认的声音播放设备,可以更改以下注册表项的值: HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper\Playback 考虑到您希望能够从安装的所有设备中选择的现有配置,最简单的方法可能是在“声音和音频设备属性”控制

如何在不进入“控制面板>声音设备>选择播放设备”的情况下更改当前正在使用的xp声卡

任何语言或批处理文件都可以,只是我必须每天更换设备50次,每次都要加载控制面板,这很痛苦


如何设置?

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

HKEY_CURRENT_USER\Software\Microsoft\Multimedia\Sound Mapper\Playback
考虑到您希望能够从安装的所有设备中选择的现有配置,最简单的方法可能是在“声音和音频设备属性”控制面板中一次选择一个声音播放设备,并将此注册表项的设置导出到文件中。因此,如果您有3个声音播放设备,您希望能够在其中进行选择,那么最终将得到3个单独的.REG文件,每个文件对应于其中一个播放设备。否则,您必须以编程方式动态生成注册表项文件

生成这些.REG文件后,只需在资源管理器中双击其中一个文件,即可将其包含的信息插入注册表中的适当位置,从而选择相应的播放设备。您可以轻松地以编程方式执行这些注册表脚本。在C语言中,您可以使用和传递要生效的.REG文件的位置。或者,您也可以编写一个简单的批处理文件,以静默方式导入注册条目文件,而无需确认:

@echo off
%windir%\regedit.exe /s ExternalSpeakers.reg
不用说,在应用此解决方案和手动编辑注册表时,您对Windows安装可能造成的任何破坏承担全部责任


我知道询问者正在寻找的是Windows XP解决方案,但对于任何未来的谷歌用户,请注意,这将不适用于Windows Vista或更高版本,后者使用来管理这些设置。有关解决方案,请参阅。

控制面板可能只是在更改注册表设置。我将运行ProcMon,只捕获注册表事件和设备切换,然后查看注册表所做的更改。一旦您确定了更改默认值所需的更改,您就可以编写一个脚本,从.NET到AutoHotKey,它可以为您更改注册表。请记住,如果您在注册表中出错,可能会永久污染音频设备设置。可能的重复:为什么要用.NET Framework 3.5重新标记此设置?这个问题没有指定一个特定的目标框架。不是重复的,链接的问题是针对Vista/7的,那里的音频系统与XP完全不同。