VB.net终端服务器应用程序

时间:2014-09-16 05:18:38

标签: vb.net terminal-services

我正在开发一个供个人使用的终端服务应用程序,它允许我通过选项卡列出和管理我的所有RDP会话(我知道这些存在,但也将它用作一个小型学习项目)。我想知道是否有人可以帮助一些项目。我试图动态创建并添加选项卡和RDP控件到每个选项卡上。这似乎可以用于创建第一个标签页和控件,但在后续的标签页和控件上失败,错误如下面的代码:

    Dim theNewTabPage As New DevExpress.XtraTab.XtraTabPage()
    theNewTabPage.Text = txtserver.Text
    theNewTabPage.Name = Minute(DateTime.Now) & Second(DateTime.Now)

    Dim RDPCONTROL As New AxMSTSCLib.AxMsRdpClient9NotSafeForScripting
    RDPCONTROL.Dock = DockStyle.Fill
    'Just a test to ensure unique name
    RDPCONTROL.Name = Minute(DateTime.Now) & Second(DateTime.Now) 
    XtraTabControl1.TabPages.Add(theNewTabPage)
    theNewTabPage.Controls.Add(RDPCONTROL)
    Try
        RDPCONTROL.Server = txtserver.Text
        RDPCONTROL.Domain = txtdomain.text
        RDPCONTROL.UserName = txtusername.Text
        Dim secured As MSTSCLib.IMsTscNonScriptable = DirectCast(RDPCONTROL.GetOcx(), MSTSCLib.IMsTscNonScriptable)
        secured.ClearTextPassword = txtpassword.Text
        RDPCONTROL.Connect()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    End Try`

创建第二个连接时出错:

Using ex.message: exception of type 'system.windows.forms.axhost+invalidactivexstateexception  was thrown
Using ex.tostring: property set of 'Server' cannot be invoked at this time

下一项是如何检测选项卡上是否已断开RDP会话,然后弹出消息并关闭所需选项卡

1 个答案:

答案 0 :(得分:0)

经过一段时间的游戏,我可以通过调用来解决这个问题:

XtraTabControl1.SelectedTabPage = newTabPage

刚添加新标签页后。 希望这可以帮助将来的某个人