我需要我的軟件能夠在Windows Vista上以管理員身份運行(如果有人在沒有管理權限的情況下運行它,它會崩潰)。如何在程序啓動時請求管理員權限?
當啓動其他軟件時,我看到系統提示「此軟件將以管理員身份運行,您要繼續嗎?」當應用程序試圖獲得管理權限時。
如何在Windows Vista上運行c#應用程序時請求管理權限?
我需要我的軟件能夠在Windows Vista上以管理員身份運行(如果有人在沒有管理權限的情況下運行它,它會崩潰)。如何在程序啓動時請求管理員權限?
當啓動其他軟件時,我看到系統提示「此軟件將以管理員身份運行,您要繼續嗎?」當應用程序試圖獲得管理權限時。
如何在Windows Vista上運行c#應用程序時請求管理權限?
以下添加到您的清單文件:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
您還可以使用highestAvailable
的水平。
看吧有關嵌入清單文件:
http://msdn.microsoft.com/en-us/library/bb756929.aspx
PS:如果你沒有一個清單文件,你可以方便地添加一個新問題:
在Visual Studio中,右鍵點擊項目 - >添加項目 - >選擇應用程序清單文件(在Visual C#項目的常規下)
添加的文件將已經具有上述部分,只需將級別更改爲requireAdministrator
從asInvoker
幫我瞭解添加清單文件的信息!謝謝 – swdev
值得一提的是,如果您以這種方式在VS中添加應用程序清單文件,那麼您將獲得一個包含許多其他選項的模板(例如,說您的應用程序僅適用於Windows 10及更高版本。)在VS2017上測試。 –
您需要使用requestedExecutionLevel
令牌清單:
將這個XML在一個名爲yourexename.exe.manifest:
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel level="highestAvailable" />
</requestedPrivileges>
</security>
</trustInfo>
</assembly>
對於F#的Visual Studio 2013 ,包括使用FSharp編譯器的/win32manifest
標誌請求管理員提升的清單文件,如下所示。因此,考慮名爲「APP.EXE」項目輸出
創建一個包含以下內容(爲了方便起見,文件可能會在文件中添加 到項目,確保它的 Build Action
是None' and
複製到輸出。 .. is
不要複製. By convention such a file is named
App.Exe.manifest`。如果您需要uiAccess(用戶界面),該 集必須強名稱。
<?xml version="1.0" encoding="utf-8" ?>
<asmv1:assembly manifestVersion="1.0"
xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="App" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
</requestedPrivileges>
</security>
</trustInfo>
</asmv1:assembly>
編輯該項目的對話構建面板的Other flags:
輸入字段包括以下內容:/win32manifest:<ApplicationManifestFile>
。例如,在這種情況下,/win32manifest:App.Exe.manifest
。
請不要忘記,這樣做只隱藏了潛在的問題,它不能解決它。即使你的程序確實需要管理員權限,它也不會崩潰,如果它沒有得到它們。最可能的原因是您無法在系統調用後檢查錯誤情況。 –