zoukankan      html  css  js  c++  java
  • 控制应用程序重启,外部程序C# 实例

    第一步:新建一个控制台项目,作为关闭当前应用程序的调用程序。

    using System;
    using System.Configuration;
    using System.Diagnostics;
    
    namespace RestartApp
    {
        class Program
        {
            private static string appName = ConfigurationManager.AppSettings["appName"];
            static void Main(string[] args)
            {
                try
                {
                    AppClose();
                    AppStart();
                    //退出应用程序
                    Environment.Exit(0);
                }
                catch (Exception)
                {
                    throw;
                }
            }
            /// <summary>
            /// 开启应用程序
            /// </summary>
            private static void AppStart()
            {
                ProcessStartInfo psInfo = new ProcessStartInfo();
                psInfo.FileName = appName;
                //不显示窗体
                psInfo.CreateNoWindow = true;
                //上级目录的文件
                psInfo.WorkingDirectory = @"..";
                Process process;
                try
                {
                    process = Process.Start(psInfo);
                }
                catch (Exception exception)
                {
                    throw;
                }
            }
    
            /// <summary>
            /// 关闭应用程序
            /// </summary>
            private static void AppClose()
            {
                Process[] proc = Process.GetProcessesByName(appName);
                for (int i = 0; i < proc.Length; i++)
                {
                    if (proc[i].ProcessName == appName)
                    {
                        proc[i].Kill();
                    }
                }
                GC.Collect();
            }
        }
    }

    添加System.configuration的引用

    添加配置文件app.config

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="appName" value="winformTest"/>
       </appSettings>
    </configuration>

    其中winformTest 是我要控制重启的应用程序名称

    第二步:新建工程 winformTest

    界面如图:

    image

    添加代码:

    using System;
    using System.Configuration;
    using System.Diagnostics;
    using System.Windows.Forms;
    
    namespace winformTest
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            private string appName = ConfigurationManager.AppSettings["appName"];
            private void button1_Click(object sender, EventArgs e)
            {
                ProcessStartInfo psInfo = new ProcessStartInfo();
                psInfo.FileName = appName;
                psInfo.WorkingDirectory = @".appStart";
                Process process;
                try
                {
                    process = Process.Start(psInfo);
                }
                catch (Exception exception)
                {
                    throw;
                }
            }
        }
    }

    上面的目录是winformTest 请求的RestartApp所在的目录,我是放在一个单独文件夹中的

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
      <appSettings>
        <add key="appName" value="RestartApp"/>
      </appSettings>
    </configuration>

    第三步:将编译好的RestartApp运行文件放在appStart目录中,就可以了

    image

    测试-点击重启    软件启动RestartApp  然后RestartApp  关闭winformTest  ,最后执行启动winformTest  。完成

  • 相关阅读:
    通过分析SQL语句的执行计划优化SQL(总结)
    Oracle中视图的创建和处理方法
    深入Oracle视图编写的示例
    Oracle数据库设计规范化的前两个要求
    ORACLE执行计划的一些基本概念
    养成一个SQL好习惯带来一笔大财富
    数据库管理方面的电子书下载地址汇总
    matlab C程序
    yum安装mysql
    Valgrind调试
  • 原文地址:https://www.cnblogs.com/dearbeans/p/7242781.html
Copyright © 2011-2022 走看看