一、问题概述

许多带有还原卡的计算机(比如学校机房的电脑),没有音响设备,需要佩戴耳机才能听到声音。但是由于初始配置问题,有些机房的电脑插入耳机仍然听不到声音。

电脑右下角任务栏音量调节图标状态如下图1-1所示

图1-1 音量控制图标状态

此时使用鼠标点击音量调节图标,没有反应。打开控制面板调节系统音量,图标红色标志消失,但点击图标仍然无反应,系统也仍然没有声音。如图1-2所示

图1-2 调节音量后的控制图标状态

根源在哪里呢?

原来,这是由于前面耳机插孔与机箱后面的插孔规格不同造成的。详细解释如图1-3:

(图1-3内容来源:百度知道,作者IKYO,原始地址:https://zhidao.baidu.com/question/201156231.html)

图1-3 根本原因

更完备的解释请移步【为什么要 禁用前面板插孔检测,机箱前面的耳机才能用?】

如何解决呢?

我们打开控制面板-硬件和声音-Realtek高清音频管理器,点击右侧黄色文件夹图标。如图1-3所示。

图1-3 控制面板音频管理器

在弹出的窗口中【勾选】【禁用前面板插孔检测】,然后点击弹出窗口上的确定按钮,再点击音频管理器的确定按钮。

此时耳机声音恢复正常,但是任务栏音量图标仍然无法调节。

我们再次在控制面板-硬件和声音-调节系统音量中拖动按钮调节音量,拖动之后,任务栏右下角的音量图标便有响应了,此时可以正常使用它调节音量。整个设置过程完毕。

问题到这里就结束了吗?貌似是的。

但是!但是!但是!机器上装有还原卡,每次开机就会回到初始状态,难道我每次都要这样手动重新设置吗?

对于我等懒人,当然无法忍受这种折磨。累啊!

怎么办?当然是写个程序来把劳苦大众从繁琐重复的劳动中解放出来了!

下面我来给大家一个一键式的解决方案,这也是本篇博文的重点。

没错,前面都是热身,真正的战斗才刚刚开始[手动滑稽]。

二、工具准备和必要数据获取

懒人移步此链接直接下载本人编写完毕的成品使用即可:【一键禁用前面板插孔检测_百度网盘下载】 密码: a9ea

【注意】不同电脑的声卡ID不同,所以如您的电脑没有安装还原卡,请勿使用此成品,否则后果自负。

勤快人继续往下读,自己动手,丰衣足食。

工具:微软DEVCON、文本编辑器、问题电脑、双手

等等,什么是DEVCON?

上百度百科:

"DevCon实用工具是一种命令行实用工具。

使用 DevCon,您可以启用、禁用、重新启动、更新、删除和查询单个设备或一组设备。DevCon 提供与开发人员有关但无法在设备管理器中看到的信息。
您可以将 DevCon 用于 Windows 2000、Windows XP和Windows vista。不能将 Devcon 用于 Microsoft Windows 95、Windows 98、或 Windows Millennium Edition。"(原始链接:https://baike.baidu.com/item/devcon/6335492?fr=aladdin)

这个资源我直接放在我的网盘了,分享链接:【微软DEVCON_百度网盘下载】

下载下来之后,解压,可以看到devcon.exe文件。我们双击打开它,只是一闪而过(别急,它不是这么用的)。通过百科的介绍我们知道,可以使用它通过命令行实现类似设备管理器的功能。

然而这并没有什么卵用。那我们要它干什么呢?别着急,接着往下看。

我们接下来要做的,是写一个批处理程序,并调用0DEVCON操作设备,实现一键禁用前面板插孔检测,使前面板耳机声音恢复正常。

2.1 原理概述

先说一下原理(灵感来源_卡饭论坛_3楼):

我们前面已经知道,设置勾选前面板插孔检测后耳机音频可以恢复正常。我们还知道,这些设置实际上是保存在注册表中的,我们设置勾选与否,其实是改变了注册表中相应注册表项的值。

所以,我们只需要在注册表中找到此设置对应的注册表项,然后记录下勾选状态的值,然后写一个批处理文件,使用批处理文件而不是手动操作来修改它就可以了。我们这里使用一个更稳妥的办法,直接将该项注册表项导出保存,放在与bat文件相同的文件夹下,再写一个批处理导入此注册表项。

但是运行以后你会发现,前面板插孔检测仍然没有禁用,耳机仍然没有声音。

这是为什么呢?因为硬件设备的设置改动后,需要重启硬件设备才能应用。

怎么办?总不能每次都打开设备管理器手动重启声卡驱动吧,这好像还不如在控制面板打钩钩方便吧!

别急别急,还记得刚才的DEVCON吗,它是干什么的?可以代替设备管理器的嘛!

于是我们有了以下解决方案:

①导出正常状态下的注册表项,与devcon.exe和我们的批处理文件放在同一文件夹中;

②编写批处理将devcon.exe复制到C:/Windows/System32文件夹下;

③编写批处理将导出的注册表项导入到注册表中;

④编写批处理打开devcon,使用devcon的命令重启声卡。

⑤大功告成,以后只需运行批处理文件,即可实现一键禁用前面板插孔检测。

来看看我们还需要哪些数据:

①正常状态(勾选禁用前面板插孔检测)的注册表相应项的导出文件;

②声卡设备ID号(devcon对声卡进行操作需要声卡ID号作为参数,详见下一节devcon使用说明)。

2.2 devcon使用说明

使用devcon的命令重启声卡。什么命令呢?再来看百科关于它的介绍【devcon】。恩,找到了。以下是devcon的常用操作命令(来源 百度百科_devcon词条)

devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]
-r 如果指定它,在命令完成后若需要则重新启动计算机。
<machine> 是目标计算机的名称。
<command> 是将要执行的命令(如下所示)。
<arg>... 是命令需要的一个或多个参数。
要获取关于某一特定命令的帮助,请键入:devcon.exe help <command>
classfilter  允许修改类别筛选程序。
classes  列出所有设备安装类别。
disable  禁用与指定的硬件或实例 ID 匹配的设备。
driverfiles  列出针对设备安装的驱动程序文件。
drivernodes  列出设备的所有驱动程序节点。
enable 启用与指定的硬件或 实例 ID 匹配的设备。
find  查找与指定的硬件或 实例 ID 匹配的设备。
findall  查找设备,包括那些未显示的设备。
help  显示此信息。
hwids  列出设备的硬件 ID。
install  手动安装设备。
listclass  列出某一安装类别的所有设备。
reboot  重新启动本地计算机。
remove 删除与特定的硬件或 实例 ID 匹配的设备。
rescan  扫描以发现新的硬件。
resources 列出设备的硬件资源。
restart  重新启动与特定的硬件或 实例 ID 匹配的设备。
stack  列出预期的设备驱动程序堆栈。
status  列出设备的运行状态。
update 手动更新设备。
UpdateNI 手动更新设备,无用户提示
SetHwID  添加、删除和更改根枚举设备的硬件 ID 的顺序。

好的,我们需要哪个呢?重启设备,重启设备,找到了——restart。

好,还需要什么,restart命令需要知道设备ID,设备ID?怎么找?别急,看,也有一个命令可以把设备ID列出来。

哪一个?哪一个?看到了——在上面——hwids。(还有一种手查看设备ID的方法:WIN7下如何查看硬件ID)。

【特别提示】每台电脑的声卡ID都不同,所以一定找到自己的声卡ID才能实现DEVCON对声卡的管理操作!!!

好的,我们需要的命令都找到了。再看使用命令的格式:

devcon.exe [-r] [-m:\\<machine>] <command> [<arg>...]

恩,现在我们是不是可以打开cmd查找声卡的ID了呢?

当然不行,如上一节所言,我们需要先把devcon.exe复制到系统目录下的System32文件夹下,才能在cmd中调用devcon。(还是再说一下System32的位置吧:C:\Windows\System32)

好。现在我们可以查看设备ID了。

WIN+R打开运行,输入cmd,回车(不懂怎么打开“运行”和“cmd”的请放弃本教程,以免变成电脑杀手);

输入

devcon hwids *

按回车,两秒左右,所有设备ID都会被列出来。(命令中“*”表示“所有”,详情可输入:devcon hwids help了解)。

我们在设备ID列表中找到声卡,结果如图2-1所示,箭头所指的地方就是声卡ID(关于硬件ID组成的详细解释):

图2-1 声卡ID查询结果

好。现在我们知道了声卡ID,就可以使用devcon重启声卡了。

继续在cmd中输入

devcon restart HDAUDIO\FUNC_01

【注意】restart后面要替换成你自己的声卡ID!!!

按回车,声卡设备便重启了。

好了,我们已经学会了如何使用devcon重启声卡。一会儿我们要做的,就是把这一系列人工操作使用批处理自动实现(当然,声卡ID仍然需要自己查询,有兴趣话,你也可以把查询声卡ID这一步写进批处理,这样我们的解决方案就可以通用了)。

2.3 导出正常状态的注册表项

我们已经获取到了声卡ID,现在我们来获取另一个数据,正常状态下的注册表项导出文件。

注册表的导出相信大家都很熟悉了,不熟悉也没关系,下面我会一步步截图演示(熟悉此操作的可以直接略过相关部分)。

先告诉大家此注册表项在注册表中的位置:[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\0008\Settings](参考来源:卡饭论坛_3楼)

在这个目录下有000~00xx的文件夹(xx为两位数字,具体数值由具体电脑而定),如图2-2所示:

图2-2 禁用前面板插孔检测设置所在的注册表位置

这里面有一个便是此注册表项的所在之处,怎么找呢,依次点击0000~00xx,注意右侧键值,如图2-3所示,当出现红框所标示的注册表项时,标示此注册表目录为声卡目录。

图2-3 右侧注册表键值

展开此注册表目录(我的是0000),可以看到有一个Settings子目录,单击Settings(不是展开),右侧的    JackCtrl项即为禁用前面板插孔检测设置的注册表项。如图2-4所示(此时未勾选“禁用前面板插孔检测”,注意观察键的值):

下面我们在控制面板中改变设置,勾选“禁用前面板插孔检测”,然后点击注册表编辑器菜单栏的【查看】-【刷新】,发现刚才的注册表项的值已经随之发生改变。如图2-4所示:

图2-4 禁用前面板插孔检测后的注册表变化

这样,我们确定了“禁用前面板插孔检测”这一设置在注册表中的具体位置:

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4D36E96C-E325-11CE-BFC1-08002BE10318}\00xx\Settings]目录下的JackCtrl(其中00xx的xx为两位数字,不同设备xx的具体数值不同)。

好,我们只需要在控制面板中设置勾选“禁用前面板插孔检测”后,打开注册表找到上面的注册表项,然后把它导出即可。

怎么导出呢?

在左侧Settings目录上单击鼠标右键-导出,然后在弹出的保存窗口中将文件命名为sound.reg(注意.reg为拓展名),保存在桌面备用。

图2-5 导出注册表

将此目录(我这里是0000)导出并命名为sound.reg(注意.reg为拓展名),备用。

三、基于微软DEVCON [一键禁用前面板插孔检测]程序

前面我们已经描述了问题所在、了解了解决方案及其大概原理,并学会了DEVCON的配置使用,获取了声卡ID,导出了“禁用前面板插孔检测”的注册表。可以说前期准备工作已经完成,下面只需要写一个批处理,使用我们准备好的工具和数据,实现我们的解决方案就可以了。

不多说,步骤如下。

①新建一个文件夹,命名为setSound(名字无所谓)

②将刚才解压出的devcon.exe复制到setSound文件夹中;

③将刚才导出的注册表sound.reg复制到setSound文件夹中;

④在setSound文件中新建文本文档,命名为reStart(必须是此名称,否则请修改同时修改代码),拓展名为.bat;

⑤在setSound文件中新建文本文档,命名为setSound,拓展名为.bat;

⑥在reStart.bat中粘贴以下代码,并保存:

@echo off
taskkill /f /im explorer.exe
start "" explorer.exe
exit

代码解释:先杀死Windows资源管理器,然后重新启动Windows资源管理器。此批处理将在setSound.bat中被调用,用于重启声卡后重启资源管理器以更新任务栏音量图标状态,使之可用。

⑥在setSound.bat中粘贴以下代码,并保存:

%1 start "" mshta vbscript:CreateObject("Shell.Application").ShellExecute("cmd.exe","/c%~s0 ::","","runas",1)(window.close)&&exitcopy /y devcon.exe c:\windows\system32
devcon restart HDAUDIO\FUNC_01
regedit /s sound.reg
devcon restart HDAUDIO\FUNC_01
call reStart

【注意】把第3行的 HDAUDIO\FUNC_01 (声卡ID)替换为你自己的声卡ID!!!

代码解释:打开cmd,复制本目录(setSound.bat所在目录)下的devcon.exe到C:\windos\system32;调用devcon的restart命令,参数为你的声卡ID(我的是HDAUDIO\FUNC_01),重启声卡;将本目录下的注册表文件sound.reg导入到注册表中;再次重启声卡(第一个重启是为了确保devcon可用,可用删去,第二次重启不能删去);最后调用本目录下的reStart.bat重启Windos资源管理器(reStart中的代码也可以合并放在setSound.bat的最后,但不建议这样做)。

⑦在控制面板中取消“禁用前面板插孔检测”的勾选(此时前面板耳机无声),双击运行setSound.bat,查看前面板音频是否输出正常。打开控制面板,查看“禁用前面板插孔检测”是否已被勾选。如果前面板音频恢复正常且控制面板也已经被勾选,则说明程序运行正常。大功告成!别忘了把写好的程序备份到C盘以外的文件夹,最好放在U盘里,防止丢失。以后每次开机设置被还原后,运行一下setSound.bat就可以了。

【完】

2018年3月11日 中午 12:00

------------------------------------------------------------------------------------------

如有任何疑问或建议,加QQ1394042988,或者发邮件到我的QQ邮箱:1394042988@qq.com。当然,在此博文下留言也是可以的!天天开心,再见!

基于微软DEVCON的[一键禁用前面板插孔检测]程序相关推荐

  1. realtek没有禁用前面板_教你win7系统realtek禁用前面板插孔检测的具体步骤

    电脑现已成为我们工作.生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到教你win7系统realtek禁用前面板插孔检测的具体步骤的问题,如果我们遇到了教你win7系统realtek禁用前面板 ...

  2. 台式电脑前面音频插孔无效,主机后面有效?为什么必须禁用前置面板插孔检测前置麦克才可以有声

    现在的集成声卡,连接了机箱前置音频线,安装声卡驱动,把麦克插入前置的麦克插孔后,对麦克说话没有声音,用Windows的录音机也没有声音.必须在声卡控制面板里面"禁用前置面板插孔检测" ...

  3. realtek没有禁用前面板_为何我realtek HD没有禁用前面板检测选项?

    呵呵 上面的答案很好!!建议重点看"步骤1:先确保主板与机箱前置面板正确连接,该主板成了ALC883声卡芯片,为了与AC'97兼容,HD Audio仍然使用AC'97的10针连接插座,所以接 ...

  4. 解决:电脑前面板耳机没声,后插孔有声,找不到Realtek高清晰音频管理器,安装realtek hd audio dIver失败

    >>问题:Win10系统常见问题,主机前面板耳机插孔没有声音,只有后面有声音,并且系统中声音和设备中找不到Realtek高清晰音频管理器,无法设置. >>网上的解决方案:基本都 ...

  5. audio realtek 耳机没声_window7和window10机箱前面板耳机插孔没有声音怎么解决!

    导语:很多人插USB或者插耳机都习惯性插电脑主机前置面板上,每次插到电脑主机后面需要将主机移出才能插,这样显得太麻烦了.但是Win7电脑主机偶尔会发生前面的耳机插口没声音的情况,机箱前面板耳机没声音怎 ...

  6. win10怎么打开电脑前面板耳机

    1.开始-控制面板 2.在控制面板里打开"Realtek高清晰音频配置" 3.在打开的"Realtek高清晰音频配置"窗口选择"音频I/O" ...

  7. win10电脑前面板耳机无声音

    系统:win10 在网上找了狠多教程都没用,最后自己试出来了,写一个攻略,用于给大家避免坑 步骤1:打开realtek音频管理器 首先在控制面板打开realtek音频管理器,或者点击右下角任务栏也可以 ...

  8. window 10 前面板音频孔插入耳机没有声音

    HiHi! 很久没见,最近真的太忙了,想写一篇文章从上周到现在一直还没写完,估计这周末会发两篇吧.整整鸽了两周,发现的如果要写文章给别人看的,质量比较好的文章真的挺耗时.今天先简单记录一下困扰了自己的 ...

  9. Realtek HD声卡前面板无输出解决办法

    用Realtek高清声卡的朋友都知道,Realtek都有一个通病--升级完驱动之后开启播放器前面板无声音输出. 按照以往的办法就是"禁用前面板的检测",但这却不是完全的解决办法,还 ...

最新文章

  1. 2-Runtime objc_object objc_class
  2. 零基础学习SVN之(二):CVS与SVN的区别
  3. MacBook file storage 256g is ok
  4. C/Cpp / #define
  5. Link Cut Tree学习笔记
  6. service层拼接XML
  7. 开源等于免费吗?用事实来说话
  8. UCMA(OCS) 开发系列之一
  9. maven工程启动时报“Cannot resolve XXX:XXX:xx.xx.xx”错误的问题
  10. SQL必知必会第五版笔记
  11. 使用RssHub为网页生成RSS订阅源
  12. 【数据库】unity3d实现连接mysql 下载安装连接全过程
  13. 芯片封装形式(网上到处找的)
  14. 铁威马F2-NAS2评测(家用云存储NAS)
  15. 迷你股票行情,时刻给你最新行情。
  16. 敏涵化妆品何以圈粉Z世代消费群体?
  17. 本地进程间通信(二)--套接字socket
  18. 关于Android高德地图路线规划的学习
  19. boost::stacktrace::stacktrace相关的测试程序
  20. 浙江八年级 python_今年9月起 浙江八年级新增Python编程课程

热门文章

  1. java 计算日期时间差_Java计算日期和时间差
  2. 性能之巅——洞悉系统、企业与云计算 Brendan Gregg
  3. 那些油管上高质量的学习编程的频道 之二
  4. Xmind 2022 Mac版 思维导图软件
  5. ifconfig 命令使用
  6. QT 主线程子线程互相传值
  7. osEye.Net:离别是为了将来的重逢
  8. 机遇与危机,婚庆行业的转型之路
  9. 【第三届蓝桥杯】手机尾号
  10. 【笔记本加配置记录】笔记本加内存条,华硕拆后盖