Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/285.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何关闭已退出C的进程打开的窗口#_C#_Process_Exit_Process.start - Fatal编程技术网

C# 如何关闭已退出C的进程打开的窗口#

C# 如何关闭已退出C的进程打开的窗口#,c#,process,exit,process.start,C#,Process,Exit,Process.start,我需要检查进程是否启动,然后验证其退出代码 EXProcess.StartInfo.FileName = strExE; EXProcess.StartInfo.Arguments = tempFile; EXProcess.Start(); do {}while (!rdcProcess.WaitForExit(1000)); if (EXProcess.HasExited) { ...} EXProcess.Kill(); 现在,我必须以编程方式关闭此进程打开的窗口。从某种意

我需要检查进程是否启动,然后验证其退出代码

 EXProcess.StartInfo.FileName = strExE;
 EXProcess.StartInfo.Arguments = tempFile;
 EXProcess.Start();
 do
{}while (!rdcProcess.WaitForExit(1000));

if (EXProcess.HasExited)
 { ...}

EXProcess.Kill();
现在,我必须以编程方式关闭此进程打开的窗口。从某种意义上说,我必须终止这个过程所启动的一切

进程正在启动一个exe。我必须检查它是否能够成功启动,所以我需要退出代码。因此我要等到代码退出。现在,在我获得退出代码之后,由进程启动的窗口仍然存在。我必须关闭窗口/以某种方式终止进程。但是EXProcess.Kill给出了一个异常-在注释中提到过

我该怎么做?
请帮助我,我想这就是你想要实现的:

using (var process = new Process())
{
    process.StartInfo.FileName = "notepad.exe";
    process.StartInfo.Arguments = "";

    process.Start();
    process.WaitForExit(1000);

    if (!process.HasExited)
        process.Kill();
}

这将打开notepad.exe,并在运行时间超过1秒时将其杀死。正如您所看到的,
notepad.exe
窗口已关闭。

如果进程终止,其所有窗口也将消失,因此您的问题现在没有多大意义。你到底想关闭什么?我猜孙子进程是由子进程打开的。这看起来像是作业对象()的作业,但我不确定这些对象是否可以从.Net直接使用……我已经编辑了上面的代码。我没有试图终止这个过程。但是它提出了一个例外,说我不能终止进程,因为它已经退出了。我认为OP想要实现的可能是持有对她打开的进程的引用,然后在她自己的程序退出时终止它。你的思路是对的,所以+1。我已经改进了我上面的问题。。你现在能帮我吗?