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

Rob*_*nik 6 windows-7 device-manager sound-card command-line

我喜欢玩《辐射 3》,它通常有很多 bug,当我添加了一些模组后更是如此。不用说,它崩溃了很多。我可以处理崩溃,唯一的问题是当我的声卡陷入无限循环式播放时。

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

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

Rob*_*nik 2

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

我已经复制了有关如何从此答案中获取该工具的说明:

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

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

devcon.exe findall * > C:\output.txt
Run Code Online (Sandbox Code Playgroud)

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


注意:不幸的是,该批处理仍然需要管理员权限才能运行,但这是一个小问题(我可能会在稍后阶段解决)。但就目前而言,这对我有用。