首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在windows7和Vista中使MFC应用程序绕过UAC

如何在windows7和Vista中使MFC应用程序绕过UAC
EN

Stack Overflow用户
提问于 2010-02-12 09:37:55
回答 5查看 12.2K关注 0票数 3

我有一个在VS Studio 2008中开发的MFC应用程序,它在安装文件夹中读取和写入JSON文件。它完美地工作在vista(管理员),但只有当UAC被关闭。当UAC打开时,应用程序无法写入其JSON文件。我想我必须创建一个清单文件,但我还没有真正尝试创建一个。

问题:

  1. 参考资料:http://msdn.microsoft.com/en-us/library/bb384691.aspx.这里说,您可以简单地在Visual开发环境中设置链接器选项。我需要为哪些值选择: ( a)启用用户帐户控制(UAC)?我试过了没有。 ( b) UAC执行级别?我试过highestAvailable。 ( c)和UAC旁路UI保护?我试过了。
  2. 是否需要在软件包(exe、Dll等)中添加清单文件?

谢谢..。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-02-12 17:03:09

UAC的整个概念是你不能绕过它。如果可以的话,那就没用了。

唯一的解决方案(这是您无论如何应该做的,不仅仅是因为UAC)是永远不要在安装文件夹中写入文件,而是在它所属的%APPDATA%中写入文件。

票数 12
EN

Stack Overflow用户

发布于 2010-02-12 10:08:07

您应该将此文件复制到AppData。修改程序文件中的文件总是会触发UAC提示符。此操作需要管理员权限,而清单对此没有帮助。

票数 3
EN

Stack Overflow用户

发布于 2010-02-12 17:14:48

添加清单文件,您只能声明应用程序需要UAC permisison。这样,用户将在应用程序启动时被提示输入UAC。

如果这是您想要的,这里,您可以找到如何做它的描述。

其他aprroach是安装一个使用LocalSystem帐户运行的服务,它允许(几乎)做任何事情而不需要UAC的许可。为此,您必须实现UI应用程序和服务之间的进程间通信。进程之间共享的内核对象必须从具有适当安全属性的服务中创建,这样才能以形式而不是提升的程序形式进行访问。服务的安装将提示用户使用UAC (与大多数其他安装一样)

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

https://stackoverflow.com/questions/2250810

复制
相关文章

相似问题

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