是否可以在启用UAC的情况下将RegisterDeviceNotification()用于系统驱动器?它在没有UAC的情况下完美运行,但是UAC CreateFile()因访问被拒绝而失败。
以下是调用CreateFile的方法:
aHandle:= CreateFile(PChar(sDevice),GENERIC_READ,FILE_SHARE_READ,nil,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,0);
有没有办法调整CreateFile()参数以获得驱动器的最低读取权限,或者根本没有管理员权限是不可能的?
提前致谢。
答案 0 :(得分:0)
您是否尝试使用GENERIC_READ以外的其他内容?即使0也可能有用。 FILE_SHARE_READ也有点限制,您可能需要在循环中运行它并尝试所有共享模式......
答案 1 :(得分:0)
对于文件系统更改,FindFirstChangeNotification(MSDN)是您的朋友。只需为您感兴趣的目录设置通知,然后就可以了。为此搜索StackOverflow,您将获得有关此主题的大量点击。
要监控磁盘空间,GetDiskFreeSpaceEx(MSDN)是您的朋友。只需在需要当前卷的状态时调用它。