mirror of
https://github.com/mRemoteNG/mRemoteNG.git
synced 2026-02-17 22:11:48 +08:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3d64fbef49 | ||
|
|
869c2726bb | ||
|
|
2e663df42a | ||
|
|
0a82828d2e | ||
|
|
13c1d049fc | ||
|
|
62feba1691 | ||
|
|
3cb8784996 | ||
|
|
81d150f80a | ||
|
|
9ebce266ec | ||
|
|
42bcf8db31 | ||
|
|
ff2bbcf650 | ||
|
|
ba55958327 | ||
|
|
2a67f493f6 | ||
|
|
06892deedf | ||
|
|
d12ea40845 | ||
|
|
3f21151331 | ||
|
|
c91f5e5cba | ||
|
|
9e90d17d80 | ||
|
|
2e67bbf6a1 | ||
|
|
ceec9749b9 | ||
|
|
f674b5bfeb | ||
|
|
b3e541c627 | ||
|
|
3389a152be | ||
|
|
662fcfa318 | ||
|
|
06baec9c55 | ||
|
|
270699c26b | ||
|
|
bc699a04ec | ||
|
|
3639e75f5b | ||
|
|
eef14ebc29 | ||
|
|
2568d2b750 | ||
|
|
58a57d7a7d |
27
BUILD.CMD
27
BUILD.CMD
@@ -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
|
||||
|
||||
@@ -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.
@@ -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%
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -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>&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>&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>&Löschen</value>
|
||||
</data>
|
||||
<data name="strOptionsThemeButtonNew" xml:space="preserve">
|
||||
<value>&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>&Warnen wenn Verbindungen beendet werden</value>
|
||||
</data>
|
||||
<data name="strRadioCloseWarnExit" xml:space="preserve">
|
||||
<value>Warne mich nur beim B&eenden von mRemoteNG</value>
|
||||
</data>
|
||||
<data name="strRadioCloseWarnMultiple" xml:space="preserve">
|
||||
<value>Nur beim Beenden &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>
|
||||
|
||||
348
mRemoteV1/Language/Language.el.resx
Normal file
348
mRemoteV1/Language/Language.el.resx
Normal 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>&Αναζήτηση...</value>
|
||||
</data>
|
||||
<data name="strButtonCancel" xml:space="preserve">
|
||||
<value>&Ακύρωση</value>
|
||||
</data>
|
||||
<data name="strButtonChange" xml:space="preserve">
|
||||
<value>Αλλαγή</value>
|
||||
</data>
|
||||
<data name="strButtonClose" xml:space="preserve">
|
||||
<value>&Κλείσιμο</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>&Εισαγωγή</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>& Νέο</value>
|
||||
</data>
|
||||
<data name="strButtonOK" xml:space="preserve">
|
||||
<value>&ΟΚ</value>
|
||||
</data>
|
||||
<data name="strButtonProperties" xml:space="preserve">
|
||||
<value>Ιδιότητες</value>
|
||||
</data>
|
||||
<data name="strButtonScan" xml:space="preserve">
|
||||
<value>&Σάρωση</value>
|
||||
</data>
|
||||
<data name="strButtonStop" xml:space="preserve">
|
||||
<value>&Διακοπή</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>
|
||||
@@ -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>
|
||||
|
||||
438
mRemoteV1/Language/Language.hu.resx
Normal file
438
mRemoteV1/Language/Language.hu.resx
Normal 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>&Böngészés...</value>
|
||||
</data>
|
||||
<data name="strButtonCancel" xml:space="preserve">
|
||||
<value>&Mégsem</value>
|
||||
</data>
|
||||
<data name="strButtonChange" xml:space="preserve">
|
||||
<value>Módosít</value>
|
||||
</data>
|
||||
<data name="strButtonClose" xml:space="preserve">
|
||||
<value>Be&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>&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>&Új</value>
|
||||
</data>
|
||||
<data name="strButtonOK" xml:space="preserve">
|
||||
<value>&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>
|
||||
@@ -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>
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
2164
mRemoteV1/Language/Language.zh-TW.resx
Normal file
2164
mRemoteV1/Language/Language.zh-TW.resx
Normal file
File diff suppressed because it is too large
Load Diff
6
mRemoteV1/My Project/Settings.Designer.vb
generated
6
mRemoteV1/My Project/Settings.Designer.vb
generated
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user