解决方案 »

  1.   

    我现在急需要这个。不知道能否在没有安装驱动的时候MFC直接调用adb去获取手机参数 。
      

  2.   

    这个你得找我啊,我对DDK很熟悉的,哈哈
      

  3.   

    能否指点一下,我现在试过不少了,总是只能获取到U盘,获取不到手机,即使我已经安装了驱动也不行,是不是我的hid/setup里面的函数没用好?
      

  4.   

    其实就是几个api,获取下设备管理里的描述信息,你上pudn或codeprject下几个例子看看,就明白了.
    主要的难点是要收集不同android手机的vid和pid,还有安装驱动的方式不一样.
      

  5.   

    另外如果要做的话,你可能需要转android开发.仅仅是windows这边还完成不了.
      

  6.   

    这块啊,简单,获取手机设备的VID和PID分两种情况:
    首先你本地或者服务器上应该保存一份PID、VID的设备对应表,每个PID对应一个设备。
    1. 监测设备:用Setupapi系列函数来检测USB口,当USB口有设备断开或者接入时,系统会通过Setupapi系列函数通知你(具体哪个函数你可以查一下,实在不行联系我,我给你源码QQ 
    24716177),你在获取到设备的VID和PID后,拿这个PID与你的设备对应表对比,看看是不是你们收录的设备,如果是,则这个设备就是你所要的
    2. 检测设备:也是要用到Setupapi系列函数来检测,当然这个没有好的函数,需要你把所有的设备获取出来然后根据你的表一一过滤掉。为什么要分为检测呢??因为监测是你的程序在运行的过程中,设备断开连接或者接入连接,而检测是你的程序刚启动的时候,去USB口检测一下有没有你所需要的设备
      

  7.   

    简单点的程序开始的时候 对窗口注册,是他能够获取到DEVICEINTERFACE
    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
      

  8.   

    不同手机有不同连接模式吧,每个连接模式可能PID/VID还不一样。
    那一个设备可能就有多个PID/VID,那不是要识别这么多