如何防止使用 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
我只是想通过我的 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