急,MFC程序如何获取android手机的VID和PID PC .MFC .AndroidVID.PID 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我现在急需要这个。不知道能否在没有安装驱动的时候MFC直接调用adb去获取手机参数 。 这个你得找我啊,我对DDK很熟悉的,哈哈 能否指点一下,我现在试过不少了,总是只能获取到U盘,获取不到手机,即使我已经安装了驱动也不行,是不是我的hid/setup里面的函数没用好? 其实就是几个api,获取下设备管理里的描述信息,你上pudn或codeprject下几个例子看看,就明白了.主要的难点是要收集不同android手机的vid和pid,还有安装驱动的方式不一样. 另外如果要做的话,你可能需要转android开发.仅仅是windows这边还完成不了. 这块啊,简单,获取手机设备的VID和PID分两种情况:首先你本地或者服务器上应该保存一份PID、VID的设备对应表,每个PID对应一个设备。1. 监测设备:用Setupapi系列函数来检测USB口,当USB口有设备断开或者接入时,系统会通过Setupapi系列函数通知你(具体哪个函数你可以查一下,实在不行联系我,我给你源码QQ 24716177),你在获取到设备的VID和PID后,拿这个PID与你的设备对应表对比,看看是不是你们收录的设备,如果是,则这个设备就是你所要的2. 检测设备:也是要用到Setupapi系列函数来检测,当然这个没有好的函数,需要你把所有的设备获取出来然后根据你的表一一过滤掉。为什么要分为检测呢??因为监测是你的程序在运行的过程中,设备断开连接或者接入连接,而检测是你的程序刚启动的时候,去USB口检测一下有没有你所需要的设备 简单点的程序开始的时候 对窗口注册,是他能够获取到DEVICEINTERFACEDEV_BROADCAST_DEVICEINTERFACE DevInt; ZeroMemory(&DevInt, sizeof(DevInt)); DevInt.dbcc_size=sizeof(DEV_BROADCAST_DEVICEINTERFACE); DevInt.dbcc_devicetype=DBT_DEVTYP_DEVICEINTERFACE;//HDEVNOTIFY mhdn;注意这个要全局的或共有的,窗口销毁前释放掉 mhdn = RegisterDeviceNotification(m_hWnd, &DevInt, DEVICE_NOTIFY_WINDOW_HANDLE | 4);//******************************之后在收到消息wm_devicechange时判断DBT_DEVTYP_DEVICEINTERFACE,其中dbcc_name中有vid,pid的信息类似如下字符串//class=\\?\USB#VID_1F1A&PID_0700#20101201120001#{A5DCBF10-6530-11D2-901F-00C04FB951ED}具体可以查询msdn 不同手机有不同连接模式吧,每个连接模式可能PID/VID还不一样。那一个设备可能就有多个PID/VID,那不是要识别这么多 android 遇到"Source not found"的错误 请教:java语法 android游戏图片 android 应用中,如何做到地图的离线下载? Bundle引起的空指针异常 安卓4.0webview内搜索 不高亮问题。 禁用滚动条触摸事件 蓝牙设备可被搜索时间问题.. 求 AndroidAnnotations Demo RadioButton点两次取消选择怎么实现 如何获取Android手机三个硬按键的状态信息 求帮助 android 局域网内连接ksoap2
主要的难点是要收集不同android手机的vid和pid,还有安装驱动的方式不一样.
首先你本地或者服务器上应该保存一份PID、VID的设备对应表,每个PID对应一个设备。
1. 监测设备:用Setupapi系列函数来检测USB口,当USB口有设备断开或者接入时,系统会通过Setupapi系列函数通知你(具体哪个函数你可以查一下,实在不行联系我,我给你源码QQ
24716177),你在获取到设备的VID和PID后,拿这个PID与你的设备对应表对比,看看是不是你们收录的设备,如果是,则这个设备就是你所要的
2. 检测设备:也是要用到Setupapi系列函数来检测,当然这个没有好的函数,需要你把所有的设备获取出来然后根据你的表一一过滤掉。为什么要分为检测呢??因为监测是你的程序在运行的过程中,设备断开连接或者接入连接,而检测是你的程序刚启动的时候,去USB口检测一下有没有你所需要的设备
DEV_BROADCAST_DEVICEINTERFACE DevInt;
ZeroMemory(&DevInt, sizeof(DevInt));
DevInt.dbcc_size=sizeof(DEV_BROADCAST_DEVICEINTERFACE);
DevInt.dbcc_devicetype=DBT_DEVTYP_DEVICEINTERFACE;
//HDEVNOTIFY mhdn;注意这个要全局的或共有的,窗口销毁前释放掉
mhdn = RegisterDeviceNotification(m_hWnd, &DevInt, DEVICE_NOTIFY_WINDOW_HANDLE | 4);
//******************************
之后在收到消息wm_devicechange时判断DBT_DEVTYP_DEVICEINTERFACE,其中dbcc_name中有vid,pid的信息
类似如下字符串
//class=\\?\USB#VID_1F1A&PID_0700#20101201120001#{A5DCBF10-6530-11D2-901F-00C04FB951ED}
具体可以查询msdn
那一个设备可能就有多个PID/VID,那不是要识别这么多