1

这是我用来运行以下 exe 程序的代码。运行后如何结束这 3 个过程?

Process.Start(@"C:\Bot-shortcut\DIE1.exe");
Process.Start(@"C:\Bot-shortcut\DIE2.exe");
Process.Start(@"C:\Bot-shortcut\DIE3.exe");
4

5 回答 5

6

首先,存储启动流程时返回的流程对象。

如果您希望它正常关闭,就好像有人单击了关闭图标一样,请使用CloseMainWindow. 这模拟了单击关闭图标,以便进程可以正常关闭。这总是比终止可能损坏数据的进程更可取。

如果您希望它立即死亡,请使用Kill. 请注意,这可能会损坏数据;当您杀死它时,该进程可能正在写入文件。

于 2013-10-20T14:43:48.037 回答
1

您必须按名称获取该过程,然后停止它。这是来自 MSDN 的代码片段:

 Process[] myProcesses;
    // Returns array containing all instances of Notepad.
    myProcesses = Process.GetProcessesByName("Notepad");
    foreach (Process myProcess in myProcesses)
    {
        myProcess.CloseMainWindow();
    }

Process.kill() 也会停止进程,但没有任何提示。

在本文中查找详细信息。

于 2013-10-20T14:28:58.693 回答
0

您可以使用Kill结束您的进程

Process myProcess =  new Process(@"C:\Bot-shortcut\DIE1.exe");

myProcess.Start();

//After Some Codes

myProcess.Kill();
于 2013-10-20T14:27:51.683 回答
0

Process.Start 返回您已启动的流程实例。

将其存储在变量中,并在完成后使用Process.Kill方法终止该进程。

Process process = Process.Start(@"C:\Bot-shortcut\DIE1.exe");
process.Kill();
于 2013-10-20T14:28:08.283 回答
0

将流程对象存储为变量:

var proc1 =Process.Start(@"C:\Bot-shortcut\DIE1.exe");
var proc2 = Process.Start(@"C:\Bot-shortcut\DIE2.exe");
var proc3 = Process.Start(@"C:\Bot-shortcut\DIE3.exe");

并等待他们退出:

proc1.WaitForExit();
proc2.WaitForExit();
proc3.WaitForExit();

或者杀死他们:

proc1.Kill();
proc2.Kill();
proc3.Kill();
于 2013-10-20T14:29:28.117 回答