有关UAC提示的问题

时间:2010-06-10 08:29:08

标签: .net visual-c++ visual-studio-2005 windows-xp windows-server-2008

我想在visualc ++中为应用程序实现UAC提示操作系统是32位x7460(2处理器) Windowsserver 2008的exe是myproject.exe通过manifest ..

这里测试我将在Windows XP操作系统中构建应用程序并将exe复制到包含Windowsserver vistamachine的系统中 并替换它

所以我做的是

3 个答案:

答案 0 :(得分:2)

我似乎记得在Visual Studio 2005中对清单的支持非常不稳定 - 它在VS2008中得到了很大的改进(尽管当你将项目转换为2008时,你必须手动检查它所做的清单更改)。我建议不要在项目中使用manifest选项。而是使用mt工具创建一个后期构建步骤以手动嵌入资源 - 例如,请参阅this example

mt工具还允许您检查清单的有效性。如果您可以选择升级到VS2008,那么这非常值得。

答案 1 :(得分:1)

尝试在项目设置中禁用清单工具。在Visual Studio 2005中,您可以使用上面的.rc文件更改获得emdebbed清单。您为UAC显示XML似乎是正确的。

Visual Studio 2005在资源视图中没有对嵌入式清单的任何内置支持,但Visual Studio 2008却支持嵌入式清单。

答案 2 :(得分:0)

您对“实施UAC提示”的具体含义是什么?如果您希望您的应用程序需要管理员权限,则嵌入或添加清单是正确的方法。

您可能会收到无法加载清单的错误,因为您必须单独指定资源目录。确保包含清单的文件夹包含在资源包含路径中(右键单击项目 - >属性 - >资源 - >其他包含目录)。请注意,无法提升已在运行的流程的权限。

如果要从应用程序中的某个点触发UAC提示,可以使用此技术执行此操作:http://msdn.microsoft.com/en-us/library/ms679687(VS.85).aspx