设备启用/禁用脚本

5
我使用自己搭建的计算机,安装了 Windows 7 64 位专业版操作系统,没有制造商可供咨询。我正在使用一个有7.1声道和光学输出的内置音频卡。光纤输出插在 Denon 声音放大器上,可以控制扬声器。
我通过声卡的光学端口将扬声器系统连接到电脑。当我使用标准 Windows 驱动程序时,只能获得立体声输出,因此我安装了 Realtek HD 音频驱动程序,成功地实现了环绕声,但是无法将其作为标准扬声器,在我插上耳机并将其定义为耳机时,没有任何反应,音频仍然播放在扬声器系统中,而不是耳机里。
我发现,如果在播放设备列表中禁用数字输出设备,音频会自动重新路由到耳机。因此,我一直在努力寻找一种方法来禁用或启用此设备。我有一个可编程键盘,所以我可以将程序或脚本映射到空闲键上,因此我正在尝试编写一个程序来检查该设备是否启用或禁用,然后将其更改为与当前相反的状态,也就是如果启用则禁用,如果禁用则启用。
我试图找到硬件 ID,它们是:
1. “HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601”
2. “HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601&REV_1000”
我计划使用 devcon(设备管理器的命令行替代品)创建一个批处理脚本来使用以下代码禁用或启用设备:
devcon disable “HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601*” devcon enable “HDAUDIO\FUNC_01&VEN_10EC&DEV_0888&SUBSYS_105BA601*”
然而,由于光学连接在声卡上,因此 devcon 无法禁用这些设备,只能禁用整个声卡,这也将禁用耳机。
我现在有点迷茫,真不希望我弟弟需要去玩禁用设备。我愿意尝试任何建议。我可以使用任何编程语言。我确信必须有一种方法可以从 C 中实现这一点,但我找不到任何有关此问题的信息。如果有人能指导我,至少指引我走向正确的方向,比如介绍一个 API 或类似于 devcon 的东西,或者以某种语言的方式来实现,就算不能直接帮我写程序,我也会非常感激。我目前很熟悉 VB6、VB.NET、VB 脚本、Java 和批处理脚本、PowerShell,对 C、C++ 和 C#.NET 也有一些了解。
谢谢您的帮助!
祝好,Dexter

我有同样的问题,你最终解决了吗? - dindenver
我最终找到了一个相当简单的解决方案,没有实际的脚本。首先安装MPCStar和Realtek HD音频管理器,并使用Realtek HD音频管理器将要使用的适当设备设置为默认设备。然后在更改默认设备后打开MPCStar并跳到下一个视频。MPCStar似乎非常强制性地抓取当前通道的音频,然后任何新的音频流都将从新的默认设备输出。我还需要最初取消播放设备的高级属性中的两个复选框。因此,总结一下,MPCStar + Realtek就可以了。 - feldoh
只是为了更加明显,完成初始设置后,您所要做的就是在Realtek HD音频管理器中更改默认设备并在MPCStar中播放一些内容以完成它。我倾向于保持MPCStar处于打开状态,因此在我的情况下,这只是一个额外的点击。 - feldoh
1个回答

2
您可以尝试以下方法:

您可以尝试以下方法:

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

Regards,

Pal


对于 Win5.x,请使用 http://support.microsoft.com/default.aspx?scid=kb;EN-US;Q311272。对于所有版本,请访问 http://www.microsoft.com/en-us/download/details.aspx?id=11800。 - Lizz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接