2010-06-14 2 views
3

미리 도움을 청하십시오!C# 프로세스로 시작된 프로그램의 프로세스 ID 가져 오기 Process.Start

저는 현재 C# 2010에서 PLink (퍼티)를 실행하여 SSH 터널을 만드는 프로그램을 개발 중입니다. 나는 프로그램이 열려있는 각 터널을 추적 할 수 있도록하여 사용자가 더 이상 필요없는 인스턴스를 종료 할 수 있도록하려고 노력 중이다. 현재 System.Diagnostics.Process.Start를 사용하여 PLink (현재 퍼티 사용 중)를 실행하고 있습니다. 각 plink 프로그램이 시작될 때 PID를 결정하여 사용자가 원하는대로 종료 할 수 있도록해야합니다.

질문하는 방법입니다. 내가 .Net 이름 공간을 사용하고 있습니까? 아니면 더 나은 것이 있습니까?

코드 스 니펫 :

private void btnSSHTest_Click(object sender, EventArgs e) 
{ 
    String puttyConString; 
    puttyConString = "-ssh -P " + cboSSHVersion.SelectedText + " -" + txtSSHPort.Text + " -pw " + txtSSHPassword.Text + " " + txtSSHUsername.Text + "@" + txtSSHHostname.Text; 
    Process.Start("C:\\Program Files (x86)\\Putty\\putty.exe", puttyConString); 
} 

답변

4

이 작업을 수행 할 수 있습니다 Id 속성

+0

정확히 내가 무엇을 찾고 있었는지. 고맙습니다! –

2

Process.Start를이 프로세스 개체를 반환합니다. 이 ID를 찾으려면 Process.Id 속성을 사용하십시오.

private void btnSSHTest_Click(object sender, EventArgs e) 
{ 
    String puttyConString; 
    puttyConString = "-ssh -P " + cboSSHVersion.SelectedText + " -" + txtSSHPort.Text + " -pw " + txtSSHPassword.Text + " " + txtSSHUsername.Text + "@" + txtSSHHostname.Text; 
    Process putty = Process.Start("C:\\Program Files (x86)\\Putty\\putty.exe", puttyConString); 
    int processId = putty.Id; 
} 
+0

고마워요. 내가 찾고 있던 곳입니다. –

0

는 내가 제대로 이해하고 있는지 확실하지 않습니다 만, Process.Start (적어도 당신이 사용하고있는 과부하는) 다음 Process이 가지고있는 Process과를 반환합니다

private void btnSSHTest_Click(object sender, EventArgs e) 
    { 
     String puttyConString; 
     puttyConString = "-ssh -P " + cboSSHVersion.SelectedText + " -" + txtSSHPort.Text + " -pw " +  txtSSHPassword.Text + " " + txtSSHUsername.Text + "@" + txtSSHHostname.Text; 
     Process started = Process.Start("C:\\Program Files (x86)\\Putty\\putty.exe", puttyConString); 
     //do anything with started.Id. 
    } 
관련 문제