2014-05-22 18 views
0

我有一个EXE的C++程序,它需要一个EXE作为输入搜索其中的符号,并通过命令提示符将其替换为用户的某些值。运行EXE文件要求在其他机器上的管理员优先

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

我也尝试设置'以管理员身份运行此程序',但它也不起作用。

请帮我出去..感谢提前。

回答

3

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

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

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

这个问题涵盖了相当详细的话题:How does Windows decide whether to display the UAC prompt?

+0

谢谢@david,但如何链接EXE与清单文件,因为目前我没有任何清单文件在我的项目。 – user3628555

+0

对不起,我迟到了。请参考我通过websearch发现的这些链接(我不使用Eclipse或MinGW的GUI应用程序)。 http://stackoverflow.com/questions/7245962/add-application-manifest-to-a-win32-application-in-eclipse http://www.transmissionzero.co.uk/computing/win32-apps-with-mingw /问题是否回答? –

0

除了什么@大卫赫弗南写,你也可以触发UAC窗口,当你从喜欢Program Files文件夹等,这些都需要管理启动应用程序特权。如果您尝试操作位于此类文件夹中的文件,情况也是如此。维基百科关于事件触发窗口很好的部分:http://en.wikipedia.org/wiki/User_Account_Control#Tasks_that_trigger_a_UAC_prompt

+1

我不认为启动驻留在Program Files下的应用程序会导致UAC提升 –

相关问题