2012-03-31 3 views
3

단추를 클릭 할 때 C#을 사용하여 .exe 파일을 닫을 수있는 방법을 알려줄 수 있습니까?단추 응용 프로그램을 닫는 방법

string str = @"C:\windows\system32\notepad.exe"; 
process.StartInfo.FileName = str; 
process.Start(); 

을하지만 사람이 어떻게 C#에서 버튼 클릭에 .EXE 응용 프로그램을 종료하는 말해 줄 수 : 나는 다음과 같은 C#을 사용 버튼 클릭에 .exe 파일을 실행하는 방법에 대한 생각이있어?

답변

1

당신은 사용할 수 있습니다

Process.Kill(); 

또는 메모장의 모든 인스턴스를 죽이기 위해 당신이 할 수 있습니다 :

foreach (var process in Process.GetProcessesByName("notepad")) { 
    process.Kill(); 
} 
+0

나는 컴퓨터의 모든 메모장을 죽이는 방법에 대한 의문이 없다고 생각합니다. – svick

+1

나는 그것이 시나리오에서 그것을 사용하는 방법을 꽤 많이 알려준다. – nawfal

+0

@nawfal, 지금은 그렇지만 내 의견을 쓸 때이 대답은 설명이없는 두 번째 코드 일뿐입니다. – svick

1

당신이 Process.Close()을 요구 하는가?

+0

하지만 실제로 응용 프로그램을 닫지는 않습니다. – svick

0
processes = Process.GetProcessesByName(procName); 
    foreach (Process proc in processes) 
    { 
     if(proc.MainWindowTitle.equals(myTitle)) 
     {   
     proc.CloseMainWindow(); 
     proc.WaitForExit(); or use tempProc.Close(); 
     } 
} 
+3

왜'GetProcessById()'를 사용하고 계시다면 이미'프로세스'가 있습니까? – svick

+0

나는 먼저 프로세스를 최적화하여 제목 표시 줄 텍스트와 관련하여 프로세스를 찾은 다음 닫습니다. –

+0

하지만 그건 내가 묻는 것을 설명하지 못합니다. 'if'에서'proc.CloseMainWindow()'를 호출하지 않는 이유는 무엇입니까? – svick

4

나는 당신이 ProcessCloseMainWindow()를 호출 할 생각합니다. 이는 창 닫기 버튼을 클릭하는 것과 유사하므로 응용 프로그램을 실제로 닫지 않을 수 있습니다.

예를 들어 사용자가 창에서 일부 텍스트를 편집했지만 저장하지 않은 경우 "변경 사항을 저장 하시겠습니까?"대화 상자가 표시됩니다.

응용 프로그램을 정말로 닫으려면 무엇이든간에 Kill()을 사용할 수 있습니다. 이로 인해 데이터가 손실 될 수 있습니다 (파일 편집 내용은 저장되지 않습니다).하지만 문제가되지 않을 수도 있습니다. 그 MDI child window 경우,

private void btnClose_Click(object sender, EventArgs e) 
    { 
     Close(); 
    } 

이 현재 창을 닫습니다 :

1

는이 같은 것을 클릭 버튼 아래에 작성해야합니다. 그렇지 않으면 응용 프로그램을 종료합니다 (단 하나의 창을 열었다 고 가정).

+0

편집 질문에 대한 프로세스를 닫고 MDI 창을 닫는 방법에 대한 것이라고 생각합니다. –

관련 문제