zoukankan      html  css  js  c++  java
  • 使用管理员权限重新运行程序

          // 检查是否是管理员身份   
            private static bool CheckAdministrator()
            {
                WindowsIdentity wi = null;
                try
                {
                    wi = WindowsIdentity.GetCurrent();
                    if (wi == null) throw new Exception("未将对象仅用到对象的实例!");
                    var wp = new WindowsPrincipal(wi);
                    var runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);
                    if (runAsAdmin) return true;
                    var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase)
                    {
                        UseShellExecute = true,
                        Verb = "runas"
                    };
    
                    Process.Start(processInfo);
                    return false;
                }
                catch
                {
                    Console.WriteLine("失败!");
                    return true;
                }
                finally
                {
                    if (wi != null)
                        wi.Dispose();
                }
            }

     应用

        /// <summary>
            /// 应用程序的主入口点。
            /// </summary>
            [STAThread]
            static void Main()
            {
                if (CheckAdministrator())
                {
                    int count = 0;
                    Process[] myProcess = Process.GetProcesses();
                    foreach (Process _Process in myProcess)
                    {
                        if (_Process.ProcessName == Process.GetCurrentProcess().ProcessName)
                        {
                            count++;
                        }
                    }
                    if (count > 1)
                    {
                        MessageBox.Show("程序已启动,请勿重复打开!", "警告", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    else
                    {
                        Application.EnableVisualStyles();
                        Application.SetCompatibleTextRenderingDefault(false);
                        Application.Run(new MainForm());
                    }
    
                }
    
            }
  • 相关阅读:
    球员岁月齐祖辉煌,执教生涯尤胜当年
    UVM序列篇之一:新手上路
    *2-3-7-加入field_automation机制
    2.3.6-加入scoreboard
    *2_3_5_加入reference model
    *2.3.4_封装成agent
    *2.3.3-加入monitor
    android的wake_lock介绍
    linux常用命令一些解释
    linux wc命令的作用。
  • 原文地址:https://www.cnblogs.com/gaobing/p/4022707.html
Copyright © 2011-2022 走看看