C#WPF MSTSC Active X Control在运行时

时间:2017-02-01 15:07:44

标签: c# wpf visual-studio-2015 mstsc

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

如果我将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);
        }
    }

但实际上没有出现在应用程序上。 我用Google搜索并尝试在代码中更改位和bobs,但是有一些错误被抛出,但是10次控制中的9次没有显示MSTSC会话。

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

0 个答案:

没有答案