2011-06-17 62 views
3

我在C#4.0中開發了一個WPF應用程序。此應用程序正在安裝一些其他應用程序(MSI)。由於這個原因,我在應用程序清單文件中做出了以下更改。刪除桌面圖標上的安全屏蔽符號

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 

進行上述更改後,桌面上的應用程序(app.exe)快捷方式顯示屏蔽符號。

有沒有什麼辦法從應用程序中刪除這個盾牌符號&桌面快捷方式?

我已經看到一些微星& Setup.exe,他們也在計算機上安裝該程序,但盾牌圖標不會出現與他們的捷徑圖標。

回答

4

由於您所做的清單更改,存在該盾牌圖標。防止這種情況的方法是消除這些變化。

我不確定你需要設置該清單才能運行MSI;我相信運行MSI本身會提示提升priv,所以你的應用程序本身不需要提升權限。

或者,您可以讓運行MSI的代碼本身要求管理員權限,而不是讓整個應用程序需要它,這是清單信息的作用。

+0

我安裝了10個其他應用程序,所以爲了避免每次安裝UAC提示我已經更改了清單文件。是否有任何其他方式按需獲取管理員權限? – Vipul

+0

你*是*'按需'獲取它們。你的意思是別的嗎? @vipul –

+0

當我更改清單文件應用程序時,一開始就要求提供UAC提示,OS也事先知道應用程序需要UAC提升。有沒有什麼方法可以讓我稍後根據用戶輸入要求UAC? – Vipul

3

否。屏蔽指示如果用戶啓動exe,他們應該期待UAC對話框。你在清單中要求。它都按設計工作。

+0

是否有任何其他方式獲得管理員權限的需求? – Vipul

+0

@Vipul看看http://stackoverflow.com/q/6418791/203458 –

+0

gr8 ...,我會試試看。看起來我應該改變我的應用程序體系結構以滿足這個要求,並且將需要管理權限的所有代碼保存在單獨的程序集中。然後在需要時使用admin priv調用該程序集。 – Vipul