C# winForm 強制以系統管理員身分啟動程式

開啟程式時如果不是以系統管理員身分啟動,會跳出授予系統管理員身分視窗
註:開發的時候要用系統管理員身分啟動VS

直接上程式碼
修改Program.cs:

using System;
using System.Diagnostics;
using System.Security.Principal;
using System.Windows.Forms;

namespace RuyutAdministratorStart
{
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
// 判斷是否以系統管理員身分啟動
if (new WindowsPrincipal(WindowsIdentity.GetCurrent()).IsInRole(WindowsBuiltInRole.Administrator))
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
else
{
// 以系統管理員身分重新啟動
var processInfo = new ProcessStartInfo
{
UseShellExecute = true,
FileName = Application.ExecutablePath,
Verb = "runas",
};

try
{
Process.Start(processInfo);
}
catch (Exception ex)
{
// 授予系統管理員身分被拒絕
MessageBox.Show("本程式必須以系統管理員身分啟動!\n錯誤訊息:" + ex.Message);
}
}
}
}
}

Github Gist:

留言