社区
C++ 语言
帖子详情
C++ 怎么判断 “有个USB 设备插入了电脑了”提醒user
zjj_zjj
2009-02-19 02:29:15
C++ 怎么判断 “有个USB 设备插入了电脑了”提醒user?
...全文
311
9
打赏
收藏
C++ 怎么判断 “有个USB 设备插入了电脑了”提醒user
C++ 怎么判断 “有个USB 设备插入了电脑了”提醒user?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Allen_zhang
2009-02-20
打赏
举报
回复
楼上已经说得很清楚了
不过你的usb设备必须要有驱动才行
ysysbaobei
2009-02-20
打赏
举报
回复
mark,顶下
oyljerry
2009-02-19
打赏
举报
回复
3
当设备被插入/拔出的时候,WINDOWS会向每个窗体发送WM_DEVICECHANGE 消息,当消息的wParam 值等于 DBT_DEVICEARRIVAL 时,表示Media设备被插入并且已经可用;如果wParam值等于DBT_DEVICEREMOVECOMPLETE,表示Media设备已经被移出。
它们的lParam都指向一个 DEV_BROADCAST_HDR结构体,其原形如下:
1 typedef struct _DEV_BROADCAST_HDR
2 {
3 DWORD dbch_size;
4 DWORD dbch_devicetype;
5 DWORD dbch_reserved;
6 } DEV_BROADCAST_HDR, *PDEV_BROADCAST_HDR;
这个结构体仅仅是一个“头”(HDR),其后还有附加数据,dbch_size表示结构体实例的字节数,当其中的dbch_devicetype字段值等于DBT_DEVTYP_VOLUME时,表示当前设备是逻辑驱动器,且lParam实际上指向的应该是DEV_BROADCAST_VOLUME 结构体实例(真佩服这种逻辑),DEV_BROADCAST_VOLUME 结构体原形如下:
1 typedef struct _DEV_BROADCAST_VOLUME {
2 DWORD dbcv_size;
3 DWORD dbcv_devicetype;
4 DWORD dbcv_reserved;
5 DWORD dbcv_unitmask;
6 WORD dbcv_flags;
7 } DEV_BROADCAST_VOLUME, *PDEV_BROADCAST_VOLUME;
其中dbcv_unitmask 字段表示当前改变的驱动器掩码,第一位表示驱动器号A,第二位表示驱动器号B,第三位表示驱动器号C,以此类推…… dbcv_flags 表示驱动器的类别,如果等于1,则是光盘驱动器;如果是2,则是网络驱动器;如果是硬盘、U盘则都等于0
oyljerry
2009-02-19
打赏
举报
回复
处理WM_DEVICECHANGE消息...
zjj_zjj
2009-02-19
打赏
举报
回复
应该发到 C++ builder API 那块的,不过人气太低,所以请问大家有没有做过这方面的,帮个忙啊
zjj_zjj
2009-02-19
打赏
举报
回复
对阿, OS里面有驱动阿,但是现在需要在程序上显示出来
不知道怎么插图进来
画了一下:
|————————————————————|
| |
|O 提示USER是否几经接入USB Floppy |
| 否则确认按钮是灰色的。 |
| |确定 | |
|————————————————————
VirGhost
2009-02-19
打赏
举报
回复
http://www.vckbase.com/document/viewdoc/?id=1282
waizqfor
2009-02-19
打赏
举报
回复
[Quote=引用楼主 zjj_zjj 的帖子:]
C++ 怎么判断 “有个USB 设备插入了电脑了”提醒user?
[/Quote]
MS是听说过啊
我感觉也是驱动的事 这个要根据具体设备来定义吧
猫已经找不回了
2009-02-19
打赏
举报
回复
这是驱动来判断的。
Windows 11企业版LTSC:老
电脑
轻量安装与优化指南
本文详细介绍了Windows 11企业版LTSC在老旧硬件上的清洁安装与深度优化方法,涵盖镜像获取、Rufus启动盘制作、BIOS设置、分区策略、驱动兼容性处理、服务与任务计划禁用、预留存储关闭、系统激活及长期维护要点。重点突出其轻量化特性——无Store、无Cortana、无强制更新,适用于低配
设备
、开发测试及企业终端场景,强调合法授权、硬件适配与性能监控。
如何使用Deepin Boot Maker API:DBus接口调用与集成指南
本文详解Deepin Boot Maker的DBus API接口,涵盖
设备
列表获取、启动盘制作、控制方法调用及信号监听(如进度报告、完成信号)。提供Python与Bash调用示例,强调错误处理、异步调用、权限管理与安全注意事项,适用于系统安装工具、批量部署和Live
USB
创建等场景。
前端直连Android硬件:WebSocket网关架构实战
本文提出一种将Android
设备
作为
USB
/NFC硬件通信网关的架构方案,前端通过WebSocket接收序列化
设备
事件帧,规避ADK SDK在ClassLoader、Context生命周期和线程模型上的不可移植性。详细阐述Android端精简ADK逻辑、启动本地WebSocket服务,以及前端Vue Hook封装、安全加固与离线降级策略,并覆盖Android 12+至14的权限、后台服务、DNS解析等关键兼容性问题。
Python跨平台获取硬盘序列号实现软件加密与
设备
绑定
本文详细介绍了如何使用Python跨平台(Windows/Linux/macOS)获取物理硬盘唯一序列号,并基于其生成哈希指纹,用于软件加密与
设备
绑定。重点涵盖WMIC、udevadm、diskutil等系统命令调用、编码兼容性处理、多硬盘指纹合成、SHA256哈希生成、Fernet对称加密验证流程,以及应对虚拟机、OEM盘、指纹漂移等实际问题的增强策略。
OpenClaw 2.6.4:Windows 11原生ROS2开发环境一键部署方案
OpenClaw 2.6.4是专为Windows 11 23H2定制的ROS2 Humble原生开发环境部署工具,采用宿主层代理+轻量容器混合架构,规避WSL2内核兼容性、GUI转发与
USB
直通三大缺陷。其核心包含预编译ROS2运行时、隔离Python沙盒及Windows路径适配配置模板,支持
USB
设备
即插即用、VS Code深度集成、Windows服务注册与KB5050966等系统更新兼容修复,显著降低ROS2入门与工业落地门槛。
C++ 语言
65,211
社区成员
250,514
社区内容
发帖
与我相关
我的任务
C++ 语言
C++ 语言相关问题讨论,技术干货分享,前沿动态等
复制链接
扫一扫
分享
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
请不要发布与C++技术无关的贴子
请不要发布与技术无关的招聘、广告的帖子
请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下
试试用AI创作助手写篇文章吧
+ 用AI写文章