在C#.NET中启动和停止进程

我正在尝试编写一个简单的程序,它有两个方法,一个启动一个进程,一个启动同一个进程。 如:

public Process StartProc(string procname) { Process proc = new Process(); proc.StartInfo.FileName = procname; proc.Start(); return proc; } public void StopProc(Process proc) { proc.Close(); } 

有可能这样做吗?

是的,你所追求的方法叫做Kill ,而不是Close

 public void StopProc(Process proc) { proc.Kill(); } 

这将强制关闭进程 – 如果可能,最好通过请求应用程序关闭主窗口来通知应用程序关闭:

 public void StopProc(Process proc) { proc.CloseMainWindow(); } 

这允许应用程序执行清理逻辑(例如保存文件),但是如果它选择忽略请求则可以允许进程继续运行,并且如果进程没有主窗口则不会执行任何操作(例如,控制台应用程序)

有关更多信息,请参阅Process.CloseMainWindow方法的文档。

我想你正在寻找Process.Kill()

你真的不需要StopProc()方法,你可以直接编写proc.Kill()

但是,通常不建议您以这种残酷的方式终止进程。 这样做可以使共享对象处于未定义状态。 如果你能找到一种方法来合作关闭这个首选的过程。

通过启动该过程,您可以获得该过程的唯一ID,然后您可以像这样杀死它:

 public static int Start(string processName) { var process = Process.Start(processName); return process.Id; } public static void Stop(int processId) { var process = Process.GetProcessById(processId); process.Kill(); }