仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动

news/2025/3/14 21:56:37/
上一节讲到检查驱动安装情况,那么如果遇到没安装手机驱动的话是没办法和手机进行通讯的(除非你是要直接把文件拷贝到手机目录下,好像txt,视频,音乐的话是不用考虑驱动都可以的,当然有驱动这几种文件的拷贝也会是更方便的。)

好吧,开始说一下安装驱动的实现吧:

首先驱动也是分厂商和机型的(当然好像是有万能驱动这个东西的,但是我测试过万能驱动不是完全适合所有手机的),那么说到厂商和机型,应该就会想到VID和PID了,前面说过VID代表厂商PID代表型号。 那么就知道用什么来匹配驱动了,当然说到匹配的话就说明驱动有很多,虽然有些厂商的所有机型或者某一系列的机型是使用同一个驱动就行了,但是也有很多例外的(这就说明,自己弄一个仿91助手的东西还是做来自己玩玩的,要做成商业软件的话你还得去收集驱动呢。)

在这里说一下题外话,怎么收集驱动呢? 官网?手机自带光碟?  这些方法都很蛋疼的,你自己去实践一下就知道了,除非有专门人员帮你收集,否则真的很蛋疼。而我以前的收集驱动的方法就是用豌豆荚插手机,然后豌豆荚会在C盘的临时文件夹中存放该VID/PID对应的驱动准备安装,然后拷贝下来(- -),等驱动安装完成豌豆荚会把驱动文件删除,所以你要在豌豆荚询问“是否安装驱动”的时候别确定也别取消,然后去拷贝驱动吧,这里你可能需要用到一个辅助软件(Everything)帮你定位这个临时文件夹,这个是一个本地文件搜索软件,搜索速度别拿windows的来比,因为windows那个根本没法比,那个快是一逼的快,瞬间~~~,十分high。 ----------想到就心酸的操作。

在收集驱动的过程中,我发现了驱动有两种,一种就是exe的例如SAMSUNG的就是这样,另外一种就是dll的,如下图:

1、exe类型:
仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动 - Mongamind_蚯蚓 - Mongamind的博客
 
2、dll类型,有两层目录,首层是.inf硬件信息文件和.cat安全文件,次层是.dll动态链接库文件:
仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动 - Mongamind_蚯蚓 - Mongamind的博客
 
仿91助手的PC与android手机通讯(4) --- 自动安装手机驱动 - Mongamind_蚯蚓 - Mongamind的博客

-------------------------------------------------------------------------------------------
驱动类型和匹配的说完,现在该说如何安装了吧。
第一种类型,exe文件直接运行就行,可以用WinAPI中的CreateProcess()来启动,这个用户交互会多一点,因为会很多“确认”“下一步”的东西,但是这个我们无法控制,用91助手的时候你也会遇到有些驱动就是要点下一步、下一步,有些就是确定要安装后就后台静默安装了。

第二种类型,用户基本不需要交互,直接后台默认就可以完成安装,我们主要也是要处理这一种。
 主要是用到UpdateDriverForPlugAndPlayDevices ( HWND hwndParent, LPCWSTR HardwareId, LPCWSTR FullInfPath, DWORD InstallFlags, PBOOL bRebootRequired ); 这个API,不敢相信还有那么长名称的API。这个API第一个参数可以为空句柄,第二个参数是硬件ID(这个在第二节讲过,和兼容ID一起的那个),第三个是.inf文件的全路径(就是上面第二张图里面那个),第四个参数填0就行(有需要的可以再详细研究这个参数值),第四个要传一个BOOL型的指针进去等API返回一个是否要重启的值告诉你这个驱动安装后要真正运作起来是否要重启。

OK,今天就到这里。

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

相关文章

Android手机64位APP兼容

为什么 2022 armv9芯片新机出货,不兼容32位,出现卡顿闪退等问题64位性能更好手机硬件升级,存储更大,应用包体积不敏感 应用市场的政策 Google Play声明 自 2019 年 8 月 1 日起,您在 Google Play 上发布的应用必须支持64 位 2021年 8 月 1 日, 无法搜索到32位,…

android手机助手拷贝文件至pc上失败的解决方式

有的时候我们在手机上安装一款应用的时候,会有把一些文件拷贝到pc上的需求,最近想把一个应用中的database文件拷贝到pc上,但总是不成功,换了很多手机助手都拷贝不成功,试了很多办法,最后解决了,…

android app实现多种语音,基于Android的语音助手APP

张路瑶 蔡虹 【摘要】本项目采用Java语言,基于Android Studio平台打造的一款智能语音助手APP。旨在为用户提供智能化的服务,提高人机交互速率,除实现了目前市场已有的语音助手的功能外,加入了特色化的音频文件转写功能,为用户的生活、办公等提供了方便快捷的渠道,如会议音…

android蓝牙 助手源码,蓝牙串口助手(Android Studio源码)

【实例简介】蓝牙串口助手(Android Studio源码) 【实例截图】http://a.app.qq.com/o/simple.jsp?pkgname=com.example.bluetoothassist 软件外观和下载位置 【核心代码】 package com.example.main; import android.Manifest; import android.content.pm.PackageManager; impo…

Android手机助手识别机型浅析

最近在做PAD项目,QA提交了一个bug,用iTools管理PAD时,iTools显示的设备与目标机型的设备型号不一致,在其他豌豆荚,百度等手机助手并没有遇到这个问题。为了解决该问题,首先查询机器system目录下的prop.buil…

安装linux子系统时,出现的问题

目录 一、事故原因:适配linux子系统问题 二、事故问题:wsl版本问题 一、事故原因:适配linux子系统问题 事故全文: Installing, this may take a few minutes... WslRegisterDistribution failed with error: 0x8007019e Err…

SQL数字范围校验[DB2数据库]

需求:将数据插入数据库前做一个厚度的最大最小值的范围校验 例如:假设数据库内存在一条Min:0.2,Max:0.3的数据, 当新增的数据为:0.1~0.2,不能插入 当新增的数据为:0.25~0…

悉尼举办澳大利亚国庆日庆典活动

中新社悉尼1月26日电 (崔琳)1月26日是澳大利亚国庆日(Australia Day)。悉尼举办了一系列隆重的庆典活动,规模盛大,丰富多彩。 当地时间上午9时整,伴随着信号枪声,澳大利亚国庆日万米轮椅赛正式开始。今年恰逢轮椅赛30周年&#x…