Scripting 设备启用/禁用脚本

Scripting 设备启用/禁用脚本,scripting,programming-languages,audio,windows-7-x64,device-manager,Scripting,Programming Languages,Audio,Windows 7 X64,Device Manager,我在自己制造的计算机上安装了Windows7 64位专业版,因此没有制造商要求。我使用的是车载声卡,它有7.1和光学输出。光学输出插入控制扬声器的Denon放大器 我有一个扬声器系统通过声卡上的光学端口插入我的电脑。当我使用标准windows驱动程序时,我只获得立体声输出,因此我安装了Realtek HD音频驱动程序。这成功地为我提供了环绕声,但它没有将其作为标准扬声器连接,因此当我插入耳机并将其定义为耳机时,不会发生任何情况,音频仍会传输到扬声器系统,而不会传输到耳机 我发现,如果禁用播放设备

我在自己制造的计算机上安装了Windows7 64位专业版,因此没有制造商要求。我使用的是车载声卡,它有7.1和光学输出。光学输出插入控制扬声器的Denon放大器

我有一个扬声器系统通过声卡上的光学端口插入我的电脑。当我使用标准windows驱动程序时,我只获得立体声输出,因此我安装了Realtek HD音频驱动程序。这成功地为我提供了环绕声,但它没有将其作为标准扬声器连接,因此当我插入耳机并将其定义为耳机时,不会发生任何情况,音频仍会传输到扬声器系统,而不会传输到耳机

我发现,如果禁用播放设备列表中的数字输出设备,音频会自动通过耳机重新路由。因此,我一直在试图找到一种禁用或启用此设备的方法。我有一个可编程键盘,因此我可以将一个程序或脚本映射到一个备用键,因此我尝试编写一个程序来检查设备是否启用或禁用,然后将其更改为非启用或禁用状态,即如果启用则关闭,如果禁用则打开

我试图找到
1的硬件ID。“HDAUDIO\FUNC_01&venu_10EC&DEV_0888&SUBSYS_105BA601”
2。“HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601&REV_1000”

我计划使用devcon(设备管理器的替代命令行)创建一个批处理脚本,使用下面的代码禁用或启用设备

devcon disable“HDAUDIO\FUNC_01&venu 10EC&DEV_0888&SUBSYS\u 105BA601*”
devcon enable“HDAUDIO\FUNC_01&venu 10EC&DEV_0888&SUBSYS\u 105BA601*”

但是,由于光卡上有光学连接,devcon未能禁用这些设备,我只能禁用整个声卡,这也会禁用耳机

我现在有点不知所措,我真的不想让我弟弟玩禁用设备

我愿意接受任何建议。我很乐意用任何语言来做这件事。我肯定有一种方法可以在c上实现这一点,但我一直找不到关于这方面的任何信息。如果有任何建议,我将不胜感激。我很高兴自己编写这个程序,但如果有人至少能给我指出一个api或类似devcon的东西的正确方向,或者用某种语言的某种方式来实现这一点。目前我对VB6、VB.NET、VB脚本、java和批脚本以及PosiS壳等都有很好的了解,对C++、C++、C、.net、.net、P>有一定的了解。 任何和所有的帮助都将不胜感激


亲切问候德克斯特你可以试试这个:

devcon /r disable @"HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601*"
devcon /r enable @"HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601*"
问候,


Pal

我也有同样的问题,你有没有让它工作过?我最终找到了一个相当简单的解决方案,没有实际的脚本。首先,安装MPCStar和Realtek HD audio manager,并使用Realtek HD audio manager将要使用的适当设备设置为默认设备。然后在更改默认设备后打开MPCStar并跳到下一个视频。MPCStar似乎非常强大,可以捕获当前频道的音频,然后任何新的音频流都会从新的默认设备中出现。我还需要首先在播放设备的高级属性中取消勾选这两个复选框。总结一下,MPCStar+Realtek做到了这一点。只是为了让它更明显一点,在初始设置之后,您所要做的就是在Realtek HD audio manager中更改默认设备,并在MPCStar中播放一些内容以完成设置。由于这个原因,我倾向于让MPCStar保持打开状态,所以在我的情况下,只需额外单击一次即可。对于Win5.x,请使用。对于所有版本: