本帖最后由 RECKY 于 2023-12-28 13:25 编辑
问题环境:
易乐游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,批处理内有说明。
|