Disable Fullscreen item on tab context menu if redirect keys is enabled for RDP connection. Fix automatic RDP resize when redirect keys is enabled. Fix automatic RDP resize when SmartSize setting is changed.

This commit is contained in:
Riley McArdle
2013-03-04 12:55:46 -06:00
parent 5f451de94e
commit a115196cee
2 changed files with 46 additions and 34 deletions

View File

@@ -12,26 +12,51 @@ Namespace Connection
Inherits Connection.Protocol.Base
#Region "Properties"
Private _SmartSize As Boolean
Public Property SmartSize() As Boolean
Get
Return Me.RDP.AdvancedSettings4.SmartSizing
Return RDP.AdvancedSettings4.SmartSizing
End Get
Set(ByVal value As Boolean)
Me.RDP.AdvancedSettings4.SmartSizing = value
RDP.AdvancedSettings4.SmartSizing = value
ReconnectForResize()
End Set
End Property
Private _Fullscreen As Boolean
Public Property Fullscreen() As Boolean
Get
Return Me.RDP.FullScreen
Return RDP.FullScreen
End Get
Set(ByVal value As Boolean)
RDP.FullScreen = value
ReconnectForResize()
End Set
End Property
Private _redirectKeys As Boolean = False
Public Property RedirectKeys As Boolean
Get
Return _redirectKeys
End Get
Set(value As Boolean)
_redirectKeys = value
Try
If Not _redirectKeys Then Return
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
RDP.AdvancedSettings2.DisplayConnectionBar = False
RDP.AdvancedSettings2.PinConnectionBar = False
If RDPVersion >= Versions.RDC70 Then
Dim msRdpClientNonScriptable As MSTSCLib.IMsRdpClientNonScriptable5 = RDP.GetOcx()
msRdpClientNonScriptable.DisableConnectionBar = True
End If
RDP.FullScreen = True
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Set
End Property
#End Region
#Region "Private Declarations"
@@ -88,7 +113,7 @@ Namespace Connection
Me.SetUseConsoleSession()
Me.SetPort()
Me.SetRedirectKeys()
RedirectKeys = Info.RedirectKeys
Me.SetRedirection()
Me.SetAuthenticationLevel()
Me.SetRDGateway()
@@ -193,10 +218,11 @@ Namespace Connection
If RDPVersion < Versions.RDC80 Then Return
If Not (InterfaceControl.Info.Resolution = RDPResolutions.FitToWindow Or _
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Then Return
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Or _
SmartSize Then Return
Dim size As Size
If Not Fullscreen Then
If RedirectKeys Or Not Fullscreen Then
size = Control.Size
Else
size = Screen.FromControl(Control).Bounds.Size
@@ -352,25 +378,6 @@ Namespace Connection
End Try
End Sub
Private Sub SetRedirectKeys()
Try
If Me.Info.RedirectKeys Then
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
RDP.AdvancedSettings2.DisplayConnectionBar = False
RDP.AdvancedSettings2.PinConnectionBar = False
If RDPVersion >= Versions.RDC70 Then
Dim msRdpClientNonScriptable As MSTSCLib.IMsRdpClientNonScriptable5 = RDP.GetOcx()
msRdpClientNonScriptable.DisableConnectionBar = True
End If
RDP.FullScreen = True
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub SetRedirection()
Try
RDP.AdvancedSettings2.RedirectDrives = Me.Info.RedirectDiskDrives

View File

@@ -443,15 +443,20 @@ Namespace UI
End If
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.RDP Then
Me.cmenTabFullscreen.Enabled = True
Me.cmenTabSmartSize.Enabled = True
Dim rdp As mRemoteNG.Connection.Protocol.RDP = IC.Protocol
Me.cmenTabSmartSize.Checked = rdp.SmartSize
Me.cmenTabFullscreen.Checked = rdp.Fullscreen
If rdp.RedirectKeys Then
cmenTabFullscreen.Enabled = False
Else
cmenTabFullscreen.Enabled = True
cmenTabFullscreen.Checked = rdp.Fullscreen
End If
cmenTabSmartSize.Enabled = True
cmenTabSmartSize.Checked = rdp.SmartSize
Else
Me.cmenTabFullscreen.Enabled = False
Me.cmenTabSmartSize.Enabled = False
cmenTabFullscreen.Enabled = False
cmenTabSmartSize.Enabled = False
End If
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.VNC Then