U盘自动拷贝程序
描述:启动该程序后,自动检测U盘是否存在,若存在,将U盘中所有的文件拷贝到电脑的指定目录下。 注:本篇博文仅支持技术讨论,不用于数据的盗取之类的黑科技。 本程序基于Win32开发,主要是利用Win32的消息函数。也可是MFC等含有消息循环的体系。 思路: 1.WM_DEVICECHANGE,检查当前的设备状态。DBT_DEVICEARRIVAL ,插入设备响应。 2.lParam参数,附带U盘插入的盘符。如:G盘。获取该盘符 3.GetDriveType() == DRIVE_REMOVABLE。判断G盘是否是移动盘。 4.接下来就是,通过递归不断遍历文件夹、文件。若是文件则使用Copy函数进行拷贝。(可以每一个文件夹创建一条线程。) 如何获取U盘插入后所在的盘符? 假设U盘在我本机是G盘。 lpDb = (DEV_BROADCAST_HDR *)lParam; lpDbv = (DEV_BROADCAST_VOLUME *)lpDb; lParam附带U盘所在的盘符,解析后 lpDbv=64. 如下: 再通过位运算,64&1,判断1处在第几位,进而就可以得到U盘所在的盘符。如下: char chDick; lpDb = (DEV_BROADCAST_HDR *)lParam; lpDbv = (DEV_BROADCAST_VOLUME *)lpDb chDick =