在此先感谢所有的帮助!

我目前正在开发的C#2010的程序启动砰砰(腻子)来创建一个SSH隧道。我试图让能够跟踪是开放的,因此用户可能会终止不再需要那些实例每个隧道的方案。我目前使用System.Diagnostics.Process.Start运行砰砰(当前正在使用的腻子)。我需要确定当它被启动,因此用户可随意终止它的每个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);
}
有帮助吗?

解决方案

您可以这样做:

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

其他提示

的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.
    }

我不知道如果我理解正确的,但Process.Start(至少你使用过载)将返回Process,然后将该ProcessId属性。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top