2015-06-22 48 views
0

是否有办法杀死某些mstsc进程的实例。杀死某些MSTSC进程

例如,我将rdp转换为pc1.xyz.com.au和pc2.xyz.com.au.

现在来自c#,我想杀死或断开pc1.xyz.com.au.

当前下面的代码杀死所有mstsc进程的实例。 有什么办法可以断开只有某些mstsc实例。

private void terminateRDP() 
     { 
      foreach (var process in Process.GetProcessesByName("mstsc")) 
      { 
       process.Kill(); 
      } 
     } 

我试图拯救被打开,但我捕获的捕获pid是一个比在任务栏中不同进程的PID。我正在使用下面的代码打开一个.rdp文件。

Process rdcProcess = new Process(); 
        rdcProcess.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; 
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe"); 
        rdcProcess.StartInfo.Arguments = "/generic:TERMSRV/" + server + " /user:" + username + " /pass:" + password; 
        rdcProcess.Start(); 
        rdcProcess.WaitForExit(); 

        changeServerRDP(serverAddress); 
        if (getApplicationPath(serverList.SelectedItem.ToString()) != String.Empty) 
        { 
         changeServerRDPPath(getApplicationPath(serverList.SelectedItem.ToString())); 
         rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");      
         rdcProcess.StartInfo.Arguments = "C:\\rdp\\my.rdp"; 
         rdcProcess.Start(); 
         rdcProcess.WaitForExit(); 

         //pids.Add(rdcProcess.Id); 
         //int procID = rdcProcess.Id; 
         //MessageBox.Show(procID.ToString()); 
         //opened.Add(rdcProcess); 

        } 

回答