WinForm實現管理員權限運行的三種方式
當前位置:點晴教程→知識管理交流
→『 技術文檔交流 』
前言 相信大家都遇到過這種情況,我們的軟件運行時,如果涉及到文件或者數據庫操作的時候,可能會提示權限不足。一種比較簡單的辦法,就是右擊以管理員權限運行,但是每次這么操作,又會比較麻煩,有沒有什么更好的辦法呢?今天跟大家分享一下WinForm程序以管理器權限運行的幾種方法。 方法一、采用Process.Start方法 思路很簡單,就是在Program.cs入口處判斷當前是不是管理員權限,如果是,則不做其他處理,如果不是,改成管理員權限。 修改Main方法如下所示: /// <summary> /// 應用程序的主入口點。 /// </summary> [STAThread] static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); //獲得當前登錄的Windows用戶標示 WindowsIdentity identity = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(identity); //判斷當前登錄用戶是否為管理員 if (principal.IsInRole(WindowsBuiltInRole.Administrator)) { //如果是管理員,則直接運行 Application.Run(new FrmMain()); } else { //創建啟動對象 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.UseShellExecute = true; startInfo.WorkingDirectory = Environment.CurrentDirectory; startInfo.FileName = Application.ExecutablePath; //設置啟動動作,確保以管理員身份運行 startInfo.Verb = "runas"; try { Process.Start(startInfo); } catch { return; } //退出 Application.Exit(); } } 方法二、直接修改exe屬性 右擊exe程序文件,在彈出的屬性對話框中,兼容性選項中,勾選“以管理員身份運行此程序”即可。 方法三、添加應用程序清單文件 這種方法也是我常用的一種方式。 點擊項目,右擊添加,新建項,選擇應用程序清單列表。 添加完成后,打開app.manifest文件,將: <requestedExecutionLevel level="asInvoker" uiAccess="false" /> 修改為: <requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> ———————————————— 版權聲明:本文為CSDN博主「常哥說編程」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。 原文鏈接:https://blog.csdn.net/xiketangAndy/article/details/120846627 該文章在 2024/3/30 23:38:08 編輯過 |
關鍵字查詢
相關文章
正在查詢... |