yyz2191958 发表于 2023-6-10 10:08:36

【已解决】bat或者VBS能不能实现: 禁用声卡,然后启用声卡?谢谢

本帖最后由 yyz2191958 于 2023-6-23 12:31 编辑

已解决,重启声卡.bat:
@echo off

::***********************************************************************************************************
::【重启声卡】
Pecmd.exe kill 龙卷风收音.exe
D:\1绿色软件\刷新托盘图标.exe
:A
devcon disable *DEV_1C20*>nul 2>nul
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\HDAUDIO\FUNC_01&VEN_8086&DEV_2805&SUBSYS_80860101&REV_1000\4&3AD7007D&0&0301" /s |find "CSConfigFlags" >#.txt
::***********************************************************************************************************
::【检测是否禁止成功:即(#.txt中)有无"0x1"(成功跳到:B,不成功跳到:A】
type #.txt|findstr "0x1" >nul 2>&1
if %errorlevel% equ 0 (goto :B) else goto :A
::***********************************************************************************************************
:B
devcon enable *DEV_1C20*>nul 2>nul
devcon enable *DEV_1C20*>nul 2>nul
reg query "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Hardware Profiles\0001\System\CurrentControlSet\Enum\HDAUDIO\FUNC_01&VEN_8086&DEV_2805&SUBSYS_80860101&REV_1000\4&3AD7007D&0&0301" /s |find "CSConfigFlags" >#.txt
::***********************************************************************************************************
::【检测是否启用成功:即(#.txt中)有无"0x0"(成功跳到:C,不成功跳到:B】
type #.txt|findstr "0x0" >nul 2>&1
if %errorlevel% equ 0 (goto :C) else goto :B
:C
Del #.txt
::***********************************************************************************************************
不知道有没有更科学的方法?



窄口牛 发表于 2023-6-10 10:09:19

devcon了解下。

yyz2191958 发表于 2023-6-10 10:13:28

窄口牛 发表于 2023-6-10 10:09
devcon了解下。

我研究一下先

yyz2191958 发表于 2023-6-10 10:15:49

窄口牛 发表于 2023-6-10 10:09
devcon了解下。

我是小白,能不能直接给代码?谢谢

magicgenius 发表于 2023-6-10 10:24:46

禁用、启用?直接重启好了。
例如:
pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"

magicgenius 发表于 2023-6-10 10:26:32

禁用:
/disable-device
启用:
/enable-device

yyz2191958 发表于 2023-6-10 10:28:02

magicgenius 发表于 2023-6-10 10:24
禁用、启用?直接重启好了。
例如:
pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"

X:\windows\System32>pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"
'pnputil' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

yyz2191958 发表于 2023-6-10 10:35:33

magicgenius 发表于 2023-6-10 10:24
禁用、启用?直接重启好了。
例如:
pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"

我从C盘复制一个pnputil.exe过来,提示没有了。也没有解决问题

magicgenius 发表于 2023-6-10 10:36:31

PE里?pnputil 系统自带啊

pnputil /disable-device /deviceid "HDAUDIO\FUNC_01"
pnputil /enable-device /deviceid "HDAUDIO\FUNC_01"
pnputil /restart-device /deviceid "HDAUDIO\FUNC_01"

magicgenius 发表于 2023-6-10 10:37:49

本帖最后由 magicgenius 于 2023-6-10 10:40 编辑

关键是 deviceid

yyz2191958 发表于 2023-6-10 10:40:11

magicgenius 发表于 2023-6-10 10:36
PE里?pnputil 系统自带啊

pnputil /disable-device /deviceid "HDAUDIO\FUNC_01"


是PE里,我从C盘复制一个pnputil.exe过来
没有效果

pengfangzhi 发表于 2023-6-10 11:08:43

为啥要这么操作?

窄口牛 发表于 2023-6-10 11:10:34

yyz2191958 发表于 2023-6-10 10:15
我是小白,能不能直接给代码?谢谢

给不了,需要更多信息才可以。

yyz2191958 发表于 2023-6-10 11:16:11

pengfangzhi 发表于 2023-6-10 11:08
为啥要这么操作?

我想外挂声卡驱动

yyz2191958 发表于 2023-6-10 11:19:46

窄口牛 发表于 2023-6-10 11:10
给不了,需要更多信息才可以。

devcon.exe可以实现:
PCI\VEN_8086&DEV_1C20&SUBSYS_1C208086&REV_05\3&11583659&0&D8: High Definition Audio Controller---是声卡

禁用声卡.bat:
@echo off
devcon disable *DEV_1C20*
pause >nul
exit
*******************************
启用声卡.bat:
@echo off
devcon enable *DEV_1C20*
pause >nul
exit
*************************
不知道有没有更加好的办法?

窄口牛 发表于 2023-6-10 11:51:43

这个比较简单,别的好像pecm有命令也可以。

szwp 发表于 2023-6-10 12:02:55

devconrestart

szwp 发表于 2023-6-10 12:05:46

https://learn.microsoft.com/zh-cn/windows-hardware/drivers/devtest/devcon-restart

yyz2191958 发表于 2023-6-10 12:19:27

szwp 发表于 2023-6-10 12:02
devconrestart

devcon: Invalid use of restart.
For more information, type: devcon help restart

没有效果

2012qnmd 发表于 2023-6-10 14:08:41

devcon.exe remove *DEV_1C20
devcon.exe rescan

yyz2191958 发表于 2023-6-10 14:09:50

2012qnmd 发表于 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan

我试一试 谢谢

yyz2191958 发表于 2023-6-10 14:11:34

2012qnmd 发表于 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan

禁用了,不能够重新启动:
HDAUDIO\FUNC_01&VEN_8086&DEV_2805&SUBSYS_80860101&REV_1000\4&3AD7007D&0&0301: Removed
PCI\VEN_8086&DEV_1C20&SUBSYS_1C208086&REV_05\3&11583659&0&D8: Removed on reboot
HDAUDIO\FUNC_01&VEN_10EC&DEV_0897&SUBSYS_10EC0000&REV_1004\4&3AD7007D&0&0001: Removed
The 3 device(s) are ready to be removed. To remove the devices, reboot the system.
Scanning for new hardware.
Scanning completed.

yyz2191958 发表于 2023-6-10 14:13:47

2012qnmd 发表于 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan

是删除了

窄口牛 发表于 2023-6-10 15:46:30

为啥要重启,设置默认设备不行吗?

yyz2191958 发表于 2023-6-10 15:52:15

窄口牛 发表于 2023-6-10 15:46
为啥要重启,设置默认设备不行吗?

PE下外挂声卡驱动的一个文件,导入注册表。

需要重启声卡一下,才能够生效

batche 发表于 2023-6-10 16:37:48

重启用devconrestart命令不就好了?为啥要禁用再启用?

yyz2191958 发表于 2023-6-10 17:25:38

batche 发表于 2023-6-10 16:37
重启用devconrestart命令不就好了?为啥要禁用再启用?

PE下外挂声卡驱动的一个文件,导入注册表。

需要重启声卡一下,才能够生效

dos时代菜鸟 发表于 2023-6-10 19:42:24

直接用inf 重新安装声卡驱动

yyz2191958 发表于 2023-6-10 20:39:38

dos时代菜鸟 发表于 2023-6-10 19:42
直接用inf 重新安装声卡驱动

这样文件太大(340MB)

dos时代菜鸟 发表于 2023-6-10 21:01:59



pecmd x64 几句话的事儿。


页: [1] 2
查看完整版本: 【已解决】bat或者VBS能不能实现: 禁用声卡,然后启用声卡?谢谢