다음과 같이 코드를 시도해보십시오. 처리를 종료하려면이 함수를 사용해야합니다. process.CloseMainWindow();
시작한 프로세스가 닫힙니다.
public static void Main()
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
process.StartInfo = startInfo;
process.Start();
Console.ReadLine();
process.CloseMainWindow();
process.Close();
}
는 위의 코드에서 나는
cmd.exe
를 시작하고 자신의 윈도우 내가 코드를
CloseMainWindow()
기능을 가지고로 그 프로그램을 닫습니다.
Cmd는 별도의 프로세스이므로 시작한 프로그램을 닫을 때 닫히지 않습니다.
parent가 충돌 (process.CloseMainWindow();)하기 전에이 프로세스가 계속 실행됩니까? 질문에 대한
대답은 : Cmd를 프로세스가 부모가 닫히지 경우 위의 코드 메인 프로그램에서
public static void Main()
{
System.Diagnostics.Process process = new System.Diagnostics.Process();
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo();
startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal;
startInfo.FileName = "cmd.exe";
process.StartInfo = startInfo;
process.Start();
throw new Exception("test");
Console.ReadLine();
process.CloseMainWindow();
process.Close();
}
을 확인하기 위해이 시도
을 다음 CloseMainWindow
를 호출하기 전에 폐쇄 예외를 가지고 그것이 만들어 얻을되지 않습니다 자식 프로세스를 닫기 전에 자식 프로세스가 실행됩니다.
응용 프로그램 닫기시 외부 시작 프로세스를 강제 종료하려면 Application.ApplicationExit Event을 사용하고 외부 프로세스 개체의 CloseMainWindow() 함수를 호출하십시오.
고마워요,하지만 내 질문은 여전히 남아 있습니다 : 부모 충돌 (process.CloseMainWindow();) 전에이 프로세스가 계속 실행됩니까? 만약 그렇다면 거기를 닫을 수있는 방법이 있습니까? –
@ThomasGros 예 ....... 열린 프로세스는 평소대로 유지됩니다. – andy
@ThomasGros - 프로세스가 닫히지 않습니다 ... udpated 대답 –