2013-09-25 2 views
-1

프로세스가 시작되었는지 확인한 다음 종료 코드를 확인해야합니다.종료 된 프로세스에서 열린 윈도우를 닫는 방법 C#

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

if (EXProcess.HasExited) 
{ ...} 

EXProcess.Kill(); 

이제이 프로세스에서 프로그래밍 방식으로 연 창을 닫아야합니다. 그 의미에서 나는이 과정에서 시작된 모든 것을 끝내야 만한다.

프로세스가 exe를 시작합니다. 성공적으로 실행할 수 있는지 확인해야하므로 종료 코드가 필요합니다. 따라서 코드가 종료 될 때까지 기다리고 있습니다. 이제 종료 코드를 얻은 후 프로세스가 시작한 창이 나타납니다. 나는 그 창문을 닫아야한다/어떻게 든 그 과정을 죽여야한다. 하지만 EXProcess.Kill은 예외에서 코멘트를 언급했다.

어떻게해야합니까? 내가 그건 당신이 acheive하려고하는지 생각

+4

프로세스가 종료되면 모든 창도 사라지고 질문이 지금 당장 이해가되지 않습니다. 너는 무엇을 정말로 닫으려고 하는가? –

+0

나는 자식 프로세스가 연 손 프로세스를 추측했다. 이 작업 개체에 대한 작업 (http://msdn.microsoft.com/en-us/library/windows/desktop/ms684161%28v=vs.85%29.aspx)처럼 보이지만,이 작업을 수행 할 수 있는지 확신하지 못합니다. 닷넷에서 직접 사용하십시오 ... – Medinoc

+0

위의 코드를 편집했습니다. 나는 그 과정을 죽이려고했다. 이미 종료 된 것처럼 프로세스를 죽일 수 없다는 예외를 제기하고있다. – worried

답변

1

도움 마십시오 :

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 창이 닫힙니다.

+0

OP가 원하는 것은 그녀가 열어 본 과정에 대한 참조를 붙잡고 자신의 프로그램이 끝나면 죽이는 것입니다. 거기에서 올바른 길을 가고 있습니다. 그래서 +1. – Renan

+0

나는 나의 질문을 상기시켰다... – worried