2012-03-23 4 views
2

현재 실행중인 프로세스의 목록 상자가있는 작업 킬러 프로그램이 있습니다. 항목을 선택하면 버튼 클릭으로 코드가 실행되어 선택한 작업이 종료됩니다. 그게 다 잘 작동하지만, 내가 도움이 필요한 것은 마지막 작업이 무엇인지 표시하는 양식의 문자열 출력을 조작하는 것입니다. 예를 들어 계산기를 열어 해당 작업을 종료하면 문자열 출력은 "System.Diagnostics.Process (calc)"입니다. 이것이 "계산"이라고 말하면 더 좋을 것입니다. 그래서, 별도의 노트로, 또한 당신을C에서 출력 문자열 조작 #

Killed.Text = p.ProcessName; 

을 시도

public bool KillProcess(ListBox PList, TextBox Killed) 
    { 
     bool Kill = true; 
     string x = ""; 
     Killed.Text = ""; 


     if (PList.SelectedItem != null) 
     { 

      foreach (Process p in Process.GetProcesses(Environment.MachineName)) 
      { 
       x = PList.SelectedItem.ToString(); 

       if (p.ProcessName.Equals(x)) 
       { 

        try 
        { 
         p.Kill(); 

    //*************** Here is where I have the process killed placed into a textbox 
        //Which I would like to not say "System.Diagnostics.Process..." 

         Killed.Text = p.ToString(); 
        } 
        catch 
        { 
         MessageBox.Show(p.ProcessName.ToString() + " cannot be killed. ", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
         Kill = false; 
        } 
       } 


      } 
     } 
     else 
     { 
      MessageBox.Show("Please select a process to be killed.", "Information", MessageBoxButtons.OK, MessageBoxIcon.Information); 
      Kill = false; 
     } 

     return Kill; 
    } 
+4

왜 단순히 p.ProcessName을 사용하지 않으시겠습니까? – BlackBear

답변

6

대신

Killed.Text = p.ToString(); 

의 "() System.Diagnostics.Process가"를 제거 할 수 있어야합니다 p.ProcessName은 이미 문자열이므로 p.ProcessName.ToString()을 다른 곳에서 말할 필요는 없습니다.

+1

감사! 그 작품. 너무 단순 해 보인다! – Richard

+0

@ 리차드 작동하기 때문에이 대답 옆에 녹색 확인란을 표시 할 수 있습니다. –

3

p.ProcessName을 사용하면됩니다.

또한 또한 당신에게 (예 : 파일 이름) 프로세스에 대한 자세한 정보를 제공하는 ProcessStartInfo로 얻을 수있는 p.StartInfo에 액세스 할 수 있습니다 -이 유용 할 수있다.