【发布时间】:2011-07-30 22:04:48
【问题描述】:
我为我的应用程序开发了一个自动更新程序,它从更新服务器获取所有文件的 MD5 哈希列表,并在不匹配的情况下下载新文件。 目前,这只发生在主 DLL 文件中,它在更新程序完成工作之后(!)在运行时加载。
它在 Windows XP 中完美运行,但一些用户已经抱怨更新程序在尝试覆盖上述 DLL 文件时给他们错误 5 访问被拒绝。如果他们以管理员权限运行它,它可以工作,但是对于他们来说,在启动程序时总是同意管理员权限是一件烦人的事情。
我的问题:为什么访问覆盖该 DLL 被拒绝,有没有办法在没有 UAC 提示的情况下实现它?
或者:有没有办法让应用程序以管理员身份永久运行,用户只需同意一次,而不是每次运行时都同意。
PS: 我正在使用 Qt 4.7,尤其是带有 QFile::WriteOnly 的 QFile::open 方法 | QFile::Truncate 并在打开失败时调用 QMessageBox 并显示 errorString() 和一些解释。
谢谢!
【问题讨论】:
-
我电脑上的所有自更新应用程序都需要管理员权限。我不明白为什么你的申请应该得到优惠待遇。
标签: dll access-denied qfile