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

来源:互联网 发布:maxwell软件原理 编辑:程序博客网 时间:2024/05/01 08:23
上一节讲到检查驱动安装情况,那么如果遇到没安装手机驱动的话是没办法和手机进行通讯的(除非你是要直接把文件拷贝到手机目录下,好像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,今天就到这里。
0 0