相同型号设备(手机、耳机)同时插入电脑识别不同设备号问题

news/2024/10/18 18:16:28/

一 背景

    相同型号耳机或手机等设备插入电脑识别成播放或录音设备;更换相同型号产品时,产品会重新枚举,播放设备号不唯一。如图

                                          

如果插入多个相同型号头戴式耳机,设备名称枚举时会多带出一个数字“2”或者其他。

二 解决方法

1 修改注册表

1 .1 实现步骤:

 开始--->运行--->输入“regedit” 进入注册表

选择HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\usbflags

右键->新建->二进制值->输入名称“ignorehwsernum+VID+PID”->修改数值数据01

1.2 问题缺陷

此方法在Windows7 系统有时不生效;有时添加上注册表前期测试OK,后期注册表失效。

Windows10系统暂时没有发现问题。

二 删除注册表内的枚举信息

直接操作注册表删除表内枚举信息是删除不了的,会报错:权限不足。至今,未能找到开取删除枚举信息权限。发现使用PsTools工具可以远程控制本机,此时,权限为最高。

2.1 实现步骤

下载一个PsTools工具,解压将其放置在C盘,编辑两个bat文件以便处理CMD命令

Bat文件内容:(1.bat):

@echo off

cd C:\PsTools

psexec -i -d -s cmd.exe

exit

(2.bat):

regdelete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\USB\VID_XXXX&PID_XXXX&MI_00"

红色字体部分就是产品播放设备枚举信息的路径

执行1.bat 会弹出cmd命令窗

命令窗内输入2.bat,再输入”Yes”,显示“操作成功完成”,即删除成功。


三 C#代码实现

1.    调用1.bat,核心实现:

                   Process process = newProcess();

            ProcessStartInfoprocessStartInfo = newProcessStartInfo();

            intnum = sBatFilePath.LastIndexOf('\\');

            stringworkingDirectory = sBatFilePath.Substring(0, num + 1);

            stringtext = sBatFilePath.Substring(num + 1, sBatFilePath.Length - (num + 1));

            processStartInfo.FileName =sBatFilePath;

            processStartInfo.WorkingDirectory =workingDirectory;

               processStartInfo.UseShellExecute = false;

           processStartInfo.RedirectStandardInput = true;

           processStartInfo.RedirectStandardOutput = true;

           processStartInfo.RedirectStandardError = true;

           process.StartInfo = processStartInfo;

              process.Start();

              Thread.Sleep(1000);

          process.Close();

2.    调用2.bat,(调用完1.bat会弹出cmd命令窗,通过findwindows找到窗体给命令窗发指令) 核心实现:

           IntPtr intptr =FindWindow(null, @"管理员: C:\Windows\System32\cmd.exe");

            int num1 = SetForegroundWindow(intptr);

            Application.DoEvents();

           Thread.Sleep(100);

            SendKeys.SendWait(@"C:\PsTools\2.bat");

            Thread.Sleep(50);

           SendKeys.SendWait("{Enter}");

          Thread.Sleep(50);

          SendKeys.SendWait("Yes");

          SendKeys.SendWait("{Enter}");

        Thread.Sleep(50);

        SendKeys.SendWait("exit");

       SendKeys.SendWait("{Enter}");

 PsTools工具可关注我,找我的上传,去下载。点击打开链接



http://www.ppmy.cn/news/212252.html

相关文章

cortex m3 开源_开源增强现实耳机,Steam的125M有效帐户等

cortex m3 开源 您好,开放游戏迷! 在本周的版本中,我们将了解Steam的1.25亿活跃帐户和Game Developers Conference,这是一个开源增强现实头戴设备,Linux游戏等。 开放游戏综述 2015年2月21日至28日当周 Steam拥有12…

测评 | 谷歌智能耳机Pixel Buds体验:耳朵里的语音助手

本文系网易智能工作室出品, 聚焦AI,读懂下一个大时代! 大型年度AI人物评选——2017中国AI英雄风云榜,自荐提名进行中! 奖项设置:技术创新人物TOP 10,商业创新人物TOP 10 表彰人物:华…

旧改快讯--星河操刀,龙华稳健工业园项目专规获批

龙华街道稳健工业园城市更新单元原列入《2019年深圳市龙华区城市更新单元计划第五批计划》,现已列入《2022年深圳市龙华区城市更新单元计划第三批计划》,现该更新单元规划已经深圳市城市规划委员会法定图则委员会2023年第16次会议审议并获原则通过&#…

未来互联网技术发展编年史,从阿帕网到完全可编程网络

目录 文章目录 目录编者按从冷战背景说起APRA 成立ARPANET 项目启动ARPANET 的诞生TCP/IP 协议与 Internet 的诞生HTTP 协议与 Web 世界的诞生REST 系统架构的诞生与 API 经济的腾飞Future Internet(未来互联网)思想萌芽OpenFlow 与 SDN 的诞生SDN 蛮荒混…

在windows上混合开发_什么是Windows 10上的混合现实,您应该购买耳机吗?

在windows上混合开发 Microsoft is building an ecosystem of “Mixed Reality” headsets from various PC manufacturers. Despite the misleading name, the first headsets you can buy today are really just virtual reality headsets, with no augmented reality featur…

Unity3D 开发 HTC Vive安装及如何连接电脑详细教程(全程图解)

HTC Vive安装及如何连接电脑详细教程: 在市场上的诸多VR产品当中,htc Vive无疑是体验最佳的设备之一,不过在享受高端硬件带来美妙沉浸感之前,必须要经过一段略微复杂的“手续”,以下是HTC Vive安装详细教程。 在安装之前首先要确…

基因xii_在Hack Week XII上运行创意

基因xii As I approach the main hall where Unity Hack Week XII is happening, I pass small breakout groups having intense discussions in French, Dutch, Russian, and in various accents ranging from the Queen’s English to a Texas drawl. Whatever the language …

5G加速实现沉浸式体验

IMAX电影的片头,都有一句广告语,大意为“水晶般的画质感受,栩栩如生的观影感受”,让每一个观众都能沉浸在电影语言创造的世界当中。但看电影要在固定的场所,在固定的时间,我们能否随时随地体验这种感受呢&a…