Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/161.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
如何通知应用程序默认的声音播放设备已更改? 我在XP SP3 SP3计算机上有两张声卡,我写了一个C++应用程序,通过编辑下面的注册表项: regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Multimedia\Sound Mapper", true);_C++_Windows_Windows Xp_Registry_Soundcard - Fatal编程技术网

如何通知应用程序默认的声音播放设备已更改? 我在XP SP3 SP3计算机上有两张声卡,我写了一个C++应用程序,通过编辑下面的注册表项: regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Multimedia\Sound Mapper", true);

如何通知应用程序默认的声音播放设备已更改? 我在XP SP3 SP3计算机上有两张声卡,我写了一个C++应用程序,通过编辑下面的注册表项: regKey = Registry.CurrentUser.OpenSubKey(@"Software\Microsoft\Multimedia\Sound Mapper", true);,c++,windows,windows-xp,registry,soundcard,C++,Windows,Windows Xp,Registry,Soundcard,我的应用程序更改“播放”键值,以便将第一个或第二个声卡用作默认播放设备 问题是,当我更改默认设备时,应用程序仍然使用旧设备(在程序启动时设置为默认设备)。如果更改后,我再次启动应用程序,一切正常,我可以使用“新的”默认播放设备 我如何“告诉”我的应用程序我已经更改了默认设备?在启动Windows中默认的声音设备时,应用程序以何种方式读取和存储变量?我的问题有什么解决方案吗?注册表本质上是一个存储默认设置的数据库。修改注册表中的值不会导致任何应用程序或Windows本身使用新的更新值重新初始化其设

我的应用程序更改“播放”键值,以便将第一个或第二个声卡用作默认播放设备

问题是,当我更改默认设备时,应用程序仍然使用旧设备(在程序启动时设置为默认设备)。如果更改后,我再次启动应用程序,一切正常,我可以使用“新的”默认播放设备


我如何“告诉”我的应用程序我已经更改了默认设备?在启动Windows中默认的声音设备时,应用程序以何种方式读取和存储变量?我的问题有什么解决方案吗?

注册表本质上是一个存储默认设置的数据库。修改注册表中的值不会导致任何应用程序或Windows本身使用新的更新值重新初始化其设置

还认为,在以后版本的Windows中,这样的事情很有可能发生变化。如果您决定更新到WindowsVista或7,您将再次回到这里询问更多问题,因为您的声音切换应用程序将不再工作。较新版本处理音频设备的方式与XP非常不同;首先,他们现在的总部设在世界各地

因此,出于显而易见的原因,修改注册表值不是修改计算机配置的首选方法

但是,如果您只是想让某个特定的应用程序注意到您已经更改了注册表中的值,那么简单的解决方案是。这实际上是订阅应用程序,以便在每次特定注册表项的值更改时接收通知

Windows Vista及更高版本的正确解决方案是