无忧启动论坛

标题: 【已解决】bat或者VBS能不能实现: 禁用声卡,然后启用声卡?谢谢 [打印本页]

作者: yyz2191958    时间: 2023-6-10 10:08
标题: 【已解决】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
::***********************************************************************************************************
不知道有没有更科学的方法?



1.png (73.52 KB, 下载次数: 120)

1.png

1体机-声卡+音量+键盘灯.rar

2.38 MB, 下载次数: 38, 下载积分: 无忧币 -2


作者: 窄口牛    时间: 2023-6-10 10:09
devcon了解下。
作者: yyz2191958    时间: 2023-6-10 10:13
窄口牛 发表于 2023-6-10 10:09
devcon了解下。

我研究一下先
作者: yyz2191958    时间: 2023-6-10 10:15
窄口牛 发表于 2023-6-10 10:09
devcon了解下。

我是小白,能不能直接给代码?谢谢
作者: magicgenius    时间: 2023-6-10 10:24
禁用、启用?直接重启好了。
例如:
pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"
作者: magicgenius    时间: 2023-6-10 10:26
禁用:
/disable-device
启用:
/enable-device

作者: yyz2191958    时间: 2023-6-10 10:28
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
magicgenius 发表于 2023-6-10 10:24
禁用、启用?直接重启好了。
例如:
pnputil /restart-device /deviceid "MMDEVAPI\AudioEndpoints"

我从C盘复制一个pnputil.exe过来,提示没有了。也没有解决问题
作者: magicgenius    时间: 2023-6-10 10:36
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
本帖最后由 magicgenius 于 2023-6-10 10:40 编辑

关键是 deviceid
作者: yyz2191958    时间: 2023-6-10 10:40
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
为啥要这么操作?
作者: 窄口牛    时间: 2023-6-10 11:10
yyz2191958 发表于 2023-6-10 10:15
我是小白,能不能直接给代码?谢谢

给不了,需要更多信息才可以。
作者: yyz2191958    时间: 2023-6-10 11:16
pengfangzhi 发表于 2023-6-10 11:08
为啥要这么操作?

我想外挂声卡驱动
作者: yyz2191958    时间: 2023-6-10 11:19
窄口牛 发表于 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
这个比较简单,别的好像pecm有命令也可以。
作者: szwp    时间: 2023-6-10 12:02
devcon  restart
作者: szwp    时间: 2023-6-10 12:05
https://learn.microsoft.com/zh-cn/windows-hardware/drivers/devtest/devcon-restart
作者: yyz2191958    时间: 2023-6-10 12:19
szwp 发表于 2023-6-10 12:02
devcon  restart

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

没有效果
作者: 2012qnmd    时间: 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan
作者: yyz2191958    时间: 2023-6-10 14:09
2012qnmd 发表于 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan

我试一试 谢谢
作者: yyz2191958    时间: 2023-6-10 14:11
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
2012qnmd 发表于 2023-6-10 14:08
devcon.exe remove *DEV_1C20
devcon.exe rescan

是删除了
作者: 窄口牛    时间: 2023-6-10 15:46
为啥要重启,设置默认设备不行吗?
作者: yyz2191958    时间: 2023-6-10 15:52
窄口牛 发表于 2023-6-10 15:46
为啥要重启,设置默认设备不行吗?

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

需要重启声卡一下,才能够生效
作者: batche    时间: 2023-6-10 16:37
重启用devcon  restart命令不就好了?为啥要禁用再启用?
作者: yyz2191958    时间: 2023-6-10 17:25
batche 发表于 2023-6-10 16:37
重启用devcon  restart命令不就好了?为啥要禁用再启用?

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

需要重启声卡一下,才能够生效
作者: dos时代菜鸟    时间: 2023-6-10 19:42
直接用inf 重新安装声卡驱动
作者: yyz2191958    时间: 2023-6-10 20:39
dos时代菜鸟 发表于 2023-6-10 19:42
直接用inf 重新安装声卡驱动

这样文件太大(340MB)
作者: dos时代菜鸟    时间: 2023-6-10 21:01
restart_media_x64.7z (1.14 MB, 下载次数: 19)

pecmd x64 几句话的事儿。



作者: yyz2191958    时间: 2023-6-10 22:05
dos时代菜鸟 发表于 2023-6-10 21:01
pecmd x64 几句话的事儿。

非常感谢
作者: lras    时间: 2023-6-11 07:06
如果是为了禁用声音可以用关服务和开服务
net stop audiosrv
net start autiosrv
作者: yyz2191958    时间: 2023-6-11 07:09
lras 发表于 2023-6-11 07:06
如果是为了禁用声音可以用关服务和开服务
net stop audiosrv
net start autiosrv

Windows Audio 服务正在停止.
Windows Audio 服务已成功停止。

服务名无效。

请键入 NET HELPMSG 2185 以获得更多的帮助。
作者: lras    时间: 2023-6-11 07:10
本帖最后由 lras 于 2023-6-11 07:11 编辑
yyz2191958 发表于 2023-6-11 07:09
Windows Audio 服务正在停止.
Windows Audio 服务已成功停止。

。。。自己找下原因啊,明显是我打错一个字母,第一行是关,第二行是开,别放一起用
作者: yyz2191958    时间: 2023-6-11 07:15
lras 发表于 2023-6-11 07:10
。。。自己找下原因啊,明显是我打错一个字母,第一行是关,第二行是开,别放一起用

问题是:服务正在停止————可以呀
作者: lras    时间: 2023-6-11 07:18
第二行启动服务我打错一个字母,服务名的字母我打错了一个

net stop audiosrv
net start autiosrv        

audiosrv audiosrv audiosrv audiosrv audiosrv audiosrv audiosrv
作者: yyz2191958    时间: 2023-6-11 07:21
lras 发表于 2023-6-11 07:18
第二行启动服务我打错一个字母,服务名的字母我打错了一个

net stop audiosrv

@echo off
net stop AudioSrv
net start AudioSrv
pause >nul
exit

成功了,非常感谢
作者: dkzzlf    时间: 2023-6-11 07:24
路过学习
作者: lras    时间: 2023-6-11 07:25
yyz2191958 发表于 2023-6-11 07:21
@echo off
net stop AudioSrv
net start AudioSrv

关一下马上开,这是为啥
作者: yyz2191958    时间: 2023-6-11 07:29
lras 发表于 2023-6-11 07:25
关一下马上开,这是为啥

重启音频服务————这种办法还是无声
作者: dos时代菜鸟    时间: 2023-6-11 19:32
本帖最后由 dos时代菜鸟 于 2023-6-11 19:34 编辑

如果pe的话,通常都有pecmd. 用,pecmd脚本是最节省成本的了。
作者: zhxy9804    时间: 2023-6-11 21:01
devcon就是最正确也最合理的办法了。
作者: yyz2191958    时间: 2023-6-11 21:55
zhxy9804 发表于 2023-6-11 21:01
devcon就是最正确也最合理的办法了。

好的,谢谢
作者: batche    时间: 2023-6-11 22:16
yyz2191958 发表于 2023-6-10 17:25
PE下外挂声卡驱动的一个文件,导入注册表。

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

对啊,直接用devcon  restart "ID"就可以重启声卡,没必要禁用两次启用两次
作者: natu2004    时间: 2023-6-12 13:04
进来学习一下的
作者: yyz2191958    时间: 2023-6-12 14:18
natu2004 发表于 2023-6-12 13:04
进来学习一下的

谢谢
作者: q442434671    时间: 2024-9-6 11:20
dos时代菜鸟 发表于 2023-6-10 21:01
pecmd x64 几句话的事儿。

大佬你好,论坛上看到你的回复,请问有办法可以在WIN10系统下禁用所有声卡驱动,然后恢复吗,最好自动。有偿
作者: wjgyz740526    时间: 2024-9-6 19:51
看我这个帖子http://bbs.wuyou.net/forum.php?mod=viewthread&tid=442088&extra=&page=5
作者: yyz2191958    时间: 2024-9-6 20:19
wjgyz740526 发表于 2024-9-6 19:51
看我这个帖子http://bbs.wuyou.net/forum.php?mod=viewthread&tid=442088&extra=&page=5

谢谢
作者: martin313    时间: 2024-9-6 20:27
yyz2191958 发表于 2024-9-6 20:19
谢谢


硬件不同,机子不同,编号也不同,这不具有通用性的吧
作者: wjgyz740526    时间: 2024-9-6 21:24
martin313 发表于 2024-9-6 20:27
硬件不同,机子不同,编号也不同,这不具有通用性的吧

你没看代码吧?先列出机器里的硬件id,然后再禁用
作者: martin313    时间: 2024-9-6 21:43
wjgyz740526 发表于 2024-9-6 21:24
你没看代码吧?先列出机器里的硬件id,然后再禁用

怎么个机制?全部的全自动获取的吗?
作者: wjgyz740526    时间: 2024-9-7 07:24
你cmd运行下这个
pnputil /enum-devices /class sound^|findstr /c:"实例 ID:"

看反馈出来的结果

作者: yyz2191958    时间: 2024-9-7 07:30
wjgyz740526 发表于 2024-9-7 07:24
你cmd运行下这个
pnputil /enum-devices /class sound^|findstr /c:"实例 ID:"

谢谢
作者: wjgyz740526    时间: 2024-9-7 07:39
martin313 发表于 2024-9-6 21:43
怎么个机制?全部的全自动获取的吗?

根据类名获取硬件id,所以,只要是声卡相关都会列出来,然后你用循环语句挨个禁用就行了
作者: martin313    时间: 2024-9-7 08:09
wjgyz740526 发表于 2024-9-7 07:39
根据类名获取硬件id,所以,只要是声卡相关都会列出来,然后你用循环语句挨个禁用就行了

我不关心啊,无此需求
就是插科打诨而已

如果要手工去查询一下,去改批处理,那就不具有通用性,使用起来麻烦


作者: wjgyz740526    时间: 2024-9-7 08:24
martin313 发表于 2024-9-7 08:09
我不关心啊,无此需求
就是插科打诨而已


当然不需要手工查询
作者: 1393900376    时间: 2024-9-7 08:26
好好好
作者: 1393900376    时间: 2024-9-7 08:26
太好了
作者: 旭东    时间: 2024-9-7 10:36
感谢分享




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3