请教如何检测移动存储设备的存在与否??
本帖最后由 llztt 于 2009-12-17 23:36 编辑机房有时需要禁用U盘、移动硬盘等移动存储,于是试图做个常驻内存的程序,循环检测是否存在这些设备然后直接锁定,但检测代码遇到难题。。
DriveGetDrive( "REMOVABLE" ):会包含软驱,因部分机器还有软驱(老机房),在循环检测时,软驱读盘一直响个不停。。。放弃之。。
Pusofalse大大的安全删除U盘,测试通过了,API好复杂,呵呵,不知道可否精简出个单函数,只返回个已有移动U盘的数组啊,因为要循环检测,怕占系统资源,呵呵 插入或弹出U盘(或其他设备)时,系统会广播WM_DEVICECHANGE (0x219)消息,可以创建一个GUI窗口,并注册接收WM_DEVICECHANGE消息。当消息出现时,调用_CM_Enumerate_Physical_Disks函数枚举物理磁盘(不包含软盘),返回一个2维数组,其中的$aArray元素如果为TRUE,说明此盘是U盘或移动硬盘。如果要安全删除,用_CM_Query_And_Remove_SubTree/_CM_Request_Device_Eject两个函数。强制卸载用_SetupDiRemoveDevice(指定第3个参数为TRUE为强制卸载)。 呵呵,万分感谢哈,先结贴,再细看
大大是总版主不缺钱,就不给你加了哈 学习了:face (35): 很好啊,我也来学习一下,回去试试看
页:
[1]