运行EXE文件,询问其他机器的管理员权限

时间:2014-05-22 08:49:54

标签: c++ mingw exe uac

我正在使用一个EXE的C ++程序,它将一个EXE作为输入搜索其中的符号,并通过命令提示符将其替换为来自用户的一些值。

我正在使用Eclipse IDE和MinGW编译器进行开发。我还将链接器标志设置为'-static'。但是当我在其他机器上运行EXE时,我遇到了UAC弹出窗口的问题,这就是要求管理权限。

我也尝试过设置“以管理员身份运行此程序”的选项,但它也无效。

请帮帮我..谢谢。

2 个答案:

答案 0 :(得分:3)

除非您已采取步骤将requireAdministrator选项添加到requestedExecutionLevel应用程序清单设置,否则您不会收到UAC提示。但是,Windows中存在向后兼容性选项,这将导致为某些应用程序显示UAC提示。

这些向后兼容性UAC提示仅适用于不包含requestedExecutionLevel应用程序清单设置的可执行文件。在该场景中,系统使用启发式方法来确定是否显示UAC提示。例如,名为setup.exe或patch.exe的非显式应用程序将获得UAC提示。

避免受此向后兼容行为影响的方法是将应用程序清单链接到可执行文件。

这个问题更详细地介绍了这个主题:How does Windows decide whether to display the UAC prompt?

答案 1 :(得分:0)

除了@David Heffernan编写的内容之外,当您从需要管理权限的Program Files等文件夹启动应用程序时,也可以触发UAC窗口。如果您尝试操作位于此类文件夹中的文件,则同样适用。关于触发窗口的事件,维基百科有很好的部分:http://en.wikipedia.org/wiki/User_Account_Control#Tasks_that_trigger_a_UAC_prompt