mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-21 00:14:55 +08:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
375e737f02 | ||
|
|
1032801f12 | ||
|
|
1002b8d32f | ||
|
|
36a72da71f | ||
|
|
a2b3a815e7 | ||
|
|
7820707e46 | ||
|
|
c3f960cfe8 | ||
|
|
965f43a4c3 | ||
|
|
317175bb03 | ||
|
|
1608d48495 | ||
|
|
08ddee1bda | ||
|
|
72756a2bb8 | ||
|
|
38011a3546 |
@@ -1,4 +1,16 @@
|
||||
1.71 Beta 3 (2013-03-20):
|
||||
Fixed issue MR-397 - Putty disappears from the screen
|
||||
Fixed issue MR-398 - Full Screen mode doesn't correctly make use of available space
|
||||
Fixed issue MR-402 - scrollbar touch moves putty window
|
||||
Fixed issue MR-406 - Items disappear from External Tools toolbar when accessing External Tools panel
|
||||
Fixed issue MR-410 - Unhandled exception when clicking New button under Theme
|
||||
Fixed issue MR-413 - Can't use aplication
|
||||
Fixed new connections having a globe icon.
|
||||
Fixed the category names in the themes tab of the options dialog on Windows XP not showing correctly.
|
||||
Fixed PuTTY saved sessions with spaces or special characters not being listed.
|
||||
|
||||
1.71 Beta 2 (2013-03-19):
|
||||
Added feature MR-336 - Customizable background color for the windows/panels
|
||||
Added feature MR-345 - Two separate options for confirming closure of Tabs and Connection Panels
|
||||
Added feature MR-346 - Option to show/hide the description box at the bottom of the Config panel
|
||||
Added feature MR-351 - Import connections from PuTTY
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
Imports mRemoteNG.Messages
|
||||
Imports mRemoteNG.Connection
|
||||
Imports mRemoteNG.Tools
|
||||
Imports PSTaskDialog
|
||||
Imports WeifenLuo.WinFormsUI.Docking
|
||||
Imports System.IO
|
||||
Imports Crownwood
|
||||
@@ -377,6 +378,11 @@ Namespace App
|
||||
|
||||
Public Class Startup
|
||||
Public Shared Sub CheckCompatibility()
|
||||
CheckFipsPolicy()
|
||||
CheckLenovoAutoScrollUtility()
|
||||
End Sub
|
||||
|
||||
Private Shared Sub CheckFipsPolicy()
|
||||
Dim regKey As RegistryKey
|
||||
|
||||
Dim isFipsPolicyEnabled As Boolean = False
|
||||
@@ -399,6 +405,22 @@ Namespace App
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Shared Sub CheckLenovoAutoScrollUtility()
|
||||
If Not My.Settings.CompatibilityWarnLenovoAutoScrollUtility Then Return
|
||||
|
||||
Dim proccesses() As Process = {}
|
||||
Try
|
||||
proccesses = Process.GetProcessesByName("virtscrl")
|
||||
Catch
|
||||
End Try
|
||||
If proccesses.Length = 0 Then Return
|
||||
|
||||
cTaskDialog.MessageBox(Application.ProductName, My.Language.strCompatibilityProblemDetected, String.Format(My.Language.strCompatibilityLenovoAutoScrollUtilityDetected, System.Windows.Forms.Application.ProductName), "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.OK, eSysIcons.Warning, Nothing)
|
||||
If cTaskDialog.VerificationChecked Then
|
||||
My.Settings.CompatibilityWarnLenovoAutoScrollUtility = False
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Sub CreatePanels()
|
||||
Windows.configForm = New UI.Window.Config(Windows.configPanel)
|
||||
Windows.configPanel = Windows.configForm
|
||||
|
||||
@@ -80,7 +80,8 @@ Namespace Config
|
||||
.Location = newBounds.Location
|
||||
|
||||
If My.Settings.MainFormKiosk = True Then
|
||||
Tools.Misc.Fullscreen.EnterFullscreen()
|
||||
.Fullscreen.Value = True
|
||||
.mMenViewFullscreen.Checked = True
|
||||
End If
|
||||
|
||||
If My.Settings.UseCustomPuttyPath Then
|
||||
@@ -114,8 +115,7 @@ Namespace Config
|
||||
End If
|
||||
End With
|
||||
Catch ex As Exception
|
||||
App.Runtime.log.Error("Loading settings failed" & vbNewLine & ex.Message)
|
||||
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "Loading settings failed" & vbNewLine & ex.Message, True)
|
||||
Log.Error("Loading settings failed" & vbNewLine & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
@@ -196,8 +196,7 @@ Namespace Config
|
||||
End If
|
||||
End With
|
||||
Catch ex As Exception
|
||||
App.Runtime.log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
|
||||
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadPanelsFromXML failed" & vbNewLine & ex.Message, True)
|
||||
Log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
@@ -268,8 +267,7 @@ Namespace Config
|
||||
Return Windows.screenshotPanel
|
||||
End If
|
||||
Catch ex As Exception
|
||||
App.Runtime.log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
|
||||
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetContentFromPersistString failed" & vbNewLine & ex.Message, True)
|
||||
Log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
|
||||
End Try
|
||||
|
||||
Return Nothing
|
||||
|
||||
@@ -25,7 +25,7 @@ Namespace Config
|
||||
|
||||
My.Settings.MainFormState = .WindowState
|
||||
|
||||
My.Settings.MainFormKiosk = Tools.Misc.Fullscreen.FullscreenActive
|
||||
My.Settings.MainFormKiosk = .Fullscreen.Value
|
||||
|
||||
My.Settings.FirstStart = False
|
||||
My.Settings.ResetPanels = False
|
||||
|
||||
@@ -55,14 +55,18 @@ Namespace Config
|
||||
treeView.EndUpdate()
|
||||
End Sub
|
||||
|
||||
Protected Shared Function GetSessionNames(Optional ByVal addDefaultSettings As Boolean = False) As String()
|
||||
Protected Shared Function GetSessionNames(Optional ByVal raw As Boolean = False) As String()
|
||||
Dim sessionsKey As RegistryKey = Registry.CurrentUser.OpenSubKey(PuttySessionsKey)
|
||||
If sessionsKey Is Nothing Then Return Nothing
|
||||
If sessionsKey Is Nothing Then Return New String() {}
|
||||
|
||||
Dim sessionNames As New List(Of String)
|
||||
If addDefaultSettings Then sessionNames.Add("Default Settings")
|
||||
If Not raw Then sessionNames.Add("Default Settings") ' Do not localize
|
||||
For Each sessionName As String In sessionsKey.GetSubKeyNames()
|
||||
sessionNames.Add(Web.HttpUtility.UrlDecode(sessionName))
|
||||
If raw Then
|
||||
sessionNames.Add(sessionName)
|
||||
Else
|
||||
sessionNames.Add(Web.HttpUtility.UrlDecode(sessionName))
|
||||
End If
|
||||
Next
|
||||
Return sessionNames.ToArray()
|
||||
End Function
|
||||
@@ -70,7 +74,7 @@ Namespace Config
|
||||
Protected Shared Function LoadSessions() As Connection.PuttySession.Info()
|
||||
Dim sessionList As New List(Of Connection.PuttySession.Info)
|
||||
Dim sessionInfo As Connection.Info
|
||||
For Each sessionName As String In GetSessionNames()
|
||||
For Each sessionName As String In GetSessionNames(True)
|
||||
sessionInfo = SessionToConnectionInfo(sessionName)
|
||||
If sessionInfo Is Nothing Then Continue For
|
||||
sessionList.Add(sessionInfo)
|
||||
@@ -85,6 +89,8 @@ Namespace Config
|
||||
Dim sessionKey As RegistryKey = sessionsKey.OpenSubKey(sessionName)
|
||||
If sessionKey Is Nothing Then Return Nothing
|
||||
|
||||
sessionName = Web.HttpUtility.UrlDecode(sessionName)
|
||||
|
||||
Dim sessionInfo As New Connection.PuttySession.Info
|
||||
With sessionInfo
|
||||
.PuttySession = sessionName
|
||||
@@ -122,7 +128,7 @@ Namespace Config
|
||||
|
||||
Public Shared ReadOnly Property Names() As String()
|
||||
Get
|
||||
Return GetSessionNames(True)
|
||||
Return GetSessionNames()
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
@@ -286,8 +286,8 @@ Public Class frmMain
|
||||
|
||||
Public Sub AddExternalToolsToToolBar()
|
||||
Try
|
||||
For Each item As ToolStripItem In tsExternalTools.Items
|
||||
item.Dispose()
|
||||
For index As Integer = tsExternalTools.Items.Count - 1 To 0 Step -1
|
||||
tsExternalTools.Items(index).Dispose()
|
||||
Next
|
||||
tsExternalTools.Items.Clear()
|
||||
|
||||
@@ -589,14 +589,10 @@ Public Class frmMain
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Fullscreen As New Tools.Misc.Fullscreen(Me)
|
||||
Private Sub mMenViewFullscreen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewFullscreen.Click
|
||||
If Tools.Misc.Fullscreen.FullscreenActive Then
|
||||
Tools.Misc.Fullscreen.ExitFullscreen()
|
||||
Me.mMenViewFullscreen.Checked = False
|
||||
Else
|
||||
Tools.Misc.Fullscreen.EnterFullscreen()
|
||||
Me.mMenViewFullscreen.Checked = True
|
||||
End If
|
||||
Fullscreen.Value = Not Fullscreen.Value
|
||||
mMenViewFullscreen.Checked = Fullscreen.Value
|
||||
End Sub
|
||||
#End Region
|
||||
|
||||
|
||||
@@ -1489,6 +1489,7 @@ Public Class frmOptions
|
||||
Me.ThemePropertyGrid.Name = "ThemePropertyGrid"
|
||||
Me.ThemePropertyGrid.Size = New System.Drawing.Size(596, 426)
|
||||
Me.ThemePropertyGrid.TabIndex = 3
|
||||
Me.ThemePropertyGrid.UseCompatibleTextRendering = True
|
||||
'
|
||||
'frmOptions
|
||||
'
|
||||
|
||||
18
mRemoteV1/Language/Language.Designer.vb
generated
18
mRemoteV1/Language/Language.Designer.vb
generated
@@ -927,6 +927,24 @@ Namespace My
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to {0} has detected the Lenovo Auto Scroll Utility running on this system. This utility is known to cause problems with {0}. It is recommended that you disable or uninstall it..
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property strCompatibilityLenovoAutoScrollUtilityDetected() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("strCompatibilityLenovoAutoScrollUtilityDetected", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Compatibility problem detected.
|
||||
'''</summary>
|
||||
Friend Shared ReadOnly Property strCompatibilityProblemDetected() As String
|
||||
Get
|
||||
Return ResourceManager.GetString("strCompatibilityProblemDetected", resourceCulture)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
'''<summary>
|
||||
''' Looks up a localized string similar to Components Check.
|
||||
'''</summary>
|
||||
|
||||
@@ -2217,4 +2217,10 @@ mRemoteNG will now quit and begin with the installation.</value>
|
||||
<data name="strPuttySavedSessionsRootName" xml:space="preserve">
|
||||
<value>PuTTY Saved Sessions</value>
|
||||
</data>
|
||||
<data name="strCompatibilityProblemDetected" xml:space="preserve">
|
||||
<value>Compatibility problem detected</value>
|
||||
</data>
|
||||
<data name="strCompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
|
||||
<value>{0} has detected the Lenovo Auto Scroll Utility running on this system. This utility is known to cause problems with {0}. It is recommended that you disable or uninstall it.</value>
|
||||
</data>
|
||||
</root>
|
||||
13
mRemoteV1/My Project/Settings.Designer.vb
generated
13
mRemoteV1/My Project/Settings.Designer.vb
generated
@@ -2384,6 +2384,19 @@ Namespace My
|
||||
Me("PuttySavedSessionsPanel") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
<Global.System.Configuration.UserScopedSettingAttribute(), _
|
||||
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
|
||||
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
|
||||
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
|
||||
Public Property CompatibilityWarnLenovoAutoScrollUtility() As Boolean
|
||||
Get
|
||||
Return CType(Me("CompatibilityWarnLenovoAutoScrollUtility"),Boolean)
|
||||
End Get
|
||||
Set
|
||||
Me("CompatibilityWarnLenovoAutoScrollUtility") = value
|
||||
End Set
|
||||
End Property
|
||||
End Class
|
||||
End Namespace
|
||||
|
||||
|
||||
@@ -542,5 +542,8 @@
|
||||
<Setting Name="PuttySavedSessionsPanel" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
|
||||
<Value Profile="(Default)" />
|
||||
</Setting>
|
||||
<Setting Name="CompatibilityWarnLenovoAutoScrollUtility" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
|
||||
<Value Profile="(Default)">True</Value>
|
||||
</Setting>
|
||||
</Settings>
|
||||
</SettingsFile>
|
||||
@@ -24,7 +24,11 @@ Namespace Themes
|
||||
Public Shared Function LoadThemes() As List(Of ThemeInfo)
|
||||
Dim themes As New List(Of ThemeInfo)
|
||||
themes.Add(DefaultTheme)
|
||||
themes.AddRange(ThemeSerializer.LoadFromXmlFile(Path.Combine(App.Info.Settings.SettingsPath, App.Info.Settings.ThemesFileName)))
|
||||
Try
|
||||
themes.AddRange(ThemeSerializer.LoadFromXmlFile(Path.Combine(App.Info.Settings.SettingsPath, App.Info.Settings.ThemesFileName)))
|
||||
Catch ex As FileNotFoundException
|
||||
End Try
|
||||
|
||||
Return themes
|
||||
End Function
|
||||
|
||||
|
||||
@@ -297,62 +297,47 @@ Namespace Tools
|
||||
End Class
|
||||
|
||||
Public Class Fullscreen
|
||||
Private Shared winState As FormWindowState
|
||||
Private Shared brdStyle As FormBorderStyle
|
||||
Private Shared topMost As Boolean
|
||||
Private Shared bounds As Rectangle
|
||||
Public Sub New(ByVal handledForm As Form)
|
||||
_handledForm = handledForm
|
||||
End Sub
|
||||
|
||||
Public Shared targetForm As Form = frmMain
|
||||
Public Shared FullscreenActive As Boolean = False
|
||||
Private ReadOnly _handledForm As Form
|
||||
Private _savedWindowState As FormWindowState
|
||||
Private _savedBorderStyle As FormBorderStyle
|
||||
Private _savedBounds As Rectangle
|
||||
|
||||
Public Shared Sub EnterFullscreen()
|
||||
Try
|
||||
If Not FullscreenActive Then
|
||||
FullscreenActive = True
|
||||
Save()
|
||||
targetForm.WindowState = FormWindowState.Maximized
|
||||
targetForm.FormBorderStyle = FormBorderStyle.None
|
||||
SetWinFullScreen(targetForm.Handle)
|
||||
Private _value As Boolean = False
|
||||
Public Property Value() As Boolean
|
||||
Get
|
||||
Return _value
|
||||
End Get
|
||||
Set(newValue As Boolean)
|
||||
If _value = newValue Then Return
|
||||
If Not _value Then
|
||||
EnterFullscreen()
|
||||
Else
|
||||
ExitFullscreen()
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Entering Fullscreen failed" & vbNewLine & ex.Message, True)
|
||||
End Try
|
||||
_value = newValue
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Sub EnterFullscreen()
|
||||
_savedBorderStyle = _handledForm.FormBorderStyle
|
||||
_savedWindowState = _handledForm.WindowState
|
||||
_savedBounds = _handledForm.Bounds
|
||||
|
||||
_handledForm.FormBorderStyle = FormBorderStyle.None
|
||||
If _handledForm.WindowState = FormWindowState.Maximized Then
|
||||
_handledForm.WindowState = FormWindowState.Normal
|
||||
End If
|
||||
_handledForm.WindowState = FormWindowState.Maximized
|
||||
End Sub
|
||||
|
||||
Public Shared Sub Save()
|
||||
winState = targetForm.WindowState
|
||||
brdStyle = targetForm.FormBorderStyle
|
||||
bounds = targetForm.Bounds
|
||||
End Sub
|
||||
|
||||
Public Shared Sub ExitFullscreen()
|
||||
Try
|
||||
targetForm.WindowState = winState
|
||||
targetForm.FormBorderStyle = brdStyle
|
||||
targetForm.Bounds = bounds
|
||||
FullscreenActive = False
|
||||
Catch ex As Exception
|
||||
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Exiting Fullscreen failed" & vbNewLine & ex.Message, True)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
<DllImport("user32.dll", EntryPoint:="GetSystemMetrics")> Public Shared Function GetSystemMetrics(ByVal which As Integer) As Integer
|
||||
End Function
|
||||
|
||||
<DllImport("user32.dll")> Public Shared Sub SetWindowPos(ByVal hwnd As IntPtr, ByVal hwndInsertAfter As IntPtr, ByVal X As Integer, ByVal Y As Integer, ByVal width As Integer, ByVal height As Integer, ByVal flags As UInteger)
|
||||
End Sub
|
||||
|
||||
Private Shared HWND_TOP As IntPtr = IntPtr.Zero
|
||||
Private Const SWP_SHOWWINDOW As Integer = 64
|
||||
' 0<>0040
|
||||
|
||||
Public Shared Sub SetWinFullScreen(ByVal hwnd As IntPtr)
|
||||
Try
|
||||
Dim curScreen As Screen = Screen.FromHandle(targetForm.Handle)
|
||||
SetWindowPos(hwnd, HWND_TOP, curScreen.Bounds.Left, curScreen.Bounds.Top, curScreen.Bounds.Right, curScreen.Bounds.Bottom, SWP_SHOWWINDOW)
|
||||
Catch ex As Exception
|
||||
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetWindowPos failed" & vbNewLine & ex.Message, True)
|
||||
End Try
|
||||
Private Sub ExitFullscreen()
|
||||
_handledForm.FormBorderStyle = _savedBorderStyle
|
||||
_handledForm.WindowState = _savedWindowState
|
||||
_handledForm.Bounds = _savedBounds
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
@@ -190,7 +190,7 @@ Namespace Tree
|
||||
Dim nNode As New TreeNode
|
||||
|
||||
Select Case NodeType
|
||||
Case Type.Connection Or Type.PuttySession
|
||||
Case Type.Connection, Type.PuttySession
|
||||
nNode.Text = My.Language.strNewConnection
|
||||
nNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
|
||||
nNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
|
||||
|
||||
@@ -539,7 +539,6 @@ Namespace UI
|
||||
txtCheck2.Text = My.Language.strCcVNCFailed
|
||||
|
||||
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "VNC " & errorMsg, True)
|
||||
'mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
|
||||
End Try
|
||||
|
||||
If VNC IsNot Nothing Then VNC.Dispose()
|
||||
|
||||
@@ -577,6 +577,9 @@
|
||||
<setting name="PuttySavedSessionsPanel" serializeAs="String">
|
||||
<value />
|
||||
</setting>
|
||||
<setting name="CompatibilityWarnLenovoAutoScrollUtility" serializeAs="String">
|
||||
<value>True</value>
|
||||
</setting>
|
||||
</mRemoteNG.My.MySettings>
|
||||
</userSettings>
|
||||
<applicationSettings>
|
||||
|
||||
Reference in New Issue
Block a user