C# 启动、关闭 Process

using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Text;

namespace AutoUpdate.Helper
{
    public class ProcessHelper
    {
        private static ProcessHelper instance;
        public static ProcessHelper Instance
        {
            get
            {
                if (instance == null) instance = new ProcessHelper();
                return ProcessHelper.instance;
            }
        }

        /// <summary>
        /// 关闭进程
        /// </summary>
        /// <param name="processName">进程名</param>
        public void KillProcessByName(string processName)
        {
            try
            {
                Process[] myproc = Process.GetProcesses();
                foreach (Process item in myproc)
                {
                    if (item.ProcessName == processName)
                    {
                        item.CloseMainWindow();
                        item.Kill();
                    }
                }
            }
            catch { return; }
        }

        /// <summary>
        /// 启动进程
        /// </summary>
        /// <param name="processName">进程名,完全限定名</param>
        public void StartProcessByName(string processName)
        {
            System.Diagnostics.Process.Start(processName);
            //Process process = new Process();//声明一个进程类对象
            //process.StartInfo.FileName = processName;//Application.StartupPath + "\\AutoUpdate.exe";
            //process.Start();
        }
    }

}

           //初始路径 + 自动更新程序名称 + 主程序名称
            string param = fullPath + ","
                + "AutoUpdate\\AutoUpdate.exe," //自动更新程序
                + "Debug\\AutoUpdateApp.exe,"//主程序
                + "Debug";//下载包

            //AutoUpdate
            Process p = new Process();//声明一个进程类对象
            p.StartInfo.FileName = fullPath + "AutoUpdate\\AutoUpdate.exe";
            p.StartInfo.UseShellExecute = true;
            p.StartInfo.Arguments = param;//第一个参数为需要下载的压缩文件,第二个为需要启动的程序
            p.Start();


注:被启动的应用使用方式如下所示:
 /// <summary>
        /// 应用程序的主入口点。
        /// </summary>
        [STAThread]
        static void Main(string[] args)
        {
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            //处理UI线程异常 
            Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
            //处理非UI线程异常 
            AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException)
            //MessageBox.Show("参数==" + args[0]);
            InitVariable(args);
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new MainForm());
        }

        private static void InitVariable(string[] args)
        {
            //VariableHelper.Instance.UpdateExeDir = ConfigurationManager.AppSettings["UpdateExeDir"];
            string[] param = args[0].Split(',');
            VarHelper.Instance.InitPath = param[0];
            VarHelper.Instance.AutoUpdateExe = param[1];
            VarHelper.Instance.MainExe = param[2];
            VarHelper.Instance.DownDir = param[3];
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值