使用进程通过mstsc.exe进行连接

时间:2017-06-02 08:32:37

标签: c# rdp

我创建了一个小工具,我希望通过mstsc.exe连接到远程桌面。

我发现了很多样品,显然它们都有效。但对于一些原因,我的意思不是! :(

实际上是一个小代码

private void RunRDP(object sender, EventArgs e)
{
    Process rdcProcess = new Process();
    //Add/Change Credentials
    /**
        rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\cmdkey.exe");
        rdcProcess.StartInfo.Arguments = String.Format(@"/generic:TERMSRV/{0} /user:{1} /pass:{2}", tbServer.Text, tbUsername.Text, tbPassword.Text);
        rdcProcess.Start();
    */

    //Perform mstsc
    rdcProcess.StartInfo.FileName = Environment.ExpandEnvironmentVariables(@"%SystemRoot%\system32\mstsc.exe");
    rdcProcess.StartInfo.Arguments = string.Format(@"/v {0}", tbServer.Text);
    rdcProcess.Start();
}

我拿出了添加凭据只是为了测试连接...仍然失败。

当我评论该行

rdcProcess.StartInfo.Arguments = string.Format(@"/v {0}", tbServer.Text);

至少打开mstsc.exe

在任何其他情况下,我收到错误

  

无效的连接文件

错误必须是这样的。将其从德语翻译成英语并不会带来任何类似的错误描述:D

为什么我的程序失败了?

1 个答案:

答案 0 :(得分:2)

运行'mstsc /?'给了我:

/v:<server[:port]> -- Specifies the remote computer to which you want to connect.

所以我想你应该把它改成:

rdcProcess.StartInfo.Arguments = string.Format(@"/v:{0}", tbServer.Text);