C# 操作进程

/// 
/// 启动进程
/// 
/// 路径
private void StartProcesses(string path)
{
    try
    {
        if (path != "")
        {
            Process.Start(path);
        }
    }
    catch (Exception ex)
    {
    }
}

/// 
/// 关闭进程
/// 
/// 路径
private void StopProcesses(string path)
{
    try
    {
        if (path != "")
        {
            string name = Path.GetFileNameWithoutExtension(path);
            //根据名字关闭相关进程
            Process[] p = Process.GetProcessesByName(name);
            for (int i = 0; i < p.Length; i++)
            {
                p[i].Kill();
                p[i].WaitForExit();
            }
        }
    }
    catch (Exception ex)
    {
    }
}

或许有些程序用上面的StopProcesses方法,关闭不完全,从网上参考了cmd命令关闭程序

/// 
/// 运行DOS命令
/// DOS关闭进程命令(ntsd -c q -p PID )PID为进程的ID
/// 
/// 
/// 
public string RunCmd(string command)
{
    //实例一个Process类,启动一个独立进程
    System.Diagnostics.Process p = new System.Diagnostics.Process();

    //Process类有一个StartInfo属性,这个是ProcessStartInfo类,包括了一些属性和方法,下面我们用到了他的几个属性:
    p.StartInfo.FileName = "cmd.exe";           //设定程序名
    p.StartInfo.Arguments = "/c " + command;    //设定程式执行參數
    p.StartInfo.UseShellExecute = false;        //关闭Shell的使用
    p.StartInfo.RedirectStandardInput = true;   //重定向标准输入
    p.StartInfo.RedirectStandardOutput = true;  //重定向标准输出
    p.StartInfo.RedirectStandardError = true;   //重定向错误输出
    p.StartInfo.CreateNoWindow = true;          //设置不显示窗口
    p.Start();   //启动

    //p.StandardInput.WriteLine(command);       //也可以用这种方式输入要执行的命令
    //p.StandardInput.WriteLine("exit");        //不过要记得加上Exit要不然下一行程式执行的时候会当机
    return p.StandardOutput.ReadToEnd();        //从输出流取得命令执行结果
}

有了这个方法,我们就可以尝试根据进程ID来关闭进程了,可以这样关闭程序

/// 
/// CMD命令关闭程序
/// 
/// 路径
private void CmdCloseProcess(string path)
{
    if (path != "")
    {
        string name = Path.GetFileNameWithoutExtension(path);
        Process[] p = Process.GetProcessesByName(name);
        foreach (Process pre in p)
        {
            int id = pre.Id;
            this.RunCmd("taskkill /pid " + id);
        }
    }
}


 


 

 

 

 

你可能感兴趣的:(C#运用,C#)