是否可以通过命令行切换禁用/启用的设备,类似于设备管理器?

是否可以通过命令行切换禁用/启用的设备,类似于设备管理器?

我喜欢玩《辐射 3》,这款游戏通常漏洞百出,添加一些模组后漏洞就更多了。不用说,游戏经常崩溃。我可以忍受崩溃,唯一的问题是崩溃时我的声卡会陷入无限循环播放。

我可以通过在设备管理器中打开和关闭设备(禁用/启用)来停止循环音频,尽管必须一直进入设备管理器很烦人。所以我希望将这个过程半自动化。

有没有办法使用批处理脚本来打开和关闭设备?这样我就可以将其放在桌面上,并在声卡开始循环时运行它。

答案1

在 Windows 10 上,您可以使用wmic。我更喜欢在 where 子句中使用PNPDeviceID。您可以先查询精确值:

wmic path Win32_PnPEntity where "PNPDeviceID like '%VEN%'" 

一旦拥有它,就可以使用:

wmic path Win32_PNPEntity where "PNPDeviceID='yourPNPDeviceIDname'" call disable

我发现了一些关于 wmic 的非常有用的信息这里

答案2

感谢 and31415 提供的链接,我能够使用设备控制台 (DevCon) 实用程序找到解决方案。

我已经从以下网址复制了有关如何获取该工具的说明这个答案

DevCon是一个命令行工具,可显示有关设备的详细信息,并允许您从命令行搜索和操作设备。DevCon 可启用、禁用、安装、配置和删除本地计算机上的设备,并显示有关本地和远程计算机上的设备的详细信息。

  1. .cab根据操作系统下载相应的包:

  2. 打开.cab档案并提取名为 的文件fil[some letters and numbers]。该文件大约 80 KB。

  3. 将其重命名为devcon.exe

使用此工具,我能够找出声卡的硬件 ID,并使用它来启用和禁用设备。由于我只需要切换设备,因此我的批处理文件如下所示:

devcon.exe disable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"
devcon.exe enable "PCI\VEN_13F6&DEV_8788&SUBSYS_85221043"

那个较长的字符串是硬件设备 ID。为了找到它,我使用了 DevCon 的findall命令,将输出传输到文本文件以便于搜索。

devcon.exe findall * > C:\output.txt

搜索我的设备名称,我复制了我需要的字符串。


笔记:不幸的是,批处理仍然需要管理员权限才能运行,但这只是一个小问题(我可能能够稍后解决)但就目前而言,这对我来说是可行的。

相关内容