Compare commits

...

31 Commits

Author SHA1 Message Date
Riley McArdle
3d64fbef49 Update CHANGELOG.TXT for 1.71 RC3. 2013-10-29 02:35:33 -05:00
Riley McArdle
869c2726bb Fix checking for updates even when disabled. 2013-10-27 06:04:54 -05:00
Riley McArdle
2e663df42a Fix issue MR-578 - Connections file is reset
Fix the wrong connections file opening on startup under certain conditions.
Improve error reporting when loading connections files.
Remove warning message when mRemoteNG is started for the first time about new connections file being created.
2013-10-27 05:46:11 -05:00
Riley McArdle
0a82828d2e Fix log file not showing operating system version on Windows XP and Windows Server 2003. 2013-10-25 00:57:21 -05:00
Riley McArdle
13c1d049fc Fix issue MR-574 - Crash when retrieving RDP session list if eolwtscom.dll is not registered 2013-10-25 00:56:28 -05:00
Riley McArdle
62feba1691 Update CHANGELOG.TXT for 1.71 RC2. 2013-10-16 17:08:10 -05:00
Riley McArdle
3cb8784996 Minor code cleanup. 2013-10-14 22:48:10 -05:00
Riley McArdle
81d150f80a Fix duplicated folders possibly being named "New Connection" instead of the original folder's name 2013-10-14 22:47:48 -05:00
Riley McArdle
9ebce266ec Fix issue MR-565 - Double Folder keep heritage on the initial Folder 2013-10-14 22:42:34 -05:00
Riley McArdle
42bcf8db31 Fix typo in Portuguese translation. 2013-10-14 18:31:31 -05:00
Riley McArdle
ff2bbcf650 Fix issue MR-566 - Typo in German UI Automatic Update Settings 2013-10-14 18:30:55 -05:00
Riley McArdle
ba55958327 Fix issue MR-560 - Cannot Auto-Update With Open Connections: Unable to find an entry point named 'TaskDialogIndirect' in DLL 'ComCtl32' 2013-10-02 14:38:58 -05:00
Riley McArdle
2a67f493f6 Always use debug update channel for debug builds. 2013-10-02 13:56:04 -05:00
Riley McArdle
06892deedf Update CHANGELOG.TXT for release. 2013-10-01 19:58:36 -05:00
Riley McArdle
d12ea40845 Add missing variable type. 2013-10-01 19:57:34 -05:00
Riley McArdle
3f21151331 Add new translations to project file. Add code signing of DLLs for new translations to BUILD.CMD. 2013-10-01 19:56:53 -05:00
Riley McArdle
c91f5e5cba Remove Beta VERSIONTAG from BUILD.CMD. Fix encoding of CHANGELOG.TXT. 2013-10-01 19:45:54 -05:00
Riley McArdle
9e90d17d80 Fix AnnouncementAddress for release version. 2013-10-01 19:41:16 -05:00
Riley McArdle
2e67bbf6a1 Add Chinese (Traditional) translation. Add partial Greek and Hungarian translations. 2013-10-01 19:17:21 -05:00
Riley McArdle
ceec9749b9 Update translations from Crowdin. 2013-10-01 19:16:31 -05:00
Riley McArdle
f674b5bfeb Fix issue MR-542 - Wrapped putty has security flaw
Update PuTTY to version 0.63.
2013-10-01 17:23:12 -05:00
Riley McArdle
b3e541c627 Add missing punctuation in CHANGELOG.TXT. 2013-09-30 22:09:43 -05:00
Riley McArdle
3389a152be Fix PuTTY Saved Sessions not showing after loading a new connections file 2013-09-30 22:09:04 -05:00
Riley McArdle
662fcfa318 Fix possible cross-thread operation exception when loading connections from SQL 2013-09-30 22:08:05 -05:00
Riley McArdle
06baec9c55 Fix issue MR-535 - SQL error saving Connections 2013-09-30 22:07:39 -05:00
Riley McArdle
270699c26b Fix issue MR-538 - RDP loses connection when hiding config or connections pane 2013-09-27 23:01:14 -05:00
Riley McArdle
bc699a04ec Fix issue MR-525 - Could not start on windows 7 64bit 2013-09-27 22:15:40 -05:00
Riley McArdle
3639e75f5b Fix issue MR-514 - Window Proxy test failed without close button 2013-09-27 21:04:26 -05:00
Riley McArdle
eef14ebc29 Fix issue MR-521 - Right-Clicking in "Sessions" panel crashes mRemoteNG 2013-09-27 01:39:43 -05:00
Riley McArdle
2568d2b750 Fix issue MR-495 - Having a negative range in port scan creates memory exhaustion.
Make minor improvements to the port scan functionality.
2013-09-27 01:29:35 -05:00
Riley McArdle
58a57d7a7d Improve reliability of BUILD.CMD. 2013-07-03 02:07:51 -05:00
37 changed files with 3876 additions and 505 deletions

View File

@@ -2,7 +2,7 @@
setlocal enabledelayedexpansion
set VERSIONTAG=Beta4
set VERSIONTAG=
set VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
set DEVENV="devenv.exe"
@@ -18,6 +18,20 @@ call %VCVARSALL% x86
rmdir /s /q "%~dp0\mRemoteV1\bin" > nul 2>&1
rmdir /s /q "%~dp0\mRemoteV1\obj" > nul 2>&1
if exist "%~dp0\mRemoteV1\bin" goto ERROR_RMDIR
if exist "%~dp0\mRemoteV1\obj" goto ERROR_RMDIR
goto NOERROR_RMDIR
:ERROR_RMDIR
echo.
echo Could not clean output directories.
echo.
echo Build process failed.
echo.
goto END
:NOERROR_RMDIR
echo Building release version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release"
@@ -27,10 +41,12 @@ echo Building portable version...
echo Signing binaries...
%SIGNCMD% ^
"%~dp0\mRemoteV1\bin\Release\de\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\el\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\en-US\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\es\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\es-AR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\fr\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\hu\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\it\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\nb-NO\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\nl\mRemoteNG.resources.dll" ^
@@ -40,6 +56,7 @@ echo Signing binaries...
"%~dp0\mRemoteV1\bin\Release\ru\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\uk\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\zh-CN\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\zh-TW\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\AxInterop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release\AxInterop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release\Interop.EOLWTSCOM.dll" ^
@@ -48,10 +65,12 @@ echo Signing binaries...
"%~dp0\mRemoteV1\bin\Release\Interop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release\mRemoteNG.exe" ^
"%~dp0\mRemoteV1\bin\Release Portable\de\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\el\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\en-US\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\es\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\es-AR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\fr\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\hu\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\it\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\nb-NO\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\nl\mRemoteNG.resources.dll" ^
@@ -61,6 +80,7 @@ echo Signing binaries...
"%~dp0\mRemoteV1\bin\Release Portable\ru\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\uk\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\zh-CN\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\zh-TW\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\AxInterop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\AxInterop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\Interop.EOLWTSCOM.dll" ^
@@ -69,6 +89,9 @@ echo Signing binaries...
"%~dp0\mRemoteV1\bin\Release Portable\Interop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\mRemoteNG.exe" ^
rem Do not remove the two blank lines above this line.
mkdir "%~dp0\Release" > nul 2>&1
echo Getting product version...
@@ -121,4 +144,6 @@ del /f /q %PORTABLEZIP% > nul 2>&1
echo.
echo Build process complete.
echo.
:END
pause

View File

@@ -1,3 +1,34 @@
1.71 (2013-10-29):
Fixed issue MR-574 - Crash when retrieving RDP session list if eolwtscom.dll is not registered
Fixed issue MR-578 - Connections file is reset
Fixed log file not showing operating system version on Windows XP and Windows Server 2003.
Fixed the wrong connections file opening on startup under certain conditions.
Fixed checking for updates even when disabled.
Improved error reporting when loading connections files.
Removed warning message when mRemoteNG is started for the first time about new connections file being created.
1.71 Release Candidate 2 (2013-10-16):
Fixed issue MR-560 - Cannot Auto-Update With Open Connections: Unable to find an entry point named 'TaskDialogIndirect' in DLL 'ComCtl32'
Fixed issue MR-565 - Double Folder keep heritage on the initial Folder
Fixed issue MR-566 - Typo in German UI Automatic Update Settings
Fixed duplicated folders possibly being named "New Connection" instead of the original folder's name.
1.71 Release Candidate 1 (2013-10-01):
Fixed issue MR-495 - Having a negative range in port scan creates memory exhaustion.
Fixed issue MR-514 - Window Proxy test failed without close button
Fixed issue MR-521 - Right-Clicking in "Sessions" panel crashes mRemoteNG
Fixed issue MR-525 - Could not start on windows 7 64bit
Fixed issue MR-535 - SQL error saving Connections
Fixed issue MR-538 - RDP loses connection when hiding config or connections pane
Fixed issue MR-542 - Wrapped putty has security flaw
Made minor improvements to the port scan functionality.
Fixed possible cross-thread operation exception when loading connections from SQL.
Fixed PuTTY Saved Sessions not showing after loading a new connections file.
Updated PuTTY to version 0.63.
Updated translations.
Added Chinese (Traditional) translation.
Added partial Greek and Hungarian translations.
1.71 Beta 5 (2013-06-09):
Fixed issue MR-491 - Could not start RDP Connection
Fixed issue MR-499 - TS Gateway is not working in latest release 1.71
@@ -20,7 +51,7 @@
Fixed issue MR-487 - Initiate connections on MouseUp event
Added PuTTY Session Settings command to the Config panel for PuTTY Saved Sessions.
Updated translations.
Added Norwegian (Bokmål) and Portuguese (Brazil) translations.
Added Norwegian (Bokmal) and Portuguese (Brazil) translations.
Added Spanish translation to the installer.
Fixed an exception or crash when choosing unnamed colors for themes.
Fixed possible error "Control does not support transparent background colors" when modifying themes.

Binary file not shown.

Binary file not shown.

View File

@@ -28,6 +28,7 @@ mkdir %TEMP_FOLDER%
%RAR% x -o+ %ZIP_FILE% *.* %TEMP_FOLDER%
%SORTRESX% %TEMP_FOLDER%\ar\Language.ar.resx "%~dp0\mRemoteV1\Language\Language.ar.resx"
%SORTRESX% %TEMP_FOLDER%\bg\Language.bg.resx "%~dp0\mRemoteV1\Language\Language.bg.resx"
%SORTRESX% %TEMP_FOLDER%\de\Language.de.resx "%~dp0\mRemoteV1\Language\Language.de.resx"
%SORTRESX% %TEMP_FOLDER%\el\Language.el.resx "%~dp0\mRemoteV1\Language\Language.el.resx"
%SORTRESX% %TEMP_FOLDER%\en-US\Language.en.resx "%~dp0\mRemoteV1\Language\Language.en-US.resx"
@@ -45,6 +46,7 @@ mkdir %TEMP_FOLDER%
%SORTRESX% %TEMP_FOLDER%\ru\Language.ru.resx "%~dp0\mRemoteV1\Language\Language.ru.resx"
%SORTRESX% %TEMP_FOLDER%\uk\Language.uk.resx "%~dp0\mRemoteV1\Language\Language.uk.resx"
%SORTRESX% %TEMP_FOLDER%\zh-CN\Language.zh.resx "%~dp0\mRemoteV1\Language\Language.zh-CN.resx"
%SORTRESX% %TEMP_FOLDER%\zh-TW\Language.zh.resx "%~dp0\mRemoteV1\Language\Language.zh-TW.resx"
rmdir /s /q %TEMP_FOLDER%

View File

@@ -45,6 +45,9 @@ Namespace App
Public Class Update
Public Shared ReadOnly Property FileName As String
Get
#If DEBUG Then
Return "update-debug.txt"
#End If
Select Case My.Settings.UpdateChannel.ToLowerInvariant()
Case "beta"
Return "update-beta.txt"

View File

@@ -1,4 +1,5 @@
Imports System.ComponentModel
Imports mRemoteNG.Config
Imports log4net
Imports mRemoteNG.Messages
Imports mRemoteNG.Connection
@@ -502,20 +503,30 @@ Namespace App
#End If
Log.InfoFormat("Command Line: {0}", Environment.GetCommandLineArgs)
Dim osVersion As String = String.Empty
Dim servicePack As String = String.Empty
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
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem WHERE Primary=True").Get()
osVersion = managementObject.GetPropertyValue("Caption").Trim()
Dim servicePackNumber As Integer = managementObject.GetPropertyValue("ServicePackMajorVersion")
If Not servicePackNumber = 0 Then servicePack = String.Format("Service Pack {0}", servicePackNumber)
Next
Catch ex As Exception
Log.WarnFormat("Error retrieving operating system information from WMI. {0}", ex.Message)
End Try
Dim architecture As String = String.Empty
Try
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_Processor WHERE DeviceID='CPU0'").Get()
Dim addressWidth As Integer = managementObject.GetPropertyValue("AddressWidth")
architecture = String.Format("{0}-bit", addressWidth)
Next
Catch ex As Exception
Log.WarnFormat("Error retrieving operating system address width from WMI. {0}", ex.Message)
End Try
Log.InfoFormat(String.Join(" ", Array.FindAll(New String() {osVersion, servicePack, architecture}, Function(s) Not String.IsNullOrEmpty(s))))
Log.InfoFormat("Microsoft .NET CLR {0}", Version.ToString)
Log.InfoFormat("System Culture: {0}/{1}", Thread.CurrentThread.CurrentUICulture.Name, Thread.CurrentThread.CurrentUICulture.NativeName)
End If
@@ -696,30 +707,48 @@ Namespace App
End Class
Public Class Shutdown
Public Shared Sub Quit()
Public Shared Sub Quit(Optional ByVal updateFilePath As String = Nothing)
_updateFilePath = updateFilePath
frmMain.Close()
End Sub
Public Shared Sub BeforeQuit()
Public Shared Sub Cleanup()
Try
If App.Runtime.NotificationAreaIcon IsNot Nothing Then
If App.Runtime.NotificationAreaIcon.Disposed = False Then
App.Runtime.NotificationAreaIcon.Dispose()
PuttySessions.StopWatcher()
If NotificationAreaIcon IsNot Nothing Then
If NotificationAreaIcon.Disposed = False Then
NotificationAreaIcon.Dispose()
End If
End If
If My.Settings.SaveConsOnExit Then
SaveConnections()
End If
If My.Settings.SaveConsOnExit Then SaveConnections()
Dim SettingsSave As New Config.Settings.Save()
SettingsSave.Save()
Dim saveSettings As New Settings.Save()
saveSettings.Save()
IeBrowserEmulation.Unregister()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strSettingsCouldNotBeSavedOrTrayDispose & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(MessageClass.ErrorMsg, My.Language.strSettingsCouldNotBeSavedOrTrayDispose & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub StartUpdate()
If Not UpdatePending() Then Return
Try
Process.Start(_updateFilePath)
Catch ex As Exception
MessageCollector.AddMessage(MessageClass.ErrorMsg, "The update could not be started." & vbNewLine & ex.Message, True)
End Try
End Sub
Private Shared _updateFilePath As String = Nothing
Public Shared ReadOnly Property UpdatePending() As Boolean
Get
Return Not String.IsNullOrEmpty(_updateFilePath)
End Get
End Property
End Class
#End Region
@@ -960,41 +989,54 @@ Namespace App
ConnectionList = New Connection.List
ContainerList = New Container.List
Dim conL As New Config.Connections.Load
Dim connectionsLoad As New Connections.Load
My.Settings.LoadConsFromCustomLocation = False
If filename = GetDefaultStartupConnectionFileName() Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = filename
End If
Directory.CreateDirectory(Path.GetDirectoryName(filename))
Dim xW As New XmlTextWriter(filename, System.Text.Encoding.UTF8)
xW.Formatting = Formatting.Indented
xW.Indentation = 4
xW.WriteStartDocument()
xW.WriteStartElement("Connections") ' Do not localize
xW.WriteAttributeString("Name", My.Language.strConnections)
xW.WriteAttributeString("Export", "", "False")
xW.WriteAttributeString("Protected", "", "GiUis20DIbnYzWPcdaQKfjE2H5jh//L5v4RGrJMGNXuIq2CttB/d/BxaBP2LwRhY")
xW.WriteAttributeString("ConfVersion", "", "2.5")
' Use File.Open with FileMode.CreateNew so that we don't overwrite an existing file
Using fileStream As FileStream = File.Open(filename, FileMode.CreateNew, FileAccess.Write, FileShare.None)
Using xmlTextWriter As New XmlTextWriter(fileStream, System.Text.Encoding.UTF8)
With xmlTextWriter
.Formatting = Formatting.Indented
.Indentation = 4
xW.WriteEndElement()
xW.WriteEndDocument()
.WriteStartDocument()
xW.Close()
.WriteStartElement("Connections") ' Do not localize
.WriteAttributeString("Name", My.Language.strConnections)
.WriteAttributeString("Export", "", "False")
.WriteAttributeString("Protected", "", "GiUis20DIbnYzWPcdaQKfjE2H5jh//L5v4RGrJMGNXuIq2CttB/d/BxaBP2LwRhY")
.WriteAttributeString("ConfVersion", "", "2.5")
conL.ConnectionList = ConnectionList
conL.ContainerList = ContainerList
.WriteEndElement()
.WriteEndDocument()
.Close()
End With
End Using
End Using
connectionsLoad.ConnectionList = ConnectionList
connectionsLoad.ContainerList = ContainerList
Tree.Node.ResetTree()
conL.RootTreeNode = Windows.treeForm.tvConnections.Nodes(0)
connectionsLoad.RootTreeNode = Windows.treeForm.tvConnections.Nodes(0)
' Load config
conL.ConnectionFileName = filename
conL.Load(False)
connectionsLoad.ConnectionFileName = filename
connectionsLoad.Load(False)
Windows.treeForm.tvConnections.SelectedNode = conL.RootTreeNode
Windows.treeForm.tvConnections.SelectedNode = connectionsLoad.RootTreeNode
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strCouldNotCreateNewConnectionsFile & vbNewLine & ex.Message)
MessageCollector.AddExceptionMessage(My.Language.strCouldNotCreateNewConnectionsFile, ex, MessageClass.ErrorMsg)
End Try
End Sub
@@ -1013,8 +1055,8 @@ Namespace App
LoadConnections(_withDialog, _loadUpdate)
End Sub
Public Shared Sub LoadConnections(Optional ByVal WithDialog As Boolean = False, Optional ByVal Update As Boolean = False)
Dim conL As New Config.Connections.Load
Public Shared Sub LoadConnections(Optional ByVal withDialog As Boolean = False, Optional ByVal update As Boolean = False)
Dim connectionsLoad As New Connections.Load
Try
Dim tmrWasEnabled As Boolean
@@ -1034,66 +1076,55 @@ Namespace App
ConnectionList = New Connection.List
ContainerList = New Container.List
If My.Settings.UseSQLServer = False Then
If WithDialog Then
Dim lD As OpenFileDialog = Tools.Controls.ConnectionsLoadDialog
If Not My.Settings.UseSQLServer Then
If withDialog Then
Dim loadDialog As OpenFileDialog = Controls.ConnectionsLoadDialog
If lD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
conL.ConnectionFileName = lD.FileName
If loadDialog.ShowDialog = System.Windows.Forms.DialogResult.OK Then
connectionsLoad.ConnectionFileName = loadDialog.FileName
Else
Exit Sub
End If
Else
conL.ConnectionFileName = GetStartupConnectionFileName()
connectionsLoad.ConnectionFileName = GetStartupConnectionFileName()
End If
If File.Exists(conL.ConnectionFileName) = False Then
If WithDialog Then
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, String.Format(My.Language.strConnectionsFileCouldNotBeLoaded, conL.ConnectionFileName))
Else
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strConnectionsFileCouldNotBeLoadedNew, conL.ConnectionFileName))
App.Runtime.NewConnections(conL.ConnectionFileName)
End If
Exit Sub
End If
CreateBackupFile(conL.ConnectionFileName)
CreateBackupFile(connectionsLoad.ConnectionFileName)
End If
conL.ConnectionList = ConnectionList
conL.ContainerList = ContainerList
connectionsLoad.ConnectionList = ConnectionList
connectionsLoad.ContainerList = ContainerList
If PreviousConnectionList IsNot Nothing And PreviousContainerList IsNot Nothing Then
conL.PreviousConnectionList = PreviousConnectionList
conL.PreviousContainerList = PreviousContainerList
connectionsLoad.PreviousConnectionList = PreviousConnectionList
connectionsLoad.PreviousContainerList = PreviousContainerList
End If
If Update = True Then
conL.PreviousSelected = LastSelected
If update = True Then
connectionsLoad.PreviousSelected = LastSelected
End If
Tree.Node.ResetTree()
conL.RootTreeNode = Windows.treeForm.tvConnections.Nodes(0)
connectionsLoad.RootTreeNode = Windows.treeForm.tvConnections.Nodes(0)
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
connectionsLoad.UseSQL = My.Settings.UseSQLServer
connectionsLoad.SQLHost = My.Settings.SQLHost
connectionsLoad.SQLDatabaseName = My.Settings.SQLDatabaseName
connectionsLoad.SQLUsername = My.Settings.SQLUser
connectionsLoad.SQLPassword = Security.Crypt.Decrypt(My.Settings.SQLPass, Info.General.EncryptionKey)
connectionsLoad.SQLUpdate = update
conL.Load(False)
connectionsLoad.Load(False)
If My.Settings.UseSQLServer = True Then
LastSqlUpdate = Now
Else
If conL.ConnectionFileName = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile Then
If connectionsLoad.ConnectionFileName = GetDefaultStartupConnectionFileName() Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = conL.ConnectionFileName
My.Settings.CustomConsPath = connectionsLoad.ConnectionFileName
End If
End If
@@ -1107,20 +1138,26 @@ Namespace App
cTaskDialog.ShowCommandBox(Application.ProductName, My.Language.strLoadFromSqlFailed, My.Language.strLoadFromSqlFailedContent, Misc.GetExceptionMessageRecursive(ex), "", "", commandButtons, False, eSysIcons.Error, Nothing)
Select Case cTaskDialog.CommandButtonResult
Case 0
LoadConnections(WithDialog, Update)
LoadConnections(withDialog, update)
Return
Case 1
My.Settings.UseSQLServer = False
LoadConnections(True, Update)
LoadConnections(True, update)
Return
Case Else
Application.Exit()
Return
End Select
Else
MessageCollector.AddExceptionMessage(String.Format(My.Language.strConnectionsFileCouldNotBeLoaded, conL.ConnectionFileName), ex)
If Not conL.ConnectionFileName = GetStartupConnectionFileName() Then
LoadConnections(WithDialog, Update)
If TypeOf ex Is FileNotFoundException And Not withDialog Then
MessageCollector.AddExceptionMessage(String.Format(My.Language.strConnectionsFileCouldNotBeLoadedNew, connectionsLoad.ConnectionFileName), ex, MessageClass.InformationMsg)
NewConnections(connectionsLoad.ConnectionFileName)
Return
End If
MessageCollector.AddExceptionMessage(String.Format(My.Language.strConnectionsFileCouldNotBeLoaded, connectionsLoad.ConnectionFileName), ex)
If Not connectionsLoad.ConnectionFileName = GetStartupConnectionFileName() Then
LoadConnections(withDialog, update)
Return
Else
MsgBox(String.Format(My.Language.strErrorStartupConnectionFileLoad, vbNewLine, Application.ProductName, GetStartupConnectionFileName(), Misc.GetExceptionMessageRecursive(ex)), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical)
@@ -1140,7 +1177,7 @@ Namespace App
File.Copy(fileName, backupFileName)
PruneBackupFiles(fileName)
Catch ex As Exception
MessageCollector.AddMessage(MessageClass.WarningMsg, My.Language.strConnectionsFileBackupFailed & vbNewLine & vbNewLine & ex.Message)
MessageCollector.AddExceptionMessage(My.Language.strConnectionsFileBackupFailed, ex, MessageClass.WarningMsg)
Throw
End Try
End Sub
@@ -1164,26 +1201,23 @@ Namespace App
Next
End Sub
Protected Shared Function GetStartupConnectionFileName() As String
Dim fileName As New String("")
If My.Settings.LoadConsFromCustomLocation = False Then
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Connections.DefaultConnectionsFile
Dim newPath As String = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile
Public Shared Function GetDefaultStartupConnectionFileName() As String
Dim newPath As String = App.Info.Connections.DefaultConnectionsPath & "\" & Info.Connections.DefaultConnectionsFile
#If Not PORTABLE Then
If File.Exists(oldPath) Then
fileName = oldPath
Else
fileName = newPath
End If
#Else
fileName = newPath
#End If
Else
fileName = My.Settings.CustomConsPath
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & Info.Connections.DefaultConnectionsFile
If File.Exists(oldPath) Then
Return oldPath
End If
#End If
Return newPath
End Function
Return fileName
Public Shared Function GetStartupConnectionFileName() As String
If My.Settings.LoadConsFromCustomLocation = False Then
Return GetDefaultStartupConnectionFileName()
Else
Return My.Settings.CustomConsPath
End If
End Function
Public Shared Sub ImportConnections()
@@ -1468,12 +1502,8 @@ Namespace App
Dim conS As New Config.Connections.Save
If My.Settings.UseSQLServer = False Then
If My.Settings.LoadConsFromCustomLocation = False Then
conS.ConnectionFileName = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile
Else
conS.ConnectionFileName = My.Settings.CustomConsPath
End If
If Not My.Settings.UseSQLServer Then
conS.ConnectionFileName = GetStartupConnectionFileName()
End If
conS.ConnectionList = ConnectionList
@@ -1542,7 +1572,7 @@ Namespace App
Else
connectionsSave.SaveFormat = Config.Connections.Save.Format.mRXML
If connectionsSave.ConnectionFileName = Info.Connections.DefaultConnectionsPath & "\" & Info.Connections.DefaultConnectionsFile Then
If connectionsSave.ConnectionFileName = GetDefaultStartupConnectionFileName() Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True

View File

@@ -172,7 +172,14 @@ Namespace Config
#End Region
#Region "SQL"
Private Delegate Sub LoadFromSqlDelegate()
Private Sub LoadFromSQL()
If Windows.treeForm Is Nothing OrElse Windows.treeForm.tvConnections Is Nothing Then Return
If Windows.treeForm.tvConnections.InvokeRequired Then
Windows.treeForm.tvConnections.Invoke(New LoadFromSqlDelegate(AddressOf LoadFromSQL))
Return
End If
Try
App.Runtime.IsConnectionsFileLoaded = False
@@ -396,7 +403,10 @@ Namespace Config
tNode.SelectedImageIndex = Images.Enums.TreeImage.Container
End If
If sqlRd.Item("ParentID") <> 0 Then
Dim parentId As String = sqlRd.Item("ParentID").ToString().Trim()
If String.IsNullOrEmpty(parentId) Or parentId = "0" Then
baseNode.Nodes.Add(tNode)
Else
Dim pNode As TreeNode = Tree.Node.GetNodeFromConstantID(sqlRd.Item("ParentID"))
If pNode IsNot Nothing Then
@@ -410,8 +420,6 @@ Namespace Config
Else
baseNode.Nodes.Add(tNode)
End If
Else
baseNode.Nodes.Add(tNode)
End If
'AddNodesFromSQL(tNode)

View File

@@ -460,7 +460,7 @@ Namespace Config
End If
End If
_sqlQuery.CommandText &= _currentNodeIndex & "," & _parentConstantId & "," & .ConstantID & ",'" & Tools.Misc.DBDate(Now) & "')"
_sqlQuery.CommandText &= _currentNodeIndex & ",'" & _parentConstantId & "','" & .ConstantID & "','" & Tools.Misc.DBDate(Now) & "')"
End With
End Sub
#End Region

View File

@@ -29,7 +29,11 @@ Namespace Config
With Me._MainForm
' Migrate settings from previous version
If My.Settings.DoUpgrade Then
My.Settings.Upgrade()
Try
My.Settings.Upgrade()
Catch ex As Exception
Log.Error("My.Settings.Upgrade() failed" & vbNewLine & ex.Message)
End Try
My.Settings.DoUpgrade = False
' Clear pending update flag

View File

@@ -46,11 +46,14 @@ Namespace Config
_rootTreeNode.Tag = puttyRootInfo
_rootTreeNode.ImageIndex = Images.Enums.TreeImage.PuttySessions
_rootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.PuttySessions
treeView.Nodes.Add(_rootTreeNode)
End If
If Not treeView.Nodes.Contains(_rootTreeNode) Then
If Not inUpdate Then
treeView.BeginUpdate()
inUpdate = True
End If
treeView.Nodes.Add(_rootTreeNode)
End If
puttyRootInfo.TreeNode = _rootTreeNode

View File

@@ -8,17 +8,17 @@ Namespace Connection
Public Class Info
#Region "Properties"
#Region "1 Display"
Private _Name As String = My.Language.strNewConnection
Private _name As String = My.Language.strNewConnection
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameName"), _
LocalizedDescription("strPropertyDescriptionName")> _
Public Overridable Property Name() As String
Get
Return Me._Name
Return _name
End Get
Set(ByVal value As String)
Me._Name = value
_name = value
End Set
End Property
@@ -1531,9 +1531,10 @@ Namespace Connection
#End Region
#Region "Methods"
Public Function Copy() As Connection.Info
Dim newConnectionInfo As Connection.Info = MemberwiseClone()
newConnectionInfo._OpenConnections = New Connection.Protocol.List
Public Function Copy() As Info
Dim newConnectionInfo As Info = MemberwiseClone()
newConnectionInfo.ConstantID = Tools.Misc.CreateConstantID()
newConnectionInfo._OpenConnections = New Protocol.List
Return newConnectionInfo
End Function
@@ -1597,8 +1598,8 @@ Namespace Connection
End If
End Sub
Public Function Copy() As Connection.Info.Inheritance
Return Me.MemberwiseClone
Public Function Copy() As Inheritance
Return MemberwiseClone()
End Function
Public Sub TurnOnInheritanceCompletely()

View File

@@ -57,6 +57,7 @@ Namespace Connection
Private _rdpClient As MsRdpClient5NotSafeForScripting
Private _rdpVersion As Version
Private _connectionInfo As Info
Private _loginComplete As Boolean
#End Region
#Region "Public Methods"
@@ -131,7 +132,8 @@ Namespace Connection
End Function
Public Overrides Function Connect() As Boolean
Me.SetEventHandlers()
_loginComplete = False
SetEventHandlers()
Try
_rdpClient.Connect()
@@ -214,6 +216,8 @@ Namespace Connection
Private Sub ReconnectForResize()
If _rdpVersion < Versions.RDC80 Then Return
If Not _loginComplete Then Return
If Not InterfaceControl.Info.AutomaticResize Then Return
If Not (InterfaceControl.Info.Resolution = RDPResolutions.FitToWindow Or _
@@ -428,6 +432,7 @@ Namespace Connection
Try
AddHandler _rdpClient.OnConnecting, AddressOf RDPEvent_OnConnecting
AddHandler _rdpClient.OnConnected, AddressOf RDPEvent_OnConnected
AddHandler _rdpClient.OnLoginComplete, AddressOf RDPEvent_OnLoginComplete
AddHandler _rdpClient.OnFatalError, AddressOf RDPEvent_OnFatalError
AddHandler _rdpClient.OnDisconnected, AddressOf RDPEvent_OnDisconnected
AddHandler _rdpClient.OnLeaveFullScreenMode, AddressOf RDPEvent_OnLeaveFullscreenMode
@@ -469,6 +474,10 @@ Namespace Connection
Event_Connected(Me)
End Sub
Private Sub RDPEvent_OnLoginComplete()
_loginComplete = True
End Sub
Private Sub RDPEvent_OnLeaveFullscreenMode()
Fullscreen = False
RaiseEvent LeaveFullscreen(Me, New EventArgs())
@@ -626,77 +635,91 @@ Namespace Connection
#Region "Terminal Sessions"
Public Class TerminalSessions
Dim oWTSCOM As New WTSCOM
Dim oWTSSessions As New WTSSessions
Dim oWTSSession As New WTSSession
Public ServerHandle As Long
Private ReadOnly _wtsCom As WTSCOM
Public Function OpenConnection(ByVal SrvName As String) As Boolean
Public Sub New()
Try
ServerHandle = oWTSCOM.WTSOpenServer(SrvName)
If ServerHandle <> 0 Then
Return True
End If
_wtsCom = New WTSCOM
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpOpenConnectionFailed & vbNewLine & ex.Message, True)
End Try
Return False
End Function
Public Sub CloseConnection(ByVal SrvHandle As Long)
Try
oWTSCOM.WTSCloseServer(ServerHandle)
ServerHandle = 0
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpCloseConnectionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddExceptionMessage("TerminalSessions.New() failed.", ex, MessageClass.ErrorMsg, True)
End Try
End Sub
Public Function GetSessions() As Sessions
Dim colSessions As New Sessions
Public Function OpenConnection(ByVal hostname As String) As Long
If _wtsCom Is Nothing Then Return 0
Try
oWTSSessions = oWTSCOM.WTSEnumerateSessions(ServerHandle)
Return _wtsCom.WTSOpenServer(hostname)
Catch ex As Exception
MessageCollector.AddExceptionMessage(My.Language.strRdpOpenConnectionFailed, ex, MessageClass.ErrorMsg, True)
End Try
End Function
Dim SessionID As Long
Dim SessionUser As String
Dim SessionState As Long
Dim SessionName As String
Public Sub CloseConnection(ByVal serverHandle As Long)
If _wtsCom Is Nothing Then Return
For Each oWTSSession In oWTSSessions
SessionID = oWTSSession.SessionId
SessionUser = oWTSCOM.WTSQuerySessionInformation(ServerHandle, oWTSSession.SessionId, 5) 'WFUsername = 5
SessionState = oWTSSession.State & vbCrLf
SessionName = oWTSSession.WinStationName & vbCrLf
Try
_wtsCom.WTSCloseServer(serverHandle)
Catch ex As Exception
MessageCollector.AddExceptionMessage(My.Language.strRdpCloseConnectionFailed, ex, MessageClass.ErrorMsg, True)
End Try
End Sub
If SessionUser <> "" Then
If SessionState = 0 Then
colSessions.Add(SessionID, My.Language.strActive, SessionUser, SessionName)
Public Function GetSessions(ByVal serverHandle As Long) As SessionsCollection
If _wtsCom Is Nothing Then Return New SessionsCollection()
Dim sessions As New SessionsCollection()
Try
Dim wtsSessions As WTSSessions = _wtsCom.WTSEnumerateSessions(serverHandle)
Dim sessionId As Long
Dim sessionUser As String
Dim sessionState As Long
Dim sessionName As String
For Each wtsSession As WTSSession In wtsSessions
sessionId = wtsSession.SessionId
sessionUser = _wtsCom.WTSQuerySessionInformation(serverHandle, wtsSession.SessionId, 5) ' WFUsername = 5
sessionState = wtsSession.State & vbCrLf
sessionName = wtsSession.WinStationName & vbCrLf
If Not String.IsNullOrEmpty(sessionUser) Then
If sessionState = 0 Then
sessions.Add(sessionId, My.Language.strActive, sessionUser, sessionName)
Else
colSessions.Add(SessionID, My.Language.strInactive, SessionUser, SessionName)
sessions.Add(sessionId, My.Language.strInactive, sessionUser, sessionName)
End If
End If
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpGetSessionsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddExceptionMessage(My.Language.strRdpGetSessionsFailed, ex, MessageClass.ErrorMsg, True)
End Try
Return colSessions
Return sessions
End Function
Public Function KillSession(ByVal SessionID As Long) As Boolean
Return oWTSCOM.WTSLogoffSession(ServerHandle, SessionID, True)
Public Function KillSession(ByVal serverHandle As Long, ByVal sessionId As Long) As Boolean
If _wtsCom Is Nothing Then Return False
Dim result As Boolean = False
Try
result = _wtsCom.WTSLogoffSession(serverHandle, sessionId, True)
Catch ex As Exception
MessageCollector.AddExceptionMessage("TerminalSessions.KillSession() failed.", ex, MessageClass.ErrorMsg, True)
End Try
Return result
End Function
End Class
Public Class Sessions
Public Class SessionsCollection
Inherits CollectionBase
Default Public ReadOnly Property Items(ByVal Index As Integer) As Session
Default Public ReadOnly Property Items(ByVal index As Integer) As Session
Get
Return CType(List.Item(Index), Session)
Return CType(List.Item(index), Session)
End Get
End Property
@@ -706,23 +729,23 @@ Namespace Connection
End Get
End Property
Public Function Add(ByVal SessionID As Long, ByVal SessionState As String, ByVal SessionUser As String, ByVal SessionName As String) As Session
Dim newSes As New Session
Public Overloads Function Add(ByVal sessionId As Long, ByVal sessionState As String, ByVal sessionUser As String, ByVal sessionName As String) As Session
Dim newSession As New Session
Try
With newSes
.SessionID = SessionID
.SessionState = SessionState
.SessionUser = SessionUser
.SessionName = SessionName
With newSession
.SessionId = sessionId
.SessionState = sessionState
.SessionUser = sessionUser
.SessionName = sessionName
End With
List.Add(newSes)
List.Add(newSession)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpAddSessionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddExceptionMessage(My.Language.strRdpAddSessionFailed, ex, MessageClass.ErrorMsg, True)
End Try
Return newSes
Return newSession
End Function
Public Sub ClearSessions()
@@ -733,45 +756,10 @@ Namespace Connection
Public Class Session
Inherits CollectionBase
Private lngSessionID As Long
Public Property SessionID() As Long
Get
Return lngSessionID
End Get
Set(ByVal Value As Long)
lngSessionID = Value
End Set
End Property
Private lngSessionState As String
Public Property SessionId() As Long
Public Property SessionState() As String
Get
Return lngSessionState
End Get
Set(ByVal Value As String)
lngSessionState = Value
End Set
End Property
Private strSessionUser As String
Public Property SessionUser() As String
Get
Return strSessionUser
End Get
Set(ByVal Value As String)
strSessionUser = Value
End Set
End Property
Private strSessionName As String
Public Property SessionName() As String
Get
Return strSessionName
End Get
Set(ByVal Value As String)
strSessionName = Value
End Set
End Property
End Class
#End Region

View File

@@ -6,7 +6,6 @@ Namespace Container
<DefaultProperty("Name")> _
Public Class Info
#Region "Properties"
Private _Name As String = "New Container"
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
[ReadOnly](False), _
@@ -18,10 +17,10 @@ Namespace Container
Attributes.Container()> _
Public Property Name() As String
Get
Return Me._ConnectionInfo.Name
Return ConnectionInfo.Name
End Get
Set(ByVal value As String)
Me._ConnectionInfo.Name = value
ConnectionInfo.Name = value
End Set
End Property

View File

@@ -22,10 +22,10 @@ Public Class frmMain
Private fpChainedWindowHandle As IntPtr
#Region "Properties"
Private _IsClosing As Boolean = False
Private _isClosing As Boolean = False
Public ReadOnly Property IsClosing() As Boolean
Get
Return _IsClosing
Return _isClosing
End Get
End Property
#End Region
@@ -67,6 +67,12 @@ Public Class frmMain
Tree.Node.TreeView = Windows.treeForm.tvConnections
If My.Settings.FirstStart And _
Not My.Settings.LoadConsFromCustomLocation And _
Not IO.File.Exists(GetStartupConnectionFileName()) Then
NewConnections(GetStartupConnectionFileName())
End If
'LoadCredentials()
LoadConnections()
If Not IsConnectionsFileLoaded Then
@@ -200,7 +206,9 @@ Public Class frmMain
End Sub
Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
#If Not PORTABLE Then
#If PORTABLE Then
Return
#End If
If Not My.Settings.CheckForUpdatesAsked Then
Dim commandButtons() As String = {My.Language.strAskUpdatesCommandRecommended, My.Language.strAskUpdatesCommandCustom, My.Language.strAskUpdatesCommandAskLater}
cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Language.strAskUpdatesMainInstruction, String.Format(My.Language.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", commandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
@@ -210,15 +218,17 @@ Public Class frmMain
If cTaskDialog.CommandButtonResult = 1 Then
Windows.ShowUpdatesTab()
End If
Return
End If
If Not My.Settings.CheckForUpdatesOnStartup Then Return
Dim nextUpdateCheck As Date = My.Settings.CheckForUpdatesLastCheck.Add(TimeSpan.FromDays(My.Settings.CheckForUpdatesFrequencyDays))
If My.Settings.UpdatePending Or Date.UtcNow > nextUpdateCheck Then
If Not IsHandleCreated Then CreateHandle() ' Make sure the handle is created so that InvokeRequired returns the correct result
Startup.CheckForUpdate()
Startup.CheckForAnnouncement()
End If
#End If
End Sub
Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
@@ -242,16 +252,14 @@ Public Class frmMain
End If
If result = DialogResult.No Then
e.Cancel = True
Exit Sub
Return
End If
End If
End If
PuttySessions.StopWatcher()
Shutdown.Cleanup()
Shutdown.BeforeQuit()
_IsClosing = True
_isClosing = True
If WindowList IsNot Nothing Then
For Each window As UI.Window.Base In WindowList
@@ -259,6 +267,8 @@ Public Class frmMain
Next
End If
Shutdown.StartUpdate()
Debug.Print("[END] - " & Now)
End Sub
#End Region

View File

@@ -1810,11 +1810,7 @@ Public Class frmOptions
ThemeManager.SaveThemes(_themeList)
Settings.ThemeName = ThemeManager.ActiveTheme.Name
If My.Settings.LoadConsFromCustomLocation = False Then
App.Runtime.SetMainFormText(App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile)
Else
App.Runtime.SetMainFormText(My.Settings.CustomConsPath)
End If
SetMainFormText(GetStartupConnectionFileName())
App.Runtime.Startup.DestroySQLUpdateHandlerAndStopTimer()
@@ -2147,7 +2143,7 @@ Public Class frmOptions
cTaskDialog.ShowCommandBox(Me, Application.Info.ProductName, Language.strProxyTestSucceeded, "", Language.strButtonOK, False)
Catch ex As Exception
cTaskDialog.ShowCommandBox(Me, Application.Info.ProductName, Language.strProxyTestFailed, Misc.GetExceptionMessageRecursive(ex), "", "", "", "", False, eSysIcons.Error, 0)
cTaskDialog.ShowCommandBox(Me, Application.Info.ProductName, Language.strProxyTestFailed, Misc.GetExceptionMessageRecursive(ex), "", "", "", Language.strButtonOK, False, eSysIcons.Error, 0)
End Try
End Sub

View File

@@ -118,7 +118,11 @@ CREATE TABLE [dbo].[tblCons] (
[InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL ,
[InheritRDGatewayUsername] [bit] NOT NULL ,
[InheritRDGatewayPassword] [bit] NOT NULL ,
[InheritRDGatewayDomain] [bit] NOT NULL
[InheritRDGatewayDomain] [bit] NOT NULL ,
[LoadBalanceInfo] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[AutomaticResize] [bit] NOT NULL DEFAULT 1 ,
[InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 ,
[InheritAutomaticResize] [bit] NOT NULL DEFAULT 0
) ON [PRIMARY]
GO
@@ -131,7 +135,7 @@ CREATE TABLE [dbo].[tblRoot] (
GO
CREATE TABLE [dbo].[tblUpdate] (
[LastUpdate] [datetime] NULL
[LastUpdate] [datetime] NULL
) ON [PRIMARY]
GO

View File

@@ -150,6 +150,9 @@
<data name="strAlwaysShowPanelSelection" xml:space="preserve">
<value>Panel Auswahl Dialog immer anzeigen</value>
</data>
<data name="strAlwaysShowPanelTabs" xml:space="preserve">
<value>Palettenregister immer anzeigen</value>
</data>
<data name="strAlwaysShowSysTrayIcon" xml:space="preserve">
<value>System Tray Icon immer anzeigen</value>
</data>
@@ -160,7 +163,7 @@
<value>Einstellungen jetzt anpassen</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Verwende die empflohlenen Einstellungen</value>
<value>Verwende die empfohlenen 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>
@@ -414,6 +417,12 @@ VncSharpNG Control Version {0}</value>
<data name="strCommandLineArgsCouldNotBeParsed" xml:space="preserve">
<value>Die Kommandozeilen Parameter kontnen nicht ausgewertet werden!</value>
</data>
<data name="strCompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
<value>{0} hat festgestellt, dass das Lenovo Auto Scroll Utility auf diesem Computer ausgeführt wird. Dieses Dienstprogramm ist dafür bekannt, dass es Probleme mit {0} verursacht. Es wird empfohlen, dass Sie es deaktivieren oder deinstallieren.</value>
</data>
<data name="strCompatibilityProblemDetected" xml:space="preserve">
<value>Kompatibilitätsproblem entdeckt</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Komponenten Überprüfung</value>
</data>
@@ -442,7 +451,7 @@ VncSharpNG Control Version {0}</value>
<value>Möchten Sie die Verbindung "{0}" schließen?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>Sind sie sicher, dass Sie das Panel "{0}" schließen möchten? Alle Verbindung , die es enthält, werden ebenfalls geschlossen.</value>
<value>Sind sie sicher, dass Sie das Panel "{0}" schließen möchten? Alle Verbindungen, die es enthält, werden ebenfalls geschlossen.</value>
</data>
<data name="strConfirmDeleteExternalTool" xml:space="preserve">
<value>Sind Sie sicher dass Sie das extene Programm "{0}" entfernen möchten?</value>
@@ -543,9 +552,15 @@ Starte mit neuer Datei.</value>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>Kann keine neue Verbindungsdatei erstellen!</value>
</data>
<data name="strCouldNotFindToolStripInFilteredPropertyGrid" xml:space="preserve">
<value>Das ToolStrip-Steuerelement konnte in FilteredPropertyGrid nicht gefunden werden.</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>Aktuelle Version</value>
</data>
<data name="strDefaultTheme" xml:space="preserve">
<value>Standard-Aussehen</value>
</data>
<data name="strDetect" xml:space="preserve">
<value>Erkennen</value>
</data>
@@ -616,7 +631,7 @@ Starte mit neuer Datei.</value>
<value>Verschlüsselung fehlgeschlagen. {0}</value>
</data>
<data name="strErrorFipsPolicyIncompatible" xml:space="preserve">
<value>Die Sicherheitseinstellung von Windows "Systemkryptografie: Verwenden sie FIPS-konformen Algorithmus für Verschlüsselung, hashing und Signatur", ist aktiviert. Diese Einstellung ist nicht kompatibel mit {0}. Weitere Informationen finden sie im Microsoft Support-Artikel unter http://support.microsoft.com/kb/811833 . {0} wird jetzt beendet.</value>
<value>Die Sicherheitseinstellung von Windows "Systemkryptografie: Verwenden sie FIPS-konformen Algorithmus für Verschlüsselung, Hashing und Signatur" ist aktiviert. Diese Einstellung ist nicht kompatibel mit {0}. Weitere Informationen finden sie im Microsoft Support-Artikel unter http://support.microsoft.com/kb/811833. {0} wird jetzt beendet.</value>
</data>
<data name="strErrors" xml:space="preserve">
<value>Fehler</value>
@@ -682,7 +697,7 @@ Starte mit neuer Datei.</value>
<value>Verbindungs Daten von SQL laden ist fehlgeschlagen!</value>
</data>
<data name="strGetConnectionInfoFromXmlFailed" xml:space="preserve">
<value>Fehler beim Laden des Verbindungseintrag für "{0}" von "{1}". {2}</value>
<value>Fehler beim Laden des Verbindungseintrags für "{0}" von "{1}". {2}</value>
</data>
<data name="strGroupboxAutomaticReconnect" xml:space="preserve">
<value>Automatisches wiederverbinden</value>
@@ -705,6 +720,9 @@ Starte mit neuer Datei.</value>
<data name="strHttpConnectionFailed" xml:space="preserve">
<value>Erstellen der HTTP Verbindung fehlgeschlagen!</value>
</data>
<data name="strHttpDocumentTileChangeFailed" xml:space="preserve">
<value>Fehler beim Ändern des HTTP-Dokumentfensters!</value>
</data>
<data name="strHttpSetPropsFailed" xml:space="preserve">
<value>Setzen der HTTP Parameter fehlgeschlagen!</value>
</data>
@@ -726,6 +744,9 @@ Starte mit neuer Datei.</value>
<data name="strIcaSetResolutionFailed" xml:space="preserve">
<value>Setzen der Auflösung fehlgschlagen!</value>
</data>
<data name="strIdentifyQuickConnectTabs" xml:space="preserve">
<value>Quick connect Registerkarten identifizieren, indem das Präfix "Quick:" benutzt wird</value>
</data>
<data name="strImportAD" xml:space="preserve">
<value>Aus Active Directory importieren</value>
</data>
@@ -792,6 +813,9 @@ Starte mit neuer Datei.</value>
<data name="strLabelChangeLog" xml:space="preserve">
<value>Veränderungsprotokoll:</value>
</data>
<data name="strLabelClosingConnections" xml:space="preserve">
<value>Beim Schliessen der Verbindungen:</value>
</data>
<data name="strLabelConnect" xml:space="preserve">
<value>&amp;Direkt Verbinden:</value>
</data>
@@ -838,7 +862,7 @@ Starte mit neuer Datei.</value>
<value>Wählen Sie ein Panel aus der Liste oder klicken Sie auf Neu um ein neues zu erstellen. Klickeen Sie OK um fortzufahren.</value>
</data>
<data name="strLabelServerStatus" xml:space="preserve">
<value>Server Status:</value>
<value>Serverstatus:</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Datenbank:</value>
@@ -990,6 +1014,15 @@ Starte mit neuer Datei.</value>
<data name="strMenuNotifications" xml:space="preserve">
<value>Meldungen</value>
</data>
<data name="strMenuNotificationsCopyAll" xml:space="preserve">
<value>Alle Kopieren</value>
</data>
<data name="strMenuNotificationsDelete" xml:space="preserve">
<value>Löschen</value>
</data>
<data name="strMenuNotificationsDeleteAll" xml:space="preserve">
<value>Alle Löschen</value>
</data>
<data name="strMenuOpenConnectionFile" xml:space="preserve">
<value>Konfigurations Datei öffnen...</value>
</data>
@@ -1000,7 +1033,7 @@ Starte mit neuer Datei.</value>
<value>Einfügen</value>
</data>
<data name="strMenuPortScan" xml:space="preserve">
<value>Port Scan</value>
<value>Port-Scan</value>
</data>
<data name="strMenuQuickConnectToolbar" xml:space="preserve">
<value>Direkt Verbinden Symbolleiste</value>
@@ -1050,6 +1083,9 @@ Starte mit neuer Datei.</value>
<data name="strMenuSessionsAndScreenshots" xml:space="preserve">
<value>Sitzungen and Bildschirmschnappschüsse</value>
</data>
<data name="strMenuShowHelpText" xml:space="preserve">
<value>&amp;Hilfetext anzeigen</value>
</data>
<data name="strMenuShowText" xml:space="preserve">
<value>Text anzeigen</value>
</data>
@@ -1144,6 +1180,15 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strOpenPorts" xml:space="preserve">
<value>Offene Ports</value>
</data>
<data name="strOptionsTabTheme" xml:space="preserve">
<value>Aussehen</value>
</data>
<data name="strOptionsThemeButtonDelete" xml:space="preserve">
<value>&amp;Löschen</value>
</data>
<data name="strOptionsThemeButtonNew" xml:space="preserve">
<value>&amp;Neu</value>
</data>
<data name="strPanelName" xml:space="preserve">
<value>Panel Name</value>
</data>
@@ -1282,6 +1327,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyDescriptionUseConsoleSession" xml:space="preserve">
<value>Zur Konsolen Sitzung des entfernten Hosts verbinden.</value>
</data>
<data name="strPropertyDescriptionUseCredSsp" xml:space="preserve">
<value>Verwenden Sie den Anmeldeinformationen Security Support Provider (CredSSP) für die Authentifizierung, wenn er verfügbar ist.</value>
</data>
<data name="strPropertyDescriptionUser1" xml:space="preserve">
<value>Dieses Feld ist frei beschreibbar.</value>
</data>
@@ -1432,6 +1480,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameUseConsoleSession" xml:space="preserve">
<value>Verwende Konsole</value>
</data>
<data name="strPropertyNameUseCredSsp" xml:space="preserve">
<value>Verwenden Sie CredSSP</value>
</data>
<data name="strPropertyNameUser1" xml:space="preserve">
<value>Benutzer Feld</value>
</data>
@@ -1448,7 +1499,7 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<value>Proxy Passwort</value>
</data>
<data name="strPropertyNameVNCProxyPort" xml:space="preserve">
<value>Proxy Port</value>
<value>Proxy-Port</value>
</data>
<data name="strPropertyNameVNCProxyType" xml:space="preserve">
<value>Proxy Typ</value>
@@ -1497,6 +1548,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPuttyResizeFailed" xml:space="preserve">
<value>Ändern der Größe fehlgschlagen!</value>
</data>
<data name="strPuttySavedSessionsRootName" xml:space="preserve">
<value>PuTTY gespeicherte Sitzungen</value>
</data>
<data name="strPuttySettings" xml:space="preserve">
<value>PuTTY Einstellungen</value>
</data>
@@ -1527,6 +1581,18 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strQuickConnectHistoryExistsFailed" xml:space="preserve">
<value>Prüfung auf Direkt Verbindungs Historie fehlgeschlagen!</value>
</data>
<data name="strRadioCloseWarnAll" xml:space="preserve">
<value>&amp;Warnen wenn Verbindungen beendet werden</value>
</data>
<data name="strRadioCloseWarnExit" xml:space="preserve">
<value>Warne mich nur beim B&amp;eenden von mRemoteNG</value>
</data>
<data name="strRadioCloseWarnMultiple" xml:space="preserve">
<value>Nur beim Beenden &amp;mehrerer Verbindungen warnen</value>
</data>
<data name="strRadioCloseWarnNever" xml:space="preserve">
<value>Nicht warnen, wenn Verbindungen beendet werden</value>
</data>
<data name="strRAW" xml:space="preserve">
<value>Rohdaten (RAW)</value>
</data>
@@ -1743,6 +1809,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strScreenshots" xml:space="preserve">
<value>Bilschirmschnappschüsse</value>
</data>
<data name="strSearchPrompt" xml:space="preserve">
<value>Suche</value>
</data>
<data name="strSendTo" xml:space="preserve">
<value>Senden an...</value>
</data>
@@ -1827,6 +1896,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strSSHTransferEndFailed" xml:space="preserve">
<value>SSH Abschluss der Übertragung fehlgeschlagen!</value>
</data>
<data name="strSSHTransferFailed" xml:space="preserve">
<value>SSH-Übertragung fehlgeschlagen.</value>
</data>
<data name="strStartIP" xml:space="preserve">
<value>Anfangs IP</value>
</data>
@@ -1860,6 +1932,117 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strTheFollowing" xml:space="preserve">
<value>die folgenden:</value>
</data>
<data name="strThemeCategoryConfigPanel" xml:space="preserve">
<value>Config-Panel</value>
</data>
<data name="strThemeCategoryConnectionsPanel" xml:space="preserve">
<value>Connections Panel</value>
</data>
<data name="strThemeCategoryGeneral" xml:space="preserve">
<value>Allgemein</value>
</data>
<data name="strThemeDescriptionConfigPanelBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe des Config panels.</value>
</data>
<data name="strThemeDescriptionConfigPanelCategoryTextColor" xml:space="preserve">
<value>Die Farbe des Textes im Bedienfeld "Config".</value>
</data>
<data name="strThemeDescriptionConfigPanelGridLineColor" xml:space="preserve">
<value>Die Farbe der Rasterlinien im Configpanel</value>
</data>
<data name="strThemeDescriptionConfigPanelHelpBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe des Bereichs Hilfe des Configpanel.</value>
</data>
<data name="strThemeDescriptionConfigPanelHelpTextColor" xml:space="preserve">
<value>Die Farbe des Textes auf den Link "Hilfe" des Bereichs Config.</value>
</data>
<data name="strThemeDescriptionConfigPanelTextColor" xml:space="preserve">
<value>Die Farbe des Textes im Configpanel.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe des Fensters Verbindungen.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelTextColor" xml:space="preserve">
<value>Die Farbe des Textes im Bereich Verbindungen.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelTreeLineColor" xml:space="preserve">
<value>Die Farbe der Strukturlinien im Bereich Verbindungen.</value>
</data>
<data name="strThemeDescriptionMenuBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe der Menüs.</value>
</data>
<data name="strThemeDescriptionMenuTextColor" xml:space="preserve">
<value>Die Farbe des Textes in den Menüs.</value>
</data>
<data name="strThemeDescriptionSearchBoxBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe des Suchfelds.</value>
</data>
<data name="strThemeDescriptionSearchBoxTextColor" xml:space="preserve">
<value>Die Farbe des Textes in das Suchfeld.</value>
</data>
<data name="strThemeDescriptionSearchBoxTextPromptColor" xml:space="preserve">
<value>Die Farbe des Textes der Eingabeaufforderung in das Suchfeld.</value>
</data>
<data name="strThemeDescriptionToolbarBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe der Symbolleisten.</value>
</data>
<data name="strThemeDescriptionToolbarTextColor" xml:space="preserve">
<value>Die Farbe des Textes in den Symbolleisten.</value>
</data>
<data name="strThemeDescriptionWindowBackgroundColor" xml:space="preserve">
<value>Die Hintergrundfarbe des Hauptfensters.</value>
</data>
<data name="strThemeNameConfigPanelBackgroundColor" xml:space="preserve">
<value>Config-Panel-Hintergrundfarbe</value>
</data>
<data name="strThemeNameConfigPanelCategoryTextColor" xml:space="preserve">
<value>Config-Panel Kategorie Textfarbe</value>
</data>
<data name="strThemeNameConfigPanelGridLineColor" xml:space="preserve">
<value>Config-Panel-Grid-Linienfarbe</value>
</data>
<data name="strThemeNameConfigPanelHelpBackgroundColor" xml:space="preserve">
<value>Config-Panel Hilfe Hintergrundfarbe</value>
</data>
<data name="strThemeNameConfigPanelHelpTextColor" xml:space="preserve">
<value>Config-Panel Hilfe Textfarbe</value>
</data>
<data name="strThemeNameConfigPanelTextColor" xml:space="preserve">
<value>Config-Panel-Textfarbe</value>
</data>
<data name="strThemeNameConnectionsPanelBackgroundColor" xml:space="preserve">
<value>Verbindungen-Panel-Hintergrund-Farbe</value>
</data>
<data name="strThemeNameConnectionsPanelTextColor" xml:space="preserve">
<value>Verbindungen-Panel-Textfarbe</value>
</data>
<data name="strThemeNameConnectionsPanelTreeLineColor" xml:space="preserve">
<value>Verbindungen Panel Baumgrenze Farbe</value>
</data>
<data name="strThemeNameMenuBackgroundColor" xml:space="preserve">
<value>Menü-Hintergrund-Farbe</value>
</data>
<data name="strThemeNameMenuTextColor" xml:space="preserve">
<value>Menü-Textfarbe</value>
</data>
<data name="strThemeNameSearchBoxBackgroundColor" xml:space="preserve">
<value>Suchfeld Hintergrundfarbe</value>
</data>
<data name="strThemeNameSearchBoxTextColor" xml:space="preserve">
<value>Suchfeld Textfarbe</value>
</data>
<data name="strThemeNameSearchBoxTextPromptColor" xml:space="preserve">
<value>Suchfeld Prompt Textfarbe</value>
</data>
<data name="strThemeNameToolbarBackgroundColor" xml:space="preserve">
<value>Symbolleiste-Hintergrundfarbe</value>
</data>
<data name="strThemeNameToolbarTextColor" xml:space="preserve">
<value>Symbolleiste Textfarbe</value>
</data>
<data name="strThemeNameWindowBackgroundColor" xml:space="preserve">
<value>Fenster-Hintergrundfarbe</value>
</data>
<data name="strTitleError" xml:space="preserve">
<value>Fehler ({0})</value>
</data>
@@ -1896,6 +2079,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strUncheckProperties" xml:space="preserve">
<value>Deaktivieren Sie alle Eigenschaften die nicht gespeichert werden sollen.</value>
</data>
<data name="strUnnamedTheme" xml:space="preserve">
<value>Unbenanntes Aussehen</value>
</data>
<data name="strUpdateAvailable" xml:space="preserve">
<value>mRemoteNG Update verfügbar!</value>
</data>

View File

@@ -0,0 +1,348 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>Σχετικά με</value>
</data>
<data name="strActive" xml:space="preserve">
<value>Ενεργό</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Δραστηριότητα</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Νέα σύνδεση</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Νέος φάκελος</value>
</data>
<data name="strAddNodeFromXmlFailed" xml:space="preserve">
<value>AddNodeFromXML απέτυχε!</value>
</data>
<data name="strAddNodesFromSqlFailed" xml:space="preserve">
<value>AddNodesFromSQL απέτυχε!</value>
</data>
<data name="strAllowOnlySingleInstance" xml:space="preserve">
<value>Επιτρέπετε μόνο ένα μόνο παράδειγμα της εφαρμογής (απαιτείται επανεκκίνηση του mRemoteNG)</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Πάντα</value>
</data>
<data name="strAlwaysConnectEvenIfAuthFails" xml:space="preserve">
<value>Πάντοτε να συνδεθεί, ακόμη και αν ο έλεγχος ταυτότητας αποτυγχάνει</value>
</data>
<data name="strAlwaysShowPanelSelection" xml:space="preserve">
<value>Πάντα Εμφάνιση πίνακα διαλόγου επιλογής κατά το άνοιγμα συνδέσεων</value>
</data>
<data name="strAlwaysShowSysTrayIcon" xml:space="preserve">
<value>Να εμφανίζονται πάντα γνωστοποίησης περιοχων εικόνας</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Ρωτήστε με ξανά αργότερα</value>
</data>
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
<value>Προσαρμογή των ρυθμίσεων τώρα</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Χρήση των προτεινόμενων ρυθμίσεων</value>
</data>
<data name="strAskUpdatesContent" xml:space="preserve">
<value>{0} μπορεί να ελέγχει αυτόματα ενημερώσεις που μπορούν να παρέχουν νέα χαρακτηριστικά και διορθώσεις σφαλμάτων. Συνιστάται να επιτρέψετε {0} να ελέγξει για ενημερώσεις σε εβδομαδιαία βάση.</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Ρυθμίσεις αυτόματης ενημέρωσης</value>
</data>
<data name="strAspect" xml:space="preserve">
<value>Πτυχή</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Αυτόματη λήψη πληροφοριών περιόδου</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Αυτόματη αποθήκευση κάθε:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Λεπτά (0 σημαίνει απενεργοποιημένο)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Τρέχουσα έκδοση</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp;Αναζήτηση...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Ακύρωση</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Αλλαγή</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>&amp;Κλείσιμο</value>
</data>
<data name="strButtonDefaultInheritance" xml:space="preserve">
<value>Προεπιλογή κληρονομικότητας</value>
</data>
<data name="strButtonDefaultProperties" xml:space="preserve">
<value>Προεπιλεγμένες ιδιότητες</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Αποσύνδεση</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Εικονίδιο</value>
</data>
<data name="strButtonImport" xml:space="preserve">
<value>&amp;Εισαγωγή</value>
</data>
<data name="strButtonInheritance" xml:space="preserve">
<value>Κληρονομιά</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Εκκίνηση του PuTTY</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp; Νέο</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;ΟΚ</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Ιδιότητες</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp;Σάρωση</value>
</data>
<data name="strButtonStop" xml:space="preserve">
<value>&amp;Διακοπή</value>
</data>
<data name="strButtonTestProxy" xml:space="preserve">
<value>Δοκιμή διακομιστή μεσολάβησης</value>
</data>
<data name="strCannotImportNormalSessionFile" xml:space="preserve">
<value>Δεν μπορείτε να εισαγάγετε ένα κανονικό αρχείο σύνδεσης.
Παρακαλούμε χρησιμοποιήστε Αρχείο - Συνδέσεις φορτίου για τα κανονικά αρχεία σύνδεσης!</value>
</data>
<data name="strCannotStartPortScan" xml:space="preserve">
<value>Δεν είναι δυνατή η εκκίνηση της σάρωσης υποδοχων, εσφαλμένη μορφή IP!</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Εμφάνιση</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Σύνδεση</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Πιστοποιήσεις</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Οθόνη</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Πύλη</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Γενική</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Διάφορα</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Πρωτόκολλο</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Ανακατεύθυνση</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Πάντα εμφάνιση αυτής της οθόνης κατά την εκκίνηση</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Ανανέωση</value>
</data>
<data name="strCcCheckFailed" xml:space="preserve">
<value>Ο ελέγχος απέτυχε!</value>
</data>
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Ο ελεγχος πέτυχε!</value>
</data>
<data name="strCcEOLFailed" xml:space="preserve">
<value>Η δυνατότητα (RDP) συνεδρίες προϋποθέτει ότι έχετε μια εγγεγραμμένο αντίγραφο του eolwtscom.dll στο σύστημά σας. mRemoteNG πλοία με αυτό το στοιχείο αλλά θα δεν εγγραφείτε αυτόματα εκτός αν η εκτέλεση του πακέτου εγκατάστασης. Να εγγραφείτε δεν με μη αυτόματο τρόπο αυτό: Ανοίξτε στο τρέχω διάλογος (έναρξη - Run) και πληκτρολογήστε τα παρακάτω: regsvr32 "c:\Program Files\mRemoteNG\eolwtscom.dll" (όπου c:\Program Files\mRemoteNG\ είναι η διαδρομή προς την εγκατάσταση mRemoteNG). Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή να χρησιμοποιήσετε τη δυνατότητα συνεδρίες (RDP) στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/</value>
</data>
<data name="strCcEOLOK" xml:space="preserve">
<value>Το EOLWTSCOM βρέθηκε και φαίνεται να έχει καταχωρηθεί σωστά.</value>
</data>
<data name="strCcGeckoFailed" xml:space="preserve">
<value>Για να χρησιμοποιήσετε το μηχανισμό απόδοσης Gecko πρέπει να έχετε XULrunner 1.8.1.x και ο δρόμος για την εγκατάσταση ορίστε στις επιλογές σας. Μπορείτε να κατεβάσετε XULrunner 1.8.1.3 εδώ: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/ όταν ολοκληρώσετε τη λήψη κάντε εξαγωγή του πακέτου για την πορεία της επιλογής σας. Στη συνέχεια, στο mRemoteNG πηγαίνετε στο εργαλεία - επιλογές - προηγμένες και πληκτρολογήσει τη σωστή διαδρομή στο πεδίο διαδρομή XULrunner. Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή χρησιμοποιούν την μηχανή Gecko στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/</value>
</data>
<data name="strCcGeckoOK" xml:space="preserve">
<value>Το XULrunner βρέθηκε και φαίνεται να έχει εγκατασταθεί σωστά.</value>
</data>
<data name="strCcICAFailed" xml:space="preserve">
<value>ICA απαιτεί ότι είναι εγκατεστημένο το XenDesktop Online Plugin και ότι καταχωρείται η βιβλιοθήκη wfica.ocx. Μπορείτε να κατεβάσετε τον πελάτη εδώ: http://www.citrix.com/download/ αν έχετε το XenDesktop Online Plugin εγκατασταθεί και ο έλεγχος συνεχίσει να αποτυγχάνει, προσπαθήστε να εγγραφείτε wfica.ocx με μη αυτόματο τρόπο. Να κάνει αυτό ανοίγω πάνω στο τρέχω διάλογος (έναρξη - Run) και πληκτρολογήστε τα παρακάτω: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (όπου c:\Program Files\Citrix\ICA Client\ είναι η διαδρομή στην εγκατάσταση XenDesktop Online Plugin). Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή να χρησιμοποιήσετε ICA στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/"</value>
</data>
<data name="strCcICAOK" xml:space="preserve">
<value>Όλα τα συστατικά ICA βρέθηκαν και φαίνεται να καταχωρηθηκαν σωστά. Πρόγραμμα-πελάτη Citrix ICA ελέγχου έκδοση {0}</value>
</data>
<data name="strCcNotInstalledProperly" xml:space="preserve">
<value>δεν έχει εγκατασταθεί σωστά</value>
</data>
<data name="strConnectInFullscreen" xml:space="preserve">
<value>Σύνδεση σε λειτουργία πλήρους οθόνης</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Σύνδεση...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Πρωτόκολλο γεγονός που συνδέεται</value>
</data>
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
<value>Σύνδεση με "{0}" μέσω "{1}" από το χρήστη "{2}" (Περιγραφή: «{3}»? Χρήστη το πεδίο: «{4}")</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Η συνδεση απέτυχε!</value>
</data>
<data name="strConnectionEventErrorOccured" xml:space="preserve">
<value>Πρωτόκολλο ErrorOccured εκδήλωση</value>
</data>
<data name="strConnectionOpenFailed" xml:space="preserve">
<value>Άνοιγμα σύνδεσης απέτυχε!</value>
</data>
<data name="strConnectionOpenFailedNoHostname" xml:space="preserve">
<value>Δεν μπορεί να ανοίχθει η σύνδεση: Το όνομα του κεντρικού υπολογιστή δεν ειναι καθορισμένο!</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>RDP λάθος!
Κωδικός σφάλματος: {0}
Περιγραφή σφάλματος: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Συνδέσεις</value>
</data>
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
<value>Αδυναμία ορισμού προεπιλεγμένης θύρας!</value>
</data>
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
<value>Δεν ήταν δυνατή η δημιουργία αντιγράφων ασφαλείας των συνδέσεων αρχείου!</value>
</data>
<data name="strConnectionsFileCouldNotBeImported" xml:space="preserve">
<value>Δεν ήταν δυνατή η εισαγωγή συνδέσεων αρχείου!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoaded" xml:space="preserve">
<value>Το αρχείο συνδέσεων "{0}" δεν μπορεί να φορτωθεί!</value>
</data>
</root>

View File

@@ -401,7 +401,7 @@ Si la vérification des composants ou l'utilisation d'ICA échoue malgré tout,
<value>Attendre avant de quitter</value>
</data>
<data name="strCommandLineArgsCouldNotBeParsed" xml:space="preserve">
<value>Impossible de parcourir les arguments de la ligne de commande !</value>
<value>Impossible de convertir les arguments de la ligne de commande !</value>
</data>
<data name="strCompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
<value>{0} a détecté que l'utilitaire Lenovo Auto Scroll Utility est executé sur le système. Cet utilitaire est connu pour générer des problèmes avec {0}. Il est recommandé de le désactiver ou de le désinstaller.</value>

View File

@@ -0,0 +1,438 @@
<?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 xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>Névjegy</value>
</data>
<data name="strActive" xml:space="preserve">
<value>Aktív</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Tevékenység</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Új kapcsolat</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Új mappa</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Mindig</value>
</data>
<data name="strAlwaysConnectEvenIfAuthFails" xml:space="preserve">
<value>Kapcsolódj mindig, sikertelen hitelesítés esetén is</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Kérdezz rá később</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Javasolt beállítások használata</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatikus frissítés beállításai</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Munkamenet információk automatikus megszerzése</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Automatikus mentés minden:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Perc (0 - kikapcsolva)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Aktuális verzió</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp;Böngészés...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Mégsem</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Módosít</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>Be&amp;zár</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Kapcsolat bontása</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Ikon</value>
</data>
<data name="strButtonImport" xml:space="preserve">
<value>&amp;Improtálás</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>PuTTY indítása</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Új</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Tulajdonságok</value>
</data>
<data name="strCannotStartPortScan" xml:space="preserve">
<value>Helytelen IP cím, a port szkennelés nem indítható!</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Megjelenés</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Kapcsolat</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Hitelesítés</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Képernyő</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Átjáró</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Általános</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Egyéb</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Protokoll</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Átirányítás</value>
</data>
<data name="strCcCheckFailed" xml:space="preserve">
<value>Az ellenőrzés sikertelen!</value>
</data>
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Az ellenőrzés sikeres!</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Tartomány</value>
</data>
<data name="strCheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Többé ne mutasd ezt az üzenetet.</value>
</data>
<data name="strColumnFilename" xml:space="preserve">
<value>Fájlnév</value>
</data>
<data name="strColumnHostnameIP" xml:space="preserve">
<value>Kiszolgálónév/IP cím</value>
</data>
<data name="strColumnMessage" xml:space="preserve">
<value>Üzenet</value>
</data>
<data name="strColumnUsername" xml:space="preserve">
<value>Felhasználónév</value>
</data>
<data name="strCommandLineArgsCouldNotBeParsed" xml:space="preserve">
<value>Nem értelmezhető parancssori argumentum!</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Kapcsolódás...</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Sikertelen kapcsolódás!</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Kapcsolatok</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>Telepített verzió</value>
</data>
<data name="strDontConnectWhenAuthFails" xml:space="preserve">
<value>Ne kapcsolódj sikertelen hitelesítéskor</value>
</data>
<data name="strDoubleClickTabClosesIt" xml:space="preserve">
<value>Duplaklikk a fülön bezárja azt</value>
</data>
<data name="strExperimental" xml:space="preserve">
<value>Kísérleti</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>Teljes képernyő</value>
</data>
<data name="strGeneral" xml:space="preserve">
<value>Általános</value>
</data>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Fájlok</value>
</data>
<data name="strHttpConnectFailed" xml:space="preserve">
<value>A HTTP csatlakozás nem sikerült!</value>
</data>
<data name="strImportExport" xml:space="preserve">
<value>Importálás/Exportálás</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL-ALT-DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CONTROL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Cím:</value>
</data>
<data name="strLabelDisplayName" xml:space="preserve">
<value>Megjelenítendő név</value>
</data>
<data name="strLabelDomain" xml:space="preserve">
<value>Tartomány:</value>
</data>
<data name="strLabelFilename" xml:space="preserve">
<value>Fájlnév:</value>
</data>
<data name="strLabelHostname" xml:space="preserve">
<value>Hosztnév:</value>
</data>
<data name="strLabelOptions" xml:space="preserve">
<value>Opciók:</value>
</data>
<data name="strLabelPassword" xml:space="preserve">
<value>Jelszó:</value>
</data>
<data name="strLabelPort" xml:space="preserve">
<value>Port:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Hordozható kiadás</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Protokoll:</value>
</data>
<data name="strLabelServerStatus" xml:space="preserve">
<value>Szerver állapot:</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Adatbázis:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Adatbázis:</value>
</data>
<data name="strLabelUsername" xml:space="preserve">
<value>Felhasználónév:</value>
</data>
<data name="strLabelVerify" xml:space="preserve">
<value>Ellenőrzés:</value>
</data>
<data name="strLanguage" xml:space="preserve">
<value>Nyelv</value>
</data>
<data name="strLanguageDefault" xml:space="preserve">
<value>(Automatikus észlelés)</value>
</data>
<data name="strMenuAbout" xml:space="preserve">
<value>Névjegy</value>
</data>
<data name="strMenuCheckForUpdates" xml:space="preserve">
<value>Frissítés keresése</value>
</data>
<data name="strMenuJumpTo" xml:space="preserve">
<value>Ugrás</value>
</data>
<data name="strMenuLaunchExternalTool" xml:space="preserve">
<value>Külső eszköz indítása</value>
</data>
<data name="strMenuNewConnectionFile" xml:space="preserve">
<value>Új kapcsolatfájl</value>
</data>
<data name="strMenuNewExternalTool" xml:space="preserve">
<value>Új külső eszköz</value>
</data>
<data name="strMenuNotifications" xml:space="preserve">
<value>Értesítések</value>
</data>
<data name="strMenuOpenConnectionFile" xml:space="preserve">
<value>Kapcsolatfájl megnyitása...</value>
</data>
<data name="strMenuOptions" xml:space="preserve">
<value>Opciók</value>
</data>
<data name="strMenuReconnect" xml:space="preserve">
<value>Újrakapcsolódás</value>
</data>
<data name="strMenuRename" xml:space="preserve">
<value>Átnevezés</value>
</data>
<data name="strMenuRenameConnection" xml:space="preserve">
<value>Kapcsolat átnevezése</value>
</data>
<data name="strMenuRenameFolder" xml:space="preserve">
<value>Könyvtár átnevezése</value>
</data>
<data name="strMenuRenameTab" xml:space="preserve">
<value>Fül átnevezése</value>
</data>
<data name="strMenuReportBug" xml:space="preserve">
<value>Hibabejelentés</value>
</data>
<data name="strMenuResetLayout" xml:space="preserve">
<value>Elrendezés alaphelyzetbe állítása</value>
</data>
<data name="strMenuSaveConnectionFile" xml:space="preserve">
<value>Kapcsolatfájl mentése</value>
</data>
<data name="strMenuSaveConnectionFileAs" xml:space="preserve">
<value>Kapcsolatfájl mentése, mint...</value>
</data>
<data name="strMenuScreenshot" xml:space="preserve">
<value>Képernyőmentés</value>
</data>
<data name="strMenuScreenshotManager" xml:space="preserve">
<value>Képernyőmentés kezelő</value>
</data>
<data name="strMenuSessions" xml:space="preserve">
<value>Munkamenetek</value>
</data>
<data name="strMenuSessionsAndScreenshots" xml:space="preserve">
<value>Munkamanetek és képernyőmentések</value>
</data>
<data name="strMenuWebsite" xml:space="preserve">
<value>Honlap</value>
</data>
<data name="strNever" xml:space="preserve">
<value>Soha</value>
</data>
<data name="strNewConnection" xml:space="preserve">
<value>Új kapcsolat</value>
</data>
<data name="strNewFolder" xml:space="preserve">
<value>Új mappa</value>
</data>
<data name="strNewPanel" xml:space="preserve">
<value>Új panel</value>
</data>
<data name="strNewRoot" xml:space="preserve">
<value>Új gyökérelem</value>
</data>
<data name="strNewTitle" xml:space="preserve">
<value>Új cím</value>
</data>
<data name="strNo" xml:space="preserve">
<value>Nem</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>SQL szerver használata a kapcsolatok kezelésére</value>
</data>
</root>

View File

@@ -139,7 +139,7 @@
<value>AddNodesFromSQL falhou!</value>
</data>
<data name="strAllowOnlySingleInstance" xml:space="preserve">
<value>Permitir apenas uma única instância do aplicativo (mRemoteNG é necessário reiniciar)</value>
<value>Permitir apenas uma única instância do aplicativo (É necessário reiniciar o mRemoteNG)</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Sempre</value>
@@ -252,6 +252,9 @@
<data name="strCategoryDisplay" xml:space="preserve">
<value>Mostrar</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Geral</value>
</data>
@@ -276,9 +279,44 @@
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Verificação com sucesso!</value>
</data>
<data name="strCcEOLFailed" xml:space="preserve">
<value>O recurso de sessões (RDP) requer que você tenha uma cópia registrada do eolwtscom.dll no seu sistema.
mRemoteNG vem com este componente mas não o registra automaticamente a menos que você instale o pacote.
Para registrá-lo manualmente faça isso: Abra a caixa de diálogo Executar (Iniciar - Executar) e digite o seguinte: regsvr32 "c:\Program Files\mRemoteNG\eolwtscom.dll" (onde c:\Program Files\mRemoteNG\ é o caminho para a instalação de mRemoteNG).
Se você ainda não conseguir passar por esta verificação ou não conseguir usar o recurso de sessões (RDP) no mRemoteNG, por favor, consulte o fórum de mRemoteNG em http://forum.mremoteng.org/</value>
</data>
<data name="strCcEOLOK" xml:space="preserve">
<value>EOLWTSCOM foi encontrada e parece ser registrado corretamente.</value>
</data>
<data name="strCcGeckoFailed" xml:space="preserve">
<value>Para usar o motor de renderização Gecko, você precisa ter o XULrunner 1.8.1.x e o caminho para a instalação do conjunto em suas opções.
Você pode baixar o XULrunner 1.8.1.3 em: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/
Quando terminar de baixar o pacote, extraia o pacote para um caminho de sua escolha.
Em seguida, emtre no mRemoteNG e vá em ferramentas - opções - avançadas e digite o caminho correto no campo caminho XULrunner.
Se ainda não conseguir passar esta verificação ou usar o motor Gecko em mRemoteNG por favor consultar o fórum de mRemoteNG em http://forum.mremoteng.org/</value>
</data>
<data name="strCcGeckoOK" xml:space="preserve">
<value>XULrunner foi encontrado e aparenta estar instalado corretamente.</value>
</data>
<data name="strCcICAFailed" xml:space="preserve">
<value>ICA requer que o XenDesktop Online Plugin esteja instalado e a biblioteca wfica.ocs registrada. Você pode baixar o cliente aqui: http://www.citrix.com/download/
Se você tiver o Plugin Online XenDesktop instalado e a verificação ainda falhar, tente registrar manualmente o wfica.ocx
Para fazer isso abra a caixa de diálogo Executar (Iniciar - Executar) e digite o seguinte: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (onde c:\Program Files\Citrix\ICA Client\ é o caminho para a instalação do Plugin Online do XenDesktop).
Se você ainda não puder passar por esta verificação ou usar ICA em mRemoteNG, por favor, consulte o fórum de mRemoteNG no http://forum.mremoteng.org/"</value>
</data>
<data name="strCcICAOK" xml:space="preserve">
<value>Todos os componentes de ICA, foram encontrados e parecem ser registrado corretamente. Citrix ICA cliente controle versão {0}</value>
</data>
<data name="strCcNotInstalledProperly" xml:space="preserve">
<value>não instalado corretamente</value>
</data>
<data name="strCcPuttyFailed" xml:space="preserve">
<value>O SSH, Telnet, Rlogin e protocolos RAW precisam PuTTY para trabalhar. PuTTY vem com cada pacote de mRemoteNG e está localizado no caminho de instalação.
Por favor, certifique-se de que você tem o Putty.exe em seu diretório mRemoteNG (padrão: c:\Program Files\mRemoteNG\) ou que você tenha especificado um caminho válido para seu executável PuTTY nas opções (ferramentas - opções - avançadas - caminho personalizado PuTTY)</value>
</data>
<data name="strCcPuttyOK" xml:space="preserve">
<value>O executável PuTTY foi encontrado e está pronto para usar.</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Domínio</value>
</data>
@@ -310,7 +348,7 @@
<value>Esperar para sair</value>
</data>
<data name="strCheckForUpdate" xml:space="preserve">
<value>Verifique novamente</value>
<value>Verificar novamente</value>
</data>
<data name="strCheckForUpdatesOnStartup" xml:space="preserve">
<value>Verificar se há atualizações e anúncios na inicialização</value>
@@ -345,7 +383,108 @@
<data name="strColumnWaitForExit" xml:space="preserve">
<value>Esperar para sair</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Validação de componentes</value>
</data>
<data name="strConfigPropertyGridButtonIconClickFailed" xml:space="preserve">
<value>btnIcon_Click falhou!</value>
</data>
<data name="strConfigPropertyGridHideItemsFailed" xml:space="preserve">
<value>ShowHideGridItems falhou!</value>
</data>
<data name="strConfigPropertyGridMenuClickFailed" xml:space="preserve">
<value>IconMenu_Click falhou!</value>
</data>
<data name="strConfigPropertyGridObjectFailed" xml:space="preserve">
<value>Propriedade do Objeto de grade falhou!</value>
</data>
<data name="strConfigPropertyGridSetHostStatusFailed" xml:space="preserve">
<value>SetHostStatus falhou!</value>
</data>
<data name="strConfigPropertyGridValueFailed" xml:space="preserve">
<value>pGrid_PopertyValueChanged falhou!</value>
</data>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Config UI carregamento falhou!</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<value>Você quer fechar a conexão, "{0}"?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>Tem certeza que deseja fechar o painel, "{0}"? Todas as ligações ativas serão fechadas.</value>
</data>
<data name="strConfirmDeleteExternalTool" xml:space="preserve">
<value>Tem certeza que deseja excluir a ferramenta externa, "{0}"?</value>
</data>
<data name="strConfirmDeleteExternalToolMultiple" xml:space="preserve">
<value>Tem certeza que deseja excluir as ferramentas externas {0} selecionadas?</value>
</data>
<data name="strConfirmDeleteNodeConnection" xml:space="preserve">
<value>Tem certeza que deseja excluir a ligação, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolder" xml:space="preserve">
<value>Tem certeza que deseja excluir a pasta vazia, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolderNotEmpty" xml:space="preserve">
<value>Tem certeza que deseja excluir a pasta, "{0}"? Pastas ou ligações que ele contém também serão excluídas.</value>
</data>
<data name="strConfirmExitMainInstruction" xml:space="preserve">
<value>Você quer fechar todas as conexões abertas?</value>
</data>
<data name="strConfirmResetLayout" xml:space="preserve">
<value>Tem certeza de que deseja redefinir os painéis para o layout padrão?</value>
</data>
<data name="strConnect" xml:space="preserve">
<value>Conectar-se</value>
</data>
<data name="strConnectInFullscreen" xml:space="preserve">
<value>Se conectar em modo fullscreen</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Conectando...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Protocolo evento conectado</value>
</data>
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
<value>Conexão para "{0}" via "{1}" estabelecido pelo usuário "{2}" (Descrição: "{3}"; Campo usuário: "{4}")</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Conexão falhou!</value>
</data>
<data name="strConnectionEventErrorOccured" xml:space="preserve">
<value>Erro no evento de protocolo</value>
</data>
<data name="strConnectionOpenFailed" xml:space="preserve">
<value>Abrir conexão falhou!</value>
</data>
<data name="strConnectionOpenFailedNoHostname" xml:space="preserve">
<value>Não é possível abrir a conexão: nenhum nome de host especificado!</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>Erro RDP!
Código de erro: {0}
Descrição do erro: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Conexões</value>
</data>
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
<value>Impossível definir porta padrão!</value>
</data>
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
<value>Não foi possível criar o backup do arquivo de conexões!</value>
</data>
<data name="strConnectionsFileCouldNotBeImported" xml:space="preserve">
<value>Falha na importação do arquivo de conexões!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoaded" xml:space="preserve">
<value>Arquivo de conexões "{0}" não pôde ser carregado!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoadedNew" xml:space="preserve">
<value>Arquivo de conexões "{0}" não pôde ser carregado! Começando com o novo arquivo de conexões.</value>
</data>
<data name="strConnectionsFileCouldNotBeSaved" xml:space="preserve">
<value>Não consegui salvar o arquivo de conexões!</value>
</data>
</root>

View File

@@ -606,7 +606,7 @@ Descrição do erro: {1}</value>
<value>Erros</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>O arquivo de inicialização de ligação não pôde ser carregado.{0}{0}(2){0}{3}{0}{0}A fim de evitar perda de dados, {1} vai sair agora.</value>
<value>O arquivo de inicialização de ligação não pôde ser carregado.{0}{0}{2}{0}{3}{0}{0}A fim de evitar perda de dados, {1} vai sair agora.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>VerifyDatabaseVersion (Config.Connections.Save) falhou. {0}</value>

View File

@@ -1139,6 +1139,9 @@ VncSharpNG Control Version {0}</value>
<data name="strOpenPorts" xml:space="preserve">
<value>Відкриті порти</value>
</data>
<data name="strOptionsTabTheme" xml:space="preserve">
<value>Тема</value>
</data>
<data name="strPanelName" xml:space="preserve">
<value>Назва групи</value>
</data>
@@ -1814,6 +1817,9 @@ VncSharpNG Control Version {0}</value>
<data name="strSSHTransferEndFailed" xml:space="preserve">
<value>Передача по SSH завершена с ошибкой (UI.Window.SSHTransfer)!</value>
</data>
<data name="strSSHTransferFailed" xml:space="preserve">
<value>Помилка передавання SSH.</value>
</data>
<data name="strStartIP" xml:space="preserve">
<value>Початковий IP</value>
</data>

View File

@@ -412,6 +412,12 @@ VncSharpNG 版本 {0}</value>
<data name="strCommandLineArgsCouldNotBeParsed" xml:space="preserve">
<value>无法解析命令行参数!</value>
</data>
<data name="strCompatibilityLenovoAutoScrollUtilityDetected" xml:space="preserve">
<value>{0} 检测到联想Auto Scroll程序在本机上运行。该程序程序明确会导致问题 {0} 的出现。建议您禁用或卸载该程序。</value>
</data>
<data name="strCompatibilityProblemDetected" xml:space="preserve">
<value>检测到系统存在兼容性问题</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>组件检查</value>
</data>
@@ -541,6 +547,9 @@ VncSharpNG 版本 {0}</value>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>无法新建连接配置文件!</value>
</data>
<data name="strCouldNotFindToolStripInFilteredPropertyGrid" xml:space="preserve">
<value>在 FilteredPropertyGrid 中找不到 ToolStrip 控件。</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>已安装版本</value>
</data>
@@ -702,6 +711,9 @@ VncSharpNG 版本 {0}</value>
<data name="strHttpConnectionFailed" xml:space="preserve">
<value>无法创建新的 HTTP 连接!</value>
</data>
<data name="strHttpDocumentTileChangeFailed" xml:space="preserve">
<value>更改HTTP文档标题失败</value>
</data>
<data name="strHttpSetPropsFailed" xml:space="preserve">
<value>设置 HTTP 属性失败!</value>
</data>
@@ -1452,6 +1464,9 @@ VncSharpNG 版本 {0}</value>
<data name="strPropertyNameUseConsoleSession" xml:space="preserve">
<value>使用控制台会话。</value>
</data>
<data name="strPropertyNameUseCredSsp" xml:space="preserve">
<value>使用CredSSP方式</value>
</data>
<data name="strPropertyNameUser1" xml:space="preserve">
<value>自定义信息</value>
</data>
@@ -1518,6 +1533,9 @@ VncSharpNG 版本 {0}</value>
<data name="strPuttyResizeFailed" xml:space="preserve">
<value>Putty 窗口大小调整失败!</value>
</data>
<data name="strPuttySavedSessionsRootName" xml:space="preserve">
<value>PuTTY 会话已保存</value>
</data>
<data name="strPuttySettings" xml:space="preserve">
<value>PuTTY 设置</value>
</data>
@@ -1863,6 +1881,9 @@ VncSharpNG 版本 {0}</value>
<data name="strSSHTransferEndFailed" xml:space="preserve">
<value>SSH 传输结束(UI.Window.SSHTransfer失败</value>
</data>
<data name="strSSHTransferFailed" xml:space="preserve">
<value>SSH 传输失败。</value>
</data>
<data name="strStartIP" xml:space="preserve">
<value>起始IP</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.296
' Runtime Version:4.0.30319.1008
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -2080,7 +2080,7 @@ Namespace My
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("de,en,en-US,es-AR,es,fr,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN")> _
Global.System.Configuration.DefaultSettingValueAttribute("de,el,en,en-US,es-AR,es,fr,hu,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN,zh-TW")> _
Public ReadOnly Property SupportedUICultures() As String
Get
Return CType(Me("SupportedUICultures"),String)
@@ -2401,7 +2401,7 @@ Namespace My
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("https://update.mremoteng.org/announcement-beta.txt")> _
Global.System.Configuration.DefaultSettingValueAttribute("https://update.mremoteng.org/announcement.txt")> _
Public ReadOnly Property AnnouncementAddress() As String
Get
Return CType(Me("AnnouncementAddress"),String)

View File

@@ -471,7 +471,7 @@
<Value Profile="(Default)" />
</Setting>
<Setting Name="SupportedUICultures" Type="System.String" Scope="Application">
<Value Profile="(Default)">de,en,en-US,es-AR,es,fr,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN</Value>
<Value Profile="(Default)">de,el,en,en-US,es-AR,es,fr,hu,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN,zh-TW</Value>
</Setting>
<Setting Name="ConDefaultRDGatewayHostname" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
@@ -546,7 +546,7 @@
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AnnouncementAddress" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="Application">
<Value Profile="(Default)">https://update.mremoteng.org/announcement-beta.txt</Value>
<Value Profile="(Default)">https://update.mremoteng.org/announcement.txt</Value>
</Setting>
<Setting Name="UpdateAddress" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)">https://update.mremoteng.org/</Value>

View File

@@ -70,6 +70,7 @@ Namespace Themes
Private Shared _activeThemeHandlerSet As Boolean = False
Public Shared Property ActiveTheme As ThemeInfo
Get
If _activeTheme Is Nothing Then Return DefaultTheme
Return _activeTheme
End Get
Set(value As ThemeInfo)

View File

@@ -1,6 +1,7 @@
Imports System.Threading
Imports mRemoteNG.App.Runtime
Imports System.Net.NetworkInformation
Imports System.Net
Namespace Tools
Namespace PortScan
@@ -108,7 +109,7 @@ Namespace Tools
End Set
End Property
Private _OpenPorts As New ArrayList
Private _openPorts As New ArrayList
Public Property OpenPorts() As ArrayList
Get
Return _OpenPorts
@@ -118,7 +119,7 @@ Namespace Tools
End Set
End Property
Private _ClosedPorts As ArrayList
Private _closedPorts As ArrayList
Public Property ClosedPorts() As ArrayList
Get
Return _ClosedPorts
@@ -215,7 +216,7 @@ Namespace Tools
End Try
End Function
Public Function ToListViewItem(ByVal Mode As PortScanMode) As ListViewItem
Public Function ToListViewItem(ByVal mode As PortScanMode) As ListViewItem
Try
Dim lvI As New ListViewItem
lvI.Tag = Me
@@ -237,11 +238,11 @@ Namespace Tools
Dim strOpen As String = ""
Dim strClosed As String = ""
For Each p As Integer In _OpenPorts
For Each p As Integer In _openPorts
strOpen &= p & ", "
Next
For Each p As Integer In _ClosedPorts
For Each p As Integer In _closedPorts
strClosed &= p & ", "
Next
@@ -256,224 +257,159 @@ Namespace Tools
End Try
End Function
Private Function BoolToYesNo(ByVal Bool As Boolean) As String
If Bool = True Then
Private Function BoolToYesNo(ByVal value As Boolean) As String
If value Then
Return My.Language.strYes
Else
Return My.Language.strNo
End If
End Function
Public Sub SetAllProtocols(ByVal Open As Boolean)
_VNC = False
_Telnet = False
_SSH = False
_Rlogin = False
_RDP = False
_HTTPS = False
_HTTP = False
Public Sub SetAllProtocols(ByVal value As Boolean)
_VNC = value
_Telnet = value
_SSH = value
_Rlogin = value
_RDP = value
_HTTPS = value
_HTTP = value
End Sub
#End Region
End Class
Public Class Scanner
#Region "Properties"
Private _StartIP As String
Public Property StartIP() As String
Get
Return _StartIP
End Get
Set(ByVal value As String)
_StartIP = value
End Set
End Property
#Region "Private Members"
Private ReadOnly _ipAddresses As New List(Of IPAddress)
Private ReadOnly _ports As New List(Of Integer)
Private _EndIP As String
Public Property EndIP() As String
Get
Return _EndIP
End Get
Set(ByVal value As String)
_EndIP = value
End Set
End Property
Private _StartPort As Integer
Public Property StartPort() As Integer
Get
Return _StartPort
End Get
Set(ByVal value As Integer)
_StartPort = value
End Set
End Property
Private _EndPort As Integer
Public Property EndPort() As Integer
Get
Return _EndPort
End Get
Set(ByVal value As Integer)
_EndPort = value
End Set
End Property
Private _ScannedHosts As ArrayList
Public Property ScannedHosts() As ArrayList
Get
Return _ScannedHosts
End Get
Set(ByVal value As ArrayList)
_ScannedHosts = value
End Set
End Property
Private _scanThread As Thread
Private ReadOnly _scannedHosts As New List(Of ScanHost)
#End Region
#Region "Methods"
Public Sub New(ByVal startIP As String, ByVal endIP As String)
Mode = PortScanMode.Import
#Region "Public Methods"
Public Sub New(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress)
Dim ipAddressStart As IPAddress = IpAddressMin(ipAddress1, ipAddress2)
Dim ipAddressEnd As IPAddress = IpAddressMax(ipAddress1, ipAddress2)
_StartIP = startIP
_EndIP = endIP
Ports = New ArrayList()
Ports.AddRange(New Integer() {ScanHost.SSHPort, ScanHost.TelnetPort, ScanHost.HTTPPort, _
_ports.Clear()
_ports.AddRange(New Integer() {ScanHost.SSHPort, ScanHost.TelnetPort, ScanHost.HTTPPort, _
ScanHost.HTTPSPort, ScanHost.RloginPort, ScanHost.RDPPort, _
ScanHost.VNCPort})
Hosts = GetIPRange(_StartIP, _EndIP)
_ipAddresses.Clear()
_ipAddresses.AddRange(IpAddressArrayFromRange(ipAddressStart, ipAddressEnd))
_ScannedHosts = New ArrayList()
_scannedHosts.Clear()
End Sub
Public Sub New(ByVal startIP As String, ByVal endIP As String, ByVal startPort As String, ByVal endPort As String)
Mode = PortScanMode.Normal
Public Sub New(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress, ByVal port1 As Integer, ByVal port2 As Integer)
Me.New(ipAddress1, ipAddress2)
_StartIP = startIP
_EndIP = endIP
Dim portStart As Integer = Math.Min(port1, port2)
Dim portEnd As Integer= Math.Max(port1, port2)
_StartPort = startPort
_EndPort = endPort
Ports = New ArrayList()
For p As Integer = startPort To endPort
Ports.Add(p)
_ports.Clear()
For port As Integer = portStart To portEnd
_ports.Add(port)
Next
Hosts = GetIPRange(_StartIP, _EndIP)
_ScannedHosts = New ArrayList()
End Sub
Public Event BeginHostScan(ByVal Host As String)
Public Event HostScanned(ByVal SHost As ScanHost, ByVal HostsAlreadyScanned As Integer, ByVal HostsToBeScanned As Integer)
Public Event ScanComplete(ByVal Hosts As ArrayList)
Private Hosts As ArrayList
Private Ports As ArrayList
Private Mode As PortScanMode
Private sThread As Thread
Public Sub StartScan()
sThread = New Thread(AddressOf StartScanBG)
sThread.SetApartmentState(Threading.ApartmentState.STA)
sThread.IsBackground = True
sThread.Start()
_scanThread = New Thread(AddressOf ScanAsync)
_scanThread.SetApartmentState(ApartmentState.STA)
_scanThread.IsBackground = True
_scanThread.Start()
End Sub
Public Sub StopScan()
sThread.Abort()
_scanThread.Abort()
End Sub
Public Shared Function IsPortOpen(ByVal Hostname As String, ByVal Port As String) As Boolean
Public Shared Function IsPortOpen(ByVal hostname As String, ByVal port As String) As Boolean
Try
Dim tcpClient As New System.Net.Sockets.TcpClient(Hostname, Port)
' ReSharper disable UnusedVariable
Dim tcpClient As New Sockets.TcpClient(hostname, port)
' ReSharper restore UnusedVariable
Return True
Catch ex As Exception
Return False
End Try
End Function
#End Region
Private Sub StartScanBG()
#Region "Private Methods"
Private Sub ScanAsync()
Try
Dim hCount As Integer = 0
Dim hostCount As Integer = 0
For Each Host As String In Hosts
RaiseEvent BeginHostScan(Host)
For Each ipAddress As IPAddress In _ipAddresses
RaiseEvent BeginHostScan(ipAddress.ToString())
Dim sHost As New ScanHost(Host)
hCount += 1
Dim scanHost As New ScanHost(ipAddress.ToString())
hostCount += 1
Dim HostAlive As Boolean = False
HostAlive = IsHostAlive(Host)
If HostAlive = False Then
sHost.ClosedPorts.AddRange(Ports)
sHost.SetAllProtocols(False)
If Not IsHostAlive(ipAddress) Then
scanHost.ClosedPorts.AddRange(_ports)
scanHost.SetAllProtocols(False)
Else
For Each Port As Integer In Ports
Dim err As Boolean = False
For Each port As Integer In _ports
Dim isPortOpen As Boolean
Try
Dim tcpClient As New System.Net.Sockets.TcpClient(Host, Port)
' ReSharper disable UnusedVariable
Dim tcpClient As New Sockets.TcpClient(ipAddress.ToString, port)
' ReSharper restore UnusedVariable
err = False
sHost.OpenPorts.Add(Port)
isPortOpen = True
scanHost.OpenPorts.Add(port)
Catch ex As Exception
err = True
sHost.ClosedPorts.Add(Port)
isPortOpen = False
scanHost.ClosedPorts.Add(port)
End Try
Select Case Port
Select Case port
Case ScanHost.SSHPort
sHost.SSH = Not err
scanHost.SSH = isPortOpen
Case ScanHost.TelnetPort
sHost.Telnet = Not err
scanHost.Telnet = isPortOpen
Case ScanHost.HTTPPort
sHost.HTTP = Not err
scanHost.HTTP = isPortOpen
Case ScanHost.HTTPSPort
sHost.HTTPS = Not err
scanHost.HTTPS = isPortOpen
Case ScanHost.RloginPort
sHost.Rlogin = Not err
scanHost.Rlogin = isPortOpen
Case ScanHost.RDPPort
sHost.RDP = Not err
scanHost.RDP = isPortOpen
Case ScanHost.VNCPort
sHost.VNC = Not err
scanHost.VNC = isPortOpen
End Select
Next
End If
Try
sHost.HostName = Net.Dns.GetHostEntry(sHost.HostIp).HostName
scanHost.HostName = Dns.GetHostEntry(scanHost.HostIp).HostName
Catch ex As Exception
End Try
If String.IsNullOrEmpty(sHost.HostName) Then sHost.HostName = sHost.HostIp
If String.IsNullOrEmpty(scanHost.HostName) Then scanHost.HostName = scanHost.HostIp
_ScannedHosts.Add(sHost)
RaiseEvent HostScanned(sHost, hCount, Hosts.Count)
_scannedHosts.Add(scanHost)
RaiseEvent HostScanned(scanHost, hostCount, _ipAddresses.Count)
Next
RaiseEvent ScanComplete(_ScannedHosts)
RaiseEvent ScanComplete(_scannedHosts)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "StartScanBG failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Function IsHostAlive(ByVal Host As String) As Boolean
Private Shared Function IsHostAlive(ByVal ipAddress As IPAddress) As Boolean
Dim pingSender As New Ping
Dim pReply As PingReply
Dim pingReply As PingReply
Try
pReply = pingSender.Send(Host)
pingReply = pingSender.Send(ipAddress)
If pReply.Status = IPStatus.Success Then
If pingReply.Status = IPStatus.Success Then
Return True
Else
Return False
@@ -483,60 +419,67 @@ Namespace Tools
End Try
End Function
Private Shared Function IpAddressArrayFromRange(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress) As IPAddress()
Dim startIpAddress As IPAddress = IpAddressMin(ipAddress1, ipAddress2)
Dim endIpAddress As IPAddress = IpAddressMax(ipAddress1, ipAddress2)
Private Function GetIPRange(ByVal fromIP As String, ByVal toIP As String) As ArrayList
Try
Dim arrIPs As New ArrayList
Dim startAddress As Int32 = IpAddressToInt32(startIpAddress)
Dim endAddress As Int32 = IpAddressToInt32(endIpAddress)
Dim addressCount As Integer = endAddress - startAddress
Dim ipFrom As String() = fromIP.Split(".")
Dim ipTo As String() = toIP.Split(".")
Dim addressArray(addressCount) As IPAddress
Dim index As Integer = 0
For address As Int32 = startAddress To endAddress
addressArray(index) = IpAddressFromInt32(address)
index = index + 1
Next
While Not matchIP(ipFrom, ipTo)
arrIPs.Add(String.Format("{0}.{1}.{2}.{3}", ipFrom(0), ipFrom(1), ipFrom(2), ipFrom(3)))
ipFrom(3) += 1
If ipFrom(3) > 255 Then
ipFrom(3) = 0
ipFrom(2) += 1
If ipFrom(2) > 255 Then
ipFrom(2) = 0
ipFrom(1) += 1
If ipFrom(1) > 255 Then
ipFrom(1) = 0
ipFrom(0) += 1
If ipFrom(0) > 255 Then
ipFrom(0) = 0
End If
End If
End If
End If
End While
Return arrIPs
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "GetIPRange failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
Return Nothing
End Try
Return addressArray
End Function
Private Function matchIP(ByVal fromIP As String(), ByVal toIP As String()) As Boolean
Try
For c As Integer = 0 To fromIP.Length - 1
If c = fromIP.Length - 1 Then
If Not fromIP(c) = toIP(c) + 1 Then
Return False
End If
Else
If Not fromIP(c) = toIP(c) Then
Return False
End If
End If
Next
Return True
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "matchIP failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
Return False
End Try
Private Shared Function IpAddressMin(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress) As IPAddress
If (IpAddressCompare(ipAddress1, ipAddress2) < 0) Then ' ipAddress1 < ipAddress2
Return ipAddress1
Else
Return ipAddress2
End If
End Function
Private Shared Function IpAddressMax(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress) As IPAddress
If (IpAddressCompare(ipAddress1, ipAddress2) > 0) Then ' ipAddress1 > ipAddress2
Return ipAddress1
Else
Return ipAddress2
End If
End Function
Private Shared Function IpAddressCompare(ByVal ipAddress1 As IPAddress, ByVal ipAddress2 As IPAddress) As Integer
Return IpAddressToInt32(ipAddress1) - IpAddressToInt32(ipAddress2)
End Function
Private Shared Function IpAddressToInt32(ByVal ipAddress As IPAddress) As Int32
If Not ipAddress.AddressFamily = Sockets.AddressFamily.InterNetwork Then Throw New ArgumentException("ipAddress")
Dim addressBytes As Byte() = ipAddress.GetAddressBytes() ' in network order (big-endian)
If BitConverter.IsLittleEndian Then Array.Reverse(addressBytes) ' to host order (little-endian)
Debug.Assert(addressBytes.Length = 4)
Return BitConverter.ToInt32(addressBytes, 0)
End Function
Private Shared Function IpAddressFromInt32(ByVal ipAddress As Int32) As IPAddress
Dim addressBytes As Byte() = BitConverter.GetBytes(ipAddress) ' in host order
If BitConverter.IsLittleEndian Then Array.Reverse(addressBytes) ' to network order (big-endian)
Debug.Assert(addressBytes.Length = 4)
Return New IPAddress(addressBytes)
End Function
#End Region
#Region "Events"
Public Event BeginHostScan(ByVal host As String)
Public Event HostScanned(ByVal scanHost As ScanHost, ByVal scannedHostCount As Integer, ByVal totalHostCount As Integer)
Public Event ScanComplete(ByVal hosts As List(Of ScanHost))
#End Region
End Class
End Namespace

View File

@@ -305,9 +305,9 @@ Namespace Tree
Public Shared Sub CloneNode(ByVal oldTreeNode As TreeNode, Optional ByVal parentNode As TreeNode = Nothing)
Try
If GetNodeType(oldTreeNode) = Type.Connection Then
Dim oldConnectionInfo As Connection.Info = oldTreeNode.Tag
Dim oldConnectionInfo As Connection.Info = DirectCast(oldTreeNode.Tag, Connection.Info)
Dim newConnectionInfo As Connection.Info = oldConnectionInfo.Copy
Dim newConnectionInfo As Connection.Info = oldConnectionInfo.Copy()
Dim newInheritance As Connection.Info.Inheritance = oldConnectionInfo.Inherit.Copy()
newInheritance.Parent = newConnectionInfo
newConnectionInfo.Inherit = newInheritance
@@ -332,8 +332,10 @@ Namespace Tree
parentNode.Nodes.Add(newTreeNode)
End If
ElseIf GetNodeType(oldTreeNode) = Type.Container Then
Dim newContainerInfo As Container.Info = TryCast(oldTreeNode.Tag, Container.Info).Copy
Dim newConnectionInfo As Connection.Info = TryCast(oldTreeNode.Tag, Container.Info).ConnectionInfo.Copy
Dim oldContainerInfo As Container.Info = DirectCast(oldTreeNode.Tag, Container.Info)
Dim newContainerInfo As Container.Info = oldContainerInfo.Copy()
Dim newConnectionInfo As Connection.Info = oldContainerInfo.ConnectionInfo.Copy()
newContainerInfo.ConnectionInfo = newConnectionInfo
Dim newTreeNode As New TreeNode(newContainerInfo.Name)

View File

@@ -38,34 +38,34 @@ Namespace UI
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(PortScan))
Me.ipStart = New IPTextBox.IPTextBox
Me.ipEnd = New IPTextBox.IPTextBox
Me.lblStartIP = New System.Windows.Forms.Label
Me.lblEndIP = New System.Windows.Forms.Label
Me.btnScan = New System.Windows.Forms.Button
Me.pnlDivider = New System.Windows.Forms.Panel
Me.splContainer = New System.Windows.Forms.SplitContainer
Me.lvHosts = New System.Windows.Forms.ListView
Me.btnCancel = New System.Windows.Forms.Button
Me.btnImport = New System.Windows.Forms.Button
Me.cbProtocol = New System.Windows.Forms.ComboBox
Me.lblOnlyImport = New System.Windows.Forms.Label
Me.clmHost = New System.Windows.Forms.ColumnHeader
Me.clmSSH = New System.Windows.Forms.ColumnHeader
Me.clmTelnet = New System.Windows.Forms.ColumnHeader
Me.clmHTTP = New System.Windows.Forms.ColumnHeader
Me.clmHTTPS = New System.Windows.Forms.ColumnHeader
Me.clmRlogin = New System.Windows.Forms.ColumnHeader
Me.clmRDP = New System.Windows.Forms.ColumnHeader
Me.clmVNC = New System.Windows.Forms.ColumnHeader
Me.clmOpenPorts = New System.Windows.Forms.ColumnHeader
Me.clmClosedPorts = New System.Windows.Forms.ColumnHeader
Me.prgBar = New System.Windows.Forms.ProgressBar
Me.pnlPorts = New System.Windows.Forms.Panel
Me.portEnd = New System.Windows.Forms.NumericUpDown
Me.portStart = New System.Windows.Forms.NumericUpDown
Me.Label2 = New System.Windows.Forms.Label
Me.Label1 = New System.Windows.Forms.Label
Me.ipStart = New IPTextBox.IPTextBox()
Me.ipEnd = New IPTextBox.IPTextBox()
Me.lblStartIP = New System.Windows.Forms.Label()
Me.lblEndIP = New System.Windows.Forms.Label()
Me.btnScan = New System.Windows.Forms.Button()
Me.pnlDivider = New System.Windows.Forms.Panel()
Me.splContainer = New System.Windows.Forms.SplitContainer()
Me.lvHosts = New System.Windows.Forms.ListView()
Me.btnCancel = New System.Windows.Forms.Button()
Me.btnImport = New System.Windows.Forms.Button()
Me.cbProtocol = New System.Windows.Forms.ComboBox()
Me.lblOnlyImport = New System.Windows.Forms.Label()
Me.clmHost = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmSSH = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmTelnet = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmHTTP = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmHTTPS = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmRlogin = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmRDP = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmVNC = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmOpenPorts = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.clmClosedPorts = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.prgBar = New System.Windows.Forms.ProgressBar()
Me.pnlPorts = New System.Windows.Forms.Panel()
Me.portEnd = New System.Windows.Forms.NumericUpDown()
Me.portStart = New System.Windows.Forms.NumericUpDown()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.splContainer.Panel1.SuspendLayout()
Me.splContainer.Panel2.SuspendLayout()
Me.splContainer.SuspendLayout()
@@ -125,7 +125,7 @@ Namespace UI
'pnlDivider
'
Me.pnlDivider.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.pnlDivider.BackColor = System.Drawing.Color.DimGray
Me.pnlDivider.Location = New System.Drawing.Point(0, 0)
Me.pnlDivider.Name = "pnlDivider"
@@ -135,8 +135,8 @@ Namespace UI
'splContainer
'
Me.splContainer.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.splContainer.FixedPanel = System.Windows.Forms.FixedPanel.Panel2
Me.splContainer.IsSplitterFixed = True
Me.splContainer.Location = New System.Drawing.Point(0, 74)
@@ -161,8 +161,8 @@ Namespace UI
'lvHosts
'
Me.lvHosts.Anchor = CType((((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.lvHosts.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.lvHosts.FullRowSelect = True
Me.lvHosts.GridLines = True
@@ -271,7 +271,7 @@ Namespace UI
'prgBar
'
Me.prgBar.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.prgBar.Location = New System.Drawing.Point(7, 50)
Me.prgBar.Name = "prgBar"
Me.prgBar.Size = New System.Drawing.Size(432, 16)
@@ -338,6 +338,7 @@ Namespace UI
Me.Controls.Add(Me.lblStartIP)
Me.Controls.Add(Me.ipEnd)
Me.Controls.Add(Me.ipStart)
Me.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "PortScan"
Me.TabText = "Port Scan"
@@ -460,6 +461,7 @@ Namespace UI
Else
btnScan.Text = My.Language.strButtonScan
End If
SetPrgBar(0, 100)
End If
End Sub
@@ -480,13 +482,15 @@ Namespace UI
Try
scanning = True
SwitchButtonText()
SetPrgBar(0, 100)
lvHosts.Items.Clear()
Dim ipAddressStart As Net.IPAddress = Net.IPAddress.Parse(ipStart.Text)
Dim ipAddressEnd As Net.IPAddress = Net.IPAddress.Parse(ipEnd.Text)
If psMode = Tools.PortScan.PortScanMode.Import Then
pScanner = New Tools.PortScan.Scanner(ipStart.Text, ipEnd.Text)
pScanner = New Tools.PortScan.Scanner(ipAddressStart, ipAddressEnd)
Else
pScanner = New Tools.PortScan.Scanner(ipStart.Text, ipEnd.Text, portStart.Value, portEnd.Value)
pScanner = New Tools.PortScan.Scanner(ipAddressStart, ipAddressEnd, portStart.Value, portEnd.Value)
End If
AddHandler pScanner.BeginHostScan, AddressOf Event_BeginHostScan
@@ -500,7 +504,7 @@ Namespace UI
End Sub
Private Sub StopScan()
pScanner.StopScan()
If pScanner IsNot Nothing Then pScanner.StopScan()
scanning = False
SwitchButtonText()
End Sub
@@ -534,11 +538,19 @@ Namespace UI
SetPrgBar(AlreadyScanned, ToBeScanned)
End Sub
Private Sub Event_ScanComplete(ByVal Hosts As ArrayList)
Private Sub Event_ScanComplete(ByVal hosts As List(Of Tools.PortScan.ScanHost))
scanning = False
SwitchButtonText()
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, "Scan complete!")
End Sub
Private Sub portStart_Enter(sender As System.Object, e As EventArgs) Handles portStart.Enter
portStart.Select(0, portStart.Text.Length)
End Sub
Private Sub portEnd_Enter(sender As System.Object, e As System.EventArgs) Handles portEnd.Enter
portEnd.Select(0, portEnd.Text.Length)
End Sub
#End Region
End Class
End Namespace

View File

@@ -129,10 +129,10 @@ Namespace UI
With data
impersonator.StartImpersonation(.Domain, .Username, .Password)
If Not terminalSessions.OpenConnection(.Hostname) Then Return
serverHandle = terminalSessions.ServerHandle
serverHandle = terminalSessions.OpenConnection(.Hostname)
If serverHandle = 0 Then Return
GetSessions(terminalSessions)
GetSessions(terminalSessions, serverHandle)
End With
_retrieved = True
@@ -149,11 +149,11 @@ Namespace UI
End Sub
' Get sessions from an already impersonated and connected TerminalSessions object
Private Sub GetSessions(ByVal terminalSessions As mRemoteNG.Connection.Protocol.RDP.TerminalSessions)
Dim rdpSessions As mRemoteNG.Connection.Protocol.RDP.Sessions = terminalSessions.GetSessions
Private Sub GetSessions(ByVal terminalSessions As mRemoteNG.Connection.Protocol.RDP.TerminalSessions, ByVal serverHandle As Long)
Dim rdpSessions As mRemoteNG.Connection.Protocol.RDP.SessionsCollection = terminalSessions.GetSessions(serverHandle)
For Each session As mRemoteNG.Connection.Protocol.RDP.Session In rdpSessions
Dim item As New ListViewItem
item.Tag = session.SessionID
item.Tag = session.SessionId
item.Text = session.SessionUser
item.SubItems.Add(session.SessionState)
item.SubItems.Add(Replace(session.SessionName, vbNewLine, ""))
@@ -174,13 +174,13 @@ Namespace UI
impersonator.StartImpersonation(.Domain, .Username, .Password)
If terminalSessions.OpenConnection(.Hostname) Then
serverHandle = terminalSessions.ServerHandle
terminalSessions.KillSession(.SessionId)
serverHandle = terminalSessions.OpenConnection(.Hostname)
If Not serverHandle = 0 Then
terminalSessions.KillSession(serverHandle, .SessionId)
End If
ClearList()
GetSessions(terminalSessions)
GetSessions(terminalSessions, serverHandle)
_retrieved = True
End With
@@ -217,7 +217,13 @@ Namespace UI
End Sub
Private Sub menuSession_Opening(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs)
Dim connectionInfo As mRemoteNG.Connection.Info = TryCast(mRemoteNG.Tree.Node.SelectedNode.Tag, mRemoteNG.Connection.Info)
Dim connectionInfo As mRemoteNG.Connection.Info
If (mRemoteNG.Tree.Node.TreeView Is Nothing OrElse mRemoteNG.Tree.Node.SelectedNode Is Nothing) Then
connectionInfo = Nothing
Else
connectionInfo = TryCast(mRemoteNG.Tree.Node.SelectedNode.Tag, mRemoteNG.Connection.Info)
End If
If connectionInfo Is Nothing Then
sessionMenuLogoff.Enabled = False
sessionMenuRetrieve.Enabled = False

View File

@@ -1088,6 +1088,7 @@ Namespace UI
End If
newContainerInfo.ConnectionInfo = New mRemoteNG.Connection.Info(newContainerInfo)
newContainerInfo.ConnectionInfo.Name = newNode.Text
' We can only inherit from a container node, not the root node or connection nodes
If mRemoteNG.Tree.Node.GetNodeType(parentNode) = mRemoteNG.Tree.Node.Type.Container Then

View File

@@ -190,10 +190,7 @@ Namespace UI
If e.Error IsNot Nothing Then Throw e.Error
If MessageBox.Show(Language.strUpdateDownloadComplete, Language.strMenuCheckForUpdates, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) = System.Windows.Forms.DialogResult.OK Then
Shutdown.BeforeQuit()
Process.Start(_appUpdate.CurrentUpdateInfo.UpdateFilePath)
System.Windows.Forms.Application.Exit()
Shutdown.Quit(_appUpdate.CurrentUpdateInfo.UpdateFilePath)
Return
Else
File.Delete(_appUpdate.CurrentUpdateInfo.UpdateFilePath)

View File

@@ -600,13 +600,13 @@
<applicationSettings>
<mRemoteNG.My.MySettings>
<setting name="SupportedUICultures" serializeAs="String">
<value>de,en,en-US,es-AR,es,fr,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN</value>
<value>de,el,en,en-US,es-AR,es,fr,hu,it,nb-NO,nl,pt,pt-BR,pl,ru,uk,zh-CN,zh-TW</value>
</setting>
<setting name="UpdateChannel" serializeAs="String">
<value>release</value>
</setting>
<setting name="AnnouncementAddress" serializeAs="String">
<value>https://update.mremoteng.org/announcement-beta.txt</value>
<value>https://update.mremoteng.org/announcement.txt</value>
</setting>
</mRemoteNG.My.MySettings>
</applicationSettings>

View File

@@ -379,6 +379,7 @@
<EmbeddedResource Include="Language\Language.de.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.el.resx" />
<EmbeddedResource Include="Language\Language.en-US.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
@@ -386,6 +387,7 @@
<EmbeddedResource Include="Language\Language.es.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.hu.resx" />
<EmbeddedResource Include="Language\Language.it.resx" />
<EmbeddedResource Include="Language\Language.nb-NO.resx" />
<EmbeddedResource Include="Language\Language.nl.resx">
@@ -412,6 +414,7 @@
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.zh-CN.resx" />
<EmbeddedResource Include="Language\Language.zh-TW.resx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>