Compare commits

...

39 Commits

Author SHA1 Message Date
Riley McArdle
fb826c7fac Hide unimplemented File->Import/Export Folder menu item. 2011-06-05 12:40:20 -05:00
Riley McArdle
d5822094c1 Updated BUILD.CMD and CHANGELOG.TXT for 1.67 RC5. 2011-06-05 12:14:18 -05:00
Riley McArdle
87f7fbdf45 Changed header, removed footer, and added command line to the log file. 2011-06-05 12:06:36 -05:00
Riley McArdle
0bed923a4d Added code to verify database version and upgrade database from 2.2 (mRemoteNG 1.66 or earlier) to 2.3 (mRemoteNG 1.67). 2011-06-05 12:06:07 -05:00
Riley McArdle
69ab11eb5f Enable creation of PDB debug symbol files for release builds. 2011-06-05 12:04:53 -05:00
Riley McArdle
217a03b191 Fixed bug 45 - Changing some settings in the config file may not save. 2011-06-05 12:04:44 -05:00
Riley McArdle
cab2163d01 Fixed Inherit All not affecting Enable Font Smoothing and Enable Desktop Composition. 2011-06-05 12:00:56 -05:00
Riley McArdle
2346aaa1c3 Only try to load 2.3 settings from SQL if the database is version 2.3. 2011-06-05 12:00:45 -05:00
Riley McArdle
7e45928297 Fixed ShowUpdatesTab to show the correct tab. 2011-06-05 12:00:29 -05:00
Riley McArdle
76543a440b Added version and culture information to log on startup. 2011-06-05 12:00:10 -05:00
Riley McArdle
5cb98e0543 Fixed tab order of controls in Options dialog. 2011-06-05 11:59:51 -05:00
Riley McArdle
114db6c90d Fix typo in previous commit. 2011-06-01 18:12:48 -05:00
Riley McArdle
53c5da7e0e Missing changes from commit 17a5853041. 2011-06-01 18:09:12 -05:00
Riley McArdle
888e55aaee Updated BUILD.CMD and CHANGELOG.TXT for 1.67 RC4. 2011-06-01 17:42:54 -05:00
Riley McArdle
2234770dac Changed installer to not show the version tag so that release candidates can be used for release without rebuilding. 2011-06-01 17:42:03 -05:00
Riley McArdle
17a5853041 Changed hard coded SQL database name into a user configurable setting. 2011-06-01 17:32:31 -05:00
Riley McArdle
d80f3d757e Moved default credentials back to the correct page in the Options dialog. 2011-06-01 17:07:40 -05:00
Riley McArdle
85a5d027dc Improved Reset Layout function. 2011-06-01 16:36:33 -05:00
Riley McArdle
006c76b11d Add database icon to project. 2011-06-01 15:47:02 -05:00
Riley McArdle
61a76908ea Moved SQL Server configuration to its own tab in the Options dialog. 2011-06-01 12:45:02 -05:00
Riley McArdle
b729cab9c9 Changed Options dialog to use standard tab control instead of Crownwood tab control. 2011-06-01 12:39:41 -05:00
Riley McArdle
654e3cae1f Refactored UI.Window.Options to frmOptions. 2011-05-31 17:46:14 -05:00
Riley McArdle
bcc681f623 Missing file for previous commit. 2011-05-31 17:28:45 -05:00
Riley McArdle
77716fc058 Fixed showing the updates tab on first startup. 2011-05-31 17:26:49 -05:00
Riley McArdle
103c34853e Changed the Options page into a normal dialog. 2011-05-31 17:12:21 -05:00
Riley McArdle
3ec52987eb Fixed NullReferenceException in App.Runtime. 2011-05-31 16:57:25 -05:00
Riley McArdle
d3130f91d1 Minor code cleanup. 2011-05-31 12:33:56 -05:00
Riley McArdle
aae96c112a Fixed confirm closing connection tabs to also ask when closing a panel. 2011-05-31 12:13:30 -05:00
Riley McArdle
635ae405bd Moved the language override code from frmMain_Load to Config.Settings.Load to make sure that the correct language is applied to everything. 2011-05-31 00:39:40 -05:00
Riley McArdle
66c315f629 Update BUILD.CMD and CHANGELOG.TXT for 1.67 RC3. 2011-05-28 17:20:55 -05:00
Riley McArdle
89c7baf7fa Fixed bug 42 - Maximized location not remembered with multiple monitors. Improved loading and saving of window location. Removed flickering on start up. 2011-05-28 17:10:13 -05:00
Riley McArdle
90eedc689e Fix bug 43 - Creating a duplicate connection causes connection list to no longer be sorted ascending. 2011-05-28 13:27:03 -05:00
Riley McArdle
b262f00491 Added confirmation before closing connection tabs. 2011-05-28 13:10:50 -05:00
Riley McArdle
d0d81e382d Merge branch 'master' of github.com:rmcardle/mRemoteNG 2011-05-28 12:44:08 -05:00
Riley McArdle
5615dc18a6 Fixed inconsistent capitalization of language names. 2011-05-27 16:58:36 -05:00
Riley McArdle
ce08728652 Changed the order of the startup code to ensure that the correct language is shown on the first run after an upgrade. 2011-05-27 16:56:51 -05:00
Riley McArdle
fbc613efe5 Added Holger Henke to CREDITS.TXT for submitting change made in commit 2b1732d061. 2011-05-27 16:38:35 -05:00
Riley McArdle
d3560eb893 Merge from commit a3165ba25a89f6e6b155 by sirrus. New translations and some renamed entries. 2011-05-27 16:36:15 -05:00
Riley McArdle
e53be11383 Merge from commit 410f0173616609caf47c by sirrus. New translations and some renamed entries. 2011-05-27 16:33:28 -05:00
29 changed files with 2790 additions and 2177 deletions

View File

@@ -1,6 +1,6 @@
@echo off
SET VERSIONTAG=RC2
SET VERSIONTAG=RC5
SET VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
SET DEVENV="devenv.exe"

View File

@@ -3,6 +3,7 @@ Contributors
Lionel Caignec
Felix Deimel
Holger Henke
Tom Hiller
Riley McArdle
Apisitt Rattana

View File

@@ -6,7 +6,7 @@
; This will be passed in using the /D switch by BUILD.CMD
!ifdef PRODUCT_VERSION_TAG
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT} ${PRODUCT_VERSION_TAG}"
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}-${PRODUCT_VERSION_TAG}"
!else
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"

View File

@@ -4,6 +4,7 @@ Imports Crownwood
Imports System.Threading
Imports System.Xml
Imports System.Environment
Imports System.Management
Namespace App
Public Class Runtime
@@ -54,7 +55,7 @@ Namespace App
Public Shared screenshotPanel As New DockContent
Public Shared quickyForm As UI.Window.QuickConnect
Public Shared quickyPanel As New DockContent
Public Shared optionsForm As UI.Window.Options
Public Shared optionsForm As frmOptions
Public Shared optionsPanel As New DockContent
Public Shared saveasForm As UI.Window.SaveAs
Public Shared saveasPanel As New DockContent
@@ -93,9 +94,7 @@ Namespace App
Windows.adimportPanel.Show(frmMain.pnlDock)
Case UI.Window.Type.Options
Windows.optionsForm = New UI.Window.Options(Windows.optionsPanel)
Windows.optionsPanel = Windows.optionsForm
Windows.optionsForm = New frmOptions(Windows.optionsPanel)
Windows.optionsForm.Show(frmMain.pnlDock)
Case UI.Window.Type.SaveAs
Windows.saveasForm = New UI.Window.SaveAs(Windows.saveasPanel)
@@ -147,6 +146,11 @@ Namespace App
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Show (App.Runtime.Windows) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub ShowUpdatesTab()
Windows.optionsForm = New frmOptions(Windows.optionsPanel)
Windows.optionsForm.Show(frmMain.pnlDock, 5)
End Sub
End Class
Public Class Screens
@@ -203,24 +207,21 @@ Namespace App
Public Shared Sub SetDefaultLayout()
frmMain.pnlDock.Visible = False
Windows.configPanel.Show(frmMain.pnlDock, DockState.DockLeft)
frmMain.pnlDock.DockLeftPortion = 0.25
frmMain.pnlDock.DockRightPortion = 0.25
frmMain.pnlDock.DockTopPortion = 0.25
frmMain.pnlDock.DockBottomPortion = 0.25
Windows.treePanel.Show(frmMain.pnlDock, DockState.DockLeft)
For Each pane As DockPane In frmMain.pnlDock.Panes
If pane.DockState = DockState.DockLeft Then
Windows.treePanel.DockTo(pane, DockStyle.Top, 0)
Exit For
End If
Next
Windows.errorsPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.sessionsPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotForm.Hide()
Windows.configPanel.Show(frmMain.pnlDock)
Windows.configPanel.DockTo(Windows.treePanel.Pane, DockStyle.Bottom, -1)
Windows.quickyPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotPanel.Show(Windows.quickyPanel.Pane, Windows.quickyPanel)
Windows.sessionsPanel.Show(Windows.quickyPanel.Pane, Windows.screenshotPanel)
Windows.errorsPanel.Show(Windows.quickyPanel.Pane, Windows.sessionsPanel)
Windows.screenshotForm.Hide()
Windows.quickyForm.Hide()
frmMain.pnlDock.Visible = True
@@ -247,8 +248,29 @@ Namespace App
Public Shared Sub CreateLogger()
log4net.Config.XmlConfigurator.Configure(New FileInfo("mRemoteNG.exe.config"))
log = log4net.LogManager.GetLogger("mRemoteNG.Log")
log.InfoFormat("{0} started.", My.Application.Info.ProductName)
log.InfoFormat("Command Line: {0}", Environment.GetCommandLineArgs)
Try
Dim servicePack As Integer
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get()
servicePack = managementObject.GetPropertyValue("ServicePackMajorVersion")
If servicePack = 0 Then
log.InfoFormat("{0} {1}", managementObject.GetPropertyValue("Caption").Trim, managementObject.GetPropertyValue("OSArchitecture"))
Else
log.InfoFormat("{0} Service Pack {1} {2}", managementObject.GetPropertyValue("Caption").Trim, servicePack.ToString, managementObject.GetPropertyValue("OSArchitecture"))
End If
Next
Catch ex As Exception
log.WarnFormat("Error retrieving operating system information from WMI. {0}", ex.Message)
End Try
log.InfoFormat("Microsoft .NET Framework {0}", System.Environment.Version.ToString)
#If Not PORTABLE Then
log.InfoFormat("{0} {1}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString)
#Else
log.InfoFormat("{0} {1} {2}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString, My.Resources.strLabelPortableEdition)
#End If
log.InfoFormat("System Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End Sub
Public Shared Sub UpdateCheck()
@@ -385,8 +407,10 @@ Namespace App
Try
LastSQLUpdate = Nothing
RemoveHandler Tools.Misc.SQLUpdateCheckFinished, AddressOf SQLUpdateCheckFinished
tmrSqlWatcher.Stop()
tmrSqlWatcher.Close()
If tmrSqlWatcher IsNot Nothing Then
tmrSqlWatcher.Stop()
tmrSqlWatcher.Close()
End If
Catch ex As Exception
End Try
End Sub
@@ -584,11 +608,9 @@ Namespace App
pnlcForm.Show(frmMain.pnlDock, DockState.Document)
If NoTabber = True Then
If NoTabber Then
TryCast(cForm, UI.Window.Connection).TabController.Dispose()
End If
If NoTabber = False Then
Else
wL.Add(cForm)
End If
@@ -798,6 +820,7 @@ Namespace App
conL.UseSQL = My.Settings.UseSQLServer
conL.SQLHost = My.Settings.SQLHost
conL.SQLDatabaseName = My.Settings.SQLDatabaseName
conL.SQLUsername = My.Settings.SQLUser
conL.SQLPassword = Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey)
conL.SQLUpdate = Update
@@ -1112,6 +1135,7 @@ Namespace App
If My.Settings.UseSQLServer = True Then
conS.SaveFormat = Config.Connections.Save.Format.SQL
conS.SQLHost = My.Settings.SQLHost
conS.SQLDatabaseName = My.Settings.SQLDatabaseName
conS.SQLUsername = My.Settings.SQLUser
conS.SQLPassword = Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey)
End If
@@ -1598,7 +1622,7 @@ Namespace App
Public Shared Sub SetMainFormText(Optional ByVal ConnectionFileName As String = "")
Try
Dim txt As String = "mRemoteNG"
Dim txt As String = My.Application.Info.ProductName
If App.Editions.Spanlink.Enabled Then
txt &= " | Spanlink Communications"

View File

@@ -7,7 +7,7 @@
For Each CultureName As String In My.Settings.SupportedUICultures.Split(",")
Try
CultureInfo = New Globalization.CultureInfo(CultureName.Trim)
Add(CultureInfo.Name, CultureInfo.NativeName)
Add(CultureInfo.Name, CultureInfo.TextInfo.ToTitleCase(CultureInfo.NativeName))
Catch ex As Exception
Debug.Print(String.Format("An exception occurred while adding the culture '{0}' to the list of supported cultures. {1}", CultureName, ex.ToString))
End Try

View File

@@ -1,4 +1,4 @@
1.67 (2011-05-25):
1.67 (2011-06-05):
Fixed migration of external tools configuration and panel layout from Local to Roaming folder.
Disable ICA Hotkeys for Citrix connections. Fixes issue with international users.
Added a language selection option so users can override the language if they don't want it automatically detected.
@@ -18,7 +18,16 @@
Added Font Smoothing and Desktop Composition RDP settings.
Improved error handling when loading XML connection files.
Added the mRemoteNG icon to the list of selectable icons for connection entries.
Added confirmation before closing connection tabs.
Fixed bug 42 - Maximized location not remembered with multiple monitors.
Improved loading and saving of window location.
Removed flickering on start up.
Changed the Options page into a normal dialog.
Improved Reset Layout function.
Changed to use full four part version numbers with major, minor, build, and revision.
Changed hard coded SQL database name into a user configurable setting.
Fixed tab order of controls in Options dialog.
Fixed bug 45 - Changing some settings in the config file may not save.
1.66 (2011-05-02):
Fixed connections not working

View File

@@ -18,8 +18,6 @@ Namespace Config
Private sqlQuery As SqlCommand
Private sqlRd As SqlDataReader
Private sqlDB As String = "mRemoteNG"
Private selNode As TreeNode
#End Region
@@ -44,6 +42,16 @@ Namespace Config
End Set
End Property
Private _SQLDatabaseName As String
Public Property SQLDatabaseName() As String
Get
Return _SQLDatabaseName
End Get
Set(ByVal value As String)
_SQLDatabaseName = value
End Set
End Property
Private _SQLUsername As String
Public Property SQLUsername() As String
Get
@@ -177,9 +185,9 @@ Namespace Config
App.Runtime.ConnectionsFileLoaded = False
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
Else
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()
@@ -426,8 +434,6 @@ Namespace Config
conI.Domain = .Item("DomainName")
conI.DisplayWallpaper = .Item("DisplayWallpaper")
conI.DisplayThemes = .Item("DisplayThemes")
conI.EnableFontSmoothing = .Item("EnableFontSmoothing")
conI.EnableDesktopComposition = .Item("EnableDesktopComposition")
conI.CacheBitmaps = .Item("CacheBitmaps")
conI.UseConsoleSession = .Item("ConnectToConsole")
@@ -451,8 +457,6 @@ Namespace Config
conI.Inherit.Description = .Item("InheritDescription")
conI.Inherit.DisplayThemes = .Item("InheritDisplayThemes")
conI.Inherit.DisplayWallpaper = .Item("InheritDisplayWallpaper")
conI.Inherit.EnableFontSmoothing = .Item("InheritEnableFontSmoothing")
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
conI.Inherit.Domain = .Item("InheritDomain")
conI.Inherit.Icon = .Item("InheritIcon")
conI.Inherit.Panel = .Item("InheritPanel")
@@ -549,6 +553,13 @@ Namespace Config
conI.Inherit.RDGatewayDomain = .Item("InheritRDGatewayDomain")
End If
If Me.confVersion >= 2.3 Then
conI.EnableFontSmoothing = .Item("EnableFontSmoothing")
conI.EnableDesktopComposition = .Item("EnableDesktopComposition")
conI.Inherit.EnableFontSmoothing = .Item("InheritEnableFontSmoothing")
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
End If
If SQLUpdate = True Then
conI.PleaseConnect = .Item("Connected")
End If

View File

@@ -5,6 +5,7 @@ Imports System.Globalization
Imports mRemoteNG.App.Runtime
Imports System.Data.SqlClient
Imports mRemoteNG.Tools.Misc
Imports mRemoteNG.My.Resources
Namespace Config
Namespace Connections
@@ -24,8 +25,6 @@ Namespace Config
Private xW As XmlTextWriter
Private pW As String = App.Info.General.EncryptionKey
Private sqlDB As String = "mRemote"
Private sqlCon As SqlConnection
Private sqlQuery As SqlCommand
Private sqlWr As Integer
@@ -45,6 +44,16 @@ Namespace Config
End Set
End Property
Private _SQLDatabaseName As String
Public Property SQLDatabaseName() As String
Get
Return _SQLDatabaseName
End Get
Set(ByVal value As String)
_SQLDatabaseName = value
End Set
End Property
Private _SQLUsername As String
Public Property SQLUsername() As String
Get
@@ -165,15 +174,58 @@ Namespace Config
#End Region
#Region "SQL"
Private Function VerifyDatabaseVersion(ByVal sqlConnection As SqlConnection) As Boolean
Dim isVerified As Boolean = False
Dim sqlDataReader As SqlDataReader = Nothing
Dim databaseVersion As System.Version = Nothing
Try
Dim sqlCommand As New SqlCommand("SELECT * FROM tblRoot", sqlConnection)
sqlDataReader = sqlCommand.ExecuteReader()
sqlDataReader.Read()
Dim enCulture As CultureInfo = New CultureInfo("en-US")
databaseVersion = New System.Version(Convert.ToDouble(sqlDataReader.Item("confVersion"), enCulture))
sqlDataReader.Close()
If databaseVersion.CompareTo(New System.Version(2, 2)) = 0 Then ' 2.2
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format("Upgrading database from version {0} to version {1}.", databaseVersion.ToString, "2.3"))
sqlCommand = New SqlCommand("ALTER TABLE tblCons ADD EnableFontSmoothing bit NOT NULL DEFAULT 0, EnableDesktopComposition bit NOT NULL DEFAULT 0, InheritEnableFontSmoothing bit NOT NULL DEFAULT 0, InheritEnableDesktopComposition bit NOT NULL DEFAULT 0;", sqlConnection)
sqlCommand.ExecuteNonQuery()
databaseVersion = New System.Version(2, 3)
End If
If databaseVersion.CompareTo(New System.Version(2, 3)) = 0 Then ' 2.3
isVerified = True
End If
If isVerified = False Then
mC.AddMessage(Messages.MessageClass.WarningMsg, String.Format(strErrorBadDatabaseVersion, databaseVersion.ToString, My.Application.Info.ProductName))
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(strErrorVerifyDatabaseVersionFailed, ex.Message))
Finally
If sqlDataReader IsNot Nothing Then
If Not sqlDataReader.IsClosed Then sqlDataReader.Close()
End If
End Try
Return isVerified
End Function
Private Sub SaveToSQL()
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
Else
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()
If Not VerifyDatabaseVersion(sqlCon) Then
mC.AddMessage(Messages.MessageClass.ErrorMsg, strErrorConnectionListSaveFailed)
Return
End If
Dim tN As TreeNode
tN = RootTreeNode.Clone

View File

@@ -38,28 +38,44 @@ Namespace Config
My.Settings.UpdatePending = False
End If
If My.Settings.MainFormLocation <> New Point(999, 999) Then
.Location = My.Settings.MainFormLocation
App.SupportedCultures.InstantiateSingleton()
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
log.InfoFormat("Override Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End If
If My.Settings.MainFormSize <> Nothing Then
.Size = My.Settings.MainFormSize
End If
'check if form is visible
Dim curScreen As Screen = Screen.FromHandle(.Handle)
If .Right < curScreen.Bounds.Left Or .Left > curScreen.Bounds.Right _
Or .Top * -1 > curScreen.Bounds.Top * -1 Or .Bottom > curScreen.Bounds.Bottom Then
.Location = curScreen.Bounds.Location
End If
If My.Settings.MainFormState = Nothing Or My.Settings.MainFormState = FormWindowState.Minimized Then
.WindowState = FormWindowState.Normal
.WindowState = FormWindowState.Normal
If My.Settings.MainFormState = FormWindowState.Normal Then
If Not My.Settings.MainFormLocation.IsEmpty Then .Location = My.Settings.MainFormLocation
If Not My.Settings.MainFormSize.IsEmpty Then .Size = My.Settings.MainFormSize
Else
.WindowState = My.Settings.MainFormState
If Not My.Settings.MainFormRestoreLocation.IsEmpty Then .Location = My.Settings.MainFormRestoreLocation
If Not My.Settings.MainFormRestoreSize.IsEmpty Then .Size = My.Settings.MainFormRestoreSize
End If
If My.Settings.MainFormState = FormWindowState.Maximized Then
.WindowState = FormWindowState.Maximized
End If
' Make sure the form is visible on the screen
Const minHorizontal As Integer = 300
Const minVertical As Integer = 150
Dim screenBounds As Drawing.Rectangle = Screen.FromHandle(.Handle).Bounds
Dim newBounds As Drawing.Rectangle = .Bounds
If newBounds.Right < screenBounds.Left + minHorizontal Then
newBounds.X = screenBounds.Left + minHorizontal - newBounds.Width
End If
If newBounds.Left > screenBounds.Right - minHorizontal Then
newBounds.X = screenBounds.Right - minHorizontal
End If
If newBounds.Bottom < screenBounds.Top + minVertical Then
newBounds.Y = screenBounds.Top + minVertical - newBounds.Height
End If
If newBounds.Top > screenBounds.Bottom - minVertical Then
newBounds.Y = screenBounds.Bottom - minVertical
End If
.Location = newBounds.Location
If My.Settings.MainFormKiosk = True Then
Tools.Misc.Fullscreen.EnterFullscreen()

View File

@@ -1,6 +1,7 @@
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.IO
Imports mRemoteNG.Tools.WindowPlacement
Namespace Config
Namespace Settings
@@ -25,12 +26,18 @@ Namespace Config
Public Sub Save()
Try
With Me._MainForm
If .WindowState = FormWindowState.Normal Then
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
Else
My.Settings.MainFormLocation = .RestoreBounds.Location
My.Settings.MainFormSize = .RestoreBounds.Size
Dim windowPlacement As New Tools.WindowPlacement(_MainForm)
If .WindowState = FormWindowState.Minimized And windowPlacement.RestoreToMaximized Then
.Opacity = 0
.WindowState = FormWindowState.Maximized
End If
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
If Not .WindowState = FormWindowState.Normal Then
My.Settings.MainFormRestoreLocation = .RestoreBounds.Location
My.Settings.MainFormRestoreSize = .RestoreBounds.Size
End If
My.Settings.MainFormState = .WindowState

View File

@@ -1532,6 +1532,8 @@ Namespace Connection
Me._Description = val
Me._DisplayThemes = val
Me._DisplayWallpaper = val
Me._EnableFontSmoothing = val
Me._EnableDesktopComposition = val
Me._Domain = val
Me._Icon = val
Me._Password = val
@@ -1612,6 +1614,7 @@ Namespace Connection
'LocalizedDisplayName("strPropertyNameInheritAll"), _
Get
If Me._CacheBitmaps And Me._Colors And Me._Description And Me._DisplayThemes And Me._DisplayWallpaper _
And Me._EnableFontSmoothing And Me._EnableDesktopComposition _
And Me._Domain And Me._Icon And Me._Password And Me._Port And Me._Protocol And Me._PuttySession _
And Me._RedirectDiskDrives And Me._RedirectKeys And Me._RedirectPorts And Me._RedirectPrinters _
And Me._RedirectSmartCards And Me._RedirectSound And Me._Resolution And Me._UseConsoleSession _

View File

@@ -274,6 +274,7 @@ Partial Class frmMain
Me.mMenFileImportExport.Name = "mMenFileImportExport"
Me.mMenFileImportExport.Size = New System.Drawing.Size(334, 22)
Me.mMenFileImportExport.Text = "Import/Export Folder"
Me.mMenFileImportExport.Visible = False
'
'ImportFromXMLFileToolStripMenuItem
'
@@ -314,6 +315,7 @@ Partial Class frmMain
'
Me.mMenFileSep3.Name = "mMenFileSep3"
Me.mMenFileSep3.Size = New System.Drawing.Size(331, 6)
Me.mMenFileSep3.Visible = False
'
'mMenFileDelete
'
@@ -740,7 +742,7 @@ Partial Class frmMain
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
Me.ToolStrip1.TabIndex = 19
Me.ToolStrip1.Visible = False
Me.ToolStrip1.Visible = False
'
'ToolStripButton1
'
@@ -806,6 +808,7 @@ Partial Class frmMain
Me.Icon = Global.mRemoteNG.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
Me.Name = "frmMain"
Me.Opacity = 0
Me.Text = "mRemoteNG"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()

View File

@@ -10,32 +10,37 @@ Public Class frmMain
Public Shared Event clipboardchange()
Private fpChainedWindowHandle As IntPtr
#Region "Properties"
Private _IsClosing As Boolean = False
Public ReadOnly Property IsClosing() As Boolean
Get
Return _IsClosing
End Get
End Property
#End Region
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'insert enable edition code here
App.Editions.Spanlink.Enabled = False
App.SupportedCultures.InstantiateSingleton()
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
End If
ApplyLanguage()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
Startup.CreateLogger()
' Create gui config load and save objects
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
Startup.CreateLogger()
' Load GUI Configuration
sL.Load()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
ApplyLanguage()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
mC = New Messages.Collector(Windows.errorsForm)
Connection.Protocol.RDP.Resolutions.AddResolutions()
@@ -67,8 +72,7 @@ Public Class frmMain
My.Settings.CheckForUpdatesAsked = True
End If
If cTaskDialog.CommandButtonResult = 1 Then
Windows.Show(UI.Window.Type.Options)
Windows.optionsForm.ShowUpdatesTab()
Windows.ShowUpdatesTab()
End If
End If
@@ -78,6 +82,8 @@ Public Class frmMain
AddSysMenuItems()
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
Me.Opacity = 1
End Sub
Private Sub ApplyLanguage()
@@ -157,6 +163,8 @@ Public Class frmMain
End If
End If
_IsClosing = True
For Each Window As UI.Window.Base In wL
Window.Close()
Next

View File

@@ -0,0 +1,277 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imgListPages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imgListPages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABu
IgAAAk1TRnQBSQFMAgEBBwEAAdABAAHQAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAeIB7wH0Af8BqAHJAdcB/wF3AaQBtgH/AVoBhgGcAf8BRQFsAYoB/wFA
AWcBhwH/AUABcQGVAf8BUwGOAasB/wGPAbcBzQH/Ad0B6gHxAf8MAANXAbcDnwH/A5oB/wOWAf8DkQH/
A40B/wOJAf8DhAH/A4AB/wNiAf8DXgH/A1oB/wNXAf8DUwH/A1AB/wNXAbcYAAMNARIDVgG2A1YBtgMN
ARFgAAGtAc8B3wH/AVIBkQGtAf8BVwGjAb8B/wFzAcAB1AH/AZUB2QHmAf8BgQHbAfAB/wFLAcYB7AH/
AR8BqgHdAf8BEQGSAccB/wEdAYABrAH/ATQBbAGSAf8BnQG/AdEB/wgAA6gB/wPpAf8D0wH/A9IB/wPR
Af8D0AH/A84B/wPNAf8DzQH/A8sB/wPLAf8DygH/A8kB/wPIAf8D4gH/A1AB/xgAA14B2QPkAf8D4wH/
A1gBwWAAAVUBhAGbAf8BPwG9AecB/wFiAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHw
Af8BGQG2Ae0B/wEAAacB6AH/AQABoQHhAf8BBAGWAdIB/wE4AVkBdQH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DVAH/CAADCwEPA1QBrQM6
AWEDPwFuA3sB+AHiAeEB3wH/AeEB4AHfAf8DawHzAzwBZwM8AWYDUwGtAwsBD1AAAVgBhwGeAf8BPgHE
AfAB/wFkAdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHwAf8BGQG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE5AVoBdwH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOw
Af8DrwH/A60B/wOrAf8DqQH/A6gB/wPKAf8DWAH/CAADWgHFBP8CtAGzAf4CswGyAf4C5wHmAf8B1gHV
AdMB/wHXAdYB1AH/AeMB4gHgAf8BqAGnAaUB/gKxAbAB/QHpAegB5gH/A1gBwVAAAVoBiQGgAf8BPgHE
Ae8B/wFjAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGCAd8B8wH/AUwBygHwAf8BGQG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE7AV0BeQH/CAADtgH/A90B/wPBAf8DvQH/A7wB/wO6Af8DuAH/A7UB/wO0
Af8DsgH/A7AB/wOtAf8DrAH/A6wB/wPPAf8DXAH/CAADZAHnAvkB9wH/Au8B7gH/AtsB2gH/AcoCyQH/
AckByAHGAf8ByQHIAccB/wHJAcgBxwH/AssByQH/AeYB5QHkAf8B5QHkAeIB/wNlAeVQAAFcAYwBogH/
AUABxgHwAf8BZQHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BggHfAfQB/wFMAcoB8AH/ARkBtgHtAf8BAAGo
AegB/wEAAaIB4gH/AQABmwHbAf8BPQFgAYAB/wgAA1oBvQPaAf8DyAH/A8AB/wO/Af8DvQH/A7oB/wO4
Af8DtwH/A7UB/wOzAf8DsAH/A68B/wOzAf8DwgH/A1oBvQgAA04BlQH2AfUB9AH/AeYB5QHkAf8BvwG+
Ab0B/wLrAeoB/wHUAdMB0gH/AdYB1QHUAf8B4gLhAf8CtAGzAf8B1wHWAdQB/wHiAeEB3wH/A0oBjVAA
AV8BjwGlAf8BQQHGAfAB/wFlAdQB8gH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHwAf8BGQG2
Ae0B/wEAAacB6AH/AQABoQHiAf8BAAGcAdsB/wE/AWMBgwH/CAADWgG9A+MB/wPnAf8D4QH/A+AB/wPg
Af8D3wH/A98B/wPeAf8D3QH/A90B/wPcAf8D2wH/A+AB/wPQAf8DWgG9AwsBDwNVAbUDZAHnAeQB4wHi
Af8B0QHQAc8B/wLwAe8B/wOuAf8DZAHxA2cB8gKsAasB/wLoAecB/wLLAcoB/wHgAd8B3QH/A2EB5ANV
AbUDCwEPSAABYAGSAagB/wFBAcUB8AH/AWYB1AHyAf8BjQHjAfQB/wGiAesB9gH/AYIB3wH0Af8BSwHK
AfAB/wEZAbYB7QH/AQABpwHoAf8BAAGhAeEB/wEAAZwB2wH/AUEBZgGGAf8IAAMpAT8DzgH/A+wB/wPe
Af8D2AH/A9IB/wPMAf8DyAH/A8cB/wPIAf8DywH/A9AB/wPdAf8D6AH/A6QB/wMrAUIDPwFtAuQB4wH/
AdgB1gHVAf8B0gHRAdAB/wHFAcQBwwH/Ae0B7AHrAf8DVwG6CAADXAHNAegB5wHmAf8BtgG1AbQB/wHW
AdUB0wH/AeIB4QHgAf8C4AHfAf8DPAFmSAABYwGVAasB/wFBAcUB8AH/AWYB1AHyAf8BjQHjAfQB/wGi
AesB9gH/AYMB3wH0Af8BTAHLAfAB/wEZAbUB7QH/AQABpwHoAf8BAAGhAeIB/wEAAZwB2gH/AUQBaQGI
Af8MAANaAb0D4wH/A9sB/wPiAf8BtwHQAbgB/wFKAa0BTgH/AVwBqgFKAf8BVgGvAU4B/wE8AaUBSAH/
AawBxQGsAf8DwgH/A9EB/wPTAf8DWgG9BAADQgF2AewB6wHoAf8B2gHZAdcB/wHUAdMB0QH/AcYBxQHE
Af8B3gLcAf8DRgF+CAADUAGaAd0B3AHbAf8ByAHGAcUB/wLiAeEB/wLhAd8B/wHuAe0B7AH/Az8Bb0gA
AWUBmAGuAf8BQQHFAfAB/wFmAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUwBygHwAf8BGQG2
Ae0B/wEAAagB6QH/AQABoQHhAf8BAAGcAdoB/wFGAWsBigH/DAADKQE/A9EB/wPzAf8BxwHeAcoB/wFK
AckBhQH/AbMB3AGkAf8B5wHHAWIB/wHcAb8BWQH/AVwBzAGPAf8BNQGtAU4B/wG4AdABuAH/A/EB/wOv
Af8DKwFCBAADLwFKA2AB6wONAfwB3gHdAdwB/wHLAsoB/wHmAuUB/wNhAeEDMgFQAzgBXANgAesC7gHs
Af8BzALLAf8B5wHmAeUB/wKOAY0B/ANgAesDLAFDSAABaAGbAbAB/wFAAcYB8AH/AWYB1AHyAf8BjQHj
AfQB/wGiAesB9gH/AYMB3wH0Af8BTAHKAfAB/wEZAbYB7QH/AQABqAHoAf8BAAGhAeEB/wEAAZwB2gH/
AUkBbwGOAf8QAANaAb0DxAH/AVwBzgGLAf8BmQHkAasB/wGwAcUBQwH/AeoBtQEuAf8B4QGiAR8B/wGl
AZ0BJgH/AYIBxQGPAf8BLwGaATwB/wOgAf8DWgG9EAADXgHOAeEB4AHeAf8B2QHXAdYB/wG4ArcB/wHh
AeAB3wH/A6wB/QOxAf0C9gH1Af8CwAG/Af8B6gHpAegB/wLzAfIB/wNcAclQAAFrAZ8BswH/AUABxgHw
Af8BZAHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wFMAcoB8AH/ARkBtgHtAf8BAAGnAegB/wEA
AaEB4QH/AQABmwHaAf8BSwFyAZAB/xgAAWgBlQFzAfwBogHpAZUB/wHWAc8BTwH/AeIBswEtAf8B0QG7
ATUB/wHCAa4BKAH/AYIBvQFSAf8BMQF5AV4B/BgAA0wBkQHjAeIB4AH/At4B3AH/AeEB4AHfAf8BzALL
Af8BxAHDAcIB/wLPAc4B/wLeAd0B/wLwAe8B/wLwAe8B/wL2AfUB/wNIAYdQAAFsAaEBtQH/AWYB1QH0
Af8BmgHoAfcB/wG1AfMB+gH/AcIB+AH8Af8BwwH4Af0B/wHBAfcB/QH/Aa8B8AH7Af8BjwHiAfcB/wFl
AdAB8AH/ATkBuAHlAf8BTgF1AZMB/xgAAWoBlQF0AfwBogHwAZ8B/wHYAe0BrwH/Ad4BxQFOAf8BtAHi
AUsB/wFGAecBHwH/AVEB1wFRAf8BQAF7AWUB/BQAAwEBAgNfAeMB5QHkAeEB/wLuAe0B/wLuAe0B/wLr
AeoB/wHjAeIB4QH/AugB5wH/AuoB6QH/AvMB8gH/AvUB9AH/AfoB+QH4Af8DXAHfUAABbwGjAbgB/wHF
AfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9
Af8BxQH5Af0B/wHFAfkB/QH/AVABeAGVAf8YAANhAdwByAH3AdQB/wHYAfYBygH/AecB4wGpAf8B2wHP
AVIB/wGvAdwBTgH/AZ0B6gGrAf8DXwHgGAADQAFvA38B/gNkAecDXwHzAegB5wHmAf8B5wHmAeUB/wLt
AewB/wL7AfoB/wNnAfIDZAHnA4QB/gM9AWhQAAG3AdcB4QH/AYwBvQHMAf8BnQHPAdsB/wGtAd8B6AH/
AbkB7AHzAf8BwgH1AfoB/wHCAfUB+gH/AbgB6wHxAf8BqQHaAeMB/wGUAcQB0QH/AXYBqAG4Af8BqQHF
AdEB/xgAAy0BRQFrAYUBdwH6AdsB+AHpAf8B5wHyAdgB/wHtAeUBswH/Ad8B2QGmAf8BXwGPAV8B+wMy
AVAgAAMPARQDCgEOA1MBqgHvAe4B7QH/AvQB8wH/A1IBpAMIAQsDEQEXWAAC/gL/AeMB8QH0Af8BuQHX
AeEB/wGVAb4BzAH/AXYBqAG7Af8BaQGbAbAB/wFlAZgBrQH/AW4BoQGzAf8BjAGyAcIB/wGxAc0B1wH/
Ad8B6wHvAf8D/gH/HAADLgFHA14B2QFuAZUBcgH8AW4BkQFuAfwDXgHdAzIBUCwAAy8BSgNdAfADYgHv
AywBQ2QAAxEBFwNWAbMBUwFUAVMBrLQAAwQBBQMQARUDHwEtAykBPwMvAUkDLgFIAygBPQMeASsDDwEU
AwMBBBAAA7cB/wGcAagBngH/AQABXQE4Af8BIgGSAVoB/wEAAWEBOAH/AQoBTgGgAf8BBwFMAZ4B/wED
AUkBmwH/AQABRwGZAf8BAAFFAZcB/wEAAUIBlAH/AQABQQGTAf8DUgH/A1IB/xwAA0EBcgFMAl8B8wFZ
AlwBzwFLAkwBkAMjATNcAAMFAQcDHwEsAj4BPQFqAlIBUAGjAVsCWQHEAV0CWgHTAV0CWgHTAVsCWQHD
AVICUQGhAzwBZgMcASgDBAEGDAADFQEdA1EBogEnAZUBXgH/AYIBvgGqAf8BNgGlAYIB/wEXAZcBUAH/
ARoBmQFVAf8BHgGZAVkB/wEiAZ0BXgH/AVwBqgHSAf8BWgGoAdEB/wEAAUMBlQH/IAADIQEwASsBRgFy
AfwBhgGtAeEB/wFkAagB3AH/AUUBkgHJAf8BFgFYAasB/wFVAlYBsQMfAS1TAAEBAxIBGAM+AWsBXQJZ
AdcBYAErASkB/AGsATMBCgH/AeEBUwEnAf8B5AFlATsB/wHTAVEBHwH/AaMBQAEwAf0BYQJeAdoCPgE9
AWoDDwEUCAADGAEiAVABUgFQAaQDVgGzAVMBrAGfAf8BWgG3AZ4B/wFkAbsBrAH/AWQBuwGuAf8BZQG7
AbAB/wGAAbwBswH/AR0BmgFhAf8BOgGVAccB/wFdAasB0wH/AQABRgGYAf8gAAFUAlYBqwFTAZ0B0QH/
AZkBvAHrAf8BVwGgAeMB/wGWAbkB6gH/AZQBuAHqAf8BRgGTAcoB/wErATQBbgH8A0MBeFAAAxsBJgNZ
AdIBIwENAQAB/wGKAUIBKgH/AcoBhgFMAf8B9gG8AZwB/wH5AcwBtwH/AeMBoAFeAf8BsQFdAUMB/wFf
ATkBGgH/AV4CWAHdAxwBKAgAAVUBVgFVAbEDVgGzA1YBswFCAaQBkQH/AVUBtgGbAf8BTgGyAZsB/wFQ
AbIBngH/AVIBswGhAf8BhQG/AbYB/wEkAZ4BggH/AT8BmQHJAf8BYQGtAdQB/wEEAUoBnAH/HAADHwEt
ASsBWQF2AfwBnQG/AewB/wFPAZwB4gH/AUEBkwHfAf8BPgGRAd8B/wFFAZQB4AH/AZUBuAHqAf8BhgGt
AeEB/wEvAYMBuwH/AUsCTAGQBAADnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/CAABUwJPAaUBOgEfAQcB/wFfAUoBNQH/AY8BXAFHAf8BrAGI
AVEB/wHCAaMBiAH/AcEBpQGOAf8BswGYAYEB/wGRAVwBRgH/AVoBQQEsAf8BSQEiAQAB/wFWAlUBsQgA
AwgBCwNVAbIDVgGzAVwBsgGoAf8BYwG9AacB/wGHAcEBtQH/AYYBwQG2Af8BhwHBAbcB/wGIAcEBuQH/
ASoBogGIAf8BRAGcAcsB/wFlAbAB1QH/AQkBTQGfAf8QAAMrAUIDSAGEAVUCVwG3AUwBXwFhAfMBXAGk
AdcB/wGhAcIB7QH/AZ8BwAHtAf8BnQG/Ae0B/wFaAaMB5AH/AUABkgHfAf8BPgGQAd4B/wFhAacB5gH/
AZIBtgHoAf8BKQFlAbcB/wM3AVoDnQH/AboCvQH/AeYC7AH/AeYC7QH/AecC7QH/AegC7gH/AekC7wH/
AekC7wH/AeoC7wH/AeoC8AH/AesC8AH/AesC8QH/AewC8QH/AewC8QH/Ab0CvwH/A50B/wQAAzkBXwFb
ATsBIAH/AcMBsQGiAf8BtgGcAYMB/wGmAV8BMgH/AagBXQEvAf8BwwGkAYcB/wHYAcYBsAH/Ab0BqQGL
Af8BZQFFASUB/wFCASIBAwH/ATgBFAEAAf8BPwEYAQAB/wMzAVMIAAMGAQgDVQGyATUBoAGKAf8BkwHJ
AboB/wFFAa8BlwH/ASoBogGDAf8BKwGjAYcB/wEtAaQBiwH/ASwBqgGSAf8BOgHCAe0B/wGBAbQB1wH/
AQ4BUQGjAf8MAANMAZMBSgGXAc8B/wFhAagB2QH/AY0BtAHiAf8BowHEAe0B/wGnAccB7gH/AUoBlwHN
Af8BGgFbAbIB/wFFAZMByQH/AZ8BwAHtAf8BXgGWAaMB/wGeAZYBLgH/AWIBlAGRAf8BjQGzAekB/wFf
AaUB2AH/AVoCXgHYBAADXAHqAdsC4gH/Ac0CzwH/A8sB/wPMAf8DzgH/A88B/wPQAf8D0gH/A9MB/wPV
Af8B1wLYAf8B5wLsAf8DbQH3BAADIgExAVYCVQGxAU0BIQEAAf8BqgGFAUUB/wGyAVgBFgH/Aa0BNQEA
Af8BugFSAQoB/wHqAdUBvwH/Af0B/AH6Af8B1gG+AaYB/wGQAUUBEgH/AUgBFgEAAf8BSQEmAQUB/wFC
ASIBBAH/A1cBxQMcAScIAAMEAQYBGwGUAV0B/wFUAbkBngH/AS8BpgGJAf8BXwGxAdUB/wFbAa0B1AH/
AVcBqwHSAf8BRQG6AeQB/wEAAZkBTwH/AQ0BjgE+Af8BEAFWAZoB/wwAAUgCYgH2Aa4BzQHwAf8BsAHP
AfAB/wGYAb8B7AH/AWQBrgHnAf8BqgHKAe8B/wEjAWEBuAH/BAABGwFcAbMB/wGiAcMB7QH/AagBlwEX
Af8BxAG1AUAB/wGsAZcBDAH/AUEBkwHfAf8BmAG7AesB/wECAUoBnwH/BAADXAHqAdkC4QH/AcsCzAH/
A8cB/wPIAf8DygH/A8sB/wPNAf8DzgH/A9AB/wPRAf8B0wLUAf8B5QLrAf8DbQH3BAADLgFHA1kB7AFI
ARYBAAH/AZkBNQEAAf8BuAFNAQAB/wHCAUkBAAH/AckBWwEJAf8B5gG/AZQB/wHsAdQBtgH/Ac0BnAFI
Af8BqAFSARIB/wGZAVMBJwH/AaMBjAFYAf8BZQFMATUB/wJRAT8B9wE1AjQBVQwAAT4BjgHEAf8BOAGs
AYsB/wE1AaoBjwH/AWQBtQHYAf8BYAGyAdYB/wFdAa8B1QH/AVkBrAHTAf8BCgGQAUgB/wE/AagBhAH/
AQABXgE5Af8DFAEbCAABWgJgAd4BqAHJAe0B/wGEAacB7QH/AT4BUAHtAf8BUAGOAekB/wGtAc0B8AH/
AVMBnQHSAf8BJAFiAbkB/wFNAZkBzgH/AaUBxQHuAf8BlQGaAU8B/wGtAZcBDAH/AZ0BlwEzAf8BTAGb
AeIB/wGYAbsB6gH/AUgCYgH2BAADXAHqAdcC3wH/AccCyQH/A8IB/wPEAf8DxQH/A8gB/wPJAf8DygH/
A8wB/wPNAf8B0ALRAf8B4wLqAf8DbQH3BAADOQFfAkABHQH9AVoBIQEAAf8BrgE/AQAB/wHAAUcBAAH/
AecBlgEsAf8B6AGyAWAB/wHkAbEBYAH/AdIBiQEfAf8BvQFMAQAB/wGoAToBAAH/AbgBjQFDAf8B1AHD
AbIB/wGYAYQBVAH/AUEBIwEFAf8BPgI9AWoMAAFEAZEByQH/AaQBzAHkAf8BhwG7AdsB/wElAaEBYAH/
AR8BnAFaAf8BGgGaAVYB/wEVAZYBUAH/ATEBowGBAf8BhAHAAasB/wEoAZYBXwH/A1EBogMVAR0EAANR
AZwBkgG5AeUB/wFUAVoB9gH/AYEBhAH1Af8CJgHwAf8BkAG7AesB/wGuAc0B8AH/AawBzAHwAf8BqgHK
AfAB/wGFAbIB6QH/AUQBqQHBAf8BKgGzAY0B/wE8AagBtgH/AVYBoQHkAf8BlwG6AegB/wNdAe0EAANc
AeoB1gLfAf8BwwLFAf8DwAH/A8AB/wPCAf8DwwH/A8QB/wPFAf8DyAH/A8kB/wPNAf8B4ALoAf8DbQH3
BAADNwFaAV0BTQEoAfoBgwEsAQAB/wHLAVYBAQH/AeUBiwEjAf8B/gG2AVgC/wHjAcIB/wH0AbwBhQH/
AdYBXQEPAf8BxQFUAQAB/wG6AUkBAAH/Aa8BXQEfAf8BrgGIAUMB/wGUAVwBQwH/AUIBJAEIAf8DPAFm
DAABSQGVAc0B/wGoAc8B5QH/AYwBvwHdAf8BKwGlAYEB/wGNAcUBuAH/AYkBwwG0Af8BhgHBAbEB/wGE
Ab8BrwH/AV0BuQGfAf8BVAGtAaAB/wNWAbMBUAFSAVABpAMYASIDIwEzATABawGHAfwBkgGkAfUB/wE/
AUAB9gH/ATcBhgH0Af8BIQGmAfsB/wFCAasB8gH/AWQBrwHnAf8BYQGtAecB/wFeAaoB5gH/ASUBtgGA
Af8BRgHIAZcB/wEhAbcBYAH/AWMBrAHnAf8BjwG1AeMB/wFaAl4B1QQAA2AB1gHHAs0B/wHbAuQB/wHb
AuQB/wHbAuUB/wHcAuUB/wHcAuUB/wHdAuYB/wHdAuYB/wHeAucB/wHfAugB/wHgAugB/wHNAtMB/wNf
AeMEAAMmATkBYAJaAd4BjgE0AQAB/wHsAZ4BOQH/Af4BvwGFAv8BzAGhAv8B3wG7Af8B/gHCAWUB/wHi
AY4BLwH/AdMBhAEgAf8BygFfARIB/wG1AVYBEAH/AZcBRwENAf8BgQFEAR8B/wNZAewDLgFIDAABTQGY
AdAB/wGrAdEB5wH/AZABwgHfAf8BMgGpAYgB/wGRAckBuwH/AVwBugGlAf8BWAG4AaEB/wFUAbYBngH/
AVgBuAGdAf8BQwGlAZIB/wNWAbMDVgGzAVUBVgFVAbEEAANJAYcBhgGvAeEB/wG5AdcB8wH/ARgBpgH+
Af8BUgG/Av8BEQGjAv8BTAG+AfAB/wEgAc4B+wH/AUABvgHxAf8BOAGzAaAB/wEhAbcBXwH/AS0BswGQ
Af8BpwHIAe4B/wFdAaUB1gH/AU8CUQGcBAADLAFDA1sByAOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOd
Af8DnQH/A50B/wOdAf8DXgHdAzEBTgQAAwkBDANLAY4BwAFUARMC/wG8AWUB/wH6Ac4BpwH/AfgB2wG+
Av8B4gHGAv8BvgGGAf8B9AGsAVsB/wHsAcIBmgH/AeIBtQGLAf8BuAFbARkB/wGdAUoBEgH/AYgBSgEm
Af8DTwGlAxABFQwAAVEBmwHTAf8BrgHUAegB/wGrAdMB6AH/AT8BsQGQAf8BmwHOAcAB/wGZAc0BvQH/
AZYBywG7Af8BlQHKAbkB/wGAAb8BqAH/AV0BswGpAf8DVgGzA1UBsgMIAQsEAAMEAQYDUQGfAYUBrgHh
Af8BQAGyAfkB/wERAaMC/wEmAakB+wH/ARYB0wH+Af8BUgHiAv8BEQHVAv8BZQGwAegB/wFiAa0B5wH/
AakBygHvAf8BpQHFAe0B/wErAV0BeAH8AyEBMEQAAxMBGgJkAVMB8QHYAZ4BWAH/AecB0wHAAf8B/AH1
Ae4C/wH4AesC/wHlAcIB/wH2AbkBggH/AfIB0gG4Af8B7gHSAbYB/wHCAYYBNAH/AacBXAEtAf8CTQEp
AfoDHQEpEAABVAGdAdUB/wFSAZsB0wH/AU8BmgHSAf8BLwGhAYwB/wEqAZ8BigH/AScBnQGFAf8BIwGZ
AYAB/wE8AaUBkgH/AWUBuAGxAf8BNgGhAYsB/wNVAbIDBgEIEAADQgF1AV8CYgH2AY4BtgHjAf8BuQHX
AfMB/wFDAdUB+wH/ARAB1QL/AScB0QH7Af8BswHSAfIB/wGxAdAB8QH/AZIBuAHiAf8BSAGVAcwB/wNK
AYpMAAM1AVcBqQFIARoB/wHKAbgBqAb/Af4B/AL/AfYB4gH/AfsBxQGgAf8B5AG5AZUB/wHbAawBYwH/
AcMBjgFCAf8BkwFKAR4B/wE+Aj0BajAAAVMCVAGsA1YBswNWAbMDBAEGGAADFgEeA1QBrgFcAaMB3AH/
AZEBuAHkAf8BqAHKAewB/wGlAccB7AH/AY0BtQHiAf8BTgGaAdIB/wFaAl8B2wMxAU5UAAMyAVECZAFZ
AewB0AGyAZUB/wHsAeAB2QH/AeYB1QHEAf8B0wGwAZQB/wHTAaYBXQH/AcsBjwE7Af8BZwFlAVkB8gE6
AjkBYDQAAVMCVAGsA1YBswMEAQYkAAMrAUIDTAGQAVsCXQHSAVkCXAHPA04BmQMtAUVgAAMRARcDRAF6
AloBVwHFAmUBXgHlAmEBWAHmAlwBWQHJAkgBRwGDAxUBHRAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMA
AQEBAAEBBgABARYAA/8BAAHgAQcCAAH8AT8CAAHAAQMCAAH8AT8CAAHAAQMCAAHAAQMCAAHAAQMCAAHA
AQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMGAAHAAQMCAAEBAYACAAHAAQMBgAIBAYACAAHA
AQMBgAEBBAABwAEDAcABAwHAAQMCAAHAAQMB8AEPAcABAwIAAcABAwHwAQ8BgAEDAgABwAEDAfABDwHA
AQMCAAHAAQMB8AEPAfABDwIAAcABAwH4AR8B/AE/AgAB4wX/AeABBwGAAQEB/AEfAv8BwAEDAYABBwH4
AQcC/wGAAQMBAAEHAfgBAwL/AcABAwEAAQcB8AEBAgABwAEDAQABBwGAAwABgAEBAYABBwIAAYABAQIA
AcABBwEBAQABgAEBAgAB4AEDAgABgAEBAgAB4AEBAgABgAEBAgAB4AMAAYABAQIAAeABAAGAAQABgAEB
AgAB4AEAAYABAAL/AYABAQHgAQEB4AEBAv8BwAEDAf8BwwHwAQMC/wHgAQcB/wHHAfwBDwL/AfABDws=
</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1850,15 +1850,6 @@ Starte mit neuer Datei.</value>
<data name="strErrorCode" xml:space="preserve">
<value>Fehler Nummer {0}.</value>
</data>
<data name="strConnenctionEventDisconnected" xml:space="preserve">
<value>Protokoll Ereignis Verbindung getrennt.
Nachricht:
{0}</value>
</data>
<data name="strConnenctionEventDisconnectFailed" xml:space="preserve">
<value>Protokoll Ereignis Trennen der Verbindung fehlgeschlagen!
{0}</value>
</data>
<data name="strConnenctionClosedByUserDetail" xml:space="preserve">
<value>Verbindung zu {0} mit {1} wurde vom Benutzer {2} getrennt. (Beschreibung: "{3}"; Benutzer Feld: "{4}")</value>
</data>
@@ -1957,4 +1948,42 @@ Fehler Beschreibung: {1}</value>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Farben (15Bit)</value>
</data>
<data name="strNoUpdateAvailable" xml:space="preserve">
<value>Keine Updates verfügbar</value>
</data>
<data name="strTransferFailed" xml:space="preserve">
<value>Übertragung fehlgeschlagen!</value>
</data>
<data name="strProtocolEventDisconnected" xml:space="preserve">
<value>Protokollereignis Verbindung getrennnt.
{0}</value>
</data>
<data name="strProtocolEventDisconnectFailed" xml:space="preserve">
<value>Protokollereignis Verbindung trennen fehlgeschlagen.
{0}</value>
</data>
<data name="strLanguage" xml:space="preserve">
<value>Sprache</value>
</data>
<data name="strLanguageDefault" xml:space="preserve">
<value>(Automatisch erkannt)</value>
</data>
<data name="strLanguageRestartRequired" xml:space="preserve">
<value>{0} muss neu gestartet werden, bevor die Sprache aktiv wird.</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Später nochmal fragen</value>
</data>
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
<value>Einstellungen jetzt anpassen</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Verwende die empflohlenen Einstellungen</value>
</data>
<data name="strAskUpdatesContent" xml:space="preserve">
<value>{0} kann automatisch nach Updates suchen die neue Funktionen und Bug Fixes enthalten können. Es wird empfohlen, dass Sie {0} erlauben wöchentlich nach Updates zu suchen.</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatische Update Einstellungen</value>
</data>
</root>

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.5444
' Runtime Version:2.0.50727.4959
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -1679,6 +1679,33 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Confirm closing connection tabs.
'''</summary>
Friend ReadOnly Property strConfirmCloseConnection() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnection", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Do you want to close the connection, &quot;{0}&quot;?.
'''</summary>
Friend ReadOnly Property strConfirmCloseConnectionMainInstruction() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnectionMainInstruction", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Are you sure you want to close the panel, &quot;{0}&quot;? Any connections that it contains will also be closed..
'''</summary>
Friend ReadOnly Property strConfirmCloseConnectionPanelMainInstruction() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnectionPanelMainInstruction", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Are you sure you want to delete the external tool, &quot;{0}&quot;?.
'''</summary>
@@ -2123,6 +2150,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The database version {0} is not compatible with this version of {1}..
'''</summary>
Friend ReadOnly Property strErrorBadDatabaseVersion() As String
Get
Return ResourceManager.GetString("strErrorBadDatabaseVersion", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Error code {0}..
'''</summary>
@@ -2132,6 +2168,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The connection list could not be saved..
'''</summary>
Friend ReadOnly Property strErrorConnectionListSaveFailed() As String
Get
Return ResourceManager.GetString("strErrorConnectionListSaveFailed", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Errors.
'''</summary>
@@ -2141,6 +2186,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to VerifyDatabaseVersion (Config.Connections.Save) failed. {0}.
'''</summary>
Friend ReadOnly Property strErrorVerifyDatabaseVersionFailed() As String
Get
Return ResourceManager.GetString("strErrorVerifyDatabaseVersionFailed", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Expand all folders.
'''</summary>
@@ -2834,6 +2888,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Database:.
'''</summary>
Friend ReadOnly Property strLabelSQLDatabaseName() As String
Get
Return ResourceManager.GetString("strLabelSQLDatabaseName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Database:.
'''</summary>
Friend ReadOnly Property strLabelSQLServerDatabaseName() As String
Get
Return ResourceManager.GetString("strLabelSQLServerDatabaseName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Username:.
'''</summary>
@@ -5862,6 +5934,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Updates.
'''</summary>
Friend ReadOnly Property strTabUpdates() As String
Get
Return ResourceManager.GetString("strTabUpdates", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Telnet.
'''</summary>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -2319,4 +2319,31 @@ Error Description: {1}</value>
<data name="strPropertyNameEnableDesktopComposition" xml:space="preserve">
<value>Desktop Composition</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Confirm closing connection tabs</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<value>Do you want to close the connection, "{0}"?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>Are you sure you want to close the panel, "{0}"? Any connections that it contains will also be closed.</value>
</data>
<data name="strTabUpdates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed">
<value xml:space="preserve">VerifyDatabaseVersion (Config.Connections.Save) failed. {0}</value>
</data>
<data name="strErrorConnectionListSaveFailed">
<value xml:space="preserve">The connection list could not be saved.</value>
</data>
<data name="strErrorBadDatabaseVersion">
<value xml:space="preserve">The database version {0} is not compatible with this version of {1}.</value>
</data>
</root>

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.5444
' Runtime Version:2.0.50727.4959
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -56,8 +56,7 @@ Namespace My
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("999, 999")> _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormLocation() As Global.System.Drawing.Point
Get
Return CType(Me("MainFormLocation"),Global.System.Drawing.Point)
@@ -69,8 +68,7 @@ Namespace My
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("900, 600")> _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormSize() As Global.System.Drawing.Size
Get
Return CType(Me("MainFormSize"),Global.System.Drawing.Size)
@@ -2205,6 +2203,56 @@ Namespace My
Me("InhDefaultEnableDesktopComposition") = 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 ConfirmCloseConnection() As Boolean
Get
Return CType(Me("ConfirmCloseConnection"),Boolean)
End Get
Set
Me("ConfirmCloseConnection") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormRestoreSize() As Global.System.Drawing.Size
Get
Return CType(Me("MainFormRestoreSize"),Global.System.Drawing.Size)
End Get
Set
Me("MainFormRestoreSize") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormRestoreLocation() As Global.System.Drawing.Point
Get
Return CType(Me("MainFormRestoreLocation"),Global.System.Drawing.Point)
End Get
Set
Me("MainFormRestoreLocation") = 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("mRemoteNG")> _
Public Property SQLDatabaseName() As String
Get
Return CType(Me("SQLDatabaseName"),String)
End Get
Set
Me("SQLDatabaseName") = value
End Set
End Property
End Class
End Namespace

View File

@@ -3,10 +3,10 @@
<Profiles />
<Settings>
<Setting Name="MainFormLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">999, 999</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">900, 600</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormState" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Windows.Forms.FormWindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
@@ -500,5 +500,17 @@
<Setting Name="InhDefaultEnableDesktopComposition" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConfirmCloseConnection" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="MainFormRestoreSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormRestoreLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLDatabaseName" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)">mRemoteNG</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

View File

@@ -71,13 +71,12 @@ Namespace Tools
Dim sqlQuery As SqlCommand
Dim sqlRd As SqlDataReader
Dim sqlDB As String = "mRemote"
Dim LastUpdateInDB As Date
If My.Settings.SQLUser <> "" Then
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & My.Settings.SQLUser & ";Password=" & Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey))
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & My.Settings.SQLDatabaseName & ";User Id=" & My.Settings.SQLUser & ";Password=" & Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey))
Else
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & My.Settings.SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()

View File

@@ -0,0 +1,120 @@
Imports System.Runtime.InteropServices
Namespace Tools
Public Class WindowPlacement
#Region "Windows API"
#Region "Functions"
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
#End Region
#Region "Structures"
Private Structure WINDOWPLACEMENT
Public length As UInteger
Public flags As UInteger
Public showCmd As UInteger
Public ptMinPosition As POINT
Public ptMaxPosition As POINT
Public rcNormalPosition As RECT
End Structure
Private Structure POINT
Public x As Long
Public y As Long
End Structure
Private Structure RECT
Public left As Long
Public top As Long
Public right As Long
Public bottom As Long
End Structure
#End Region
#Region "Constants"
' WINDOWPLACEMENT.flags values
Private Const WPF_SETMINPOSITION As UInteger = &H1
Private Const WPF_RESTORETOMAXIMIZED As UInteger = &H2
Private Const WPF_ASYNCWINDOWPLACEMENT As UInteger = &H4
' WINDOWPLACEMENT.showCmd values
Private Const SW_HIDE As UInteger = 0
Private Const SW_SHOWNORMAL As UInteger = 1
Private Const SW_SHOWMINIMIZED As UInteger = 2
Private Const SW_SHOWMAXIMIZED As UInteger = 3
Private Const SW_MAXIMIZE As UInteger = 3
Private Const SW_SHOWNOACTIVATE As UInteger = 4
Private Const SW_SHOW As UInteger = 5
Private Const SW_MINIMIZE As UInteger = 6
Private Const SW_SHOWMINNOACTIVE As UInteger = 7
Private Const SW_SHOWNA As UInteger = 8
Private Const SW_RESTORE As UInteger = 9
#End Region
#End Region
#Region "Private Variables"
Private _form As Windows.Forms.Form
#End Region
#Region "Constructors/Destructors"
Public Sub New(ByRef form As Windows.Forms.Form)
_form = form
End Sub
#End Region
#Region "Public Properties"
Public Property Form() As Windows.Forms.Form
Get
Return _form
End Get
Set(ByVal value As Windows.Forms.Form)
_form = value
End Set
End Property
Public Property RestoreToMaximized() As Boolean
Get
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
Return windowPlacement.flags And WPF_RESTORETOMAXIMIZED
End Get
Set(ByVal value As Boolean)
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
If value Then
windowPlacement.flags = windowPlacement.flags Or WPF_RESTORETOMAXIMIZED
Else
windowPlacement.flags = windowPlacement.flags And Not WPF_RESTORETOMAXIMIZED
End If
SetWindowPlacement(windowPlacement)
End Set
End Property
#End Region
#Region "Private Functions"
Private Function GetWindowPlacement() As WINDOWPLACEMENT
If _form Is Nothing Then
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
End If
Dim windowPlacement As WINDOWPLACEMENT
windowPlacement.length = Marshal.SizeOf(windowPlacement)
Try
GetWindowPlacement(_form.Handle, windowPlacement)
Return windowPlacement
Catch ex As Exception
Throw ex
End Try
End Function
Private Function SetWindowPlacement(ByVal windowPlacement As WINDOWPLACEMENT) As Boolean
If _form Is Nothing Then
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
End If
windowPlacement.length = Marshal.SizeOf(windowPlacement)
Try
Return SetWindowPlacement(_form.Handle, windowPlacement)
Catch ex As Exception
Throw ex
End Try
End Function
#End Region
End Class
End Namespace

View File

@@ -303,6 +303,7 @@ Namespace Tree
Dim nConI As Connection.Info = conI.Copy
Dim nInh As Connection.Info.Inheritance = conI.Inherit.Copy()
nInh.Parent = nConI
nConI.Inherit = nInh
cL.Add(nConI)
@@ -489,7 +490,6 @@ Namespace Tree
_TreeView.TreeViewNodeSorter = ns
_TreeView.Sort()
_TreeView.Sorted = False
For Each childNode As TreeNode In treeNode.Nodes
If GetNodeType(childNode) = Type.Container Then Sort(childNode, sortType)

View File

@@ -3,6 +3,7 @@ Imports System.Windows
Imports System.Windows.Forms
Imports Crownwood
Imports WeifenLuo.WinFormsUI.Docking
Imports PSTaskDialog
Imports mRemoteNG.App.Runtime
Namespace UI
@@ -306,6 +307,17 @@ Namespace UI
End Sub
Private Sub Connection_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not frmMain.IsClosing And My.Settings.ConfirmCloseConnection And TabController.TabPages.Count > 0 Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionPanelMainInstruction, Me.Text), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
If Result = DialogResult.No Then
e.Cancel = True
Exit Sub
End If
End If
Try
For Each tabP As Magic.Controls.TabPage In Me.TabController.TabPages
If tabP.Tag IsNot Nothing Then
@@ -344,12 +356,23 @@ Namespace UI
End Sub
Private Sub CloseConnectionTab()
Dim SelectedTab As Crownwood.Magic.Controls.TabPage = Me.TabController.SelectedTab
If My.Settings.ConfirmCloseConnection Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionMainInstruction, SelectedTab.Title), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
If Result = DialogResult.No Then
Exit Sub
End If
End If
Try
If Me.TabController.SelectedTab.Tag IsNot Nothing Then
Dim IC As mRemoteNG.Connection.InterfaceControl = Me.TabController.SelectedTab.Tag
If SelectedTab.Tag IsNot Nothing Then
Dim IC As mRemoteNG.Connection.InterfaceControl = SelectedTab.Tag
IC.Protocol.Close()
Else
Me.CloseTab(Me.TabController.SelectedTab)
Me.CloseTab(SelectedTab)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)

View File

@@ -1,123 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="TabController.DrawGrid" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -27,8 +27,6 @@
<!-- An alternate output encoding can be specified -->
<!-- <encoding value="unicodeFFFE" /> -->
<layout type="log4net.Layout.PatternLayout">
<header value="[mRemoteNG Start]&#xD;&#xA;" />
<footer value="[mRemoteNG Exit]&#xD;&#xA;" />
<conversionPattern value="%date [%thread] %-5level- %message%newline" />
</layout>
<!-- Alternate layout using XML
@@ -59,12 +57,6 @@
</system.diagnostics>
<userSettings>
<mRemoteNG.My.MySettings>
<setting name="MainFormLocation" serializeAs="String">
<value>999, 999</value>
</setting>
<setting name="MainFormSize" serializeAs="String">
<value>900, 600</value>
</setting>
<setting name="MainFormState" serializeAs="String">
<value>Normal</value>
</setting>
@@ -554,6 +546,12 @@
<setting name="InhDefaultEnableDesktopComposition" serializeAs="String">
<value>False</value>
</setting>
<setting name="ConfirmCloseConnection" serializeAs="String">
<value>True</value>
</setting>
<setting name="SQLDatabaseName" serializeAs="String">
<value>mRemoteNG</value>
</setting>
</mRemoteNG.My.MySettings>
</userSettings>
<applicationSettings>

View File

@@ -3,7 +3,7 @@
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{4934A491-40BC-4E5B-9166-EA1169A220F6}</ProjectGuid>
<OutputType>WinExe</OutputType>
@@ -55,7 +55,7 @@
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>None</DebugType>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
@@ -65,7 +65,7 @@
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<WarningsAsErrors>
</WarningsAsErrors>
<DebugSymbols>false</DebugSymbols>
<DebugSymbols>true</DebugSymbols>
<PlatformTarget>x86</PlatformTarget>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release Portable|AnyCPU' ">
@@ -73,9 +73,10 @@
<OutputPath>bin\Release Portable\</OutputPath>
<Optimize>true</Optimize>
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<DebugType>None</DebugType>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<DefineConstants>PORTABLE</DefineConstants>
<DebugSymbols>true</DebugSymbols>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug Portable|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -138,6 +139,7 @@
<Reference Include="System.Data" />
<Reference Include="System.DirectoryServices" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
@@ -263,6 +265,7 @@
<Compile Include="Tools\Tools.Misc.vb" />
<Compile Include="Tools\Tools.PortScan.vb" />
<Compile Include="Tools\Tools.SystemMenu.vb" />
<Compile Include="Tools\Tools.WindowPlacement.vb" />
<Compile Include="Tree\Tree.Node.vb" />
<Compile Include="UI\UI.Window.About.vb">
<SubType>Form</SubType>
@@ -295,7 +298,7 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.List.vb" />
<Compile Include="UI\UI.Window.Options.vb">
<Compile Include="Forms\frmOptions.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.PortScan.vb">
@@ -395,8 +398,8 @@
<DependentUpon>UI.Window.Help.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.Options.resx">
<DependentUpon>UI.Window.Options.vb</DependentUpon>
<EmbeddedResource Include="Forms\frmOptions.resx">
<DependentUpon>frmOptions.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.PortScan.resx">
@@ -813,6 +816,7 @@
<Content Include="Icons\Workstation.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Resources\Images\database.bmp" />
<None Include="Resources\Images\Copy.png" />
<None Include="Resources\Icons\mRemote_Icon.ico" />
<None Include="Resources\Icons\Sessions_Icon.ico" />