2

我最近在网上搜索,试图找到有关如何在 WPF 中创建和运行 MSTSC RDP 会话的答案,最后得到了我需要的所有东西,创建了 AxMSTSCLib dll 并将其添加和 MSTSCLib dll 作为项目的参考。但在创建用户控件并添加 Windows 窗体主机后,运行应用程序不会显示 MSTSC Active X 控件。

如果我将 RDP 控件交换为 TextBlock 之类的东西,它会显示出来,所以我知道它与用户控件本身无关。加载用户控件时触发事件并执行以下操作;

    private void UserControl_Loaded(object sender, RoutedEventArgs e)
    {
        try
        {
            AxMsRdpClient9NotSafeForScripting rdp = new AxMsRdpClient9NotSafeForScripting();
            //AxMsTscAxNotSafeForScripting rdp = new AxMsTscAxNotSafeForScripting();
            //AxMsRdpClient9 rdp = new AxMsRdpClient9();
            rdp.CreateControl();

            rdp.AdvancedSettings9.AuthenticationLevel = 2;
            rdp.AdvancedSettings9.EnableCredSspSupport = true;
            rdp.AdvancedSettings9.NegotiateSecurityLayer = false;
            rdp.Server = server;
            rdp.UserName = "jwilson-hogg";
            rdp.DesktopHeight = 768;
            rdp.DesktopWidth = 1024;
            rdp.Connect();

            RDP_Host.Child = rdp as System.Windows.Forms.Control;

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message + "\n\n" + ex.InnerException, "Error Trying to connect to: " + server);
        }
    }

但应用程序上实际上并没有出现任何内容。我已经用谷歌搜索并尝试更改代码中的位和鲍勃,但会引发一些错误,但 10 次中有 9 次控制不显示 MSTSC 会话。

更新 1: 我尝试移动 rdp.CreateControl() 行,以防控件被创建到早期,现在我收到错误:“'System.Windows.Forms.AxHost.InvalidActiveXStateException'发生在 AxMSTSCLib.dll”

4

0 回答 0