2014-05-22 41 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提升 –

相關問題