2014年毕业答辩模板-南京理工大学.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
我的中国梦 我的理想 我的未来 我的中国梦 我的理想 我的未来 南京理工大学 毕业设计答辩 答辩者: 指导老师: * 我的中国梦 我的理想 我的未来 2014/4/19 Windows系统下USB 设备监控的实现 本课题分为四个部分: 1:窗口界面模块; 2:登陆用户名模块; 3:USB存储设备添加和移除操作模块; 4:记录USB设备上的文件操作模块。 * 第一部分:窗口界面模块 1:int WINAPI WinMain(…){…} 这是整个程序的入口,目的是初始化程序,建立窗口界面。 2: hwnd = CreateWindow(MainWClass, device monitor, …); 这是创建窗口的API,被WinMain函数所调用。 3: ShowWindow(hwnd,…); UpdateWindow(hwnd); 这是显示与更新的窗口API,被WinMain函数所调用。 * 窗口界面模块 图示 * 第二部分:登陆用户名模块 首先,定义一个字符串数组,此数组是保存缓冲的被系统提取的用户名,然后,定义一个整型数,以保存字符串数组的大小,这样,就可以开始调用GetUserName函数了,GetUserName调用过后,需要将用户名的数组送入窗口中,另外,还需要建立一个日志文件,以便在程序关闭时,可以查阅历史用户登陆信息。 GetUserName定义如下: BOOL WINAPI GetUserName ( ??? __out_ecount_part(*pcbBuffer, *pcbBuffer) LPSTR lpBuffer, ??? __inout LPDWORD pcbBuffer ??? ); * 主要函数实现 GetUserName(username,len); 得到系统的用户名,存入username字符串中,len为字符串长度 wsprintf (szMsg, 用户名是:%s,username); 将用户名写入终端窗口中 WriteFile(hFile,username,lstrlen(username),dwWritten,NULL); 将用户名写入日志文档,hfile是文件句柄 * 流程图 流程图: 开 始 是否为USB设备 调入用户名显示 显示成功? 结束 N Y Y N * 登陆用户名 图示 * 第三部分: USB存储设备添加和移除操作 通过Windows API 中,在窗口中等待WM_DEVICECHANGE,并判断消息的参数,然后在界面上显示USB设备加载与卸载的相关信息。只有与磁盘相关的设备变化才会被监视到。在所有的设备的变更消息中,特别处理了USB设备的变更消息。 通过lpdbv - dbcv_flags变量判读是否为USB媒质变化。 * 主要函数实现 switch(wParam) //消息到 { case DBT_DEVICEARRIVAL: //设备到达消息到 if (lpdb - dbch_devicetype == DBT_DEVTYP_VOLUME) //移动设备到达 { if (lpdbv - dbcv_flags == 0) //USB到达 //处理USB } case DBT_DEVICEREMOVECOMPLETE: //设备移除消息到 if (lpdb - dbch_devicetype == DBT_DEVTYP_VOLUME) //移动设备移除 { if (lpdbv - dbcv_flags == 0) //USB移除 //处理USB } } * 流程图 开 始 是否为USB设备 进入监控状态 监控成功? USB操作 是否删除USB操作? 结束 N Y Y N N Y * USB存储设备添加和移除 图示 * 第四部分:记录USB设备上的文件操作模块 在本课程中,我采取了一种非常巧妙的方法: 通过USB设备的磁盘剩余空间的前后变化判读USB设备的增删工作,通过GetDiskFreeSpaceEx函数来获取磁盘剩余空间,当USB设备插入后,实时的监控USB设备的磁盘剩余大小,如果此时的大小小于上一时刻的大小,则向USB设备移入了数据,如果相反,则在USB设备删减了数据。 * 主要函数实现 GetDiskFreeSpaceEx(“x:\\,freebytestocaller,totalbytes,freebytes); freebase = freebytestocallerbase.QuadPart; //转换成DWORD型 freechange = freebytestocaller.QuadPart; //转换成DWORD型 if(freebase freechange)

文档评论(0)

AnDyqaz + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档