zoukankan      html  css  js  c++  java
  • 程序发布后,必须以管理员身份登陆

        项目中打包程序,在后续更新时需要管理员身份运行,固将程序运行时,使用管理员运行。

    作如下设置

    1)在App.cs中增加以下代码:

    复制代码
            /// <summary>
            /// 检查是否是管理员身份
            /// </summary>
            private void CheckAdministrator()
            {
                var wi = WindowsIdentity.GetCurrent();
                var wp = new WindowsPrincipal(wi);
    
                bool runAsAdmin = wp.IsInRole(WindowsBuiltInRole.Administrator);
    
                if (!runAsAdmin)
                {
                    // It is not possible to launch a ClickOnce app as administrator directly,
                    // so instead we launch the app as administrator in a new process.
                    var processInfo = new ProcessStartInfo(Assembly.GetExecutingAssembly().CodeBase);
    
                    // The following properties run the new process as administrator
                    processInfo.UseShellExecute = true;
                    processInfo.Verb = "runas";
    
                    // Start the new process
                    try
                    {
                        Process.Start(processInfo);
                    }
                    catch (Exception ex)
                    {
                        ex.WriteLog();
                    }
    
                    // Shut down the current process
                    Environment.Exit(0);
                }
            }
    复制代码

    2)重写 OnStartup 函数 

    复制代码
    protected override void OnStartup(StartupEventArgs e)
            {
                base.OnStartup(e);
    
                CheckAdministrator();
    //如果不是管理员,程序会直接退出。
    StartupUri = new Uri("MainWindow.xaml", UriKind.RelativeOrAbsolute); }
    复制代码
  • 相关阅读:
    #Laravel笔记# 使用SMTP发送邮件功能
    #Laravel笔记# 监听事件
    idea 常见问题
    python常见函数汇总
    双DNN排序模型:在线知识蒸馏在爱奇艺推荐的实践
    机器学习算法GBDT
    Hive表数据同步到es
    目标检测资料
    zeppelin的介绍与使用
    Java汉字获取拼音、笔划、偏旁部首
  • 原文地址:https://www.cnblogs.com/hanjiaxu/p/4682283.html
Copyright © 2011-2022 走看看