一、可能指向本问题的关键词(帮你找到本页面)
蓝牙串口
删除蓝牙串口
删除蓝牙串口 win7
删除蓝牙虚拟串口
删除蓝牙com口
删除多余的蓝牙com端口
Bluetooth设置com端口
Bluetooth链接上的标准串行设备无法删除
蓝牙串口 任务被禁用
bluetooth com port
delete bluetooth com port
remove bluetooth com port
delete bluetooth serial ports
二、问题现象(第二张为网友图)
三、漫漫长路
为什么要在文章开头写那么多关键词?因为不想让更多人走弯路。
我在解决这个问题的时候,前后几乎用了一周时间,从最开始的百度,到后面用google,从开始的中文关键词搜索,到后面用英文搜索,搜到的中英文网站几乎都翻遍了,而且相同的页面不止点了一次。
每次看到提出的类似或者甚至感觉貌似问题的时候,心里有点小窃喜,但是翻到最后都没有一个真正的答案的时候又很失落;甚至有的现象简直一毛一样,但是只有个孤零零的问题摆在那,一个回答的人都没有。
甚至微软的社区都没有解决方法:
http://answers.microsoft.com/zh-hans/windows/forum/windows_7-hardware/bluetooth/9f246a61-08a3-43ad-b9a4-a88d7834a966
http://answers.microsoft.com/zh-hans/windows/forum/windows_xp-hardware/bluetooth/01eb9855-e1df-44f3-982f-46dc7a7d0907?auth=1
没有直接的解决方案就自己摸索着搞,卸载串口驱动,蓝牙驱动,各种重装驱动重启系统……但是每次重启之后都“正在扫描驱动程序”,然后又把串口给安回来了,每到这个时候都要崩溃了有木有。
然后看到这篇网页:http://support.hp.com/cn-zh/document/c01199999
提到“篮牙管理程序”和“蓝牙驱动”,仿佛有点想起来了,而且有点怪自己居然把这么重要的驱动知识都给忘了:“驱动”和“设备”是分开的,以串口为例,驱动有设备就只管安装,使该设备能够运行起来,而不关心也意识不到这个设备是真的物理设备还是虚拟的设备。在这个问题中,“设备”就是虚拟的设备,因为设备总是存在,所以驱动卸载了又检测到设备就会再次安装,反反复复,并没有什么 用,因此,关键点在于找到虚拟出这个设备的软件,让它不要再虚拟这个设备了,这才是真正的问题所在。
然后就先不管驱动,一心找这个“蓝牙管理程序”。找到了一个这个貌似有点像:
但是卸载了还是没有什么用,连同驱动一起卸载了重启之后串口还在,看来错怪它了。后来才明白过来,其实控制面板的Bluetooth设置其实就是所谓的“蓝牙管理程序”,只不过它抽风了不能删除自己创建的串口了。。。。。。
搜索“win7 蓝牙管理程序”,发现了一个叫“千月”的软件,还下载下来玩了一下,它直接把蓝牙驱动给替换了,并且将原有的蓝牙管理(控制面板的Bluetooth设置)强行替换成了自己,这样之前的串口就自然没有了,体验了一下,广告太多,而且申请序列号很麻烦,不然就得自己找破解版的,很麻烦,就放弃了。卸载了它之后又经历了一次重装驱动……
现成的解决办法没有就求助呗,抱着试一试的心态联系了联想的技术支持,微信上的公众号,这一点联想还是做得不错,但是很遗憾不能解决,让她多问问同事,居然“已经咨询过技术主管了”,没办法,只好作罢。
决定冒险试一试修改注册表,就从此打上了注册表的主意。(警告:以下内容非解决问题的过程,请勿操作。)首先通过搜索找到串口位置,说是在HKEY_LOCAL_MACHINE:hardware\DeviceMap\SerialComm
,神奇的是我的居然没有SerialComm,但是不知为什么,后来又有了,难道是我眼花了……发现下面真有四个串口,删除一个试一下,遗憾的是并没有什么用,赶紧又加回去。
又过了很久,突然发现,注册表项名称为“\Device\BthModem1”,根据经验,肯定和这个BthModem有关系,搜了一下,果然有个叫bthmodem.sys的文件是用于“蓝牙总驱动(串口仿真,逻辑链路控制和适配,服务发现,主机控制接口)”。
通过在注册表中搜索串口名称,找到了路径SYSTEM\CurrentControlSet\Enum\BTHENUM,下面列举的项名称中带有串口号,一眼就能看出这是之前建立过的所有传入传出端口,尝试删除,也没有用。
后来又找到了SYSTEM\CurrentControlSet\services\BTHMODEM,发现这里的串口个数和当前的蓝牙串口个数相同,这就应该是虚拟的串口,抱着惊喜的态度尝试删除了一个,但是仍然没有用,而且删除了重启之后又变回去了,看来还是不对,应该还有地方记录着虚拟串口的信息。
最终,历经千辛万苦,终于找到了正确的注册表位置。
当然,有了这篇文章,你再也不用像我这么强迫症纠结这么久了。
四、解决方案
1、删除虚拟串口
(警告:修改注册表有很大风险,修改前请务必做好相应节点的备份。)
为了大家能够分享更多的知识,请尊重劳动成果,如需转载请注明出处(http://blog.sina.com.cn/s/blog_97438ceb0102wrjb.html),谢谢。
注册表的位置SYSTEM\CurrentControlSet\services\BTHPORT\Parameters\LocalServices
删除{0000……}下属的几项,其中每一项对应“Bluetooth 设置-->COM端口”中的每一个方向为“传出”的串口(传入方向的端口是下面的{24df……}),然后将{0000……}的PnpInstanceCounter改为0。
重新关闭打开蓝牙开关或者重启电脑,就会发现蓝牙虚拟的串口终于木有了,终于成功了啊有木有。
网上都搜遍了都没有的解决方案啊,微软社区都没解决的问题啊,全网首家啊,如果这解决了你的问题,请适当留个言点个赞,那样我会觉得这篇文章没有白写,么么哒~~
2、将状态为“使用中”的com端口号解除占用(这一步不是必须的)
现象:选择修改串口号的时候,或者新设备自动分配串口号的时候,会发现没有使用的设备端口也被标记成“使用中”。
其实这个网上就有很多人说了,简单提一下吧,就是下面的ComDB值按位标志的使用,修改相应位为0即可修改对应端口为未占用状态。
http://www.ftdichip.com/Support/Documents/AppNotes/AN_132_Re-Assigning_COM_Port_Numbers_Using_Registry.pdf
(警告:修改注册表有很大风险,修改前请务必做好相应节点的备份。)
联系客服