ab56a9bcf7
SVN-Revision: r240
159 lines
5.5 KiB
C#
159 lines
5.5 KiB
C#
/******************************
|
|
* 说明:启动进程、关闭进程操作
|
|
* 创建人:龚宇超
|
|
* 创建日期:2018-02-09
|
|
* 修改人:
|
|
* 修改日期:
|
|
* 修改备注:
|
|
* 版本:1.0.0.0
|
|
******************************/
|
|
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Diagnostics;
|
|
|
|
namespace Lskj.AutoUpdate
|
|
{
|
|
/// <summary>
|
|
/// 启动进程、关闭进程操作
|
|
/// </summary>
|
|
public class ProcessManager
|
|
{
|
|
/// <summary>
|
|
/// <para>说明:初始化更新,关闭现有软件</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
public void InitUpdateEnvironment()
|
|
{
|
|
if (Exist(ConstModel.ERP_CLIENT))
|
|
{
|
|
CloseExe(ConstModel.LS_ERP_NAME);
|
|
}
|
|
CloseExe(ConstModel.CLIENT_NAME);
|
|
CloseExe(ConstModel.LS_CALL_NAME);
|
|
CloseExe(ConstModel.LS_ERP_NAME);
|
|
CloseExe(ConstModel.LS_Mes_NAME);
|
|
CloseExe(ConstModel.Ls_Notice);
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:启动主程序</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
public void StartProcess(bool isMes = false)
|
|
{
|
|
string path = System.Environment.CurrentDirectory;
|
|
if (!isMes)
|
|
{
|
|
if (!Exist(ConstModel.LS_ERP_NAME))
|
|
{
|
|
StartExe(path, ConstModel.LS_ERP_EXE);
|
|
}
|
|
}
|
|
else
|
|
{
|
|
if (!Exist(ConstModel.LS_Mes_NAME))
|
|
{
|
|
StartExe(path, ConstModel.LS_Mes_EXE);
|
|
}
|
|
}
|
|
CloseExe(ConstModel.LS_UPDATE_NAME);
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:启动更新程序</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
public void StartUpdateProcess(bool isMes = false)
|
|
{
|
|
string path = System.Environment.CurrentDirectory;
|
|
CloseExe(ConstModel.CLIENT_NAME);
|
|
CloseExe(ConstModel.LS_CALL_NAME);
|
|
if (!Exist(ConstModel.LS_UPDATE_NAME))
|
|
{
|
|
if (!isMes)
|
|
{
|
|
StartExe(path, ConstModel.LS_UPDATE_EXE);
|
|
}
|
|
else
|
|
{
|
|
StartExe(path, ConstModel.LS_UPDATE_EXE, "1");
|
|
}
|
|
}
|
|
CloseExe(ConstModel.LS_ERP_NAME);
|
|
CloseExe(ConstModel.LS_Mes_NAME);
|
|
CloseExe(ConstModel.Ls_Notice);
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:启动exe绝对路径</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="filePath">The file path.</param>
|
|
/// <param name="fileName">Name of the file.</param
|
|
/// <param name="args">args</param>
|
|
private void StartExe(string filePath, string fileName, string args = "")
|
|
{
|
|
Process proc = new Process();
|
|
proc.StartInfo.UseShellExecute = true;//是否使用操作系统外壳程序启动进程
|
|
proc.StartInfo.WorkingDirectory = filePath;//启动进程的初始目录
|
|
proc.StartInfo.FileName = fileName;
|
|
if (!string.IsNullOrEmpty(args))
|
|
{
|
|
proc.StartInfo.Arguments = args;
|
|
}
|
|
proc.Start();
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:关闭的exe进程名</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="exeName">Name of the executable.</param>
|
|
public void CloseExe(string exeName)
|
|
{
|
|
Process[] arrPro = Process.GetProcessesByName(exeName);
|
|
foreach (Process pro in arrPro)
|
|
pro.Kill();
|
|
}
|
|
/// <summary>
|
|
/// <para>说明:是否存在进程名</para>
|
|
/// <para>创建人:龚宇超</para>
|
|
/// <para>创建日期:2018-02-09 </para>
|
|
/// <para>修改人:</para>
|
|
/// <para>修改日期:</para>
|
|
/// <para>修改备注:</para>
|
|
/// <para>版本:1.0</para>
|
|
/// </summary>
|
|
/// <param name="processName">Name of the process.</param>
|
|
/// <returns><c>true</c> if XXXX, <c>false</c> otherwise.</returns>
|
|
private bool Exist(string processName)
|
|
{
|
|
Process[] pro = Process.GetProcessesByName(processName);
|
|
return pro.Count() > 0;
|
|
}
|
|
}
|
|
}
|