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