3

ご協力いただきありがとうございます。

私は現在、C# 2010 で PLink (Putty) を起動して SSH トンネルを作成するプログラムを開発しています。プログラムが開いている各トンネルを追跡できるようにして、ユーザーが不要になったインスタンスを終了できるようにしようとしています。現在、System.Diagnostics.Process.Start を使用して PLink を実行しています (現在は Putty を使用しています)。ユーザーが自由に終了できるように、起動時に各 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

3 に答える 3

4

あなたはこれを行うことができます:

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;
}
于 2010-06-14T16:28:55.397 に答える
2

Process.Start は Process オブジェクトを返します。プロパティを使用Process.Idして 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 started = Process.Start("C:\\Program Files (x86)\\Putty\\putty.exe", puttyConString);
        //do anything with started.Id.
    }
于 2010-06-14T16:28:21.167 に答える
0

私が正しく理解しているかどうかはわかりませんが、Process.Start(少なくとも使用しているオーバーロード) は a を返し、ProcessそれにProcessIdプロパティがあります。

于 2010-06-14T16:29:45.257 に答える