我尝试在 WinForm 应用程序中使用远程桌面 ActiveX 控件。我正在遵循 codeproject 上给出的示例(https://www.codeproject.com/Articles/43705/Remote-Desktop-using-C-NET)。 该示例无法工作。在连接按钮处理程序中,执行时出现无效转换异常
IMsTscNonScriptable secured = (IMsTscNonScriptable)rdp.GetOcx();
在 Google 上找到的其他参考文献提到使用 ActiveX 控件实例的任何 AdvancedSettings
成员并在其上设置 ClearTextPassword
属性。我在任何地方都找不到这样的房产。我不知道如何让该控制发挥作用。
有人有如何使用 RDP ActiveX 控件打开远程 desctop 会话的最新示例吗?
我还有一些远程服务器需要照顾,经过一段艰难的时间我设法让它工作,HTH。
请注意,为这些服务器的远程桌面会话配置了网络级身份验证 (NLA),这就是我需要设置 EnableCredSspSupport 属性的原因。如果不设置此属性,RDP 控件不会显示任何内容,并且似乎也没有错误。
rdp.Server = "";
rdp.UserName = "";
rdp.AdvancedSettings9.ClearTextPassword="";
rdp.AdvancedSettings9.EnableCredSspSupport = true;
rdp.Connect();
我花了几个小时来找出 ActiveX 出了什么问题...这是 RDP ActiveX 的预期行为 - 在成功建立连接之前不显示任何内容。就我而言,我订阅了
AxMsRdpClient10NotSafeForScripting::OnDisconnect
事件并收到 516
断开连接错误。结果发现代理计算机上的 RDP 被禁用...您可以使用 mstsc.exe
快速检查 RDP 连接以查看错误。就我而言,在代理计算机上启用 RDP 后效果很好。