2011-04-05 5 views
0

ASP.NET에서 웹 페이지를 개발했습니다.이 페이지에는 클릭시 DOS 프로그램을 시작하는 버튼이 있습니다.C# 어떻게 시작 프로세스를 종료 할 수 있습니까?

if (!String.IsNullOrEmpty(endTime)) 
{ 
    Process p = new Process(); 
    p.StartInfo.WorkingDirectory = Server.MapPath("~/"); 
    p.StartInfo.FileName = Server.MapPath(apiFile); 

    try 
    { 
     p.Start(); 
    } 
    catch 
    { 
     throw new Exception(
      "Requested process (" + p.StartInfo.FileName + ") could not be started. Page: Api.aspx.cs, Method: UploadBtn_Click()"); 
    } 

    System.Threading.Thread.Sleep(5000); 

    Response.Redirect(Request.Url.ToString()); 
} 

코드는 잘 작동하고 프로세스를 시작합니다 : 여기

는 코드입니다. 이제

문제 :

나는 그러나, 지금 프로세스를 중지하려면, 버튼 및 프로세스 시작 (I 데이터베이스에서이 참조) 프로그램이 잘 작동 클릭하지만, 어떻게해야할지 모르겠다.

"CTRL + C"또는 뭔가를 클릭 할 수있는 DOS-Window가 없습니다.

처리를 중지하려면 어떻게해야합니까?

사용자는 프로세스를 시작하는 데 사용됩니까?

+1

우수 -이 사람은 누구입니까? 나에게 URL을 보낼 수 있습니까? 나는 그것을 시험해보고 싶다 : D –

답변

6

그냥 Process.Kill 사용

p.Kill(); 

가 UPDATE : 개방 (
은, 코드가없는 프로세스를 종료 작업 관리자를 사용하려면 :
때문에 의견의
, 내가 대안으로 이것을 제공 CTRL + SHIFT + ESC 또는 CTRL + ALT + DEL -> 작업 관리자를 사용하여) "프로세스"탭으로 이동하여 "모든 사용자에게 프로세스 표시"를 선택하고 프로세스를 선택하고 "프로세스 끝내기"를 클릭하십시오 ...

+0

당신은 그것을 죽일 필요가있을 때 접근 할 수 있도록 프로세스에 대한 참조를 유지할 필요가있다. – ChrisF

+0

웹 사이트에서 프로세스를 시작하고 Visual Studio가 아닌 프로세스를 시작하기 때문에 작업을 시작할 수 없습니다 .. – Alexo

+0

설명 : 프로세스를 중지하는 방법을 검색하지 않습니다. 나는 버튼에서 라이브 만 클릭한다. 프로세스가 시작됩니다 ...이 프로세스를 죽일지는 알 수 없습니다 ... 코드가 필요 없지만 라이브 프로세스를 중지하는 e 솔루션을 알고 있습니다! :) – Alexo

0

페이지 클래스 아래에 Process 개체를 필드로 저장하고 다른 단추로 .Kill at를 호출 할 수 있습니다. 그러나이 경우 하나의 프로세스 만 호스팅 할 수 있으며 하나만 실행하는 것이 안전하다고 생각해야합니다.

관련 문제