Domanda

Grazie in anticipo per tutto il vostro aiuto!

Attualmente sto sviluppando un programma in C # 2010, che lancia Plink (Putty) per creare un tunnel SSH. Sto cercando di rendere il programma in grado di tenere traccia di ogni tunnel che è aperta in modo che un utente può recedere quei casi che non sono più necessari. Attualmente sto usando System.Diagnostics.Process.Start per eseguire Plink (attualmente Putty in uso). Ho bisogno di determinare il PID di ciascun programma plink quando viene lanciato in modo che un utente può terminare a piacimento.

La domanda è come fare e sto usando il giusto spazio nome Net o c'è qualcosa di meglio?

Snippet di codice:

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);
}
È stato utile?

Soluzione

Si può fare questo:

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;
}

Altri suggerimenti

Process.Start restituisce un oggetto processo. Utilizzare la proprietà Process.Id per scoprire l'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.
    }

Non sono sicuro se ho capito bene, ma Process.Start (almeno del sovraccarico che si sta utilizzando) restituirà un Process e allora che Process ha una proprietà Id.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top