RECKY 发表于 2022-6-16 23:25:32

USB声卡/耳机随机不是默认设备

本帖最后由 RECKY 于 2024-12-2 15:50 编辑

问题环境:
       易乐游2.3.7.0

问题现象:
      客户机USB声卡/耳机随机不是默认设备。
      

问题解决:
       这种情况优先使用:传送门   的教程,设置下。设置后发现没有效果,自动获取的USB设备只有一个,导致批处理自动结束,这里为修改过程。可以直接跳到文章底部拿文件↓↓↓
       原批处理:
      @echo off
::读取USB声卡设备信息保存到usb.txt文件
devcon64 find usb\class_01 >usb.txt

::判断USB声卡数量
for /f "tokens=2 delims=:" %%a in ('find /c /v "" usb.txt')do set/a result=%%a+0
::echo %result%

::USB声卡数量为1,则直接退出,不做任何操作
if %result% ==2 (exit)

::USB声卡数量>1,禁用所有的盒子声卡
devcon64 disable "USB\VID_0D8C&PID_013C"
devcon64 disable "USB\VID_0D8C&PID_000A"

::禁用再启动,避免出现USB声卡XX
:1
::devcon64 disable usb\class_01
::ping 127.0.0.1 -n 2 >nul
::devcon64 enable usb\class_01

         测试运行批处理:
         
devcon64 find usb\class_01 >usb.txt

            打开usb.txt中只获取到一条记录

         
         只有一条记录,USB声卡数量为1,则直接退出,不做任何操作。导致设置不生效。

         因为要将USB声卡设置为默认则需要将批处理修改下:

@echo on
::读取USB声卡设备信息保存到usb.txt文件
::devcon64 find usb\class_01 >usb.txt

::判断USB声卡数量
for /f "tokens=2 delims=:" %%a in ('find /c /v "" usb.txt')do set/a result=%%a+0
::echo %result%

::USB声卡数量为1,则直接退出,不做任何操作
if %result% ==2 (exit)

::USB声卡数量>1,禁用所有的盒子声卡
devcon64 disable "USB\VID_2B0D&PID_0031&MI_00\6&318F3969&0&0000"
devcon64 disable "USB\VID_2B0D&PID_0031&MI_00"
devcon64 disable "USB\VID_2B0D&PID_0031&REV_0100&MI_00"
devcon64 disable "USB\VID_2B0D&PID_0031&MI_00"
devcon64 disable "USB\Class_01&SubClass_01&Prot_00"
devcon64 disable "USB\Class_01&SubClass_01"
devcon64 disable "USB\Class_01"
devcon64 disable "USB\VID_0955&PID_9000"
devcon64 disable "HDAUDIO\FUNC_01"
devcon64 disable "HDAUDIO\FUNC_01&VEN_10DE&DEV_009E&SUBSYS_1458404D&REV_1001"
devcon64 disable "HDAUDIO\FUNC_01&VEN_10DE&DEV_009E&SUBSYS_1458404D"
::禁用再启动,避免出现USB声卡XX
:1
devcon64 disable usb\class_01
ping 127.0.0.1 -n 2 >nul
devcon64 enable usb\class_01
::ping 127.0.0.1
::pause

             修改内容:   
             一、将devcon64 find usb\class_01 >usb.txt改为::devcon64 find usb\class_01 >usb.txt 不执行自动获取。【客户机上可以运行一次后再修改,以便获取默认USB硬件ID信息】
            二、将在::USB声卡数量>1,禁用所有的盒子声卡下方将所有的声卡硬件ID都添加进去【设备管理器-声音、视频和游戏控制器-选择声卡-右击-属性-详细信息-属性:硬件ID-值-右击复制(有多个ID都要复制粘贴)】
            三、在usb.txt 中将第二部的硬件ID都粘贴进去(如下图)
            
            四、将禁用再启动,避免出现USB声卡XX下方的代码修改

::devcon64 disable usb\class_01
::ping 127.0.0.1 -n 2 >nul
::devcon64 enable usb\class_01
         修改为:


devcon64 disable usb\class_01
ping 127.0.0.1 -n 2 >nul
devcon64 enable usb\class_01

          去除前方的::

      最终效果:
         
          批处理流程简单说明下,获取usb.txt的数量【其实这步可有可无,可删除】,禁用硬件ID对应的声卡,只启用USB声卡。




         
          使用方法:将引号中声卡的硬件ID修改为客户机声卡的实际ID后(如上图区域),服务端开机启动项-将start.vbs设置启动程序。   USB PNP 、声卡PNP 都开启。

          已修改USB声卡设置默认:          若不生效是硬件ID不同,记事本打开hub.bat文件替换修改硬件ID,批处理内有说明。



页: [1]
查看完整版本: USB声卡/耳机随机不是默认设备