如果可能,我的 Qt/C++/Windows 程序需要能够在不调用 UAC 的情况下删除一些文件。
因此,我正在检查是否可以在没有 UAC 的情况下编写文件,并且令人惊讶的是(在 Linux 上不是这种情况),以下行:
if (QFileInfo(targetPath + "/" + applicationFileName).isWritable()
&& QFileInfo(targetPath + "/").isWritable()) {
在没有 UAC 验证的情况下运行时返回 true,但是.. 它仍然失败,并且 Process Monitor 声称:
Date & Time: 5/9/2012 9:09:16 AM
Event Class: File System
Operation: CreateFile
Result: ACCESS DENIED
Path: C:\Program Files (x86)\MyApp\MyApp.exe
TID: 4540
Duration: 0.0000278
Desired Access: Delete
Disposition: Open
Options: Non-Directory File, Open Reparse Point
Attributes: n/a
ShareMode: Read, Write, Delete
AllocationSize: n/a
当以管理员身份调用时,它可以完美运行..
有任何想法吗?