如何强制 .NET 程序以 管理员模式 运行 ?
生活随笔
收集整理的這篇文章主要介紹了
如何强制 .NET 程序以 管理员模式 运行 ?
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
咨詢區
Gold:
我有一個 winform 程序部署客戶的PC機上,請問我如何通過編碼的形式強制讓程序以管理員模式運行?
回答區
Gaspa79:
如果你用的是 Visual Studio 2019,可以通過工具去配置,右鍵 項目 -> 新建項 -> Application Manifest File 。
在 manifest 文件中,找到 requestedExecutionLevel 節點,它的 level 可以設置為如下三種。
<requestedExecutionLevel??level="asInvoker"?uiAccess="false"?/> <requestedExecutionLevel??level="requireAdministrator"?uiAccess="false"?/> <requestedExecutionLevel??level="highestAvailable"?uiAccess="false"?/>如果要用管理員模式的話,使用 requireAdministrator 即可。
<requestedExecutionLevel??level="requireAdministrator"?uiAccess="false"?/>Gaspa79:
如何因為某些原因你必須要通過 純代碼 解決的化,可以參考我的實現代碼。
using?System; using?System.Diagnostics; using?System.Reflection; using?System.Security.Principal;public?static?class?AdminRelauncher {public?static?void?RelaunchIfNotAdmin(){if?(!RunningAsAdmin()){Console.WriteLine("Running?as?admin?required!");ProcessStartInfo?proc?=?new?ProcessStartInfo();proc.UseShellExecute?=?true;proc.WorkingDirectory?=?Environment.CurrentDirectory;proc.FileName?=?Assembly.GetEntryAssembly().CodeBase;proc.Verb?=?"runas";try{Process.Start(proc);Environment.Exit(0);}catch?(Exception?ex){Console.WriteLine("This?program?must?be?run?as?an?administrator!?\n\n"?+?ex.ToString());Environment.Exit(0);}}}private?static?bool?RunningAsAdmin()?{WindowsIdentity?id?=?WindowsIdentity.GetCurrent();WindowsPrincipal?principal?=?new?WindowsPrincipal(id);return?principal.IsInRole(WindowsBuiltInRole.Administrator);?????????????} }點評區
要想讓程序以管理員模式運行,這篇就學習了兩種方式,當在程序中需要操控一些系統資源或者第三方工具時,通常就需要以管理員模式的剛性需求啦。
總結
以上是生活随笔為你收集整理的如何强制 .NET 程序以 管理员模式 运行 ?的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 《Redis核心技术与实战》学习总结(1
- 下一篇: Windows 11 dapr 环境安装