设备启用/禁用脚本

fel*_*doh 5 audio scripting programming-languages device-manager windows-7-x64

我在自己制作的计算机上安装了Windows 7 64位专业版,因此​​没有制造商可以提出要求.我正在使用具有7.1和光输出的板载声卡.光学输出插入一个控制扬声器的天龙放大器.

我有一个扬声器系统通过我的声卡上的光学端口插入我的电脑.当我使用标准的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和Batch Scripting以及Powershell,并且对C,C++和C#.NET有一定的了解.

任何和所有的帮助将不胜感激

亲切的问候
德克斯特

小智 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*"
Run Code Online (Sandbox Code Playgroud)

问候,

朋友