如何防止使用 Process.Start 打开多个 RDP 实例?

How can you prevent multiple instances of RDP from opening using Process.Start?

我只是想通过我的 C# 应用程序中的按钮单击事件打开 Windows RDP 应用程序,但是单击一次我得到的是 4 或 5 个 RDP 实例。我想知道这是否是在按钮单击事件中包含代码的结果。我研究过 Mutex,但它似乎不是我在这种特殊情况下要找的东西。有什么想法吗?

private void btnRemote_Click(object sender, EventArgs e)
{
    string rdcSupport = "C:\Windows\System32\mstsc.exe";

    try
    {
        procRDC.StartInfo.FileName = rdcSupport;
        procRDC.Start();
        procRDC.WaitForInputIdle();
        SendKeys.Send("support_server1");
        SendKeys.Send("{ENTER}");
    }
    catch
    {
        Console.WriteLine("Failed to open...");
    }
}

可能是 SendKeys 搞砸了。我建议使用 MSTSC 参数:

try
{
    Process procRDC = Process.Start(rdcSupport, "/v:support_server1");
}
catch
{
    Console.WriteLine("Failed to open...");
}

你没有展示你是如何create/initialize procRDP 的。

查看 MSTSC 帮助:https://technet.microsoft.com/en-us/library/cc753907(v=ws.11).aspx