Fix issue MR-255 - The version of the RDP AX client should be updated to 7

This commit is contained in:
Riley McArdle
2013-05-04 19:53:33 -05:00
parent 079fe000bb
commit 5737d78f78
2 changed files with 185 additions and 146 deletions

View File

@@ -1,4 +1,5 @@
Added feature MR-435 - Add digital signature check to updater
Fixed issue MR-255 - The version of the RDP AX client should be updated to 7
Fixed issue MR-392 - Sessions Panel - context menu entries need to be context aware
Fixed issue MR-422 - Gives error Object reference not set to an instance of an object.
Fixed issue MR-424 - Import of a few Linux SSH2 hosts discovered via the port scan tool results in a UE
@@ -11,6 +12,7 @@
Changed Internet Explorer to no longer force IE7 compatibility mode.
Changed the "Launch PuTTY" button in the "Options" dialog to open PuTTY from the path the user has currently set, instead of what was previously saved.
Improved update and announcement checking.
Lowered required version of RDC from 6.1 to 6.0.
1.71 Beta 3 (2013-03-20):
Fixed issue MR-397 - Putty disappears from the screen

View File

@@ -3,31 +3,32 @@ Imports System.Threading
Imports AxMSTSCLib
Imports EOLWTSCOM
Imports System.ComponentModel
Imports mRemoteNG.Messages
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools.LocalizedAttributes
Imports MSTSCLib
Namespace Connection
Namespace Protocol
Public Class RDP
Inherits Connection.Protocol.Base
Inherits Base
#Region "Properties"
Public Property SmartSize() As Boolean
Get
Return RDP.AdvancedSettings4.SmartSizing
Return _rdpClient.AdvancedSettings2.SmartSizing
End Get
Set(ByVal value As Boolean)
RDP.AdvancedSettings4.SmartSizing = value
_rdpClient.AdvancedSettings2.SmartSizing = value
ReconnectForResize()
End Set
End Property
Public Property Fullscreen() As Boolean
Get
Return RDP.FullScreen
Return _rdpClient.FullScreen
End Get
Set(ByVal value As Boolean)
RDP.FullScreen = value
_rdpClient.FullScreen = value
ReconnectForResize()
End Set
End Property
@@ -42,8 +43,8 @@ Namespace Connection
Try
If Not _redirectKeys Then Return
Debug.Assert(RDP.SecuredSettingsEnabled)
Dim msRdpClientSecuredSettings As MSTSCLib.IMsRdpClientSecuredSettings = RDP.SecuredSettings2
Debug.Assert(_rdpClient.SecuredSettingsEnabled)
Dim msRdpClientSecuredSettings As MSTSCLib.IMsRdpClientSecuredSettings = _rdpClient.SecuredSettings2
msRdpClientSecuredSettings.KeyboardHookMode = 1 ' Apply key combinations at the remote server.
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
@@ -53,69 +54,112 @@ Namespace Connection
#End Region
#Region "Private Declarations"
Private RDP As AxMsRdpClient6NotSafeForScripting
Private Info As Connection.Info
Private RDPVersion As Version
Private _rdpClient As MsRdpClient5NotSafeForScripting
Private ReadOnly _rdpInterfaceVersion As Integer
Private _rdpVersion As Version
Private _connectionInfo As Info
#End Region
#Region "Public Methods"
Public Sub New()
Me.Control = New AxMsRdpClient6NotSafeForScripting
Try
Control = New AxMsRdpClient8NotSafeForScripting
_rdpInterfaceVersion = 8
Catch ex As Exception
End Try
Try
If Control Is Nothing Then
Control = New AxMsRdpClient7NotSafeForScripting
_rdpInterfaceVersion = 7
End If
Catch ex As Exception
End Try
Try
If Control Is Nothing Then
Control = New AxMsRdpClient6NotSafeForScripting
_rdpInterfaceVersion = 6
End If
Catch ex As Exception
End Try
Try
If Control Is Nothing Then
Control = New AxMsRdpClient5NotSafeForScripting
_rdpInterfaceVersion = 5
End If
Catch ex As Exception
MessageCollector.AddExceptionMessage(My.Language.strRdpControlCreationFailed, ex)
End Try
End Sub
Public Overrides Function SetProps() As Boolean
MyBase.SetProps()
Try
RDP = Me.Control
Info = Me.InterfaceControl.Info
Control.CreateControl()
_connectionInfo = InterfaceControl.Info
Try
RDP.CreateControl()
Do Until Me.RDP.Created
Thread.Sleep(10)
Do Until Control.Created
Thread.Sleep(0)
System.Windows.Forms.Application.DoEvents()
Loop
Catch comEx As System.Runtime.InteropServices.COMException
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpControlCreationFailed & vbNewLine & vbNewLine & comEx.Message)
RDP.Dispose()
Select Case _rdpInterfaceVersion
Case 8
_rdpClient = CType(Control, AxMsRdpClient8NotSafeForScripting).GetOcx()
Case 7
_rdpClient = CType(Control, AxMsRdpClient7NotSafeForScripting).GetOcx()
Case 6
_rdpClient = CType(Control, AxMsRdpClient6NotSafeForScripting).GetOcx()
Case 5
_rdpClient = CType(Control, AxMsRdpClient5NotSafeForScripting).GetOcx()
Case Else
Debug.Assert(False)
End Select
Catch ex As Runtime.InteropServices.COMException
MessageCollector.AddExceptionMessage(My.Language.strRdpControlCreationFailed, ex)
Control.Dispose()
Return False
End Try
Me.RDPVersion = New Version(RDP.Version)
_rdpVersion = New Version(_rdpClient.Version)
RDP.Server = Me.Info.Hostname
_rdpClient.Server = Me._connectionInfo.Hostname
Me.SetCredentials()
Me.SetResolution()
Me.RDP.FullScreenTitle = Me.Info.Name
Me._rdpClient.FullScreenTitle = Me._connectionInfo.Name
'not user changeable
RDP.AdvancedSettings2.GrabFocusOnConnect = True
RDP.AdvancedSettings3.EnableAutoReconnect = True
RDP.AdvancedSettings3.MaxReconnectAttempts = My.Settings.RdpReconnectionCount
RDP.AdvancedSettings2.keepAliveInterval = 60000 'in milliseconds (10.000 = 10 seconds)
RDP.AdvancedSettings5.AuthenticationLevel = 0
RDP.AdvancedSettings2.EncryptionEnabled = 1
_rdpClient.AdvancedSettings2.GrabFocusOnConnect = True
_rdpClient.AdvancedSettings3.EnableAutoReconnect = True
_rdpClient.AdvancedSettings3.MaxReconnectAttempts = My.Settings.RdpReconnectionCount
_rdpClient.AdvancedSettings2.keepAliveInterval = 60000 'in milliseconds (10.000 = 10 seconds)
_rdpClient.AdvancedSettings5.AuthenticationLevel = 0
_rdpClient.AdvancedSettings2.EncryptionEnabled = 1
RDP.AdvancedSettings2.overallConnectionTimeout = 20
_rdpClient.AdvancedSettings2.overallConnectionTimeout = 20
RDP.AdvancedSettings2.BitmapPeristence = Me.Info.CacheBitmaps
RDP.AdvancedSettings7.EnableCredSspSupport = Info.UseCredSsp
_rdpClient.AdvancedSettings2.BitmapPeristence = Me._connectionInfo.CacheBitmaps
If _rdpVersion >= Versions.RDC60 Then
_rdpClient.AdvancedSettings7.EnableCredSspSupport = _connectionInfo.UseCredSsp
End If
Me.SetUseConsoleSession()
Me.SetPort()
RedirectKeys = Info.RedirectKeys
RedirectKeys = _connectionInfo.RedirectKeys
Me.SetRedirection()
Me.SetAuthenticationLevel()
Me.SetRDGateway()
Me.SetRdGateway()
RDP.ColorDepth = Int(Me.Info.Colors)
_rdpClient.ColorDepth = Int(Me._connectionInfo.Colors)
Me.SetPerformanceFlags()
RDP.ConnectingText = My.Language.strConnecting
_rdpClient.ConnectingText = My.Language.strConnecting
Control.Anchor = AnchorStyles.None
@@ -130,7 +174,7 @@ Namespace Connection
Me.SetEventHandlers()
Try
RDP.Connect()
_rdpClient.Connect()
MyBase.Connect()
Return True
Catch ex As Exception
@@ -142,7 +186,7 @@ Namespace Connection
Public Overrides Sub Disconnect()
Try
RDP.Disconnect()
_rdpClient.Disconnect()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpDisconnectFailed & vbNewLine & ex.Message, True)
MyBase.Close()
@@ -167,8 +211,8 @@ Namespace Connection
Public Overrides Sub Focus()
Try
If RDP.ContainsFocus = False Then
RDP.Focus()
If Control.ContainsFocus = False Then
Control.Focus()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpFocusFailed & vbNewLine & ex.Message, True)
@@ -208,7 +252,7 @@ Namespace Connection
End Function
Private Sub ReconnectForResize()
If RDPVersion < Versions.RDC80 Then Return
If _rdpVersion < Versions.RDC80 Then Return
If Not (InterfaceControl.Info.Resolution = RDPResolutions.FitToWindow Or _
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Or _
@@ -221,109 +265,102 @@ Namespace Connection
size = Screen.FromControl(Control).Bounds.Size
End If
Dim msRdpClient8 As MSTSCLib.IMsRdpClient8 = RDP.GetOcx()
Dim msRdpClient8 As IMsRdpClient8 = _rdpClient
msRdpClient8.Reconnect(size.Width, size.Height)
End Sub
Private Sub SetRDGateway()
Private Sub SetRdGateway()
If Not _rdpClient.TransportSettings.GatewayIsSupported Then Return
Try
If RDP.TransportSettings.GatewayIsSupported = 1 Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strRdpGatewayIsSupported, True)
If Info.RDGatewayUsageMethod <> RDGatewayUsageMethod.Never Then
RDP.TransportSettings2.GatewayProfileUsageMethod = 1
RDP.TransportSettings.GatewayUsageMethod = Info.RDGatewayUsageMethod
RDP.TransportSettings.GatewayHostname = Info.RDGatewayHostname
If Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes Then
RDP.TransportSettings.GatewayUsername = Info.Username
RDP.TransportSettings.GatewayPassword = Info.Password
RDP.TransportSettings.GatewayDomain = Info.Domain
ElseIf Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard Then
RDP.TransportSettings2.GatewayCredsSource = 1 ' TSC_PROXY_CREDS_MODE_SMARTCARD
RDP.TransportSettings2.GatewayCredSharing = 0
MessageCollector.AddMessage(MessageClass.InformationMsg, My.Language.strRdpGatewayIsSupported, True)
If Not _connectionInfo.RDGatewayUsageMethod = RDGatewayUsageMethod.Never Then
_rdpClient.TransportSettings.GatewayUsageMethod = _connectionInfo.RDGatewayUsageMethod
_rdpClient.TransportSettings.GatewayHostname = _connectionInfo.RDGatewayHostname
If _rdpVersion >= Versions.RDC60 Then
_rdpClient.TransportSettings2.GatewayProfileUsageMethod = 1
If _connectionInfo.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes Then
_rdpClient.TransportSettings2.GatewayUsername = _connectionInfo.Username
_rdpClient.TransportSettings2.GatewayPassword = _connectionInfo.Password
_rdpClient.TransportSettings2.GatewayDomain = _connectionInfo.Domain
ElseIf _connectionInfo.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard Then
_rdpClient.TransportSettings2.GatewayCredsSource = 1 ' TSC_PROXY_CREDS_MODE_SMARTCARD
_rdpClient.TransportSettings2.GatewayCredSharing = 0
Else
RDP.TransportSettings.GatewayUsername = Info.RDGatewayUsername
RDP.TransportSettings.GatewayPassword = Info.RDGatewayPassword
RDP.TransportSettings.GatewayDomain = Info.RDGatewayDomain
RDP.TransportSettings2.GatewayCredSharing = 0
_rdpClient.TransportSettings2.GatewayUsername = _connectionInfo.RDGatewayUsername
_rdpClient.TransportSettings2.GatewayPassword = _connectionInfo.RDGatewayPassword
_rdpClient.TransportSettings2.GatewayDomain = _connectionInfo.RDGatewayDomain
_rdpClient.TransportSettings2.GatewayCredSharing = 0
End If
End If
Else
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strRdpGatewayNotSupported, True)
MessageCollector.AddMessage(MessageClass.InformationMsg, My.Language.strRdpGatewayNotSupported, True)
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetGatewayFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(MessageClass.ErrorMsg, My.Language.strRdpSetGatewayFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub SetUseConsoleSession()
Try
If (Me.Force And Connection.Info.Force.UseConsoleSession) = Connection.Info.Force.UseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = True
Else
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = True
End If
ElseIf (Me.Force And Connection.Info.Force.DontUseConsoleSession) = Connection.Info.Force.DontUseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = False
Else
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = False
End If
Dim value As Boolean
If (Force And Info.Force.UseConsoleSession) = Info.Force.UseConsoleSession Then
value = True
ElseIf (Force And Info.Force.DontUseConsoleSession) = Info.Force.DontUseConsoleSession Then
value = False
Else
If RDPVersion < Versions.RDC61 Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = Me.Info.UseConsoleSession
Else
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = Me.Info.UseConsoleSession
End If
value = _connectionInfo.UseConsoleSession
End If
If _rdpVersion >= Versions.RDC61 Then
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
_rdpClient.AdvancedSettings7.ConnectToAdministerServer = value
Else
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
_rdpClient.AdvancedSettings2.ConnectToServerConsole = value
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetConsoleSessionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddExceptionMessage(My.Language.strRdpSetConsoleSessionFailed, ex, MessageClass.ErrorMsg, True)
End Try
End Sub
Private Sub SetCredentials()
Try
Dim _user As String = Me.Info.Username
Dim _pass As String = Me.Info.Password
Dim _dom As String = Me.Info.Domain
Dim userName As String = _connectionInfo.Username
Dim password As String = _connectionInfo.Password
Dim domain As String = _connectionInfo.Domain
If _user = "" Then
If userName = "" Then
Select Case My.Settings.EmptyCredentials
Case "windows"
RDP.UserName = Environment.UserName
_rdpClient.UserName = Environment.UserName
Case "custom"
RDP.UserName = My.Settings.DefaultUsername
_rdpClient.UserName = My.Settings.DefaultUsername
End Select
Else
RDP.UserName = _user
_rdpClient.UserName = userName
End If
If _pass = "" Then
If password = "" Then
Select Case My.Settings.EmptyCredentials
Case "custom"
If My.Settings.DefaultPassword <> "" Then
RDP.AdvancedSettings2.ClearTextPassword = Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey)
_rdpClient.AdvancedSettings2.ClearTextPassword = Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey)
End If
End Select
Else
RDP.AdvancedSettings2.ClearTextPassword = _pass
_rdpClient.AdvancedSettings2.ClearTextPassword = password
End If
If _dom = "" Then
If domain = "" Then
Select Case My.Settings.EmptyCredentials
Case "windows"
RDP.Domain = Environment.UserDomainName
_rdpClient.Domain = Environment.UserDomainName
Case "custom"
RDP.Domain = My.Settings.DefaultDomain
_rdpClient.Domain = My.Settings.DefaultDomain
End Select
Else
RDP.Domain = _dom
_rdpClient.Domain = domain
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetCredentialsFailed & vbNewLine & ex.Message, True)
@@ -333,28 +370,28 @@ Namespace Connection
Private Sub SetResolution()
Try
If (Me.Force And Connection.Info.Force.Fullscreen) = Connection.Info.Force.Fullscreen Then
RDP.FullScreen = True
RDP.DesktopWidth = Screen.FromControl(frmMain).Bounds.Width
RDP.DesktopHeight = Screen.FromControl(frmMain).Bounds.Height
_rdpClient.FullScreen = True
_rdpClient.DesktopWidth = Screen.FromControl(frmMain).Bounds.Width
_rdpClient.DesktopHeight = Screen.FromControl(frmMain).Bounds.Height
Exit Sub
End If
Select Case Me.InterfaceControl.Info.Resolution
Case RDPResolutions.FitToWindow
RDP.DesktopWidth = Me.InterfaceControl.Size.Width
RDP.DesktopHeight = Me.InterfaceControl.Size.Height
_rdpClient.DesktopWidth = Me.InterfaceControl.Size.Width
_rdpClient.DesktopHeight = Me.InterfaceControl.Size.Height
Case RDPResolutions.SmartSize
RDP.AdvancedSettings.SmartSizing = True
RDP.DesktopWidth = Me.InterfaceControl.Size.Width
RDP.DesktopHeight = Me.InterfaceControl.Size.Height
_rdpClient.AdvancedSettings2.SmartSizing = True
_rdpClient.DesktopWidth = Me.InterfaceControl.Size.Width
_rdpClient.DesktopHeight = Me.InterfaceControl.Size.Height
Case RDPResolutions.Fullscreen
RDP.FullScreen = True
RDP.DesktopWidth = Screen.FromControl(frmMain).Bounds.Width
RDP.DesktopHeight = Screen.FromControl(frmMain).Bounds.Height
_rdpClient.FullScreen = True
_rdpClient.DesktopWidth = Screen.FromControl(frmMain).Bounds.Width
_rdpClient.DesktopHeight = Screen.FromControl(frmMain).Bounds.Height
Case Else
RDP.DesktopWidth = Resolutions.Items(Int(Me.Info.Resolution)).Width
RDP.DesktopHeight = Resolutions.Items(Int(Me.Info.Resolution)).Height
_rdpClient.DesktopWidth = Resolutions.Items(Int(Me._connectionInfo.Resolution)).Width
_rdpClient.DesktopHeight = Resolutions.Items(Int(Me._connectionInfo.Resolution)).Height
End Select
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetResolutionFailed & vbNewLine & ex.Message, True)
@@ -363,8 +400,8 @@ Namespace Connection
Private Sub SetPort()
Try
If Me.Info.Port <> Connection.Protocol.RDP.Defaults.Port Then
RDP.AdvancedSettings2.RDPPort = Me.Info.Port
If _connectionInfo.Port <> Defaults.Port Then
_rdpClient.AdvancedSettings2.RDPPort = _connectionInfo.Port
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetPortFailed & vbNewLine & ex.Message, True)
@@ -373,11 +410,11 @@ Namespace Connection
Private Sub SetRedirection()
Try
RDP.AdvancedSettings2.RedirectDrives = Me.Info.RedirectDiskDrives
RDP.AdvancedSettings2.RedirectPorts = Me.Info.RedirectPorts
RDP.AdvancedSettings2.RedirectPrinters = Me.Info.RedirectPrinters
RDP.AdvancedSettings2.RedirectSmartCards = Me.Info.RedirectSmartCards
RDP.SecuredSettings2.AudioRedirectionMode = Int(Me.Info.RedirectSound)
_rdpClient.AdvancedSettings2.RedirectDrives = Me._connectionInfo.RedirectDiskDrives
_rdpClient.AdvancedSettings2.RedirectPorts = Me._connectionInfo.RedirectPorts
_rdpClient.AdvancedSettings2.RedirectPrinters = Me._connectionInfo.RedirectPrinters
_rdpClient.AdvancedSettings2.RedirectSmartCards = Me._connectionInfo.RedirectSmartCards
_rdpClient.SecuredSettings2.AudioRedirectionMode = Int(Me._connectionInfo.RedirectSound)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectionFailed & vbNewLine & ex.Message, True)
End Try
@@ -386,23 +423,23 @@ Namespace Connection
Private Sub SetPerformanceFlags()
Try
Dim pFlags As Integer
If Me.Info.DisplayThemes = False Then
If Me._connectionInfo.DisplayThemes = False Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.DisableThemes)
End If
If Me.Info.DisplayWallpaper = False Then
If Me._connectionInfo.DisplayWallpaper = False Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.DisableWallpaper)
End If
If Me.Info.EnableFontSmoothing Then
If Me._connectionInfo.EnableFontSmoothing Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.EnableFontSmoothing)
End If
If Me.Info.EnableDesktopComposition Then
If Me._connectionInfo.EnableDesktopComposition Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.EnableDesktopComposition)
End If
RDP.AdvancedSettings.PerformanceFlags = pFlags
_rdpClient.AdvancedSettings2.PerformanceFlags = pFlags
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetPerformanceFlagsFailed & vbNewLine & ex.Message, True)
End Try
@@ -410,7 +447,7 @@ Namespace Connection
Private Sub SetAuthenticationLevel()
Try
RDP.AdvancedSettings5.AuthenticationLevel = Me.Info.RDPAuthenticationLevel
_rdpClient.AdvancedSettings5.AuthenticationLevel = Me._connectionInfo.RDPAuthenticationLevel
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetAuthenticationLevelFailed & vbNewLine & ex.Message, True)
End Try
@@ -418,11 +455,11 @@ Namespace Connection
Private Sub SetEventHandlers()
Try
AddHandler RDP.OnConnecting, AddressOf RDPEvent_OnConnecting
AddHandler RDP.OnConnected, AddressOf RDPEvent_OnConnected
AddHandler RDP.OnFatalError, AddressOf RDPEvent_OnFatalError
AddHandler RDP.OnDisconnected, AddressOf RDPEvent_OnDisconnected
AddHandler RDP.OnLeaveFullScreenMode, AddressOf RDPEvent_OnLeaveFullscreenMode
AddHandler _rdpClient.OnConnecting, AddressOf RDPEvent_OnConnecting
AddHandler _rdpClient.OnConnected, AddressOf RDPEvent_OnConnected
AddHandler _rdpClient.OnFatalError, AddressOf RDPEvent_OnFatalError
AddHandler _rdpClient.OnDisconnected, AddressOf RDPEvent_OnDisconnected
AddHandler _rdpClient.OnLeaveFullScreenMode, AddressOf RDPEvent_OnLeaveFullscreenMode
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
@@ -430,15 +467,15 @@ Namespace Connection
#End Region
#Region "Private Events & Handlers"
Private Sub RDPEvent_OnFatalError(ByVal sender As Object, ByVal e As AxMSTSCLib.IMsTscAxEvents_OnFatalErrorEvent)
MyBase.Event_ErrorOccured(Me, e.errorCode)
Private Sub RDPEvent_OnFatalError(ByVal errorCode As Integer)
Event_ErrorOccured(Me, errorCode)
End Sub
Private Sub RDPEvent_OnDisconnected(ByVal sender As Object, ByVal e As IMsTscAxEvents_OnDisconnectedEvent)
Private Sub RDPEvent_OnDisconnected(ByVal discReason As Integer)
Const UI_ERR_NORMAL_DISCONNECT As Integer = &HB08
If Not e.discReason = UI_ERR_NORMAL_DISCONNECT Then
Dim reason As String = RDP.GetErrorDescription(e.discReason, RDP.ExtendedDisconnectReason)
Event_Disconnected(Me, e.discReason & vbCrLf & reason)
If Not discReason = UI_ERR_NORMAL_DISCONNECT Then
Dim reason As String = _rdpClient.GetErrorDescription(discReason, _rdpClient.ExtendedDisconnectReason)
Event_Disconnected(Me, discReason & vbCrLf & reason)
End If
If My.Settings.ReconnectOnDisconnect Then
@@ -453,17 +490,17 @@ Namespace Connection
End If
End Sub
Private Sub RDPEvent_OnConnecting(ByVal sender As Object, ByVal e As System.EventArgs)
MyBase.Event_Connecting(Me)
Private Sub RDPEvent_OnConnecting()
Event_Connecting(Me)
End Sub
Private Sub RDPEvent_OnConnected(ByVal sender As Object, ByVal e As System.EventArgs)
MyBase.Event_Connected(Me)
Private Sub RDPEvent_OnConnected()
Event_Connected(Me)
End Sub
Private Sub RDPEvent_OnLeaveFullscreenMode(ByVal sender As Object, ByVal e As System.EventArgs)
Private Sub RDPEvent_OnLeaveFullscreenMode()
Fullscreen = False
RaiseEvent LeaveFullscreen(Me, e)
RaiseEvent LeaveFullscreen(Me, New EventArgs())
End Sub
#End Region
@@ -857,7 +894,7 @@ Namespace Connection
#Region "Reconnect Stuff"
Private Sub tmrReconnect_Elapsed(ByVal sender As Object, ByVal e As System.Timers.ElapsedEventArgs) Handles tmrReconnect.Elapsed
Dim srvReady As Boolean = Tools.PortScan.Scanner.IsPortOpen(Info.Hostname, Info.Port)
Dim srvReady As Boolean = Tools.PortScan.Scanner.IsPortOpen(_connectionInfo.Hostname, _connectionInfo.Port)
ReconnectGroup.ServerReady = srvReady
@@ -865,7 +902,7 @@ Namespace Connection
tmrReconnect.Enabled = False
ReconnectGroup.DisposeReconnectGroup()
'SetProps()
RDP.Connect()
_rdpClient.Connect()
End If
End Sub
#End Region