if (!IsRunAsAdmin()) { // 使用管理员 ProcessStartInfo proc = new ProcessStartInfo(); proc.UseShellExecute = true; proc.WorkingDirectory = Environment.CurrentDirectory; proc.FileName = Application.ExecutablePath; proc.Verb = "runas"; try { Process.Start(proc); } catch { // 拒绝提升权限则返回 return; } Environment.Exit(0); } /// <summary> /// The function checks whether the current process is run as administrator. /// In other words, it dictates whether the primary access token of the /// process belongs to user account that is a member of the local /// Administrators group and it is elevated. /// 判断当前账户是否为管理员账户 /// </summary> /// <returns> /// Returns true if the primary access token of the process belongs to user /// account that is a member of the local Administrators group and it is /// elevated. Returns false if the token does not. /// </returns> internal static bool IsRunAsAdmin() { WindowsIdentity id = WindowsIdentity.GetCurrent(); WindowsPrincipal principal = new WindowsPrincipal(id); return principal.IsInRole(WindowsBuiltInRole.Administrator); }
[buy]代码示例详见:UnicodeToGB2312相关代码转自:CodeProject[/buy]