mstsc プロセスの特定のインスタンスを強制終了する方法はありますか。
たとえば、pc1.xyz.com.au と pc2.xyz.com.au に rdp します。
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);
}