訂閱
糾錯(cuò)
加入自媒體

一文教你學(xué)會(huì)WinForm實(shí)現(xiàn)管理員權(quán)限運(yùn)行的三種方式

前言

相信大家都遇到過(guò)這種情況,我們的軟件運(yùn)行時(shí),如果涉及到文件或者數(shù)據(jù)庫(kù)操作的時(shí)候,可能會(huì)提示權(quán)限不足。一種比較簡(jiǎn)單的辦法,就是右擊以管理員權(quán)限運(yùn)行,但是每次這么操作,又會(huì)比較麻煩,有沒(méi)有什么更好的辦法呢?今天跟大家分享一下WinForm程序以管理器權(quán)限運(yùn)行的幾種方法。

采用Process.Start方法

思路很簡(jiǎn)單,就是在Program.cs入口處判斷當(dāng)前是不是管理員權(quán)限,如果是,則不做其他處理,如果不是,改成管理員權(quán)限。

修改Main方法如下所示:

      ///


       [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)對(duì)象
               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程序文件,在彈出的屬性對(duì)話框中,兼容性選項(xiàng)中,勾選“以管理員身份運(yùn)行此程序”即可。

添加應(yīng)用程序清單文件

這種方法也是我常用的一種方式。

點(diǎn)擊項(xiàng)目,右擊添加,現(xiàn)有項(xiàng),選擇應(yīng)用程序清單列表。

添加完成后,打開(kāi)app.manifest文件,將:

修改為:

聲明: 本文由入駐維科號(hào)的作者撰寫,觀點(diǎn)僅代表作者本人,不代表OFweek立場(chǎng)。如有侵權(quán)或其他問(wèn)題,請(qǐng)聯(lián)系舉報(bào)。

發(fā)表評(píng)論

0條評(píng)論,0人參與

請(qǐng)輸入評(píng)論內(nèi)容...

請(qǐng)輸入評(píng)論/評(píng)論長(zhǎng)度6~500個(gè)字

您提交的評(píng)論過(guò)于頻繁,請(qǐng)輸入驗(yàn)證碼繼續(xù)

  • 看不清,點(diǎn)擊換一張  刷新

暫無(wú)評(píng)論

暫無(wú)評(píng)論

人工智能 獵頭職位 更多
掃碼關(guān)注公眾號(hào)
OFweek人工智能網(wǎng)
獲取更多精彩內(nèi)容
文章糾錯(cuò)
x
*文字標(biāo)題:
*糾錯(cuò)內(nèi)容:
聯(lián)系郵箱:
*驗(yàn) 證 碼:

粵公網(wǎng)安備 44030502002758號(hào)