2015-02-09 215 views
0

我最近开始学习VB.NET,我想知道是否有一种简单的方法可以杀死所有VB.NET应用程序使用的进程,例如我创建了一个表单一个给定的IP地址,这应用程序创建过程cmd.exe和发送的Ping说法,这又产生以下过程:VB.NET - 杀死进程

  • cmd.exe的
  • conhost.exe
  • PING.EXE

如果我Kill()主要过程它杀死cmd.exe但不conhost.exe也不ping.exe,我需要手动杀死这些吗?通过关闭主进程将不会自动关闭相关进程?如果这是有道理的。另一件我不明白的地方,我尝试使用Close(),但似乎没有发生,所有进程都继续运行。我希望能够让用户关闭窗体并关闭所有关联进程。

+0

对我来说听起来很腥,就像这里的特洛伊木马活动一样......但是一般来说,只要儿童进程被杀死......他们是子进程,你看着正确的父进程。如果没有“发生”,那么也许没有什么可以发生。你读过文档吗?也许这个过程是以不同于你想象的方式产生的...... – 2015-02-09 23:02:29

+3

这就是你如何从恶化到恶化。不要使用ping.exe,请使用System.Net.NetworkInformation.Ping类。 – 2015-02-09 23:20:07

回答

0

它是很多更好地使用System.Net.NetworkInformation.Ping类来执行ping(如Hans Passant所述)。

通常,如果您使用proc = System.Diagnostics.Process.Start(...),您应该能够使用proc.kill杀死进程及其子进程。但是,一个进程可能启动其他进程不会立即用kill终止。出于多种原因,手动终止剩余流程将是一个糟糕的主意。