2013-11-01 23 views
1

我已經使用Verisign簽署了我的應用程序,將所有註冊表變量存儲在HKCU中,以便不要求管理權限,但UAC命令仍會提示用戶是否他/她希望以下內容對他/她的計算機進行更改。我如何防止這種情況發生。我每次開始申請時如何擺脫UAC

下面顯示了VS

<?xml version='1.0' encoding='UTF-8' standalone='yes'?> 
<assembly xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'> 
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> 
    <security> 
     <requestedPrivileges> 
     <requestedExecutionLevel level='asInvoker' uiAccess='false' /> 
     </requestedPrivileges> 
    </security> 
    </trustInfo> 
    <dependency> 
    <dependentAssembly> 
     <assemblyIdentity type='win32'    name='Microsoft.Windows.Common-Controls'  version='6.0.0.0'        processorArchitecture='x86'     publicKeyToken='6595b64144ccf1df'    language='*' /> 
    </dependentAssembly> 
    </dependency> 
</assembly> 
+1

你能告訴我們你的應用程序清單的內容嗎? –

+0

我已經添加了在visual studio中生成的清單文件。 – Federico

回答

1

這種行爲的解釋產生的清單文件被發現,因爲我懷疑,在應用程序清單。您已指定要求的執行級別requireAdministrator。正是這種設置導致顯示UAC對話框。將其更改爲asInvoker以避免請求提升。

.... 
<requestedExecutionLevel level='asInvoker' uiAccess='false' /> 
.... 

在Visual Studio IDE中可能會有一個設置來控制它。我對此並不熟悉,但我希望這是您需要實現這一改變的方式。好,我看了這個。 IDE設置位於配置頁的「清單文件」部分下的「鏈接器」節點中。相關文檔可以在這裏找到:http://msdn.microsoft.com/en-us/library/bb384691.aspx

閱讀關於application manifests over on MSDN

+0

非常感謝您的詳細解釋!真的很感激它。將立即做出更改並讓您知道結果。乾杯。 – Federico

+0

嘿,我已經根據說明更改了清單文件,但仍然提示您輸入UAC!我不知道是什麼原因造成的。另外,我可以確認由Visual Studio在發行版中創建的.exe文件不包含管理權限,但是在使用inno安裝程序生成安裝文件後,即向HKCU寫入註冊表值並複製一些文件後,安裝後看到的應用程序圖標似乎會包含管理權限。 – Federico

+0

我們可否讓您的安裝程序不在此列。讓我們專注於編譯器生成的可執行文件。在最後的評論中,您描述了一大堆問題中未提及的步驟。請記住,我們在這裏回答你提出的問題,而不是解決這個問題背後的問題。 –