首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖DLL在Windows 7中抛出访问被拒绝/错误5

覆盖DLL在Windows 7中抛出访问被拒绝/错误5
EN

Stack Overflow用户
提问于 2011-07-31 06:04:49
回答 1查看 1.7K关注 0票数 1

我为我的应用程序开发了一个自动更新器,它从更新服务器获取所有文件的MD5散列列表,并在不匹配的情况下下载新文件。目前,这种情况只发生在主DLL文件上,该文件在运行时加载(!)更新程序已经完成了他的工作。

它在Windows XP中运行得很好,但一些用户已经抱怨说,当他们试图覆盖上述DLL文件时,更新程序会给他们错误5访问被拒绝。如果他们使用管理员权限运行它,它可以工作,但对于他们来说,在启动程序时总是同意管理员权限是一件令人恼火的事情。

我的问题是:为什么覆盖DLL的访问被拒绝了,有没有办法在没有UAC提示的情况下实现它?

或者:有没有一种方法可以让应用程序永久以管理员身份运行,用户只需同意一次,而不是每次运行时都同意。

PS:我正在使用Qt4.7,特别是QFile::open方法和QFile::WriteOnly | QFile::Truncate,如果使用errorString()和一些解释打开失败,则调用QMessageBox。

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2011-07-31 06:08:31

你有没有确保应用程序是“单实例”的,即永远不会运行两次?

如果不是,这可能是一种解释。

至于让应用程序始终以管理员身份运行-你永远不应该这样做……

编辑:

至于Windows 7:

您正在尝试直接覆盖程序中的某些内容...这是操作系统的一项安全措施,以防止在没有管理员权限的情况下在其中写入数据...

这些可以帮助处理UAC:

http://msdn.microsoft.com/en-us/library/bb756929.aspx

http://social.msdn.microsoft.com/Forums/en-US/csharpgeneral/thread/20acb8b9-8b9c-4a85-9416-fccdef579f10/

Windows 7 and Vista UAC - Programmatically requesting elevation in C#

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6886249

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档