知道91助手和豌豆莢吧? 说到这两个东西,最让人好奇的应该是就是和手机的交互了。我之前有研究过电脑和安卓的交互,基本功能已经走通了,在这里我想分享一下。 初初看这个问题觉得很简单,然后如果你有点计算机基础的话深入想一下却发现有很多实现上的空白。

---------------------------------------------------------上面是废话,进入正题。

首先要解决的问题就是自动在设备插入电脑时作出响应。
这个问题得解决方法就是:WM_DEVICECHANGE 事件。

这个事件是一个全局事件,不需要预先向系统注册之类的,只要你的程序有窗口就能随时响应设备变更事件WM_DEVICECHANGE,当然全局事件是进程的Top-Level窗口才能收的到,如果你想在子窗口或者模态窗口中直接收到的话可以考虑使用RegisterDeviceNotification注册一下。

事件的WPARAM参数包含了设备更新的类型,设备变更(Device Change)有很多种情况的嘛,有插入、移除、驱动安装成功神马神马的。类型种类在MSDN中有说,如下:

DBT_CONFIGCHANGECANCELED
A request to change the current configuration (dock or undock) has been canceled.
(设备设置取消,我还没怎么研究过这个设置的问题,不过这个跟我现在讲的主题都没关系的。)

DBT_CONFIGCHANGED
The current configuration has changed, due to a dock or undock.
(设备设置变更)

DBT_CUSTOMEVENT
A custom event has occurred.
(这个只是告诉你,设备驱动发出了一个消息)

DBT_DEVICEARRIVAL
A device or piece of media has been inserted and is now available.
(设备或者多媒体插入)

DBT_DEVICEQUERYREMOVE
Permission is requested to remove a device or piece of media. Any application can deny this request and cancel the removal.
(用戶请求弹出设备,返回TRUE允许弹出,返回BROADCAST_QUERY_DENY拒绝弹出,这就是为什么有些时候会发现U盘死活弹不出,非得强拔,这是因为有些进程一直拒绝弹出。)

DBT_DEVICEQUERYREMOVEFAILED
A request to remove a device or piece of media has been canceled.
(请求弹出失败)

DBT_DEVICEREMOVECOMPLETE
A device or piece of media has been removed.
(请求成功)

DBT_DEVICEREMOVEPENDING
A device or piece of media is about to be removed. Cannot be denied.
(强制弹出U盘,这个在360的强制弹出USB时会收到的了)

DBT_DEVICETYPESPECIFIC
A device-specific event has occurred.
(这个是某些个性设备自定义的消息的方法了,自定义部分在LPARAM指针指向的区域中)

DBT_DEVNODES_CHANGED
A device has been added to or removed from the system.
(DevNodes就是设备管理器里面显示的那棵树的节点,这个跟DBT_DEVICEARRIVAL有一点点区别,因为add有可能是因为你新装了某些驱动产生的消息。另外提个醒SAMSUNG手机插入时就是很扑街的收不到DBT_DEVICEARRIVAL类型,只能收到这个。。。)

DBT_QUERYCHANGECONFIG
Permission is requested to change the current configuration (dock or undock).
(请求修改设备设置)

DBT_USERDEFINED
The meaning of this message is user-defined.
(这个类型主要是给用户一个自定义的方法,上面DBT_DEVICETYPESPECIFIC是设备自定义的,这个主要是进程通过BroadcastSystemMessage 来广播的,我还没怎么用过这个玩意。)

好吧,检测设备插入的问题解决了,后面是判断设备是否是手机了。
原版地址:http://mongamind.blog.163.com/blog/static/1932872612013928084398/

仿91助手的PC与android手机通讯(1) --- 检测设备插入相关推荐

  1. [转]仿91助手的PC与android手机通讯

    仿91助手的PC与android手机通讯 原文 知道91助手和豌豆莢吧? 说到这两个东西,最让人好奇的应该是就是和手机的交互了.我之前有研究过电脑和安卓的交互,基本功能已经走通了,在这里我想分享一下. ...

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

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

  3. 仿91助手的PC与android手机通讯(2) --- 检测是否是手机

    上一篇日志说了如何响应设备插入,但是设备有很多中,多媒体设备,鼠标键盘什么的都是,那如何判断是不是USB设备或者是手机插入呢? 这里就介绍一下我自己的研究结果,当然我没有去研究过苹果设备,但是按道理是 ...

  4. 仿91助手的PC与android手机通讯(5) --- 使用adb获取手机信息

    到这里,我知道的就差不多了.后面就是跟android手机的命令传递了.这些操作主要使用到android工具包---adb(android debug bridge).这个东西是google提供的,网上 ...

  5. 您可以在Windows PC或Android手机上使用iMessage吗?

    Denys Prykhodov/Shutterstock.comDenys Prykhodov / Shutterstock.com Want iMessage for Android or Wind ...

  6. 从 PC 解锁 Android 手机的 6 种有效方法

    在这个数字时代,手机已成为我们生活的重要组成部分.我们将它们用于各种用途,从跟踪我们的工作和社交日程到与亲人交流. 然而,有时我们的手机会成为令人沮丧的源头,尤其是当我们不小心将自己拒之门外时.但是您 ...

  7. windows读取android手机内容,Win10 PC到Android手机共享内容的技巧

    最近推出的Your Phone应用程序在很短的时间内在Windows 10用户中获得了极大的欢迎.用户可以直接使用他们的桌面访问存储在手机内存中的消息和照片.好消息是,您现在可以将Windows 10 ...

  8. 基于android的检测心率,基于android手机的血氧饱和度检测

    67 基于 android手机的血氧饱和度检测 许方成,赵曙光,杨 峰,黄佳佳 (东华大学信息科学与技术学院,上海 201620) 摘要:血氧饱和度是人体健康状况的标准指标,连续记录血氧饱和度可以预测 ...

  9. PC 远程控制 android手机的方法之一VNC

    1.VNC访问 a .在android手机中安装vnc 的服务端:androidvncserver http://code.google.com/p/android-vnc-server/ 本文下载了 ...

最新文章

  1. java游戏下载ios_java浏览器下载
  2. 计算机文献检索综合性实验报告,文献检索综合性实验报告模板.doc
  3. Pytorch模型层简单介绍
  4. HSRP的初步解析及典型应用2
  5. python点击网页按钮 没有id_button没有id,没有onclick事件。点击却有提交的功能,如何实现的?...
  6. webpack打包压缩混淆_细说webpack系列 3. webpack-cli 零配置打包
  7. Kotlin 能追赶上 Java 的步伐吗?
  8. 使用ADO.NET轻松操纵数据库(二)
  9. 游戏筑基开发之menset底层实现及C语言项目常见问题解决方案(C语言)
  10. 兵马未动粮草先行,关于乐视模式的思考
  11. WPS Linux 2019领先的背后
  12. Django数据库的增删改查学习笔记
  13. Java生成随机数的几种方式
  14. tolua错误大全-Chinar出品-几乎可为新手解决所有报错情景
  15. GPS经纬度转百度地图经纬度
  16. 小柏实战学习Liunx(图文教程二十二)
  17. Anton and currency you all know
  18. This is probably not a problem with npm. There is likely additional logging 报错
  19. 机器学习基础(六)贝叶斯统计
  20. 碎片化NFT研究报告:COSONFT提高NFT流动性的探索和实践

热门文章

  1. QQ堂3.3可用外挂
  2. 直角转弯4驱差动小车的设计思想
  3. 医药erp系统服务器,医药ERP管理系统的解决方案
  4. 工作积累⑦——从新零售和漏斗模型解读亚马逊增长策略
  5. EOS合约开发2-投票合约开发
  6. oracle 无效标识符,Oracle函数中的标识符无效
  7. AngryBirds(愤怒的小鸟)无法启动的解决办法
  8. 排序算法:计数排序(Python)
  9. 用uefi安装linux系统安装win7系统分区,UEFI启动 + GPT 安装 Windows + Ubunut 16.10双系统 简单方法...
  10. seata的AT模式中,数据脏读的问题