C#預設以管理員身份運行程式

來源:互聯網
上載者:User

上篇部落格寫了一下如何通過網路時間更新系統時間,當時寫的時候怎麼測試都不成功,後來想想是不是我作業系統(當時是在win8上開發的)的問題。當時我猜應該是許可權不夠,導致無法修改系統時間,於是我以管理員身份運行了一次,結果測試成功!原來真的是許可權的問題,於是就在程式裡面加入了預設以管理員身份啟動並執行代碼。下面讓我們看看是怎麼實現的吧!

 

程式預設以管理員身份運行

static void Main(string[] Args)        {            /**             * 目前使用者是管理員的時候,直接啟動應用程式             * 如果不是管理員,則使用啟始物件啟動程式,以確保使用管理員身份運行             */            //獲得當前登入的Windows使用者標示            System.Security.Principal.WindowsIdentity identity = System.Security.Principal.WindowsIdentity.GetCurrent();            //建立Windows使用者主題            Application.EnableVisualStyles();            System.Security.Principal.WindowsPrincipal principal = new System.Security.Principal.WindowsPrincipal(identity);            //判斷當前登入使用者是否為管理員            if (principal.IsInRole(System.Security.Principal.WindowsBuiltInRole.Administrator))            {                //如果是管理員,則直接運行                Application.EnableVisualStyles();                Application.Run(new Form1());            }            else            {                //建立啟始物件                System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();                //設定運行檔案                startInfo.FileName = System.Windows.Forms.Application.ExecutablePath;                //設定啟動參數                startInfo.Arguments = String.Join(" ", Args);                //設定啟動動作,確保以管理員身份運行                startInfo.Verb = "runas";                //如果不是管理員,則啟動UAC                System.Diagnostics.Process.Start(startInfo);                //退出                System.Windows.Forms.Application.Exit();            }        } 

 

 

開啟程式集裡的Program.cs檔案,並將其中Main方法中的代碼替換為以上代碼即可實現程式預設以管理員身份運行。

這篇部落格本來早就應該發表的,可是由於網路等各種原因,一直到了現在才得以發表,網路問題很快就會得到解決,到時會繼續恢複到每周一篇的更新頻率,希望大家繼續關注。

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.