Compare commits

..

96 Commits

Author SHA1 Message Date
Riley McArdle
0ff00e59ba Add setting for update channel. 2013-03-04 21:52:28 -06:00
Riley McArdle
850a342e38 Prepare CHANGELOG.TXT for release of 1.71 Beta 1. 2013-03-04 15:54:49 -06:00
Riley McArdle
1caba06aca Fix issue MR-362 - Rename 'Screenshot Manager' to 'Screenshots' on the View menu to match Panel name 2013-03-04 13:20:49 -06:00
Riley McArdle
a115196cee Disable Fullscreen item on tab context menu if redirect keys is enabled for RDP connection. Fix automatic RDP resize when redirect keys is enabled. Fix automatic RDP resize when SmartSize setting is changed. 2013-03-04 12:55:46 -06:00
Riley McArdle
5f451de94e Fix issue MR-352 - Passwords with " (quotation mark) and # (hash key) characters make mRemoteNG to open PuttyNG dialog 2013-03-02 01:41:00 -06:00
Riley McArdle
a4921fc564 Add automatic resizing of RDP connections when the window is resized or when toggling full screen mode. 2013-03-01 17:04:28 -06:00
Riley McArdle
7d1d03e8cd Fix connection bar being shown when connecting to an RDP connection with redirect key combinations enabled. 2013-02-28 22:46:07 -06:00
Riley McArdle
92c18a45ba Merge branch 'release/1.70' into develop 2013-02-28 14:57:41 -06:00
Riley McArdle
a61fb5c6d6 Fix issue MR-350 - VerifyDatabaseVersion (Config.Connections.Save) failed. Version string portion was too short or too long. 2013-02-28 14:56:51 -06:00
Riley McArdle
e1deaf73ea Fix issue MR-117 - Remote Session Info Window / Tab does not populate 2013-02-27 19:20:49 -06:00
Riley McArdle
7d6d602477 Merge branch 'release/1.70' into develop
Conflicts:
	CHANGELOG.TXT
2013-02-27 14:44:17 -06:00
Riley McArdle
b0439adee4 Fix issue MR-339 - Connection group collapses with just one click
(cherry picked from commit 0a7c88a853)

Conflicts:
	CHANGELOG.TXT
2013-02-27 14:41:53 -06:00
Riley McArdle
0a7c88a853 Fix issue MR-339 - Connection group collapses with just one click 2013-02-27 14:39:27 -06:00
Riley McArdle
b735e6d3e4 Fix tabs not closing on double-click when the active tab is a PuTTY connection.
(cherry picked from commit 960ecba12a)

Conflicts:
	CHANGELOG.TXT
2013-02-27 14:15:20 -06:00
Riley McArdle
960ecba12a Fix tabs not closing on double-click when the active tab is a PuTTY connection. 2013-02-27 14:12:49 -06:00
Riley McArdle
3988820db9 Fix issue MR-342 - Incorrect view in config pane of new connection after viewing default inheritance 2013-02-26 21:06:47 -06:00
Riley McArdle
22ea7055c9 Fix issue MR-142 - Start of mRemoteNG takes about one minute and consumes excessive CPU 2013-02-26 20:46:49 -06:00
Riley McArdle
edba3fbea0 Merge branch 'release/1.70' into develop
Conflicts:
	CHANGELOG.TXT
	mRemoteV1/Forms/frmOptions.resx
	mRemoteV1/Forms/frmOptions.vb
2013-02-26 20:02:18 -06:00
Riley McArdle
51e4bc7eae Move search prompt to resource string. 2013-02-26 16:19:06 -06:00
Riley McArdle
3e680235ee Improve appearance and discoverability of the connection search box. 2013-02-26 16:13:45 -06:00
Riley McArdle
d2459de700 Fix issue MR-344 - Move "Always show panel tabs" option 2013-02-26 15:16:00 -06:00
Riley McArdle
f9f265b409 Fix issue MR-340 - Object reference not set to an instance of an object. 2013-02-26 15:08:55 -06:00
Riley McArdle
c218f0362e Merge branch 'release/1.70' into develop
Conflicts:
	CHANGELOG.TXT
2013-02-25 18:47:20 -06:00
Riley McArdle
fb68ed099e Update CHANGELOG.TXT for release of 1.70 Release Candidate 2. 2013-02-25 18:33:34 -06:00
Riley McArdle
01133b3d9f Fix issue MR-338 - PuTTYNG crashing on fresh install of mRemoteNG 2013-02-25 18:32:54 -06:00
Riley McArdle
52461b758b Revert "Fixed issue MR-229 - Integrated PuTTY doesn't work in Windows 8 RP"
This reverts commit c29c5015d5.
2013-02-25 18:32:07 -06:00
Riley McArdle
3bc5ceede4 Fix issue MR-332 - Can't select different tab with one click after disconnecting existing tab
(cherry picked from commit 73f71050a0)

Conflicts:
	CHANGELOG.TXT
2013-02-25 18:16:22 -06:00
Riley McArdle
a3c9c667b4 Add detection of newer versions of connection files and database schemata and refuse to open them to avoid data loss. 2013-02-24 16:46:37 -06:00
Riley McArdle
73f71050a0 Fix issue MR-332 - Can't select different tab with one click after disconnecting existing tab 2013-02-24 16:02:04 -06:00
Riley McArdle
94d901ec4c Increment version to 1.71. 2013-02-24 15:40:19 -06:00
Riley McArdle
9e67f36615 Fix issue MR-330 - Portable version saves log to user's profile folder 2013-02-24 15:38:48 -06:00
Riley McArdle
bf6f166d8f Add feature MR-329 - Create Option to disable the "Quick: " prefix 2013-02-24 13:15:44 -06:00
Riley McArdle
1de5ab43d6 Fix issue MR-67 - Sort does not recursively sort 2013-02-24 12:49:38 -06:00
Riley McArdle
39dd75dbde Fix issue MR-121 - Config pane not sorting properties correctly when switching between alphabetical and categorized view 2013-02-24 00:04:45 -06:00
Riley McArdle
b509f75c17 Fix issue MR-130 - Issues duplicating folders 2013-02-23 23:38:16 -06:00
Riley McArdle
877649b80a Fix issue MR-158 - Password field not accepting Pipe 2013-02-23 22:14:48 -06:00
Riley McArdle
b5846f2286 Fix issue MR-333 - Unnecessary prompt for 'close all open connections?' 2013-02-23 21:34:48 -06:00
Riley McArdle
80dd98e7fb Merge branch 'release/1.70' into develop 2013-02-23 21:03:21 -06:00
Riley McArdle
7c3a349bd6 Fix typo in CHANGELOG.TXT. 2013-02-23 21:02:13 -06:00
Riley McArdle
84d3f7d30b Fixed KiTTY opening in a separate window when using a saved session. 2013-02-22 19:38:43 -06:00
Riley McArdle
c29c5015d5 Fixed issue MR-229 - Integrated PuTTY doesn't work in Windows 8 RP
Fixed issue MR-264 - Windows 8 support
2013-02-21 23:58:04 -06:00
Riley McArdle
1f776fb9bf Add timeout to WaitForInputIdle in Connection.Protocol.PuttyBase.Connect(). 2013-02-21 23:54:29 -06:00
Riley McArdle
f90eb94484 Fix issue MR-322 - Connection Button not listing servers 2013-02-21 22:23:58 -06:00
Riley McArdle
80f35cea71 Refactor Security.Crypt.Decrypt(). 2013-02-21 21:08:19 -06:00
Riley McArdle
a12978967a Change "Fix" to "Fixed" in CHANGELOG.TXT. 2013-02-21 19:46:50 -06:00
Riley McArdle
8cce811ce5 Fixed "Decryption failed. Padding is invalid and cannot be removed." notification. 2013-02-21 19:46:12 -06:00
Riley McArdle
adb45cec98 Change PuttyBase.Connect() to use MaxPuttyWaitTime setting instead of hard coded value. 2013-02-19 20:30:42 -06:00
Riley McArdle
c09ea26a3c Fix issue MR-183 - Error trying to save connections when using SQL - Invalid column name _parentConstantId 2013-02-19 19:51:20 -06:00
Riley McArdle
d71bf494df Fix issue MR-317 - Difficulty right-clicking on Tab
Fix issue MR-318 - Wrong tab gets selected when tab names overflow on the tab bar
2013-02-19 17:25:36 -06:00
Riley McArdle
e82a9c5228 Fix issue MR-225 - Tabs do not open in a panel until multiple panels are displayed.
Fix issue MR-321 - New connection panel doesn't get panel header if its the only one or is moved
Added option to always show panel tabs
2013-02-19 15:36:30 -06:00
Riley McArdle
a7d976a0a7 Update CHANGELOG.TXT for release of 1.70 Beta 2. 2013-02-18 13:34:08 -06:00
Riley McArdle
d09727a9cd Fix program exiting immediately and possible NullReferenceException in frmMain_FormClosing. 2013-02-18 13:28:47 -06:00
Riley McArdle
30c3b0111d Split 1.70 Beta 1 and 1.70 Beta 2 changes in CHANGELOG.TXT. 2013-02-18 13:14:40 -06:00
Riley McArdle
4ea588d897 Fix issue MR-175 - Problem with focus when 2 or more PuTTY sessions opened
Fix issue MR-190 - Can't click on tab/session
Fix issue MR-224 - Session tabs become un-clickable after duplicating a tab or opening a new one in the same panel
2013-02-17 18:47:28 -06:00
Riley McArdle
f7dfe0ecd0 Fix issue MR-235 - Config file gets corrupted when leaving the password entry box with ESC 2013-02-17 17:50:51 -06:00
Riley McArdle
323b3fb6de Fix installer not detecting some installs of .NET Framework 3.0. 2013-02-17 16:43:00 -06:00
Riley McArdle
e6f1c947be Fix issue MR-174 - Trailing Space on a Hostname/IP will cause the connection not to happen. 2013-02-17 16:00:10 -06:00
Riley McArdle
a01663d2ca Fix .NET Framework 3.0 detection in installer. 2013-02-15 22:53:35 -06:00
Riley McArdle
936f2e6655 Fix MR-313 - PuTTY window not maximized when loading from saved session 2013-02-15 21:54:48 -06:00
Riley McArdle
67a6d60c62 Updated translations with data from Crowdin.
Added translations for Spanish (Argentina), Italian, Portuguese, Chinese (Simplified).
2013-02-15 20:44:21 -06:00
Riley McArdle
85e6797c4f Update copyright year in installer. 2013-02-15 20:12:57 -06:00
Riley McArdle
22322bc3ba Change ConDefaultUseCredSsp to be a User scoped setting instead of Application scoped. 2013-02-15 20:12:37 -06:00
Riley McArdle
b4a3b14334 Fix issue MR-85 - Microsoft .NET Framework warning
Fix issue MR-86 - Citrix GDI+ Error when screen is locked
Fix issue MR-299 - mRemoteNG crashes while using remotely (Windows XP remote desktop)
Change target .NET Framework to 3.0 instead of 2.0
2013-02-15 20:11:03 -06:00
Riley McArdle
a3ac44af55 Fix issue MR-165 - Can't close About window if it is the last tab 2013-02-15 17:09:24 -06:00
Riley McArdle
d773f78ff5 Fix issue MR-47 - Silent Installation Prompts for Language
(cherry picked from commit 8e967a983aded875a97c3e9eeab2837cab00edb4)
2013-02-15 15:37:02 -06:00
Riley McArdle
76ee48269b Improve LoadFromXML to handle files from older versions of mRemoteNG that may have set ConfVersion incorrectly. 2013-02-15 15:32:00 -06:00
Riley McArdle
35f442bad6 Fix issue MR-233 - Backslash at end of password prevents success of putty invocation and corresponding auto-logon 2013-02-15 14:10:55 -06:00
Riley McArdle
43c001b4ba Rename UI.Window.Export.vb. 2013-02-14 20:57:16 -06:00
Riley McArdle
182b097902 Fix issue MR-196 - Cannot export list without usernames and passwords 2013-02-14 20:56:09 -06:00
Riley McArdle
f841f4b41c Fix issue MR-81 - Problem Duplicating Folder w/ Sub-Folders 2013-02-14 15:20:08 -06:00
Riley McArdle
67d07e5f0f Fix issue MR-58 - Bug when duplicating connection in connection view 2013-02-14 14:37:43 -06:00
Riley McArdle
6d15e3649e Fix issue MR-71 - Minimizing mRemoteNG causes temporary re-size of Putty sessions (windows)
Fix issue MR-199 - when using screen inside putty, screen becomes dead when reduce mremoteNG
Fix issue MR-284 - SSH: Text not showing properly
2013-02-14 14:12:48 -06:00
Riley McArdle
4fab4d91d5 Fix typing certain characters in the Config pane. 2013-02-14 12:45:10 -06:00
Riley McArdle
61b70047c6 Fix issue MR-214 - Hostname/IP reset 2013-02-14 12:35:11 -06:00
Riley McArdle
8c3cdc39fb Fix issue MR-96 - When pressing SHIFT+F4 to create a new connection inside a folder, the new connections doesn't inherit any properties from its parent
Fix issue MR-166 - Inheritance button is disabled on some connections
2013-02-12 22:11:14 -06:00
Riley McArdle
a871074845 Fix MR-178 - 3 different panels crashes all connections 2013-02-12 21:31:22 -06:00
Riley McArdle
155bc07466 Fix issue MR-54 - Error When disconnecting from SSL channel RDP 2013-02-12 21:25:11 -06:00
Riley McArdle
d32699008c Add MR-80 to CHANGELOG.TXT. Fixed along with MR-181. 2013-02-12 21:09:17 -06:00
Riley McArdle
28a8a3debd Fix issue MR-202 - The Connection "Tab" show Ampersands as underscores. 2013-02-12 21:05:50 -06:00
Riley McArdle
da50517113 Fix issue MR-101 - Collapse all folders causes a NullReferenceException 2013-02-12 21:01:49 -06:00
Riley McArdle
3079b45ab1 Fix issue MR-176 - Del key while editing connection name triggers 'Delete Connection' 2013-02-12 20:54:58 -06:00
Riley McArdle
62edfd2c50 Improved the use of Tab and Shift-Tab to cycle through entries in the Config grid. 2013-02-12 19:23:17 -06:00
Riley McArdle
becf48f347 Fix MR-167 Name and description of properties not show in inheritance list
Fix MR-171 Inherit configuration not showing friendly names for each inherit component
2013-02-12 16:44:43 -06:00
Riley McArdle
568170d525 Change default for "Check proper installation of components at startup" to false. 2013-02-12 15:41:10 -06:00
Riley McArdle
d853303bc6 encrypt RDGateway password when saving to SQL
(cherry picked from commit 0f136187a5)

Conflicts:
	mRemoteV1/Config/Config.Connections.Save.vb
2013-02-12 15:27:30 -06:00
Riley McArdle
5462242c39 Fix compiler warning about unused variable toolStrip. 2013-02-12 15:22:56 -06:00
Riley McArdle
cfa935df11 Fix RDGatewayPassword is unencrypted in confCons.xml file
(cherry picked from commit 5a97032f29)

Conflicts:
	mRemoteV1/Config/Config.Connections.Save.vb
2013-02-12 15:22:26 -06:00
Riley McArdle
818708dfb4 Fix issue MR-181 - Sessions on startup
Thanks to tbstudee
fa18d10f4a
2013-02-12 15:09:03 -06:00
Riley McArdle
3d26a1a028 Update copyright year. 2013-02-12 14:57:00 -06:00
Riley McArdle
5dcfb272d9 Remove default domain from UI.Window.ADImport.vb. 2013-02-12 12:39:26 -06:00
Riley McArdle
c634b0ccbc Remove line from CHANGELOG.TXT as it is a fix for a bug introduced in 1.70 Beta 1 and is not a change from 1.69. 2013-02-07 21:55:09 -06:00
Riley McArdle
c957be8774 Improve readability of new error checking in App.Runtime.Startup.CheckCompatibility(). 2013-02-07 21:53:40 -06:00
Riley McArdle
513356506b Improve error handling in UI.Window.Config.AddToolStripItems(). 2013-02-07 21:47:14 -06:00
Riley McArdle
f7754d2371 Fix issue MR-68 - Config Window Loses Options
Fix issue MR-277 - Inheritance configuration button not appear in configuration tab
2013-02-07 21:24:26 -06:00
Riley McArdle
aa9a642ade Fix issue MR-264 - Windows 8 support 2013-02-07 16:55:32 -06:00
Riley McArdle
7868b7e76b Add error checking to App.Runtime.Startup.CheckCompatibility() to fix issue MR-306 - Fatal .NET exception on program start. 2013-02-07 16:37:37 -06:00
61 changed files with 9903 additions and 926 deletions

View File

@@ -1,12 +1,97 @@
1.70 (XXXX-XX-XX):
Fix issue MR-77 - VerifyDatabaseVersion (Config.Connections.Save) failed. Version string portion was too short or too long.
Fix issue MR-78 - Renaming Connections
Fix issue MR-79 - MoveUp/Down item doesn't work + Sort button broken
Fix issue MR-93 - Regional settings problem when using SQL connection in mRemoteNG
Fix issue MR-97 - Integrate Dutch translation
Fix issue MR-98 - Integrate Russian and Ukranian translations
Fix issue MR-99 - Integrate Spanish translation
Fix issue MR-131 - RD Gateway does not respect setting for use different credentials
1.71 Beta 1 (2013-03-04):
Added feature MR-329 - Create Option to disable the "Quick: " prefix
Fixed issue MR-67 - Sort does not recursively sort
Fixed issue MR-117 - Remote Session Info Window / Tab does not populate
Fixed issue MR-121 - Config pane not sorting properties correctly when switching between alphabetical and categorized view
Fixed issue MR-130 - Issues duplicating folders
Fixed issue MR-142 - Start of mRemoteNG takes about one minute and consumes excessive CPU
Fixed issue MR-158 - Password field not accepting Pipe
Fixed issue MR-330 - Portable version saves log to user's profile folder
Fixed issue MR-333 - Unnecessary prompt for 'close all open connections?'
Fixed issue MR-342 - Incorrect view in config pane of new connection after viewing default inheritance
Fixed issue MR-352 - Passwords with " (quotation mark) and # (hash key) characters make mRemoteNG to open PuttyNG dialog
Fixed issue MR-362 - Rename 'Screenshot Manager' to 'Screenshots' on the View menu to match Panel name
Added detection of newer versions of connection files and database schemata. mRemoteNG will now refuse to open them to avoid data loss.
Improved appearance and discoverability of the connection search box.
If RDC 7.0 or higher is installed, the connection bar is no longer briefly shown when connecting to an RDP connection with redirect key combinations enabled.
If RDC 8.0 or higher is installed, RDP connections automatically adjust their size when the window is resized or when toggling full screen mode.
1.70 Release Candidate 3 (XXXX-XX-XX):
Fixed issue MR-339 - Connection group collapses with just one click
Fixed issue MR-340 - Object reference not set to an instance of an object.
Fixed issue MR-344 - Move "Always show panel tabs" option
Fixed issue MR-350 - VerifyDatabaseVersion (Config.Connections.Save) failed. Version string portion was too short or too long.
Fixed tabs not closing on double-click when the active tab is a PuTTY connection.
1.70 Release Candidate 2 (2013-02-25):
Fixed issue MR-332 - Can't select different tab with one click after disconnecting existing tab
Fixed issue MR-338 - PuTTYNG crashing on fresh install of mRemoteNG
Re-enabled PuTTYNG integration enhancements on Windows 8
1.70 Release Candidate 1 (2013-02-22):
Fixed issue MR-183 - Error trying to save connections when using SQL - Invalid column name _parentConstantId
Fixed issue MR-225 - Tabs do not open in a panel until multiple panels are displayed.
Fixed issue MR-229 - Integrated PuTTY doesn't work in Windows 8 RP
Fixed issue MR-264 - Windows 8 support
Fixed issue MR-317 - Difficulty right-clicking on Tab
Fixed issue MR-318 - Wrong tab gets selected when tab names overflow on the tab bar
Fixed issue MR-321 - New connection panel doesn't get panel header if its the only one or is moved
Fixed issue MR-322 - Connection Button not listing servers
Added option to always show panel tabs.
Fixed "Decryption failed. Padding is invalid and cannot be removed." notification.
Fixed KiTTY opening in a separate window when using a saved session.
1.70 Beta 2 (2013-02-18):
Fixed issue MR-47 - Silent Installation Prompts for Language
Fixed issue MR-54 - Error When disconnecting from SSL channel RDP
Fixed issue MR-58 - Bug when duplicating connection in connection view
Fixed issue MR-68 - Config Window Loses Options
Fixed issue MR-71 - Minimizing mRemoteNG causes temporary re-size of Putty sessions (windows)
Fixed issue MR-80 - Reconnect previous sessions
Fixed issue MR-81 - Problem Duplicating Folder w/ Sub-Folders
Fixed issue MR-85 - Microsoft .NET Framework warning
Fixed issue MR-86 - Citrix GDI+ Error when screen is locked
Fixed issue MR-96 - When pressing SHIFT+F4 to create a new connection inside a folder, the new connections doesn't inherit any properties from its parent
Fixed issue MR-101 - Collapse all folders causes a NullReferenceException
Fixed issue MR-165 - Can't close About window if it is the last tab
Fixed issue MR-166 - Inheritance button is disabled on some connections
Fixed issue MR-167 - Name and description of properties not show in inheritance list
Fixed issue MR-171 - Inherit configuration not showing friendly names for each inherit component
Fixed issue MR-172 - RDGatewayPassword is unencrypted in confCons.xml file
Fixed issue MR-174 - Trailing Space on a Hostname/IP will cause the connection not to happen.
Fixed issue MR-175 - Problem with focus when 2 or more PuTTY sessions opened
Fixed issue MR-176 - Del key while editing connection name triggers 'Delete Connection'
Fixed issue MR-178 - 3 different panels crashes all connections
Fixed issue MR-181 - Sessions on startup
Fixed issue MR-190 - Can't click on tab/session
Fixed issue MR-196 - Cannot export list without usernames and passwords
Fixed issue MR-199 - when using screen inside putty, screen becomes dead when reduce mremoteNG
Fixed issue MR-202 - The Connection "Tab" show Ampersands as underscores.
Fixed issue MR-214 - Hostname/IP reset
Fixed issue MR-224 - Session tabs become un-clickable after duplicating a tab or opening a new one in the same panel
Fixed issue MR-233 - Backslash at end of password prevents success of putty invocation and corresponding auto-logon
Fixed issue MR-235 - Config file gets corrupted when leaving the password entry box with ESC
Fixed issue MR-264 - Windows 8 support
Fixed issue MR-277 - Inheritance configuration button not appear in configuration tab
Fixed issue MR-284 - SSH: Text not showing properly
Fixed issue MR-299 - mRemoteNG crashes while using remotely (Windows XP remote desktop)
Fixed issue MR-306 - Fatal .NET exception on program start
Fixed issue MR-313 - PuTTY window not maximized when loading from saved session
mRemoteNG now requires .NET Framework 3.0 instead of 2.0.
Updated translations.
Added translations for Spanish (Argentina), Italian, Polish, Portuguese, Chinese (Simplified).
Improved the use of Tab and Shift-Tab to cycle through entries in the Config grid.
Improved loading of XML files from older versions of mRemote/mRemoteNG.
1.70 Beta 1 (2012-02-27):
Fixed issue MR-77 - VerifyDatabaseVersion (Config.Connections.Save) failed. Version string portion was too short or too long.
Fixed issue MR-78 - Renaming Connections
Fixed issue MR-79 - MoveUp/Down item doesn't work + Sort button broken
Fixed issue MR-93 - Regional settings problem when using SQL connection in mRemoteNG
Fixed issue MR-97 - Integrate Dutch translation
Fixed issue MR-98 - Integrate Russian and Ukranian translations
Fixed issue MR-99 - Integrate Spanish translation
Fixed issue MR-131 - RD Gateway does not respect setting for use different credentials
Added compatibility check for "Use FIPS compliant algorithms" security setting.
Improved reporting of errors when encrypting and decrypting connection files.
Added partial Polish translation.

View File

@@ -21,6 +21,11 @@ Copyright
MIT License
http://www.codeproject.com/KB/recipes/command_line.aspx
DotNetVer
Copyright <20> 2010 David Grinberg
Copyright <20> 2010-2011 Brandon Hansen
http://nsis.sourceforge.net/DotNetVer
Included Components
===================

Binary file not shown.

Binary file not shown.

296
Installer/DotNetVer.nsh Normal file
View File

@@ -0,0 +1,296 @@
; ---------------------
; DotNetVer.nsh
; Written by: David Grinberg
; Homepage: http://ontheperiphery.veraida.com/
; Updated By: Brandon Hansen (http://www.remotehams.com/)
; ---------------------
;
; LogicLib extensions for checking Microsoft .NET Framework versions and service packs.
;
; Latests Updates by Brandon Hansen, KG6YPI (RemoteHams.com)
; Dec 26, 2011 - .NET Framework 4.0 detection fixes - client profile not being found
; Dec 07, 2010 - .NET Framework 4.0 detection added by Brandon Hansen (KG6YPI)
;
; Usage examples:
;
; ${If} ${HasDotNet4.0}
; DetailPrint "Microsoft .NET Framework 4.0 installed."
; ${If} ${DOTNETVER_4_0} AtLeastDotNetServicePack 1
; DetailPrint "Microsoft .NET Framework 4.0 is at least SP1."
; ${Else}
; DetailPrint "Microsoft .NET Framework 4.0 SP1 not installed."
; ${EndIf}
; ${If} ${DOTNETVER_4_0} HasDotNetClientProfile 1
; DetailPrint "Microsoft .NET Framework 4.0 (Client Profile) available."
; ${EndIf}
; ${If} ${DOTNETVER_4_0} HasDotNetFullProfile 1
; DetailPrint "Microsoft .NET Framework 4.0 (Full Profile) available."
; ${EndIf}
; ${If} ${DOTNETVER_4_0} HasDotNetFullProfile 0
; DetailPrint "Microsoft .NET Framework 4.0 (Full Profile) not available."
; ${EndIf}
; ${EndIf}
!verbose push
!verbose 3
!ifndef ___DOTNETVER__NSH___
!define ___DOTNETVER__NSH___
!include LogicLib.nsh
!include Util.nsh
# constants
!define DOTNETVER_1_0 "1.0"
!define DOTNETVER_1_1 "1.1"
!define DOTNETVER_2_0 "2.0"
!define DOTNETVER_3_0 "3.0"
!define DOTNETVER_3_5 "3.5"
!define DOTNETVER_4_0 "4.0"
# variable declaration
Var /GLOBAL __DONTNET_FOUNDVER
!macro __DotNetVer_DeclareVars
!ifndef __DOTNETVER_VARS_DECLARED
!define __DOTNETVER_VARS_DECLARED
Var /GLOBAL __DOTNET_1.0
Var /GLOBAL __DOTNET_1.1
Var /GLOBAL __DOTNET_2.0
Var /GLOBAL __DOTNET_3.0
Var /GLOBAL __DOTNET_3.5
Var /GLOBAL __DOTNET_4.0
Var /GLOBAL __DOTNETVER_1.0_SP
Var /GLOBAL __DOTNETVER_1.1_SP
Var /GLOBAL __DOTNETVER_2.0_SP
Var /GLOBAL __DOTNETVER_3.0_SP
Var /GLOBAL __DOTNETVER_3.5_SP
Var /GLOBAL __DOTNETVER_4.0_SP
Var /GLOBAL __DOTNET_1.0_CLIENT
Var /GLOBAL __DOTNET_1.1_CLIENT
Var /GLOBAL __DOTNET_2.0_CLIENT
Var /GLOBAL __DOTNET_3.0_CLIENT
Var /GLOBAL __DOTNET_3.5_CLIENT
Var /GLOBAL __DOTNET_4.0_CLIENT
Var /GLOBAL __DOTNET_1.0_FULL
Var /GLOBAL __DOTNET_1.1_FULL
Var /GLOBAL __DOTNET_2.0_FULL
Var /GLOBAL __DOTNET_3.0_FULL
Var /GLOBAL __DOTNET_3.5_FULL
Var /GLOBAL __DOTNET_4.0_FULL
StrCpy $__DOTNET_1.0 0
StrCpy $__DOTNET_1.1 0
StrCpy $__DOTNET_2.0 0
StrCpy $__DOTNET_3.0 0
StrCpy $__DOTNET_3.5 0
StrCpy $__DOTNET_4.0 0
StrCpy $__DOTNETVER_1.0_SP 0
StrCpy $__DOTNETVER_1.1_SP 0
StrCpy $__DOTNETVER_2.0_SP 0
StrCpy $__DOTNETVER_3.0_SP 0
StrCpy $__DOTNETVER_3.5_SP 0
StrCpy $__DOTNETVER_4.0_SP 0
StrCpy $__DOTNET_1.0_CLIENT 0
StrCpy $__DOTNET_1.1_CLIENT 0
StrCpy $__DOTNET_2.0_CLIENT 0
StrCpy $__DOTNET_3.0_CLIENT 0
StrCpy $__DOTNET_3.5_CLIENT 0
StrCpy $__DOTNET_4.0_CLIENT 0
StrCpy $__DOTNET_1.0_FULL 0
StrCpy $__DOTNET_1.1_FULL 0
StrCpy $__DOTNET_2.0_FULL 0
StrCpy $__DOTNET_3.0_FULL 0
StrCpy $__DOTNET_3.5_FULL 0
StrCpy $__DOTNET_4.0_FULL 0
!endif
!macroend
# lazy initialization macro
!macro __DotNetVer_InitVars
# only calculate version once
StrCmp $__DONTNET_FOUNDVER "" dotnetver.noveryet
Return
dotnetver.noveryet:
!insertmacro __DotNetVer_DeclareVars
Push $0 ;registry count
Push $1 ;registry key
Push $2 ;version number
Push $3 ;installed
Push $4 ;service pack number
Push $8 ;strLen helper var
StrCpy $0 0
dotnetver.startenum:
EnumRegKey $1 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP" $0
StrCmp $1 "" dotnetver.done
IntOp $0 $0 + 1
StrCpy $2 $1 1 0
StrCmp $2 "v" +1 dotnetver.startenum
StrCpy $2 $1 3 1
; Check for .NET 1.0 to 3.5
ReadRegDWORD $3 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\$1" "Install"
ReadRegDWORD $4 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\$1" "SP"
IntCmp $3 1 dotnetcheck.skipalt
; Alternate check for versions that don't set the Install key
ReadRegDWORD $3 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\$1\Setup" "InstallSuccess"
dotnetcheck.skipalt:
; This is a sanity check that works on .NET 1.0 to 3.5
; if it fails check for dotnet 4
IntCmp $3 0 dotnetcheck.40
StrCmp $2 ${DOTNETVER_1_0} dotnetver.10
StrCmp $2 ${DOTNETVER_1_1} dotnetver.11
StrCmp $2 ${DOTNETVER_2_0} dotnetver.20
StrCmp $2 ${DOTNETVER_3_0} dotnetver.30
StrCmp $2 ${DOTNETVER_3_5} dotnetver.35
dotnetcheck.40:
StrCmp $2 ${DOTNETVER_4_0} dotnetver.40
StrCmp $2 "4" dotnetver.40
Goto dotnetver.startenum
dotnetver.10:
StrCpy $__DOTNET_1.0 1
StrCpy $__DOTNETVER_1.0_SP $4
StrCpy $__DOTNET_1.0_FULL 1
Goto dotnetver.startenum
dotnetver.11:
StrCpy $__DOTNET_1.1 1
StrCpy $__DOTNETVER_1.1_SP $4
StrCpy $__DOTNET_1.1_FULL 1
Goto dotnetver.startenum
dotnetver.20:
StrCpy $__DOTNET_2.0 1
StrCpy $__DOTNETVER_2.0_SP $4
StrCpy $__DOTNET_2.0_FULL 1
Goto dotnetver.startenum
dotnetver.30:
StrCpy $__DOTNET_3.0 1
StrCpy $__DOTNETVER_3.0_SP $4
StrCpy $__DOTNET_3.0_FULL 1
Goto dotnetver.startenum
dotnetver.35:
StrCpy $__DOTNET_3.5 1
StrCpy $__DOTNETVER_3.5_SP $4
StrCpy $__DOTNET_3.5_FULL 1
Goto dotnetver.startenum
dotnetver.40:
; Check for .NET 4.0 (Full Profile)
ReadRegDWORD $3 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Install"
ReadRegDWORD $4 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "SP"
StrLen $8 $3
IntCmp $8 0 dotnetcheck.40c
IntCmp $3 0 dotnetcheck.40c
StrCmp $2 ${DOTNETVER_4_0} dotnetver.40_Full
StrCmp $2 "4" dotnetver.40_Full
dotnetcheck.40c:
; Check for .NET 4.0 (Client Profile)
ReadRegDWORD $3 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "Install"
ReadRegDWORD $4 HKLM "SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Client" "SP"
StrLen $8 $3
IntCmp $8 0 dotnetver.startenum
IntCmp $3 0 dotnetver.startenum
StrCmp $2 ${DOTNETVER_4_0} dotnetver.40_Client
StrCmp $2 "4" dotnetver.40_Client
Goto dotnetver.startenum
dotnetver.40_Full:
StrCpy $__DOTNET_4.0 1
StrCpy $__DOTNETVER_4.0_SP $4
StrCpy $__DOTNET_4.0_FULL 1
Goto dotnetcheck.40c ; continue looking for other profiles
dotnetver.40_Client:
StrCpy $__DOTNET_4.0 1
StrCpy $__DOTNETVER_4.0_SP $4
StrCpy $__DOTNET_4.0_CLIENT 1
Goto dotnetver.startenum
dotnetver.done:
StrCpy $__DONTNET_FOUNDVER "1"
Pop $8
Pop $4
Pop $3
Pop $2
Pop $1
Pop $0
!macroend
!macro _HasDotNet _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _= `$__DOTNET_${_b}` `1` `${_t}` `${_f}`
!macroend
!macro __DotNetVer_DefineTest Ver
!define HasDotNet${Ver} `"" HasDotNet ${Ver}`
!macroend
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_1_0}
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_1_1}
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_2_0}
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_3_0}
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_3_5}
!insertmacro __DotNetVer_DefineTest ${DOTNETVER_4_0}
!macro _AtLeastDotNetServicePack _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _>= `$__DOTNETVER_${_a}_SP` `${_b}` `${_t}` `${_f}`
!macroend
!define AtLeastDotNetServicePack `AtLeastDotNetServicePack`
!macro _AtMostDotNetServicePack _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _<= `$__DOTNETVER_${_a}_SP` `${_b}` `${_t}` `${_f}`
!macroend
!define AtMostDotNetServicePack `AtMostDotNetServicePack`
!macro _IsDotNetServicePack _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _= `$__DOTNETVER_${_a}_SP` `${_b}` `${_t}` `${_f}`
!macroend
!define IsDotNetServicePack `IsDotNetServicePack`
!macro _HasDotNetClientProfile _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _= `$__DOTNET_${_a}_CLIENT` `${_b}` `${_t}` `${_f}`
!macroend
!define HasDotNetClientProfile `HasDotNetClientProfile`
!macro _HasDotNetFullProfile _a _b _t _f
${CallArtificialFunction} __DotNetVer_InitVars
!insertmacro _= `$__DOTNET_${_a}_FULL` `${_b}` `${_t}` `${_f}`
!macroend
!define HasDotNetFullProfile `HasDotNetFullProfile`
# done
!endif # !___DOTNETVER__NSH___
!verbose pop

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_CZECH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_CZECH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_CZECH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_CZECH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_CZECH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_DUTCH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_DUTCH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_DUTCH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_DUTCH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_DUTCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_ENGLISH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_ENGLISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_ENGLISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_ENGLISH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_ENGLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_FRENCH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_FRENCH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_FRENCH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_FRENCH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_FRENCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_GERMAN} "Installationsprogamm Sprache"
LangString SelectInstallerLanguage ${LANG_GERMAN} "Bitte w<>hlen Sie die Sprache f<>r das Installationsprogramm"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_GERMAN} "mRemoteNG ben<65>tigt das Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_GERMAN} "mRemoteNG ben<65>tigt das Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_GERMAN} "Sie m<>ssen Mitglied der Grupper 'Power Users' or 'Administratoren' sein, damit Sie mRemoteNG installieren k<>nnen."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_POLISH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_POLISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_POLISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_POLISH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_POLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -10,7 +10,7 @@ LangString InstallerLanguage ${LANG_SPANISH} "Installer Language"
LangString SelectInstallerLanguage ${LANG_SPANISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_SPANISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
LangString RequiresNetFramework ${LANG_SPANISH} "mRemoteNG requires Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_SPANISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -11,7 +11,7 @@ LangString InstallerLanguage ${LANG_THAI} "ภาษาสำหรับกา
LangString SelectInstallerLanguage ${LANG_THAI} "กรุณาเลือกภาษาสำหรับการติดตั้ง"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_THAI} "mRemoteNG มีความต้องการ Microsoft .NET Framework 2.0. เป็นพื้นฐาน"
LangString RequiresNetFramework ${LANG_THAI} "mRemoteNG มีความต้องการ Microsoft .NET Framework 3.0. เป็นพื้นฐาน"
; User needs to be Admin
LangString RequiresAdminUser ${LANG_THAI} "คุณต้องเป็นสมาชิกในกลุ่มของ 'Power Users' หรือ 'Administrators' เพื่อการติดตั้ง mRemoteNG"

View File

@@ -2,6 +2,7 @@
!include "WordFunc.nsh"
!insertmacro VersionCompare
!include "DotNetVer.nsh"
!include "..\Release\Version.nsh"
; This will be passed in using the /D switch by BUILD.CMD
@@ -13,9 +14,6 @@
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}"
!endif
; Global Variables
Var InstallDotNET
; Basic Config
Name "mRemoteNG ${PRODUCT_VERSION_FRIENDLY}"
OutFile "..\Release\mRemoteNG-Installer-${PRODUCT_VERSION_TAGGED}.exe"
@@ -29,7 +27,7 @@ VIProductVersion ${PRODUCT_VERSION}
VIAddVersionKey "CompanyName" "Next Generation Software"
VIAddVersionKey "ProductName" "mRemoteNG"
VIAddVersionKey "ProductVersion" ${PRODUCT_VERSION}
VIAddVersionKey "LegalCopyright" "Copyright © 2007-2009 Felix Deimel, 2010-2011 Riley McArdle"
VIAddVersionKey "LegalCopyright" "Copyright © 2007-2009 Felix Deimel, 2010-2013 Riley McArdle"
VIAddVersionKey "FileDescription" "mRemoteNG ${PRODUCT_VERSION_FRIENDLY} Installer"
VIAddVersionKey "FileVersion" ${PRODUCT_VERSION}
@@ -96,7 +94,8 @@ Function .onInit
Win9x:
doit:
# We can install
Call SelectLanguage
IfSilent +2
Call SelectLanguage
Goto end
noop:
MessageBox MB_OK "$(RequiresAdminUser)"
@@ -132,22 +131,7 @@ Function SelectLanguage
Abort
; Check .NET version
StrCpy $InstallDotNET "No"
Call GetDotNETVersion
Pop $0
${If} $0 == "not found"
StrCpy $InstallDotNET "Yes"
${EndIf}
StrCpy $0 $0 "" 1 # skip "v"
${VersionCompare} $0 "2.0" $1
${If} $1 == 2
StrCpy $InstallDotNET "Yes"
${EndIf}
${If} $InstallDotNET == "Yes"
${IfNot} ${HasDotNet3.0}
MessageBox MB_OK|MB_ICONEXCLAMATION "$(RequiresNetFramework)"
Quit
${EndIf}
@@ -211,15 +195,3 @@ Section "un.Uninstall"
DeleteRegKey /ifempty HKCU "Software\mRemoteNG"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG"
SectionEnd
Function GetDotNETVersion
Push $0
Push $1
System::Call "mscoree::GetCORVersion(w .r0, i ${NSIS_MAX_STRLEN}, *i) i .r1"
StrCmp $1 "error" 0 +2
StrCpy $0 "not found"
Pop $1
Exch $0
FunctionEnd

View File

@@ -27,14 +27,21 @@ echo.
mkdir %TEMP_FOLDER%
%RAR% x -o+ %ZIP_FILE% *.* %TEMP_FOLDER%
%SORTRESX% %TEMP_FOLDER%\de\Language.de-DE.resx "%~dp0\mRemoteV1\Language\Language.de.resx"
%SORTRESX% %TEMP_FOLDER%\en-US\Language..resx "%~dp0\mRemoteV1\Language\Language.en-US.resx"
%SORTRESX% %TEMP_FOLDER%\es-ES\Language.es-ES.resx "%~dp0\mRemoteV1\Language\Language.es.resx"
%SORTRESX% %TEMP_FOLDER%\fr\Language.fr-FR.resx "%~dp0\mRemoteV1\Language\Language.fr.resx"
%SORTRESX% %TEMP_FOLDER%\it\Language.it-IT.resx "%~dp0\mRemoteV1\Language\Language.it.resx"
%SORTRESX% %TEMP_FOLDER%\nl\Language.nl-NL.resx "%~dp0\mRemoteV1\Language\Language.nl.resx"
%SORTRESX% %TEMP_FOLDER%\ru\Language.ru-RU.resx "%~dp0\mRemoteV1\Language\Language.ru.resx"
%SORTRESX% %TEMP_FOLDER%\uk\Language.uk-UA.resx "%~dp0\mRemoteV1\Language\Language.uk.resx"
%SORTRESX% %TEMP_FOLDER%\ar\Language.ar.resx "%~dp0\mRemoteV1\Language\Language.ar.resx"
%SORTRESX% %TEMP_FOLDER%\de\Language.de.resx "%~dp0\mRemoteV1\Language\Language.de.resx"
%SORTRESX% %TEMP_FOLDER%\en-US\Language.en.resx "%~dp0\mRemoteV1\Language\Language.en-US.resx"
%SORTRESX% %TEMP_FOLDER%\es-AR\Language.es.resx "%~dp0\mRemoteV1\Language\Language.es-AR.resx"
%SORTRESX% %TEMP_FOLDER%\es-ES\Language.es.resx "%~dp0\mRemoteV1\Language\Language.es.resx"
%SORTRESX% %TEMP_FOLDER%\fr\Language.fr.resx "%~dp0\mRemoteV1\Language\Language.fr.resx"
%SORTRESX% %TEMP_FOLDER%\hu\Language.hu.resx "%~dp0\mRemoteV1\Language\Language.hu.resx"
%SORTRESX% %TEMP_FOLDER%\it\Language.it.resx "%~dp0\mRemoteV1\Language\Language.it.resx"
%SORTRESX% %TEMP_FOLDER%\nl\Language.nl.resx "%~dp0\mRemoteV1\Language\Language.nl.resx"
%SORTRESX% %TEMP_FOLDER%\pl\Language.pl.resx "%~dp0\mRemoteV1\Language\Language.pl.resx"
%SORTRESX% %TEMP_FOLDER%\pt-BR\Language.pt.resx "%~dp0\mRemoteV1\Language\Language.pt-BR.resx"
%SORTRESX% %TEMP_FOLDER%\pt-PT\Language.pt.resx "%~dp0\mRemoteV1\Language\Language.pt.resx"
%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"
rmdir /s /q %TEMP_FOLDER%

View File

@@ -25,11 +25,18 @@ Namespace App
Public Class Update
Public Shared ReadOnly URL As String = "http://update.mremoteng.org/"
#If DEBUG Then
Public Shared ReadOnly File As String = "update-debug.txt"
#Else
Public Shared ReadOnly File As String = "update.txt"
#End If
Public Shared ReadOnly Property File As String
Get
Select Case My.Settings.UpdateChannel.ToLowerInvariant()
Case "beta"
Return "update-beta.txt"
Case "debug"
Return "update-debug.txt"
Case Else
Return "update.txt"
End Select
End Get
End Property
End Class
Public Class Connections

View File

@@ -1,7 +1,6 @@
Imports log4net
Imports mRemoteNG.Messages
Imports mRemoteNG.Connection
Imports mRemoteNG.Config.Settings
Imports mRemoteNG.Tools
Imports WeifenLuo.WinFormsUI.Docking
Imports System.IO
@@ -239,8 +238,8 @@ Namespace App
Public Shared quickyPanel As New DockContent
Public Shared optionsForm As frmOptions
Public Shared optionsPanel As New DockContent
Public Shared saveasForm As UI.Window.SaveAs
Public Shared saveasPanel As New DockContent
Public Shared exportForm As UI.Window.Export
Public Shared exportPanel As New DockContent
Public Shared aboutForm As UI.Window.About
Public Shared aboutPanel As New DockContent
Public Shared updateForm As UI.Window.Update
@@ -278,11 +277,11 @@ Namespace App
Case UI.Window.Type.Options
Windows.optionsForm = New frmOptions(Windows.optionsPanel)
Windows.optionsForm.Show(frmMain.pnlDock)
Case UI.Window.Type.SaveAs
Windows.saveasForm = New UI.Window.SaveAs(Windows.saveasPanel)
Windows.saveasPanel = Windows.saveasForm
Case UI.Window.Type.Export
Windows.exportForm = New UI.Window.Export(Windows.exportPanel)
Windows.exportPanel = Windows.exportForm
Windows.saveasForm.Show(frmMain.pnlDock)
Windows.exportForm.Show(frmMain.pnlDock)
Case UI.Window.Type.SSHTransfer
Windows.sshtransferForm = New UI.Window.SSHTransfer(Windows.sshtransferPanel)
Windows.sshtransferPanel = Windows.sshtransferForm
@@ -366,11 +365,15 @@ Namespace App
' Windows XP/Windows Server 2003
regKey = Registry.LocalMachine.OpenSubKey("System\CurrentControlSet\Control\Lsa")
If Not regKey.GetValue("FIPSAlgorithmPolicy") = 0 Then isFipsPolicyEnabled = True
If regKey IsNot Nothing Then
If Not regKey.GetValue("FIPSAlgorithmPolicy") = 0 Then isFipsPolicyEnabled = True
End If
' Windows Vista/Windows Server 2008 and newer
regKey = Registry.LocalMachine.OpenSubKey("System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy")
If Not regKey.GetValue("Enabled") = 0 Then isFipsPolicyEnabled = True
If regKey IsNot Nothing Then
If Not regKey.GetValue("Enabled") = 0 Then isFipsPolicyEnabled = True
End If
If isFipsPolicyEnabled Then
MessageBox.Show(frmMain, String.Format(My.Language.strErrorFipsPolicyIncompatible, My.Application.Info.ProductName), My.Application.Info.ProductName, MessageBoxButtons.OK, MessageBoxIcon.Error)
@@ -448,30 +451,55 @@ Namespace App
End Sub
Public Shared Sub CreateLogger()
log4net.Config.XmlConfigurator.Configure(New FileInfo("mRemoteNG.exe.config"))
Log = log4net.LogManager.GetLogger("mRemoteNG.Log")
Log.InfoFormat("{0} started.", My.Application.Info.ProductName)
Log.InfoFormat("Command Line: {0}", Environment.GetCommandLineArgs)
Try
Dim servicePack As Integer
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get()
servicePack = managementObject.GetPropertyValue("ServicePackMajorVersion")
If servicePack = 0 Then
Log.InfoFormat("{0} {1}", managementObject.GetPropertyValue("Caption").Trim, managementObject.GetPropertyValue("OSArchitecture"))
Else
Log.InfoFormat("{0} Service Pack {1} {2}", managementObject.GetPropertyValue("Caption").Trim, servicePack.ToString, managementObject.GetPropertyValue("OSArchitecture"))
End If
Next
Catch ex As Exception
Log.WarnFormat("Error retrieving operating system information from WMI. {0}", ex.Message)
End Try
Log.InfoFormat("Microsoft .NET Framework {0}", System.Environment.Version.ToString)
log4net.Config.XmlConfigurator.Configure()
Dim logFilePath As String
#If Not PORTABLE Then
Log.InfoFormat("{0} {1}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString)
logFilePath = Path.Combine(GetFolderPath(SpecialFolder.LocalApplicationData), Application.ProductName)
#Else
log.InfoFormat("{0} {1} {2}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString, My.Language.strLabelPortableEdition)
logFilePath = Application.StartupPath
#End If
Log.InfoFormat("System Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
Dim logFileName As String = Path.ChangeExtension(Application.ProductName, ".log")
Dim logFile As String = Path.Combine(logFilePath, logFileName)
Dim repository As Repository.ILoggerRepository = LogManager.GetRepository()
Dim appenders As Appender.IAppender() = repository.GetAppenders()
Dim fileAppender As Appender.FileAppender
For Each appender As Appender.IAppender In appenders
fileAppender = TryCast(appender, Appender.FileAppender)
If Not (fileAppender Is Nothing OrElse Not fileAppender.Name = "LogFileAppender") Then
fileAppender.File = logFile
fileAppender.ActivateOptions()
End If
Next
Log = LogManager.GetLogger("Logger")
If My.Settings.WriteLogFile Then
#If Not PORTABLE Then
Log.InfoFormat("{0} {1} starting.", Application.ProductName, Application.ProductVersion)
#Else
Log.InfoFormat("{0} {1} {2} starting.", Application.ProductName, Application.ProductVersion, My.Language.strLabelPortableEdition)
#End If
Log.InfoFormat("Command Line: {0}", Environment.GetCommandLineArgs)
Try
Dim servicePack As Integer
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get()
servicePack = managementObject.GetPropertyValue("ServicePackMajorVersion")
If servicePack = 0 Then
Log.InfoFormat("{0} {1}", managementObject.GetPropertyValue("Caption").Trim, managementObject.GetPropertyValue("OSArchitecture"))
Else
Log.InfoFormat("{0} Service Pack {1} {2}", managementObject.GetPropertyValue("Caption").Trim, servicePack.ToString, managementObject.GetPropertyValue("OSArchitecture"))
End If
Next
Catch ex As Exception
Log.WarnFormat("Error retrieving operating system information from WMI. {0}", ex.Message)
End Try
Log.InfoFormat("Microsoft .NET CLR {0}", Version.ToString)
Log.InfoFormat("System Culture: {0}/{1}", Thread.CurrentThread.CurrentUICulture.Name, Thread.CurrentThread.CurrentUICulture.NativeName)
End If
End Sub
Public Shared Sub UpdateCheck()
@@ -804,12 +832,6 @@ Namespace App
TryCast(cForm, UI.Window.Connection).SetFormText(title.Replace("&", "&&"))
If frmMain.pnlDock.DocumentsCount > 1 Then
frmMain.pnlDock.DocumentStyle = DocumentStyle.DockingMdi
Else
frmMain.pnlDock.DocumentStyle = DocumentStyle.DockingSdi
End If
pnlcForm.Show(frmMain.pnlDock, DockState.Document)
If noTabber Then
@@ -1358,18 +1380,18 @@ Namespace App
End Sub
Public Shared Sub SaveConnections(Optional ByVal Update As Boolean = False)
If Not IsConnectionsFileLoaded Then Exit Sub
Dim previousTimerState As Boolean = False
Try
If Update = True And My.Settings.UseSQLServer = False Then
Exit Sub
End If
Dim tmrWasEnabled As Boolean
If TimerSqlWatcher IsNot Nothing Then
tmrWasEnabled = TimerSqlWatcher.Enabled
If TimerSqlWatcher.Enabled = True Then
TimerSqlWatcher.Stop()
End If
previousTimerState = TimerSqlWatcher.Enabled
TimerSqlWatcher.Enabled = False
End If
Dim conS As New Config.Connections.Save
@@ -1401,70 +1423,78 @@ Namespace App
If My.Settings.UseSQLServer = True Then
LastSqlUpdate = Now
End If
If tmrWasEnabled Then
TimerSqlWatcher.Start()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConnectionsFileCouldNotBeSaved & vbNewLine & ex.Message)
Finally
If TimerSqlWatcher IsNot Nothing Then
TimerSqlWatcher.Enabled = previousTimerState
End If
End Try
End Sub
Public Shared Sub SaveConnectionsAs(ByVal SaveSecurity As Security.Save, ByVal RootNode As TreeNode)
Dim conS As New Config.Connections.Save
Try
Dim tmrWasEnabled As Boolean
Public Shared Sub SaveConnectionsAs(Optional ByVal rootNode As TreeNode = Nothing, Optional ByVal saveSecurity As Security.Save = Nothing)
Dim connectionsSave As New Config.Connections.Save
Dim previousTimerState As Boolean = False
Try
If TimerSqlWatcher IsNot Nothing Then
tmrWasEnabled = TimerSqlWatcher.Enabled
If TimerSqlWatcher.Enabled = True Then
TimerSqlWatcher.Stop()
End If
previousTimerState = TimerSqlWatcher.Enabled
TimerSqlWatcher.Enabled = False
End If
Dim export As Boolean = False
Dim saveAsDialog As SaveFileDialog
If rootNode Is Nothing Then
rootNode = Windows.treeForm.tvConnections.Nodes(0)
saveAsDialog = Controls.ConnectionsSaveAsDialog
Else
export = True
saveAsDialog = Controls.ConnectionsExportDialog
End If
Dim sD As SaveFileDialog = Tools.Controls.ConnectionsSaveAsDialog
If sD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
conS.ConnectionFileName = sD.FileName
If saveAsDialog.ShowDialog = System.Windows.Forms.DialogResult.OK Then
connectionsSave.ConnectionFileName = saveAsDialog.FileName
Else
Exit Sub
End If
Select Case sD.FilterIndex
Case 1
conS.SaveFormat = Config.Connections.Save.Format.mRXML
Case 2
conS.SaveFormat = Config.Connections.Save.Format.mRCSV
Case 3
conS.SaveFormat = Config.Connections.Save.Format.vRDCSV
End Select
If export Then
Select Case saveAsDialog.FilterIndex
Case 1
connectionsSave.SaveFormat = Config.Connections.Save.Format.mRXML
Case 2
connectionsSave.SaveFormat = Config.Connections.Save.Format.mRCSV
Case 3
connectionsSave.SaveFormat = Config.Connections.Save.Format.vRDCSV
End Select
Else
connectionsSave.SaveFormat = Config.Connections.Save.Format.mRXML
If RootNode Is Windows.treeForm.tvConnections.Nodes(0) Then
If conS.SaveFormat <> Config.Connections.Save.Format.mRXML And conS.SaveFormat <> Config.Connections.Save.Format.None Then
If connectionsSave.ConnectionFileName = Info.Connections.DefaultConnectionsPath & "\" & Info.Connections.DefaultConnectionsFile Then
My.Settings.LoadConsFromCustomLocation = False
Else
If conS.ConnectionFileName = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = conS.ConnectionFileName
End If
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = connectionsSave.ConnectionFileName
End If
End If
conS.ConnectionList = ConnectionList
conS.ContainerList = ContainerList
If RootNode IsNot Windows.treeForm.tvConnections.Nodes(0) Then
conS.Export = True
End If
conS.SaveSecurity = SaveSecurity
conS.RootTreeNode = RootNode
connectionsSave.ConnectionList = ConnectionList
connectionsSave.ContainerList = ContainerList
connectionsSave.RootTreeNode = rootNode
conS.Save()
connectionsSave.Export = export
If saveSecurity Is Nothing Then saveSecurity = New Security.Save
connectionsSave.SaveSecurity = saveSecurity
connectionsSave.Save()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strConnectionsFileCouldNotSaveAs, conS.ConnectionFileName) & vbNewLine & ex.Message)
MessageCollector.AddMessage(MessageClass.ErrorMsg, String.Format(My.Language.strConnectionsFileCouldNotSaveAs, connectionsSave.ConnectionFileName) & vbNewLine & ex.Message)
Finally
If TimerSqlWatcher IsNot Nothing Then
TimerSqlWatcher.Enabled = previousTimerState
End If
End Try
End Sub
#End Region
@@ -1476,7 +1506,12 @@ Namespace App
If Not String.IsNullOrEmpty(Uri.Host) Then
Dim newConnectionInfo As New Connection.Info
newConnectionInfo.Name = String.Format(My.Language.strQuick, Uri.Host)
If My.Settings.IdentifyQuickConnectTabs Then
newConnectionInfo.Name = String.Format(My.Language.strQuick, Uri.Host)
Else
newConnectionInfo.Name = Uri.Host
End If
newConnectionInfo.Protocol = Protocol
newConnectionInfo.Hostname = Uri.Host
If Uri.Port = -1 Then

View File

@@ -5,6 +5,7 @@ Imports mRemoteNG.App.Runtime
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports PSTaskDialog
Namespace Config
Namespace Connections
@@ -206,7 +207,12 @@ Namespace Config
sqlRd.Read()
End If
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), CultureInfo.InvariantCulture)
confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), CultureInfo.InvariantCulture)
Const maxSupportedSchemaVersion As Double = 2.4
If confVersion > maxSupportedSchemaVersion Then
cTaskDialog.ShowTaskDialogBox(frmMain, Application.ProductName, "Incompatible database schema", String.Format("The database schema on the server is not supported. Please upgrade to a newer version of {0}.", Application.ProductName), String.Format("Schema Version: {1}{0}Highest Supported Version: {2}", vbNewLine, confVersion.ToString(), maxSupportedSchemaVersion.ToString()), "", "", "", "", eTaskDialogButtons.OK, eSysIcons.Error, Nothing)
Throw New Exception(String.Format("Incompatible database schema (schema version {0}).", confVersion))
End If
Dim rootNode As TreeNode
rootNode = New TreeNode(sqlRd.Item("Name"))
@@ -235,6 +241,8 @@ Namespace Config
sqlRd.Close()
Windows.treeForm.tvConnections.BeginUpdate()
' SECTION 3. Populate the TreeView with the DOM nodes.
AddNodesFromSQL(rootNode)
'AddNodeFromXml(xDom.DocumentElement, Me._RootTreeNode)
@@ -248,6 +256,8 @@ Namespace Config
End If
Next
Windows.treeForm.tvConnections.EndUpdate()
'open connections from last mremote session
If My.Settings.OpenConsFromLastSession = True And My.Settings.NoReconnect = False Then
For Each conI As Connection.Info In Me._ConnectionList
@@ -265,10 +275,12 @@ Namespace Config
App.Runtime.IsConnectionsFileLoaded = True
'App.Runtime.Windows.treeForm.InitialRefresh()
sqlCon.Close()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strLoadFromSqlFailed & vbNewLine & ex.Message, True)
Finally
If sqlCon IsNot Nothing Then
sqlCon.Close()
End If
End Try
End Sub
@@ -639,11 +651,17 @@ Namespace Config
End If
If xDom.DocumentElement.HasAttribute("ConfVersion") Then
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value, CultureInfo.InvariantCulture)
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value.Replace(",", "."), CultureInfo.InvariantCulture)
Else
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strOldConffile)
End If
Const maxSupportedConfVersion As Double = 2.4
If confVersion > maxSupportedConfVersion Then
cTaskDialog.ShowTaskDialogBox(frmMain, Application.ProductName, "Incompatible connection file format", String.Format("The format of this connection file is not supported. Please upgrade to a newer version of {0}.", Application.ProductName), String.Format("{1}{0}File Format Version: {2}{0}Highest Supported Version: {3}", vbNewLine, ConnectionFileName, confVersion.ToString(), maxSupportedConfVersion.ToString()), "", "", "", "", eTaskDialogButtons.OK, eSysIcons.Error, Nothing)
Throw New Exception(String.Format("Incompatible connection file format (file format version {0}).", confVersion))
End If
' SECTION 2. Initialize the treeview control.
Dim rootNode As TreeNode
@@ -693,6 +711,8 @@ Namespace Config
Me._RootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Root
End If
Windows.treeForm.tvConnections.BeginUpdate()
' SECTION 3. Populate the TreeView with the DOM nodes.
AddNodeFromXML(xDom.DocumentElement, Me._RootTreeNode)
@@ -705,6 +725,8 @@ Namespace Config
End If
Next
Windows.treeForm.tvConnections.EndUpdate()
'open connections from last mremote session
If My.Settings.OpenConsFromLastSession = True And My.Settings.NoReconnect = False Then
For Each conI As Connection.Info In Me._ConnectionList
@@ -721,7 +743,7 @@ Namespace Config
App.Runtime.Windows.treeForm.InitialRefresh()
Catch ex As Exception
App.Runtime.IsConnectionsFileLoaded = False
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strLoadFromXmlFailed & vbNewLine & ex.Message & ex.StackTrace, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strLoadFromXmlFailed & vbNewLine & ex.Message & vbNewLine & ex.StackTrace, True)
Throw
End Try
End Sub

View File

@@ -80,7 +80,7 @@ Namespace Config
If (Not sqlDataReader.HasRows) Then Return True ' assume new empty database
sqlDataReader.Read()
databaseVersion = New System.Version(Convert.ToDouble(sqlDataReader.Item("confVersion"), CultureInfo.InvariantCulture))
databaseVersion = New Version(Convert.ToString(sqlDataReader.Item("confVersion"), CultureInfo.InvariantCulture))
sqlDataReader.Close()
@@ -194,7 +194,7 @@ Namespace Config
"InheritVNCSmartSizeMode, InheritVNCViewOnly, " & _
"InheritRDGatewayUsageMethod, InheritRDGatewayHostname, InheritRDGatewayUseConnectionCredentials, InheritRDGatewayUsername, InheritRDGatewayPassword, InheritRDGatewayDomain, " & _
"InheritUseCredSsp, " & _
"PositionID, _parentConstantId, ConstantID, LastChange)" & _
"PositionID, ParentID, ConstantID, LastChange)" & _
"VALUES (", _sqlConnection)
If Tree.Node.GetNodeType(node) = Tree.Node.Type.Connection Or Tree.Node.GetNodeType(node) = Tree.Node.Type.Container Then
@@ -309,7 +309,7 @@ Namespace Config
End If
If Me._SaveSecurity.Password = True Then
_sqlQuery.CommandText &= "'" & .RDGatewayPassword & "',"
_sqlQuery.CommandText &= "'" & Security.Crypt.Encrypt(.RDGatewayPassword, _password) & "',"
Else
_sqlQuery.CommandText &= "'" & "" & "',"
End If
@@ -468,17 +468,15 @@ Namespace Config
Private Sub SaveToXml()
Try
If IsConnectionsFileLoaded = False Then Exit Sub
If Not IsConnectionsFileLoaded Then Exit Sub
Dim treeNode As TreeNode
Dim isExport As Boolean = False
If Tree.Node.GetNodeType(RootTreeNode) = Tree.Node.Type.Root Then
treeNode = RootTreeNode.Clone
Else
treeNode = New TreeNode("mR|Export (" + Tools.Misc.DBDate(Now) + ")")
treeNode.Nodes.Add(RootTreeNode.Clone)
isExport = True
End If
Dim tempFileName As String = Path.GetTempFileName()
@@ -491,9 +489,9 @@ Namespace Config
_xmlTextWriter.WriteStartElement("Connections") ' Do not localize
_xmlTextWriter.WriteAttributeString("Name", "", treeNode.Text)
_xmlTextWriter.WriteAttributeString("Export", "", isExport)
_xmlTextWriter.WriteAttributeString("Export", "", Export)
If isExport Then
If Export Then
_xmlTextWriter.WriteAttributeString("Protected", "", Security.Crypt.Encrypt("ThisIsNotProtected", _password))
Else
If TryCast(treeNode.Tag, Root.Info).Password = True Then
@@ -514,12 +512,14 @@ Namespace Config
_xmlTextWriter.WriteEndElement()
_xmlTextWriter.Close()
Dim backupFileName As String = ConnectionFileName & ".backup"
File.Delete(backupFileName)
File.Move(ConnectionFileName, backupFileName)
If Not Export And File.Exists(ConnectionFileName) Then
Dim backupFileName As String = ConnectionFileName & ".backup"
File.Delete(backupFileName)
File.Move(ConnectionFileName, backupFileName)
End If
File.Move(tempFileName, ConnectionFileName)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SaveToXml failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SaveToXml failed" & vbNewLine & ex.Message, False)
End Try
End Sub
@@ -659,7 +659,7 @@ Namespace Config
End If
If Me._SaveSecurity.Password = True Then
_xmlTextWriter.WriteAttributeString("RDGatewayPassword", "", curConI.RDGatewayPassword)
_xmlTextWriter.WriteAttributeString("RDGatewayPassword", "", Security.Crypt.Encrypt(curConI.RDGatewayPassword, _password))
Else
_xmlTextWriter.WriteAttributeString("RDGatewayPassword", "", "")
End If

View File

@@ -101,6 +101,10 @@ Namespace Config
Me.LoadPanelsFromXML()
Me.LoadExternalAppsFromXML()
If My.Settings.AlwaysShowPanelTabs Then
frmMain.pnlDock.DocumentStyle = DocumentStyle.DockingWindow
End If
If My.Settings.ResetToolbars = False Then
LoadToolbarsFromSettings()
Else

View File

@@ -109,10 +109,10 @@ Namespace Connection
LocalizedDescription("strPropertyDescriptionAddress")> _
Public Property Hostname() As String
Get
Return Me._Hostname
Return Me._Hostname.Trim()
End Get
Set(ByVal value As String)
Me._Hostname = value
Me._Hostname = value.Trim()
End Set
End Property
@@ -132,13 +132,13 @@ Namespace Connection
parCon = parCont.ConnectionInfo
End If
Return parCon.Username
Return parCon.Username.Trim()
Else
Return Me._Username
Return Me._Username.Trim()
End If
End Get
Set(ByVal value As String)
Me._Username = value
Me._Username = value.Trim()
End Set
End Property
@@ -185,13 +185,13 @@ Namespace Connection
parCon = parCont.ConnectionInfo
End If
Return parCon.Domain
Return parCon.Domain.Trim()
Else
Return Me._Domain
Return Me._Domain.Trim()
End If
End Get
Set(ByVal value As String)
Me._Domain = value
Me._Domain = value.Trim()
End Set
End Property
#End Region
@@ -482,13 +482,13 @@ Namespace Connection
parCon = parCont.ConnectionInfo
End If
Return parCon.RDGatewayHostname
Return parCon.RDGatewayHostname.Trim()
Else
Return Me._RDGatewayHostname
Return Me._RDGatewayHostname.Trim()
End If
End Get
Set(ByVal value As String)
Me._RDGatewayHostname = value
Me._RDGatewayHostname = value.Trim()
End Set
End Property
@@ -535,13 +535,13 @@ Namespace Connection
parCon = parCont.ConnectionInfo
End If
Return parCon.RDGatewayUsername
Return parCon.RDGatewayUsername.Trim()
Else
Return Me._RDGatewayUsername
Return Me._RDGatewayUsername.Trim()
End If
End Get
Set(ByVal value As String)
Me._RDGatewayUsername = value
Me._RDGatewayUsername = value.Trim()
End Set
End Property
@@ -588,13 +588,13 @@ Namespace Connection
parCon = parCont.ConnectionInfo
End If
Return parCon.RDGatewayDomain
Return parCon.RDGatewayDomain.Trim()
Else
Return Me._RDGatewayDomain
Return Me._RDGatewayDomain.Trim()
End If
End Get
Set(ByVal value As String)
Me._RDGatewayDomain = value
Me._RDGatewayDomain = value.Trim()
End Set
End Property
#End Region
@@ -1478,7 +1478,9 @@ Namespace Connection
#Region "Methods"
Public Function Copy() As Connection.Info
Return Me.MemberwiseClone
Dim newConnectionInfo As Connection.Info = MemberwiseClone()
newConnectionInfo._OpenConnections = New Connection.Protocol.List
Return newConnectionInfo
End Function
Public Sub New()

View File

@@ -17,14 +17,24 @@ Namespace Connection
End Set
End Property
Private _InterfaceControl As Connection.InterfaceControl
Public Property InterfaceControl() As Connection.InterfaceControl
Private WithEvents _connectionWindow As UI.Window.Connection
Public Property ConnectionWindow As UI.Window.Connection
Get
Return Me._InterfaceControl
Return _connectionWindow
End Get
Set(ByVal value As Connection.InterfaceControl)
Me._InterfaceControl = value
Set(value As UI.Window.Connection)
_connectionWindow = value
End Set
End Property
Private _interfaceControl As InterfaceControl
Public Property InterfaceControl() As InterfaceControl
Get
Return _interfaceControl
End Get
Set(ByVal value As InterfaceControl)
_interfaceControl = value
ConnectionWindow = TryCast(_interfaceControl.GetContainerControl(), UI.Window.Connection)
End Set
End Property
@@ -62,17 +72,29 @@ Namespace Connection
End Try
End Sub
Public Overridable Sub ResizeBegin(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.ResizeBegin
End Sub
Public Overridable Sub Resize(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.Resize
End Sub
Public Overridable Sub ResizeEnd(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.ResizeEnd
End Sub
Public Overridable Function SetProps() As Boolean
Try
Me._InterfaceControl.Parent.Tag = Me._InterfaceControl
Me._InterfaceControl.Show()
Me._interfaceControl.Parent.Tag = Me._interfaceControl
Me._interfaceControl.Show()
If Me._Control IsNot Nothing Then
Me._Control.Name = Me._Name
Me._Control.Parent = Me._InterfaceControl
Me._Control.Location = Me._InterfaceControl.Location
Me._Control.Parent = Me._interfaceControl
Me._Control.Location = Me._interfaceControl.Location
Me._Control.Size = Me.InterfaceControl.Size
Me._Control.Anchor = Me._InterfaceControl.Anchor
Me._Control.Anchor = Me._interfaceControl.Anchor
End If
Return True
@@ -92,10 +114,6 @@ Namespace Connection
Me.Close()
End Sub
Public Overridable Sub Resize()
End Sub
Public Overridable Sub Close()
Dim t As New Thread(AddressOf CloseBG)
t.SetApartmentState(Threading.ApartmentState.STA)

View File

@@ -1,6 +1,7 @@
Imports mRemoteNG.App.Native
Imports System.Threading
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools
Namespace Connection
Namespace Protocol
@@ -86,8 +87,9 @@ Namespace Connection
Return Nothing
End If
IntAppProcessStartInfo.UseShellExecute = False
IntAppProcessStartInfo.FileName = _IntAppPath
IntAppProcessStartInfo.Arguments = Arguments
IntAppProcessStartInfo.Arguments = CommandLineArguments.EscapeBackslashes(Arguments)
IntAppProcess = Process.Start(IntAppProcessStartInfo)
IntAppProcess.EnableRaisingEvents = True
@@ -120,7 +122,7 @@ Namespace Connection
SetWindowLong(Me.IntAppHandle, 0, WS_VISIBLE)
ShowWindow(Me.IntAppHandle, SW_SHOWMAXIMIZED)
Resize()
Resize(Me, New EventArgs)
MyBase.Connect()
Return True
@@ -139,8 +141,9 @@ Namespace Connection
End Try
End Sub
Public Overrides Sub Resize()
Public Overrides Sub Resize(ByVal sender As Object, ByVal e As EventArgs)
Try
If InterfaceControl.Size = Size.Empty Then Return
MoveWindow(IntAppHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), Me.InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), Me.InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppResizeFailed & vbNewLine & ex.Message, True)

View File

@@ -6,6 +6,8 @@ Imports System.Threading
Imports Microsoft.Win32
Imports System.Drawing
Imports mRemoteNG.App.Runtime
Imports System.Text.RegularExpressions
Imports mRemoteNG.Tools
Namespace Connection
Namespace Protocol
@@ -111,72 +113,88 @@ Namespace Connection
PuttyProcess = New Process
With PuttyProcess.StartInfo
.UseShellExecute = False
.FileName = _PuttyPath
Select Case Me._PuttyProtocol
Case Putty_Protocol.raw
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.rlogin
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.ssh
Dim UserArg As String = ""
Dim PassArg As String = ""
Dim arguments As New CommandLineArguments
arguments.EscapeForShell = False
arguments.Add("-load", InterfaceControl.Info.PuttySession)
arguments.Add("-" & _PuttyProtocol.ToString)
If _PuttyProtocol = Putty_Protocol.ssh Then
Dim username As String = ""
Dim password As String = ""
If Not String.IsNullOrEmpty(InterfaceControl.Info.Username) Then
username = InterfaceControl.Info.Username
Else
If My.Settings.EmptyCredentials = "windows" Then
UserArg = " -l """ & Environment.UserName & """"
username = Environment.UserName
ElseIf My.Settings.EmptyCredentials = "custom" Then
UserArg = " -l """ & My.Settings.DefaultUsername & """"
PassArg = " -pw """ & Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey) & """"
username = My.Settings.DefaultUsername
End If
End If
If Me.InterfaceControl.Info.Username <> "" Then
UserArg = " -l """ & Me.InterfaceControl.Info.Username & """"
If Not String.IsNullOrEmpty(InterfaceControl.Info.Password) Then
password = InterfaceControl.Info.Password
Else
If My.Settings.EmptyCredentials = "custom" Then
password = Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey)
End If
End If
If Me.InterfaceControl.Info.Password <> "" Then
PassArg = " -pw """ & Me.InterfaceControl.Info.Password & """"
End If
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -" & Me._PuttySSHVersion & UserArg & PassArg & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.telnet
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.serial
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
End Select
If _isPuttyNg Then
.Arguments = .Arguments & " -hwndparent " & Me.InterfaceControl.Handle.ToString()
arguments.Add("-" & _PuttySSHVersion)
arguments.Add("-l", username)
arguments.Add("-pw", password)
End If
arguments.Add("-P", InterfaceControl.Info.Port.ToString)
arguments.Add(InterfaceControl.Info.Hostname)
If _isPuttyNg Then
arguments.Add("-hwndparent", InterfaceControl.Handle.ToString())
End If
.Arguments = arguments.ToString
'REMOVE IN RELEASE!
'mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Arguments: " & .Arguments, True)
MessageCollector.AddMessage(MessageClass.InformationMsg, "PuTTY Arguments: " & .Arguments, True)
End With
PuttyProcess.EnableRaisingEvents = True
AddHandler PuttyProcess.Exited, AddressOf ProcessExited
PuttyProcess.Start()
PuttyProcess.WaitForInputIdle()
PuttyProcess.WaitForInputIdle(My.Settings.MaxPuttyWaitTime * 1000)
If _isPuttyNg Then
PuttyHandle = FindWindowEx(Me.InterfaceControl.Handle, 0, vbNullString, vbNullString)
Else
PuttyHandle = PuttyProcess.MainWindowHandle
Dim startTicks As Integer = Environment.TickCount
While PuttyHandle.ToInt32 = 0 And Environment.TickCount < startTicks + (My.Settings.MaxPuttyWaitTime * 1000)
If _isPuttyNg Then
PuttyHandle = FindWindowEx(InterfaceControl.Handle, 0, vbNullString, vbNullString)
Else
PuttyProcess.Refresh()
PuttyHandle = PuttyProcess.MainWindowHandle
End If
If PuttyHandle.ToInt32 = 0 Then Thread.Sleep(0)
End While
If Not _isPuttyNg Then
SetParent(PuttyHandle, InterfaceControl.Handle)
End If
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strPuttyStuff, True)
MessageCollector.AddMessage(MessageClass.InformationMsg, My.Language.strPuttyStuff, True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strPuttyHandle, PuttyHandle.ToString), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strPuttyTitle, PuttyProcess.MainWindowTitle), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strPuttyParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format(My.Language.strPuttyHandle, PuttyHandle.ToString), True)
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format(My.Language.strPuttyTitle, PuttyProcess.MainWindowTitle), True)
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format(My.Language.strPuttyParentHandle, InterfaceControl.Parent.Handle.ToString), True)
Resize()
Resize(Me, New EventArgs)
MyBase.Connect()
Return True
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyConnectionFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(MessageClass.ErrorMsg, My.Language.strPuttyConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -189,8 +207,9 @@ Namespace Connection
End Try
End Sub
Public Overrides Sub Resize()
Public Overrides Sub Resize(ByVal sender As Object, ByVal e As EventArgs)
Try
If InterfaceControl.Size = Size.Empty Then Return
MoveWindow(PuttyHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyResizeFailed & vbNewLine & ex.Message, True)
@@ -254,7 +273,6 @@ Namespace Connection
Catch
isPuttyNg = False
End Try
MessageCollector.AddMessage(MessageClass.InformationMsg, String.Format("IsFilePuttyNg(""{0}"") = {1}", file, isPuttyNg), False)
Return isPuttyNg
End Function

View File

@@ -12,23 +12,49 @@ Namespace Connection
Inherits Connection.Protocol.Base
#Region "Properties"
Private _SmartSize As Boolean
Public Property SmartSize() As Boolean
Get
Return Me.RDP.AdvancedSettings4.SmartSizing
Return RDP.AdvancedSettings4.SmartSizing
End Get
Set(ByVal value As Boolean)
Me.RDP.AdvancedSettings4.SmartSizing = value
RDP.AdvancedSettings4.SmartSizing = value
ReconnectForResize()
End Set
End Property
Private _Fullscreen As Boolean
Public Property Fullscreen() As Boolean
Get
Return Me.RDP.FullScreen
Return RDP.FullScreen
End Get
Set(ByVal value As Boolean)
Me.RDP.FullScreen = value
RDP.FullScreen = value
ReconnectForResize()
End Set
End Property
Private _redirectKeys As Boolean = False
Public Property RedirectKeys As Boolean
Get
Return _redirectKeys
End Get
Set(value As Boolean)
_redirectKeys = value
Try
If Not _redirectKeys Then Return
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
RDP.AdvancedSettings2.DisplayConnectionBar = False
RDP.AdvancedSettings2.PinConnectionBar = False
If RDPVersion >= Versions.RDC70 Then
Dim msRdpClientNonScriptable As MSTSCLib.IMsRdpClientNonScriptable5 = RDP.GetOcx()
msRdpClientNonScriptable.DisableConnectionBar = True
End If
RDP.FullScreen = True
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Set
End Property
#End Region
@@ -87,7 +113,7 @@ Namespace Connection
Me.SetUseConsoleSession()
Me.SetPort()
Me.SetRedirectKeys()
RedirectKeys = Info.RedirectKeys
Me.SetRedirection()
Me.SetAuthenticationLevel()
Me.SetRDGateway()
@@ -156,14 +182,56 @@ Namespace Connection
End Try
End Sub
Public Overrides Sub Resize()
Control.Location = InterfaceControl.Location
Control.Size = InterfaceControl.Size
MyBase.Resize()
Private _controlBeginningSize As New Size
Public Overrides Sub ResizeBegin(ByVal sender As Object, ByVal e As EventArgs)
_controlBeginningSize = Control.Size
End Sub
Public Overrides Sub Resize(ByVal sender As Object, ByVal e As EventArgs)
If DoResize() And _controlBeginningSize.IsEmpty Then
ReconnectForResize()
End If
MyBase.Resize(sender, e)
End Sub
Public Overrides Sub ResizeEnd(ByVal sender As Object, ByVal e As EventArgs)
DoResize()
If Not Control.Size = _controlBeginningSize Then
ReconnectForResize()
End If
_controlBeginningSize = Size.Empty
End Sub
#End Region
#Region "Private Methods"
Private Function DoResize() As Boolean
Control.Location = InterfaceControl.Location
If Not Control.Size = InterfaceControl.Size And Not InterfaceControl.Size = Size.Empty Then
Control.Size = InterfaceControl.Size
Return True
Else
Return False
End If
End Function
Private Sub ReconnectForResize()
If RDPVersion < Versions.RDC80 Then Return
If Not (InterfaceControl.Info.Resolution = RDPResolutions.FitToWindow Or _
InterfaceControl.Info.Resolution = RDPResolutions.Fullscreen) Or _
SmartSize Then Return
Dim size As Size
If RedirectKeys Or Not Fullscreen Then
size = Control.Size
Else
size = Screen.FromControl(Control).Bounds.Size
End If
Dim msRdpClient8 As MSTSCLib.IMsRdpClient8 = RDP.GetOcx()
msRdpClient8.Reconnect(size.Width, size.Height)
End Sub
Private Sub SetRDGateway()
Try
If RDP.TransportSettings.GatewayIsSupported = 1 Then
@@ -310,19 +378,6 @@ Namespace Connection
End Try
End Sub
Private Sub SetRedirectKeys()
Try
If Me.Info.RedirectKeys Then
RDP.AdvancedSettings2.ContainerHandledFullScreen = 1
RDP.AdvancedSettings2.DisplayConnectionBar = False
RDP.AdvancedSettings2.PinConnectionBar = False
RDP.FullScreen = True
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub SetRedirection()
Try
RDP.AdvancedSettings2.RedirectDrives = Me.Info.RedirectDiskDrives
@@ -386,9 +441,12 @@ Namespace Connection
MyBase.Event_ErrorOccured(Me, e.errorCode)
End Sub
Private Sub RDPEvent_OnDisconnected(ByVal sender As Object, ByVal e As AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvent)
Dim Reason As String = RDP.GetErrorDescription(e.discReason, RDP.ExtendedDisconnectReason)
MyBase.Event_Disconnected(Me, e.discReason & vbCrLf & Reason)
Private Sub RDPEvent_OnDisconnected(ByVal sender As Object, ByVal e As IMsTscAxEvents_OnDisconnectedEvent)
Const UI_ERR_NORMAL_DISCONNECT As Integer = &HB08
If Not e.discReason = UI_ERR_NORMAL_DISCONNECT Then
Dim reason As String = RDP.GetErrorDescription(e.discReason, RDP.ExtendedDisconnectReason)
Event_Disconnected(Me, e.discReason & vbCrLf & reason)
End If
If My.Settings.ReconnectOnDisconnect Then
ReconnectGroup = New ReconnectGroup
@@ -398,7 +456,7 @@ Namespace Connection
ReconnectGroup.Show()
tmrReconnect.Enabled = True
Else
MyBase.Close()
Close()
End If
End Sub
@@ -411,6 +469,7 @@ Namespace Connection
End Sub
Private Sub RDPEvent_OnLeaveFullscreenMode(ByVal sender As Object, ByVal e As System.EventArgs)
Fullscreen = False
RaiseEvent LeaveFullscreen(Me, e)
End Sub
#End Region
@@ -623,6 +682,8 @@ Namespace Connection
Public Class Versions
Public Shared RDC60 As New Version(6, 0, 6000)
Public Shared RDC61 As New Version(6, 0, 6001)
Public Shared RDC70 As New Version(6, 1, 7600)
Public Shared RDC80 As New Version(6, 2, 9200)
End Class
#Region "Terminal Sessions"
@@ -815,7 +876,6 @@ Namespace Connection
End If
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -138,7 +138,7 @@ Partial Class frmMain
Me.pnlDock.DockBackColor = System.Drawing.SystemColors.Control
Me.pnlDock.DockLeftPortion = 230
Me.pnlDock.DockRightPortion = 230
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingSdi
Me.pnlDock.Location = New System.Drawing.Point(0, 0)
Me.pnlDock.Name = "pnlDock"
Me.pnlDock.Size = New System.Drawing.Size(842, 424)
@@ -689,6 +689,7 @@ Partial Class frmMain
Me.tsExternalTools.Location = New System.Drawing.Point(39, 49)
Me.tsExternalTools.Name = "tsExtAppsToolbar"
Me.tsExternalTools.Size = New System.Drawing.Size(111, 25)
Me.tsExternalTools.MaximumSize = New System.Drawing.Size(0, 25)
Me.tsExternalTools.TabIndex = 17
'
'cMenExtAppsToolbar
@@ -712,6 +713,7 @@ Partial Class frmMain
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 24)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.Size = New System.Drawing.Size(331, 25)
Me.tsQuickConnect.MaximumSize = New System.Drawing.Size(0, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
@@ -741,6 +743,7 @@ Partial Class frmMain
Me.ToolStrip1.Location = New System.Drawing.Point(3, 74)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
Me.ToolStrip1.MaximumSize = New System.Drawing.Size(0, 25)
Me.ToolStrip1.TabIndex = 19
Me.ToolStrip1.Visible = False
'

View File

@@ -1,3 +1,4 @@
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
Imports System.Reflection
Imports System.Runtime.InteropServices
@@ -63,6 +64,10 @@ Public Class frmMain
'LoadCredentials()
LoadConnections()
If Not IsConnectionsFileLoaded Then
Application.Exit()
Return
End If
If My.Settings.StartupComponentsCheck Then
Windows.Show(UI.Window.Type.ComponentsCheck)
@@ -119,7 +124,7 @@ Public Class frmMain
mMenViewConfig.Text = My.Language.strMenuConfig
mMenViewSessions.Text = My.Language.strMenuSessions
mMenViewErrorsAndInfos.Text = My.Language.strMenuNotifications
mMenViewScreenshotManager.Text = My.Language.strMenuScreenshotManager
mMenViewScreenshotManager.Text = My.Language.strScreenshots
mMenViewJumpTo.Text = My.Language.strMenuJumpTo
mMenViewJumpToConnectionsConfig.Text = My.Language.strMenuConnectionsAndConfig
mMenViewJumpToSessionsScreenshots.Text = My.Language.strMenuSessionsAndScreenshots
@@ -162,24 +167,37 @@ Public Class frmMain
End Sub
Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If My.Settings.ConfirmExit And WindowList.Count > 0 Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, My.Language.strConfirmExitMainInstruction, "", "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmExit = False
End If
If Result = DialogResult.No Then
e.Cancel = True
Exit Sub
If My.Settings.ConfirmExit And Not (WindowList Is Nothing OrElse WindowList.Count = 0) Then
Dim connectionWindow As UI.Window.Connection
Dim openConnections As Integer = 0
For Each window As UI.Window.Base In WindowList
connectionWindow = TryCast(window, UI.Window.Connection)
If connectionWindow IsNot Nothing Then
openConnections = openConnections + connectionWindow.TabController.TabPages.Count
End If
Next
If openConnections > 0 Then
Dim result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, My.Language.strConfirmExitMainInstruction, "", "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmExit = False
End If
If result = DialogResult.No Then
e.Cancel = True
Exit Sub
End If
End If
End If
Shutdown.BeforeQuit()
_IsClosing = True
For Each Window As UI.Window.Base In WindowList
Window.Close()
Next
App.Runtime.Shutdown.BeforeQuit()
If WindowList IsNot Nothing Then
For Each window As UI.Window.Base In WindowList
window.Close()
Next
End If
Debug.Print("[END] - " & Now)
End Sub
@@ -347,7 +365,7 @@ Public Class frmMain
End Sub
Private Sub mMenFileSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileSaveAs.Click
App.Runtime.Windows.Show(UI.Window.Type.SaveAs)
SaveConnectionsAs()
End Sub
Private Sub mMenFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileExit.Click
@@ -676,8 +694,6 @@ Public Class frmMain
End If
AddHandler tMenItem.MouseDown, AddressOf ConMenItem_MouseDown
tMenItem.Dispose()
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
@@ -694,22 +710,32 @@ Public Class frmMain
#End Region
#Region "Window Overrides and DockPanel Stuff"
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
Private _inSizeMove As Boolean = False
Private Sub frmMain_ResizeBegin(ByVal sender As Object, ByVal e As EventArgs) Handles Me.ResizeBegin
_inSizeMove = True
End Sub
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Resize
If WindowState = FormWindowState.Minimized Then
If My.Settings.MinimizeToTray Then
If App.Runtime.NotificationAreaIcon Is Nothing Then
App.Runtime.NotificationAreaIcon = New Tools.Controls.NotificationAreaIcon()
If NotificationAreaIcon Is Nothing Then
NotificationAreaIcon = New Tools.Controls.NotificationAreaIcon()
End If
Me.Hide()
Hide()
End If
Else
PreviousWindowState = Me.WindowState
PreviousWindowState = WindowState
End If
End Sub
Private _inMouseActivate As Boolean = False
Private _inSizeMove As Boolean = False
Private Sub frmMain_ResizeEnd(ByVal sender As Object, ByVal e As EventArgs) Handles Me.ResizeEnd
_inSizeMove = False
' This handles activations from clicks that started a size/move operation
ActivateConnection()
End Sub
Private _inMouseActivate As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
Try
#If Config = "Debug" Then
@@ -727,8 +753,8 @@ Public Class frmMain
Dim control As Control = FromChildHandle(WindowFromPoint(MousePosition))
If Not IsNothing(control) Then
' Let ComboBoxes get focus but don't simulate a mouse event
If TypeOf control Is ComboBox Then Exit Select
' Let TreeViews and ComboBoxes get focus but don't simulate a mouse event
If TypeOf control Is TreeView Or TypeOf control Is ComboBox Then Exit Select
If control.CanSelect Or TypeOf control Is MenuStrip Or TypeOf control Is ToolStrip Or TypeOf control Is Magic.Controls.InertButton Then
' Simulate a mouse event since one wasn't generated by Windows
@@ -742,13 +768,6 @@ Public Class frmMain
' This handles activations from clicks that did not start a size/move operation
ActivateConnection()
Case WM_ENTERSIZEMOVE
_inSizeMove = True
Case WM_EXITSIZEMOVE
_inSizeMove = False
' This handles activations from clicks that started a size/move operation
ActivateConnection()
Case WM_WINDOWPOSCHANGED
' Ignore this message if the window wasn't activated
Dim windowPos As WINDOWPOS = Marshal.PtrToStructure(m.LParam, GetType(WINDOWPOS))
@@ -792,6 +811,32 @@ Public Class frmMain
Private Sub pnlDock_ActiveDocumentChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles pnlDock.ActiveDocumentChanged
ActivateConnection()
End Sub
Public Sub ShowHidePanelTabs(Optional closingDocument As DockContent = Nothing)
Dim newDocumentStyle As DocumentStyle = pnlDock.DocumentStyle
If My.Settings.AlwaysShowPanelTabs Then
newDocumentStyle = DocumentStyle.DockingWindow ' Show the panel tabs
Else
Dim nonConnectionPanelCount As Integer = 0
For Each document As DockContent In pnlDock.Documents
If (closingDocument Is Nothing OrElse document IsNot closingDocument) And Not TypeOf document Is UI.Window.Connection Then
nonConnectionPanelCount = nonConnectionPanelCount + 1
End If
Next
If nonConnectionPanelCount = 0 Then
newDocumentStyle = DocumentStyle.DockingSdi ' Hide the panel tabs
Else
newDocumentStyle = DocumentStyle.DockingWindow ' Show the panel tabs
End If
End If
If Not pnlDock.DocumentStyle = newDocumentStyle Then
pnlDock.DocumentStyle = newDocumentStyle
pnlDock.Size = New Size(1, 1)
End If
End Sub
#End Region
#Region "Screen Stuff"

View File

@@ -124,154 +124,154 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABk
IgAAAk1TRnQBSQFMAgEBBwEAAQgBAQEIAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAeIB7wH0Af8BqAHJAdcB/wFwAaQBtgH/AVMBhgGcAf8BPgFlAYoB/wE5
AWABhwH/ATkBagGVAf8BTAGOAasB/wGPAbcBzQH/Ad0B6gHxAf8MAANXAbcDnwH/A5oB/wOWAf8DkQH/
A40B/wOJAf8DhAH/A4AB/wNbAf8DVwH/A1MB/wNQAf8DTAH/A0kB/wNXAbcYAAMNARIDVgG2A1YBtgMN
ARFgAAGtAc8B3wH/AUsBkQGtAf8BUAGjAb8B/wFsAcAB1AH/AZUB2QHmAf8BgQHbAfAB/wFEAcYB7AH/
ARgBqgHdAf8BCgGSAccB/wEWAYABrAH/AS0BZQGSAf8BnQG/AdEB/wgAA6gB/wPpAf8D0wH/A9IB/wPR
Af8D0AH/A84B/wPNAf8DzQH/A8sB/wPLAf8DygH/A8kB/wPIAf8D4gH/A0kB/xgAA14B2QPkAf8D4wH/
A1gBwWAAAU4BhAGbAf8BOAG9AecB/wFbAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUQBygHw
Af8BEgG2Ae0B/wEAAacB6AH/AQABoQHhAf8BAAGWAdIB/wExAVIBbgH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DTQH/CAADCwEPA1QBrQM6
AWEDPwFuA3QB+AHiAeEB3wH/AeEB4AHfAf8DXwHzAzwBZwM8AWYDUwGtAwsBD1AAAVEBhwGeAf8BNwHE
AfAB/wFdAdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUQBygHwAf8BEgG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wEyAVMBcAH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOw
Af8DrwH/A60B/wOrAf8DqQH/A6gB/wPKAf8DUQH/CAADWgHFBP8CnwGeAf4CngGdAf4C5wHmAf8B1gHV
AdMB/wHXAdYB1AH/AeMB4gHgAf8BkwGSAZAB/gKqAakB/QHpAegB5gH/A1gBwVAAAVMBiQGgAf8BNwHE
Ae8B/wFcAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGCAd8B8wH/AUUBygHwAf8BEgG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE0AVYBcgH/CAADtgH/A90B/wPBAf8DvQH/A7wB/wO6Af8DuAH/A7UB/wO0
Af8DsgH/A7AB/wOtAf8DrAH/A6wB/wPPAf8DVQH/CAADZAHnAvkB9wH/Au8B7gH/AtsB2gH/AcoCyQH/
AckByAHGAf8ByQHIAccB/wHJAcgBxwH/AssByQH/AeYB5QHkAf8B5QHkAeIB/wNlAeVQAAFVAYwBogH/
ATkBxgHwAf8BXgHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BggHfAfQB/wFFAcoB8AH/ARIBtgHtAf8BAAGo
AegB/wEAAaIB4gH/AQABmwHbAf8BNgFZAYAB/wgAA1oBvQPaAf8DyAH/A8AB/wO/Af8DvQH/A7oB/wO4
Af8DtwH/A7UB/wOzAf8DsAH/A68B/wOzAf8DwgH/A1oBvQgAA04BlQH2AfUB9AH/AeYB5QHkAf8BvwG+
Ab0B/wLrAeoB/wHUAdMB0gH/AdYB1QHUAf8B4gLhAf8CtAGzAf8B1wHWAdQB/wHiAeEB3wH/A0oBjVAA
AVgBjwGlAf8BOgHGAfAB/wFeAdQB8gH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUQBygHwAf8BEgG2
Ae0B/wEAAacB6AH/AQABoQHiAf8BAAGcAdsB/wE4AVwBgwH/CAADWgG9A+MB/wPnAf8D4QH/A+AB/wPg
Af8D3wH/A98B/wPeAf8D3QH/A90B/wPcAf8D2wH/A+AB/wPQAf8DWgG9AwsBDwNVAbUDZAHnAeQB4wHi
Af8B0QHQAc8B/wLwAe8B/wOuAf8DZAHxA2cB8gKsAasB/wLoAecB/wLLAcoB/wHgAd8B3QH/A2EB5ANV
AbUDCwEPSAABWQGSAagB/wE6AcUB8AH/AV8B1AHyAf8BjQHjAfQB/wGiAesB9gH/AYIB3wH0Af8BRAHK
AfAB/wESAbYB7QH/AQABpwHoAf8BAAGhAeEB/wEAAZwB2wH/AToBXwGGAf8IAAMpAT8DzgH/A+wB/wPe
Af8D2AH/A9IB/wPMAf8DyAH/A8cB/wPIAf8DywH/A9AB/wPdAf8D6AH/A6QB/wMrAUIDPwFtAuQB4wH/
AdgB1gHVAf8B0gHRAdAB/wHFAcQBwwH/Ae0B7AHrAf8DVwG6CAADXAHNAegB5wHmAf8BtgG1AbQB/wHW
AdUB0wH/AeIB4QHgAf8C4AHfAf8DPAFmSAABXAGVAasB/wE6AcUB8AH/AV8B1AHyAf8BjQHjAfQB/wGi
AesB9gH/AYMB3wH0Af8BRQHLAfAB/wESAbUB7QH/AQABpwHoAf8BAAGhAeIB/wEAAZwB2gH/AT0BYgGI
Af8MAANaAb0D4wH/A9sB/wPiAf8BtwHQAbgB/wFDAa0BRwH/AVUBqgFDAf8BTwGvAUcB/wE1AaUBQQH/
AawBxQGsAf8DwgH/A9EB/wPTAf8DWgG9BAADQgF2AewB6wHoAf8B2gHZAdcB/wHUAdMB0QH/AcYBxQHE
Af8B3gLcAf8DRgF+CAADUAGaAd0B3AHbAf8ByAHGAcUB/wLiAeEB/wLhAd8B/wHuAe0B7AH/Az8Bb0gA
AV4BmAGuAf8BOgHFAfAB/wFfAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUUBygHwAf8BEgG2
Ae0B/wEAAagB6QH/AQABoQHhAf8BAAGcAdoB/wE/AWQBigH/DAADKQE/A9EB/wPzAf8BxwHeAcoB/wFD
AckBhQH/AbMB3AGkAf8B5wHHAVsB/wHcAb8BUgH/AVUBzAGPAf8BLgGtAUcB/wG4AdABuAH/A/EB/wOv
Af8DKwFCBAADLwFKA2AB6wN7AfwB3gHdAdwB/wHLAsoB/wHmAuUB/wNhAeEDMgFQAzgBXANgAesC7gHs
Af8BzALLAf8B5wHmAeUB/wN7AfwDYAHrAywBQ0gAAWEBmwGwAf8BOQHGAfAB/wFfAdQB8gH/AY0B4wH0
Af8BogHrAfYB/wGDAd8B9AH/AUUBygHwAf8BEgG2Ae0B/wEAAagB6AH/AQABoQHhAf8BAAGcAdoB/wFC
AWgBjgH/EAADWgG9A8QB/wFVAc4BiwH/AZkB5AGrAf8BsAHFATwB/wHqAbUBJwH/AeEBogEYAf8BpQGd
AR8B/wGCAcUBjwH/ASgBmgE1Af8DoAH/A1oBvRAAA14BzgHhAeAB3gH/AdkB1wHWAf8BuAK3Af8B4QHg
Ad8B/wOoAf0DqgH9AvYB9QH/AsABvwH/AeoB6QHoAf8C8wHyAf8DXAHJUAABZAGfAbMB/wE5AcYB8AH/
AV0B1AHxAf8BjAHjAfQB/wGiAesB9gH/AYMB3wH0Af8BRQHKAfAB/wESAbYB7QH/AQABpwHoAf8BAAGh
AeEB/wEAAZsB2gH/AUQBawGQAf8YAAFhAX0BbAH8AaIB6QGVAf8B1gHPAUgB/wHiAbMBJgH/AdEBuwEu
Af8BwgGuASEB/wGCAb0BSwH/ASsBcgFXAfwYAANMAZEB4wHiAeAB/wLeAdwB/wHhAeAB3wH/AcwCywH/
AcQBwwHCAf8CzwHOAf8C3gHdAf8C8AHvAf8C8AHvAf8C9gH1Af8DSAGHUAABZQGhAbUB/wFfAdUB9AH/
AZoB6AH3Af8BtQHzAfoB/wHCAfgB/AH/AcMB+AH9Af8BwQH3Af0B/wGvAfAB+wH/AY8B4gH3Af8BXgHQ
AfAB/wEyAbgB5QH/AUcBbgGTAf8YAAFjAX0BbQH8AaIB8AGfAf8B2AHtAa8B/wHeAcUBRwH/AbQB4gFE
Af8BPwHnARgB/wFKAdcBSgH/ATIBdAFeAfwUAAMBAQIDXwHjAeUB5AHhAf8C7gHtAf8C7gHtAf8C6wHq
Af8B4wHiAeEB/wLoAecB/wLqAekB/wLzAfIB/wL1AfQB/wH6AfkB+AH/A1wB31AAAWgBowG4Af8BxQH5
Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/
AcUB+QH9Af8BxQH5Af0B/wFJAXEBlQH/GAADYQHcAcgB9wHUAf8B2AH2AcoB/wHnAeMBqQH/AdsBzwFL
Af8BrwHcAUcB/wGdAeoBqwH/A18B4BgAA0ABbwN/Af4DZAHnA18B8wHoAecB5gH/AecB5gHlAf8C7QHs
Af8C+wH6Af8DZwHyA2QB5wN/Af4DPQFoUAABtwHXAeEB/wGMAb0BzAH/AZ0BzwHbAf8BrQHfAegB/wG5
AewB8wH/AcIB9QH6Af8BwgH1AfoB/wG4AesB8QH/AakB2gHjAf8BlAHEAdEB/wFvAagBuAH/AakBxQHR
Af8YAAMtAUUBYAF5AXAB+gHbAfgB6QH/AecB8gHYAf8B7QHlAbMB/wHfAdkBpgH/AV8BiAFfAfsDMgFQ
IAADDwEUAwoBDgNTAaoB7wHuAe0B/wL0AfMB/wNSAaQDCAELAxEBF1gAAv4C/wHjAfEB9AH/AbkB1wHh
Af8BlQG+AcwB/wFvAagBuwH/AWIBmwGwAf8BXgGYAa0B/wFnAaEBswH/AYwBsgHCAf8BsQHNAdcB/wHf
AesB7wH/A/4B/xwAAy4BRwNeAdkBZwF9AWsB/AFnAXwBZwH8A14B3QMyAVAsAAMvAUoDXQHwA2IB7wMs
AUNkAAMRARcDVgGzAVMBVAFTAay0AAMEAQUDEAEVAx8BLQMpAT8DLwFJAy4BSAMoAT0DHgErAw8BFAMD
AQQQAAO3Af8BnAGoAZ4B/wEAAVYBMQH/ARsBkgFTAf8BAAFaATEB/wEDAUcBoAH/AQABRQGeAf8BAAFC
AZsB/wEAAUABmQH/AQABPgGXAf8BAAE7AZQB/wEAAToBkwH/A0sB/wNLAf8cAANBAXIBTAJfAfMBWQJc
Ac8BSwJMAZADIwEzXAADBQEHAx8BLAI+AT0BagJSAVABowFbAlkBxAFdAloB0wFdAloB0wFbAlkBwwFS
AlEBoQM8AWYDHAEoAwQBBgwAAxUBHQNRAaIBIAGVAVcB/wGCAb4BqgH/AS8BpQGCAf8BEAGXAUkB/wET
AZkBTgH/ARcBmQFSAf8BGwGdAVcB/wFVAaoB0gH/AVMBqAHRAf8BAAE8AZUB/yAAAyEBMAErATYBawH8
AYYBrQHhAf8BXQGoAdwB/wE+AZIByQH/AQ8BUQGrAf8BVQJWAbEDHwEtUwABAQMSARgDPgFrAV0CWQHX
AVkCKwH8AawBLAEDAf8B4QFMASAB/wHkAV4BNAH/AdMBSgEYAf8BowFAATcB/QFhAl4B2gI+AT0BagMP
ARQIAAMYASIBUAFSAVABpANWAbMBTAGsAZ8B/wFTAbcBngH/AV0BuwGsAf8BXQG7Aa4B/wFeAbsBsAH/
AYABvAGzAf8BFgGaAVoB/wEzAZUBxwH/AVYBqwHTAf8BAAE/AZgB/yAAAVQCVgGrAUwBnQHRAf8BmQG8
AesB/wFQAaAB4wH/AZYBuQHqAf8BlAG4AeoB/wE/AZMBygH/AisBZwH8A0MBeFAAAxsBJgNZAdIBHAEG
AQAB/wGKATsBIwH/AcoBhgFFAf8B9gG8AZwB/wH5AcwBtwH/AeMBoAFXAf8BsQFWATwB/wFYATIBEwH/
AV4CWAHdAxwBKAgAAVUBVgFVAbEDVgGzA1YBswE7AaQBkQH/AU4BtgGbAf8BRwGyAZsB/wFJAbIBngH/
AUsBswGhAf8BhQG/AbYB/wEdAZ4BggH/ATgBmQHJAf8BWgGtAdQB/wEAAUMBnAH/HAADHwEtASsBTAFv
AfwBnQG/AewB/wFIAZwB4gH/AToBkwHfAf8BNwGRAd8B/wE+AZQB4AH/AZUBuAHqAf8BhgGtAeEB/wEo
AYMBuwH/AUsCTAGQBAADnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOd
Af8DnQH/A50B/wOdAf8DnQH/CAABUwJPAaUBMwEYAQAB/wFYAUMBLgH/AY8BVQFAAf8BrAGIAUoB/wHC
AaMBiAH/AcEBpQGOAf8BswGYAYEB/wGRAVUBPwH/AVMBOgElAf8BQgEbAQAB/wFWAlUBsQgAAwgBCwNV
AbIDVgGzAVUBsgGoAf8BXAG9AacB/wGHAcEBtQH/AYYBwQG2Af8BhwHBAbcB/wGIAcEBuQH/ASMBogGI
Af8BPQGcAcsB/wFeAbAB1QH/AQIBRgGfAf8QAAMrAUIDSAGEAVUCVwG3AUwCXwHzAVUBpAHXAf8BoQHC
Ae0B/wGfAcAB7QH/AZ0BvwHtAf8BUwGjAeQB/wE5AZIB3wH/ATcBkAHeAf8BWgGnAeYB/wGSAbYB6AH/
ASIBXgG3Af8DNwFaA50B/wG6Ar0B/wHmAuwB/wHmAu0B/wHnAu0B/wHoAu4B/wHpAu8B/wHpAu8B/wHq
Au8B/wHqAvAB/wHrAvAB/wHrAvEB/wHsAvEB/wHsAvEB/wG9Ar8B/wOdAf8EAAM5AV8BVAE0ARkB/wHD
AbEBogH/AbYBnAGDAf8BpgFYASsB/wGoAVYBKAH/AcMBpAGHAf8B2AHGAbAB/wG9AakBiwH/AV4BPgEe
Af8BOwEbAQAB/wExAQ0BAAH/ATgBEQEAAf8DMwFTCAADBgEIA1UBsgEuAaABigH/AZMByQG6Af8BPgGv
AZcB/wEjAaIBgwH/ASQBowGHAf8BJgGkAYsB/wElAaoBkgH/ATMBwgHtAf8BgQG0AdcB/wEHAUoBowH/
DAADTAGTAUMBlwHPAf8BWgGoAdkB/wGNAbQB4gH/AaMBxAHtAf8BpwHHAe4B/wFDAZcBzQH/ARMBVAGy
Af8BPgGTAckB/wGfAcAB7QH/AVcBlgGjAf8BngGWAScB/wFbAZQBkQH/AY0BswHpAf8BWAGlAdgB/wFa
Al4B2AQAA1wB6gHbAuIB/wHNAs8B/wPLAf8DzAH/A84B/wPPAf8D0AH/A9IB/wPTAf8D1QH/AdcC2AH/
AecC7AH/A20B9wQAAyIBMQFWAlUBsQFGARoBAAH/AaoBhQE+Af8BsgFRAQ8B/wGtAS4BAAH/AboBSwED
Af8B6gHVAb8B/wH9AfwB+gH/AdYBvgGmAf8BkAE+AQsB/wFBAQ8BAAH/AUIBHwEAAf8BOwEbAQAB/wNX
AcUDHAEnCAADBAEGARQBlAFWAf8BTQG5AZ4B/wEoAaYBiQH/AVgBsQHVAf8BVAGtAdQB/wFQAasB0gH/
AT4BugHkAf8BAAGZAUgB/wEGAY4BNwH/AQkBTwGaAf8MAAFIAmIB9gGuAc0B8AH/AbABzwHwAf8BmAG/
AewB/wFdAa4B5wH/AaoBygHvAf8BHAFaAbgB/wQAARQBVQGzAf8BogHDAe0B/wGoAZcBEAH/AcQBtQE5
Af8BrAGXAQUB/wE6AZMB3wH/AZgBuwHrAf8BAAFDAZ8B/wQAA1wB6gHZAuEB/wHLAswB/wPHAf8DyAH/
A8oB/wPLAf8DzQH/A84B/wPQAf8D0QH/AdMC1AH/AeUC6wH/A20B9wQAAy4BRwNZAewBQQEPAQAB/wGZ
AS4BAAH/AbgBRgEAAf8BwgFCAQAB/wHJAVQBAgH/AeYBvwGUAf8B7AHUAbYB/wHNAZwBQQH/AagBSwEL
Af8BmQFMASAB/wGjAYwBUQH/AV4BRQEuAf8CUQE/AfcBNQI0AVUMAAE3AY4BxAH/ATEBrAGLAf8BLgGq
AY8B/wFdAbUB2AH/AVkBsgHWAf8BVgGvAdUB/wFSAawB0wH/AQMBkAFBAf8BOAGoAYQB/wEAAVcBMgH/
AxQBGwgAAVoCYAHeAagByQHtAf8BhAGnAe0B/wE3AUkB7QH/AUkBjgHpAf8BrQHNAfAB/wFMAZ0B0gH/
AR0BWwG5Af8BRgGZAc4B/wGlAcUB7gH/AZUBmgFIAf8BrQGXAQUB/wGdAZcBLAH/AUUBmwHiAf8BmAG7
AeoB/wFIAmIB9gQAA1wB6gHXAt8B/wHHAskB/wPCAf8DxAH/A8UB/wPIAf8DyQH/A8oB/wPMAf8DzQH/
AdAC0QH/AeMC6gH/A20B9wQAAzkBXwJAASQB/QFTARoBAAH/Aa4BOAEAAf8BwAFAAQAB/wHnAZYBJQH/
AegBsgFZAf8B5AGxAVkB/wHSAYkBGAH/Ab0BRQEAAf8BqAEzAQAB/wG4AY0BPAH/AdQBwwGyAf8BmAGE
AU0B/wE6ARwBAAH/AT4CPQFqDAABPQGRAckB/wGkAcwB5AH/AYcBuwHbAf8BHgGhAVkB/wEYAZwBUwH/
ARMBmgFPAf8BDgGWAUkB/wEqAaMBgQH/AYQBwAGrAf8BIQGWAVgB/wNRAaIDFQEdBAADUQGcAZIBuQHl
Af8BTQFTAfYB/wGBAYQB9QH/Ah8B8AH/AZABuwHrAf8BrgHNAfAB/wGsAcwB8AH/AaoBygHwAf8BhQGy
AekB/wE9AakBwQH/ASMBswGNAf8BNQGoAbYB/wFPAaEB5AH/AZcBugHoAf8DXQHtBAADXAHqAdYC3wH/
AcMCxQH/A8AB/wPAAf8DwgH/A8MB/wPEAf8DxQH/A8gB/wPJAf8DzQH/AeAC6AH/A20B9wQAAzcBWgJN
ASgB+gGDASUBAAH/AcsBTwEAAf8B5QGLARwB/wH+AbYBUQL/AeMBwgH/AfQBvAGFAf8B1gFWAQgB/wHF
AU0BAAH/AboBQgEAAf8BrwFWARgB/wGuAYgBPAH/AZQBVQE8Af8BOwEdAQEB/wM8AWYMAAFCAZUBzQH/
AagBzwHlAf8BjAG/Ad0B/wEkAaUBgQH/AY0BxQG4Af8BiQHDAbQB/wGGAcEBsQH/AYQBvwGvAf8BVgG5
AZ8B/wFNAa0BoAH/A1YBswFQAVIBUAGkAxgBIgMjATMBKwFkAXoB/AGSAaQB9QH/ATgBOQH2Af8BMAGG
AfQB/wEaAaYB+wH/ATsBqwHyAf8BXQGvAecB/wFaAa0B5wH/AVcBqgHmAf8BHgG2AYAB/wE/AcgBlwH/
ARoBtwFZAf8BXAGsAecB/wGPAbUB4wH/AVoCXgHVBAADYAHWAccCzQH/AdsC5AH/AdsC5AH/AdsC5QH/
AdwC5QH/AdwC5QH/Ad0C5gH/Ad0C5gH/Ad4C5wH/Ad8C6AH/AeAC6AH/Ac0C0wH/A18B4wQAAyYBOQFg
AloB3gGOAS0BAAH/AewBngEyAf8B/gG/AYUC/wHMAaEC/wHfAbsB/wH+AcIBXgH/AeIBjgEoAf8B0wGE
ARkB/wHKAVgBCwH/AbUBTwEJAf8BlwFAAQYB/wGBAT0BGAH/A1kB7AMuAUgMAAFGAZgB0AH/AasB0QHn
Af8BkAHCAd8B/wErAakBiAH/AZEByQG7Af8BVQG6AaUB/wFRAbgBoQH/AU0BtgGeAf8BUQG4AZ0B/wE8
AaUBkgH/A1YBswNWAbMBVQFWAVUBsQQAA0kBhwGGAa8B4QH/AbkB1wHzAf8BEQGmAf4B/wFLAb8C/wEK
AaMC/wFFAb4B8AH/ARkBzgH7Af8BOQG+AfEB/wExAbMBoAH/ARoBtwFYAf8BJgGzAZAB/wGnAcgB7gH/
AVYBpQHWAf8BTwJRAZwEAAMsAUMDWwHIA50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wNeAd0DMQFOBAADCQEMA0sBjgHAAU0BDAL/AbwBXgH/AfoBzgGnAf8B+AHbAb4C/wHiAcYC/wG+
AYYB/wH0AawBVAH/AewBwgGaAf8B4gG1AYsB/wG4AVQBEgH/AZ0BQwELAf8BiAFDAR8B/wNPAaUDEAEV
DAABSgGbAdMB/wGuAdQB6AH/AasB0wHoAf8BOAGxAZAB/wGbAc4BwAH/AZkBzQG9Af8BlgHLAbsB/wGV
AcoBuQH/AYABvwGoAf8BVgGzAakB/wNWAbMDVQGyAwgBCwQAAwQBBgNRAZ8BhQGuAeEB/wE5AbIB+QH/
AQoBowL/AR8BqQH7Af8BDwHTAf4B/wFLAeIC/wEKAdUC/wFeAbAB6AH/AVsBrQHnAf8BqQHKAe8B/wGl
AcUB7QH/ASsBVgFxAfwDIQEwRAADEwEaAmQBUwHxAdgBngFRAf8B5wHTAcAB/wH8AfUB7gL/AfgB6wL/
AeUBwgH/AfYBuQGCAf8B8gHSAbgB/wHuAdIBtgH/AcIBhgEtAf8BpwFVASYB/wJNASkB+gMdASkQAAFN
AZ0B1QH/AUsBmwHTAf8BSAGaAdIB/wEoAaEBjAH/ASMBnwGKAf8BIAGdAYUB/wEcAZkBgAH/ATUBpQGS
Af8BXgG4AbEB/wEvAaEBiwH/A1UBsgMGAQgQAANCAXUBXwJiAfYBjgG2AeMB/wG5AdcB8wH/ATwB1QH7
Af8BCQHVAv8BIAHRAfsB/wGzAdIB8gH/AbEB0AHxAf8BkgG4AeIB/wFBAZUBzAH/A0oBikwAAzUBVwGp
AUEBEwH/AcoBuAGoBv8B/gH8Av8B9gHiAf8B+wHFAaAB/wHkAbkBlQH/AdsBrAFcAf8BwwGOATsB/wGT
AUMBFwH/AT4CPQFqMAABUwJUAawDVgGzA1YBswMEAQYYAAMWAR4DVAGuAVUBowHcAf8BkQG4AeQB/wGo
AcoB7AH/AaUBxwHsAf8BjQG1AeIB/wFHAZoB0gH/AVoCXwHbAzEBTlQAAzIBUQJkAVkB7AHQAbIBlQH/
AewB4AHZAf8B5gHVAcQB/wHTAbABlAH/AdMBpgFWAf8BywGPATQB/wFnAWUBWQHyAToCOQFgNAABUwJU
AawDVgGzAwQBBiQAAysBQgNMAZABWwJdAdIBWQJcAc8DTgGZAy0BRWAAAxEBFwNEAXoCWgFXAcUCZQFe
AeUCYQFYAeYCXAFZAckCSAFHAYMDFQEdEAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEAAQEGAAEB
FgAD/wEAAeABBwIAAfwBPwIAAcABAwIAAfwBPwIAAcABAwIAAcABAwIAAcABAwIAAcABAwIAAcABAwIA
AcABAwIAAcABAwIAAcABAwIAAcABAwYAAcABAwIAAQEBgAIAAcABAwGAAgEBgAIAAcABAwGAAQEEAAHA
AQMBwAEDAcABAwIAAcABAwHwAQ8BwAEDAgABwAEDAfABDwGAAQMCAAHAAQMB8AEPAcABAwIAAcABAwHw
AQ8B8AEPAgABwAEDAfgBHwH8AT8CAAHjBf8B4AEHAYABAQH8AR8C/wHAAQMBgAEHAfgBBwL/AYABAwEA
AQcB+AEDAv8BwAEDAQABBwHwAQECAAHAAQMBAAEHAYADAAGAAQEBgAEHAgABgAEBAgABwAEHAQEBAAGA
AQECAAHgAQMCAAGAAQECAAHgAQECAAGAAQECAAHgAwABgAEBAgAB4AEAAYABAAGAAQECAAHgAQABgAEA
Av8BgAEBAeABAQHgAQEC/wHAAQMB/wHDAfABAwL/AeABBwH/AccB/AEPAv8B8AEPCw==
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABi
IgAAAk1TRnQBSQFMAgEBBwEAASABAQEgAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAeIB7wH0Af8BqAHJAdcB/wFtAaQBtgH/AVABhgGcAf8BOwFiAYoB/wE2
AV0BhwH/ATYBZwGVAf8BSQGOAasB/wGPAbcBzQH/Ad0B6gHxAf8MAANXAbcDnwH/A5oB/wOWAf8DkQH/
A40B/wOJAf8DhAH/A4AB/wNYAf8DVAH/A1AB/wNNAf8DSQH/A0YB/wNXAbcYAAMNARIDVgG2A1YBtgMN
ARFgAAGtAc8B3wH/AUgBkQGtAf8BTQGjAb8B/wFpAcAB1AH/AZUB2QHmAf8BgQHbAfAB/wFBAcYB7AH/
ARUBqgHdAf8BBwGSAccB/wETAYABrAH/ASoBYgGSAf8BnQG/AdEB/wgAA6gB/wPpAf8D0wH/A9IB/wPR
Af8D0AH/A84B/wPNAf8DzQH/A8sB/wPLAf8DygH/A8kB/wPIAf8D4gH/A0YB/xgAA14B2QPkAf8D4wH/
A1gBwWAAAUsBhAGbAf8BNQG9AecB/wFYAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUEBygHw
Af8BDwG2Ae0B/wEAAacB6AH/AQABoQHhAf8BAAGWAdIB/wEuAU8BawH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DSgH/CAADCwEPA1QBrQM6
AWEDPwFuA3EB+AHiAeEB3wH/AeEB4AHfAf8DXwHzAzwBZwM8AWYDUwGtAwsBD1AAAU4BhwGeAf8BNAHE
AfAB/wFaAdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUEBygHwAf8BDwG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wEvAVABbQH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOw
Af8DrwH/A60B/wOrAf8DqQH/A6gB/wPKAf8DTgH/CAADWgHFBP8ClgGVAf4ClQGUAf4C5wHmAf8B1gHV
AdMB/wHXAdYB1AH/AeMB4gHgAf8BigGJAYcB/gOoAf0B6QHoAeYB/wNYAcFQAAFQAYkBoAH/ATQBxAHv
Af8BWQHUAfEB/wGNAeMB9AH/AaIB6wH2Af8BggHfAfMB/wFCAcoB8AH/AQ8BtgHtAf8BAAGoAegB/wEA
AaEB4QH/AQABnAHaAf8BMQFTAW8B/wgAA7YB/wPdAf8DwQH/A70B/wO8Af8DugH/A7gB/wO1Af8DtAH/
A7IB/wOwAf8DrQH/A6wB/wOsAf8DzwH/A1IB/wgAA2QB5wL5AfcB/wLvAe4B/wLbAdoB/wHKAskB/wHJ
AcgBxgH/AckByAHHAf8ByQHIAccB/wLLAckB/wHmAeUB5AH/AeUB5AHiAf8DZQHlUAABUgGMAaIB/wE2
AcYB8AH/AVsB1AHxAf8BjAHjAfQB/wGiAesB9gH/AYIB3wH0Af8BQgHKAfAB/wEPAbYB7QH/AQABqAHo
Af8BAAGiAeIB/wEAAZsB2wH/ATMBVgGAAf8IAANaAb0D2gH/A8gB/wPAAf8DvwH/A70B/wO6Af8DuAH/
A7cB/wO1Af8DswH/A7AB/wOvAf8DswH/A8IB/wNaAb0IAANOAZUB9gH1AfQB/wHmAeUB5AH/Ab8BvgG9
Af8C6wHqAf8B1AHTAdIB/wHWAdUB1AH/AeIC4QH/ArQBswH/AdcB1gHUAf8B4gHhAd8B/wNKAY1QAAFV
AY8BpQH/ATcBxgHwAf8BWwHUAfIB/wGNAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wFBAcoB8AH/AQ8BtgHt
Af8BAAGnAegB/wEAAaEB4gH/AQABnAHbAf8BNQFZAYMB/wgAA1oBvQPjAf8D5wH/A+EB/wPgAf8D4AH/
A98B/wPfAf8D3gH/A90B/wPdAf8D3AH/A9sB/wPgAf8D0AH/A1oBvQMLAQ8DVQG1A2QB5wHkAeMB4gH/
AdEB0AHPAf8C8AHvAf8DrgH/A2QB8QNnAfICrAGrAf8C6AHnAf8CywHKAf8B4AHfAd0B/wNhAeQDVQG1
AwsBD0gAAVYBkgGoAf8BNwHFAfAB/wFcAdQB8gH/AY0B4wH0Af8BogHrAfYB/wGCAd8B9AH/AUEBygHw
Af8BDwG2Ae0B/wEAAacB6AH/AQABoQHhAf8BAAGcAdsB/wE3AVwBhgH/CAADKQE/A84B/wPsAf8D3gH/
A9gB/wPSAf8DzAH/A8gB/wPHAf8DyAH/A8sB/wPQAf8D3QH/A+gB/wOkAf8DKwFCAz8BbQLkAeMB/wHY
AdYB1QH/AdIB0QHQAf8BxQHEAcMB/wHtAewB6wH/A1cBuggAA1wBzQHoAecB5gH/AbYBtQG0Af8B1gHV
AdMB/wHiAeEB4AH/AuAB3wH/AzwBZkgAAVkBlQGrAf8BNwHFAfAB/wFcAdQB8gH/AY0B4wH0Af8BogHr
AfYB/wGDAd8B9AH/AUIBywHwAf8BDwG1Ae0B/wEAAacB6AH/AQABoQHiAf8BAAGcAdoB/wE6AV8BiAH/
DAADWgG9A+MB/wPbAf8D4gH/AbcB0AG4Af8BQAGtAUQB/wFSAaoBQAH/AUwBrwFEAf8BMgGlAT4B/wGs
AcUBrAH/A8IB/wPRAf8D0wH/A1oBvQQAA0IBdgHsAesB6AH/AdoB2QHXAf8B1AHTAdEB/wHGAcUBxAH/
Ad4C3AH/A0YBfggAA1ABmgHdAdwB2wH/AcgBxgHFAf8C4gHhAf8C4QHfAf8B7gHtAewB/wM/AW9IAAFb
AZgBrgH/ATcBxQHwAf8BXAHUAfEB/wGNAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wFCAcoB8AH/AQ8BtgHt
Af8BAAGoAekB/wEAAaEB4QH/AQABnAHaAf8BPAFhAYoB/wwAAykBPwPRAf8D8wH/AccB3gHKAf8BQAHJ
AYUB/wGzAdwBpAH/AecBxwFYAf8B3AG/AU8B/wFSAcwBjwH/ASsBrQFEAf8BuAHQAbgB/wPxAf8DrwH/
AysBQgQAAy8BSgNgAesDeAH8Ad4B3QHcAf8BywLKAf8B5gLlAf8DYQHhAzIBUAM4AVwDYAHrAu4B7AH/
AcwCywH/AecB5gHlAf8DeAH8A2AB6wMsAUNIAAFeAZsBsAH/ATYBxgHwAf8BXAHUAfIB/wGNAeMB9AH/
AaIB6wH2Af8BgwHfAfQB/wFCAcoB8AH/AQ8BtgHtAf8BAAGoAegB/wEAAaEB4QH/AQABnAHaAf8BPwFl
AY4B/xAAA1oBvQPEAf8BUgHOAYsB/wGZAeQBqwH/AbABxQE5Af8B6gG1ASQB/wHhAaIBFQH/AaUBnQEc
Af8BggHFAY8B/wElAZoBMgH/A6AB/wNaAb0QAANeAc4B4QHgAd4B/wHZAdcB1gH/AbgCtwH/AeEB4AHf
Af8DqAH9A6gB/QL2AfUB/wLAAb8B/wHqAekB6AH/AvMB8gH/A1wByVAAAWEBnwGzAf8BNgHGAfAB/wFa
AdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUIBygHwAf8BDwG2Ae0B/wEAAacB6AH/AQABoQHh
Af8BAAGbAdoB/wFBAWgBkAH/GAABXgF6AWkB/AGiAekBlQH/AdYBzwFFAf8B4gGzASMB/wHRAbsBKwH/
AcIBrgEeAf8BggG9AUgB/wErAW8BUgH8GAADTAGRAeMB4gHgAf8C3gHcAf8B4QHgAd8B/wHMAssB/wHE
AcMBwgH/As8BzgH/At4B3QH/AvAB7wH/AvAB7wH/AvYB9QH/A0gBh1AAAWIBoQG1Af8BXAHVAfQB/wGa
AegB9wH/AbUB8wH6Af8BwgH4AfwB/wHDAfgB/QH/AcEB9wH9Af8BrwHwAfsB/wGPAeIB9wH/AVsB0AHw
Af8BLwG4AeUB/wFEAWsBkwH/GAABYAF6AWoB/AGiAfABnwH/AdgB7QGvAf8B3gHFAUQB/wG0AeIBQQH/
ATwB5wEVAf8BRwHXAUcB/wEsAXEBWwH8FAADAQECA18B4wHlAeQB4QH/Au4B7QH/Au4B7QH/AusB6gH/
AeMB4gHhAf8C6AHnAf8C6gHpAf8C8wHyAf8C9QH0Af8B+gH5AfgB/wNcAd9QAAFlAaMBuAH/AcUB+QH9
Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHF
AfkB/QH/AcUB+QH9Af8BRgFuAZUB/xgAA2EB3AHIAfcB1AH/AdgB9gHKAf8B5wHjAakB/wHbAc8BSAH/
Aa8B3AFEAf8BnQHqAasB/wNfAeAYAANAAW8DfwH+A2QB5wNfAfMB6AHnAeYB/wHnAeYB5QH/Au0B7AH/
AvsB+gH/A2cB8gNkAecDfwH+Az0BaFAAAbcB1wHhAf8BjAG9AcwB/wGdAc8B2wH/Aa0B3wHoAf8BuQHs
AfMB/wHCAfUB+gH/AcIB9QH6Af8BuAHrAfEB/wGpAdoB4wH/AZQBxAHRAf8BbAGoAbgB/wGpAcUB0QH/
GAADLQFFAVcBdgFtAfoB2wH4AekB/wHnAfIB2AH/Ae0B5QGzAf8B3wHZAaYB/wFfAYUBXwH7AzIBUCAA
Aw8BFAMKAQ4DUwGqAe8B7gHtAf8C9AHzAf8DUgGkAwgBCwMRARdYAAL+Av8B4wHxAfQB/wG5AdcB4QH/
AZUBvgHMAf8BbAGoAbsB/wFfAZsBsAH/AVsBmAGtAf8BZAGhAbMB/wGMAbIBwgH/AbEBzQHXAf8B3wHr
Ae8B/wP+Af8cAAMuAUcDXgHZAWQBegFoAfwBZAF5AWQB/ANeAd0DMgFQLAADLwFKA10B8ANiAe8DLAFD
ZAADEQEXA1YBswFTAVQBUwGstAADBAEFAxABFQMfAS0DKQE/Ay8BSQMuAUgDKAE9Ax4BKwMPARQDAwEE
EAADtwH/AZwBqAGeAf8BAAFTAS4B/wEYAZIBUAH/AQABVwEuAf8BAAFEAaAB/wEAAUIBngH/AQABPwGb
Af8BAAE9AZkB/wEAATsBlwH/AQABOAGUAf8BAAE3AZMB/wNIAf8DSAH/HAADQQFyAUwCXwHzAVkCXAHP
AUsCTAGQAyMBM1wAAwUBBwMfASwCPgE9AWoCUgFQAaMBWwJZAcQBXQJaAdMBXQJaAdMBWwJZAcMBUgJR
AaEDPAFmAxwBKAMEAQYMAAMVAR0DUQGiAR0BlQFUAf8BggG+AaoB/wEsAaUBggH/AQ0BlwFGAf8BEAGZ
AUsB/wEUAZkBTwH/ARgBnQFUAf8BUgGqAdIB/wFQAagB0QH/AQABOQGVAf8gAAMhATABKwEwAWgB/AGG
Aa0B4QH/AVoBqAHcAf8BOwGSAckB/wEMAU4BqwH/AVUCVgGxAx8BLVMAAQEDEgEYAz4BawFdAlkB1wFW
AisB/AGsASkBAAH/AeEBSQEdAf8B5AFbATEB/wHTAUcBFQH/AaMBQAE6Af0BYQJeAdoCPgE9AWoDDwEU
CAADGAEiAVABUgFQAaQDVgGzAUkBrAGfAf8BUAG3AZ4B/wFaAbsBrAH/AVoBuwGuAf8BWwG7AbAB/wGA
AbwBswH/ARMBmgFXAf8BMAGVAccB/wFTAasB0wH/AQABPAGYAf8gAAFUAlYBqwFJAZ0B0QH/AZkBvAHr
Af8BTQGgAeMB/wGWAbkB6gH/AZQBuAHqAf8BPAGTAcoB/wIrAWQB/ANDAXhQAAMbASYDWQHSARkBAwEA
Af8BigE4ASAB/wHKAYYBQgH/AfYBvAGcAf8B+QHMAbcB/wHjAaABVAH/AbEBUwE5Af8BVQEvARAB/wFe
AlgB3QMcASgIAAFVAVYBVQGxA1YBswNWAbMBOAGkAZEB/wFLAbYBmwH/AUQBsgGbAf8BRgGyAZ4B/wFI
AbMBoQH/AYUBvwG2Af8BGgGeAYIB/wE1AZkByQH/AVcBrQHUAf8BAAFAAZwB/xwAAx8BLQErAUMBbAH8
AZ0BvwHsAf8BRQGcAeIB/wE3AZMB3wH/ATQBkQHfAf8BOwGUAeAB/wGVAbgB6gH/AYYBrQHhAf8BJQGD
AbsB/wFLAkwBkAQAA50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wOdAf8DnQH/A50B/wgAAVMCTwGlATABFQEAAf8BVQFAASsB/wGPAVIBPQH/AawBiAFHAf8BwgGj
AYgB/wHBAaUBjgH/AbMBmAGBAf8BkQFSATwB/wFQATcBIgH/AT8BGAEAAf8BVgJVAbEIAAMIAQsDVQGy
A1YBswFSAbIBqAH/AVkBvQGnAf8BhwHBAbUB/wGGAcEBtgH/AYcBwQG3Af8BiAHBAbkB/wEgAaIBiAH/
AToBnAHLAf8BWwGwAdUB/wEAAUMBnwH/EAADKwFCA0gBhAFVAlcBtwFMAl8B8wFSAaQB1wH/AaEBwgHt
Af8BnwHAAe0B/wGdAb8B7QH/AVABowHkAf8BNgGSAd8B/wE0AZAB3gH/AVcBpwHmAf8BkgG2AegB/wEf
AVsBtwH/AzcBWgOdAf8BugK9Af8B5gLsAf8B5gLtAf8B5wLtAf8B6ALuAf8B6QLvAf8B6QLvAf8B6gLv
Af8B6gLwAf8B6wLwAf8B6wLxAf8B7ALxAf8B7ALxAf8BvQK/Af8DnQH/BAADOQFfAVEBMQEWAf8BwwGx
AaIB/wG2AZwBgwH/AaYBVQEoAf8BqAFTASUB/wHDAaQBhwH/AdgBxgGwAf8BvQGpAYsB/wFbATsBGwH/
ATgBGAEAAf8BLgEKAQAB/wE1AQ4BAAH/AzMBUwgAAwYBCANVAbIBKwGgAYoB/wGTAckBugH/ATsBrwGX
Af8BIAGiAYMB/wEhAaMBhwH/ASMBpAGLAf8BIgGqAZIB/wEwAcIB7QH/AYEBtAHXAf8BBAFHAaMB/wwA
A0wBkwFAAZcBzwH/AVcBqAHZAf8BjQG0AeIB/wGjAcQB7QH/AacBxwHuAf8BQAGXAc0B/wEQAVEBsgH/
ATsBkwHJAf8BnwHAAe0B/wFUAZYBowH/AZ4BlgEkAf8BWAGUAZEB/wGNAbMB6QH/AVUBpQHYAf8BWgJe
AdgEAANcAeoB2wLiAf8BzQLPAf8DywH/A8wB/wPOAf8DzwH/A9AB/wPSAf8D0wH/A9UB/wHXAtgB/wHn
AuwB/wNtAfcEAAMiATEBVgJVAbEBQwEXAQAB/wGqAYUBOwH/AbIBTgEMAf8BrQErAQAB/wG6AUgBAAH/
AeoB1QG/Af8B/QH8AfoB/wHWAb4BpgH/AZABOwEIAf8BPgEMAQAB/wE/ARwBAAH/ATgBGAEAAf8DVwHF
AxwBJwgAAwQBBgERAZQBUwH/AUoBuQGeAf8BJQGmAYkB/wFVAbEB1QH/AVEBrQHUAf8BTQGrAdIB/wE7
AboB5AH/AQABmQFFAf8BAwGOATQB/wEGAUwBmgH/DAABSAJiAfYBrgHNAfAB/wGwAc8B8AH/AZgBvwHs
Af8BWgGuAecB/wGqAcoB7wH/ARkBVwG4Af8EAAERAVIBswH/AaIBwwHtAf8BqAGXAQ0B/wHEAbUBNgH/
AawBlwECAf8BNwGTAd8B/wGYAbsB6wH/AQABQAGfAf8EAANcAeoB2QLhAf8BywLMAf8DxwH/A8gB/wPK
Af8DywH/A80B/wPOAf8D0AH/A9EB/wHTAtQB/wHlAusB/wNtAfcEAAMuAUcDWQHsAT4BDAEAAf8BmQEr
AQAB/wG4AUMBAAH/AcIBPwEAAf8ByQFRAQAB/wHmAb8BlAH/AewB1AG2Af8BzQGcAT4B/wGoAUgBCAH/
AZkBSQEdAf8BowGMAU4B/wFbAUIBKwH/AlEBPwH3ATUCNAFVDAABNAGOAcQB/wEuAawBiwH/ASsBqgGP
Af8BWgG1AdgB/wFWAbIB1gH/AVMBrwHVAf8BTwGsAdMB/wEAAZABPgH/ATUBqAGEAf8BAAFUAS8B/wMU
ARsIAAFaAmAB3gGoAckB7QH/AYQBpwHtAf8BNAFGAe0B/wFGAY4B6QH/Aa0BzQHwAf8BSQGdAdIB/wEa
AVgBuQH/AUMBmQHOAf8BpQHFAe4B/wGVAZoBRQH/Aa0BlwECAf8BnQGXASkB/wFCAZsB4gH/AZgBuwHq
Af8BSAJiAfYEAANcAeoB1wLfAf8BxwLJAf8DwgH/A8QB/wPFAf8DyAH/A8kB/wPKAf8DzAH/A80B/wHQ
AtEB/wHjAuoB/wNtAfcEAAM5AV8CQAEnAf0BUAEXAQAB/wGuATUBAAH/AcABPQEAAf8B5wGWASIB/wHo
AbIBVgH/AeQBsQFWAf8B0gGJARUB/wG9AUIBAAH/AagBMAEAAf8BuAGNATkB/wHUAcMBsgH/AZgBhAFK
Af8BNwEZAQAB/wE+Aj0BagwAAToBkQHJAf8BpAHMAeQB/wGHAbsB2wH/ARsBoQFWAf8BFQGcAVAB/wEQ
AZoBTAH/AQsBlgFGAf8BJwGjAYEB/wGEAcABqwH/AR4BlgFVAf8DUQGiAxUBHQQAA1EBnAGSAbkB5QH/
AUoBUAH2Af8BgQGEAfUB/wIcAfAB/wGQAbsB6wH/Aa4BzQHwAf8BrAHMAfAB/wGqAcoB8AH/AYUBsgHp
Af8BOgGpAcEB/wEgAbMBjQH/ATIBqAG2Af8BTAGhAeQB/wGXAboB6AH/A10B7QQAA1wB6gHWAt8B/wHD
AsUB/wPAAf8DwAH/A8IB/wPDAf8DxAH/A8UB/wPIAf8DyQH/A80B/wHgAugB/wNtAfcEAAM3AVoCTQEo
AfoBgwEiAQAB/wHLAUwBAAH/AeUBiwEZAf8B/gG2AU4C/wHjAcIB/wH0AbwBhQH/AdYBUwEFAf8BxQFK
AQAB/wG6AT8BAAH/Aa8BUwEVAf8BrgGIATkB/wGUAVIBOQH/ATgBGgEAAf8DPAFmDAABPwGVAc0B/wGo
Ac8B5QH/AYwBvwHdAf8BIQGlAYEB/wGNAcUBuAH/AYkBwwG0Af8BhgHBAbEB/wGEAb8BrwH/AVMBuQGf
Af8BSgGtAaAB/wNWAbMBUAFSAVABpAMYASIDIwEzASsBYQF3AfwBkgGkAfUB/wE1ATYB9gH/AS0BhgH0
Af8BFwGmAfsB/wE4AasB8gH/AVoBrwHnAf8BVwGtAecB/wFUAaoB5gH/ARsBtgGAAf8BPAHIAZcB/wEX
AbcBVgH/AVkBrAHnAf8BjwG1AeMB/wFaAl4B1QQAA2AB1gHHAs0B/wHbAuQB/wHbAuQB/wHbAuUB/wHc
AuUB/wHcAuUB/wHdAuYB/wHdAuYB/wHeAucB/wHfAugB/wHgAugB/wHNAtMB/wNfAeMEAAMmATkBYAJa
Ad4BjgEqAQAB/wHsAZ4BLwH/Af4BvwGFAv8BzAGhAv8B3wG7Af8B/gHCAVsB/wHiAY4BJQH/AdMBhAEW
Af8BygFVAQgB/wG1AUwBBgH/AZcBPQEDAf8BgQE6ARUB/wNZAewDLgFIDAABQwGYAdAB/wGrAdEB5wH/
AZABwgHfAf8BKAGpAYgB/wGRAckBuwH/AVIBugGlAf8BTgG4AaEB/wFKAbYBngH/AU4BuAGdAf8BOQGl
AZIB/wNWAbMDVgGzAVUBVgFVAbEEAANJAYcBhgGvAeEB/wG5AdcB8wH/AQ4BpgH+Af8BSAG/Av8BBwGj
Av8BQgG+AfAB/wEWAc4B+wH/ATYBvgHxAf8BLgGzAaAB/wEXAbcBVQH/ASMBswGQAf8BpwHIAe4B/wFT
AaUB1gH/AU8CUQGcBAADLAFDA1sByAOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOd
Af8DXgHdAzEBTgQAAwkBDANLAY4BwAFKAQkC/wG8AVsB/wH6Ac4BpwH/AfgB2wG+Av8B4gHGAv8BvgGG
Af8B9AGsAVEB/wHsAcIBmgH/AeIBtQGLAf8BuAFRAQ8B/wGdAUABCAH/AYgBQAEcAf8DTwGlAxABFQwA
AUcBmwHTAf8BrgHUAegB/wGrAdMB6AH/ATUBsQGQAf8BmwHOAcAB/wGZAc0BvQH/AZYBywG7Af8BlQHK
AbkB/wGAAb8BqAH/AVMBswGpAf8DVgGzA1UBsgMIAQsEAAMEAQYDUQGfAYUBrgHhAf8BNgGyAfkB/wEH
AaMC/wEcAakB+wH/AQwB0wH+Af8BSAHiAv8BBwHVAv8BWwGwAegB/wFYAa0B5wH/AakBygHvAf8BpQHF
Ae0B/wErAU8BbgH8AyEBMEQAAxMBGgJkAVMB8QHYAZ4BTgH/AecB0wHAAf8B/AH1Ae4C/wH4AesC/wHl
AcIB/wH2AbkBggH/AfIB0gG4Af8B7gHSAbYB/wHCAYYBKgH/AacBUgEjAf8CTQEpAfoDHQEpEAABSgGd
AdUB/wFIAZsB0wH/AUUBmgHSAf8BJQGhAYwB/wEgAZ8BigH/AR0BnQGFAf8BGQGZAYAB/wEyAaUBkgH/
AVsBuAGxAf8BLAGhAYsB/wNVAbIDBgEIEAADQgF1AV8CYgH2AY4BtgHjAf8BuQHXAfMB/wE5AdUB+wH/
AQYB1QL/AR0B0QH7Af8BswHSAfIB/wGxAdAB8QH/AZIBuAHiAf8BPgGVAcwB/wNKAYpMAAM1AVcBqQE+
ARAB/wHKAbgBqAb/Af4B/AL/AfYB4gH/AfsBxQGgAf8B5AG5AZUB/wHbAawBWQH/AcMBjgE4Af8BkwFA
ARQB/wE+Aj0BajAAAVMCVAGsA1YBswNWAbMDBAEGGAADFgEeA1QBrgFSAaMB3AH/AZEBuAHkAf8BqAHK
AewB/wGlAccB7AH/AY0BtQHiAf8BRAGaAdIB/wFaAl8B2wMxAU5UAAMyAVECZAFZAewB0AGyAZUB/wHs
AeAB2QH/AeYB1QHEAf8B0wGwAZQB/wHTAaYBUwH/AcsBjwExAf8BZwFlAVkB8gE6AjkBYDQAAVMCVAGs
A1YBswMEAQYkAAMrAUIDTAGQAVsCXQHSAVkCXAHPA04BmQMtAUVgAAMRARcDRAF6AloBVwHFAmUBXgHl
AmEBWAHmAlwBWQHJAkgBRwGDAxUBHRAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMAAQEBAAEBBgABARYA
A/8BAAHgAQcCAAH8AT8CAAHAAQMCAAH8AT8CAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHA
AQMCAAHAAQMCAAHAAQMCAAHAAQMGAAHAAQMCAAEBAYACAAHAAQMBgAIBAYACAAHAAQMBgAEBBAABwAED
AcABAwHAAQMCAAHAAQMB8AEPAcABAwIAAcABAwHwAQ8BgAEDAgABwAEDAfABDwHAAQMCAAHAAQMB8AEP
AfABDwIAAcABAwH4AR8B/AE/AgAB4wX/AeABBwGAAQEB/AEfAv8BwAEDAYABBwH4AQcC/wGAAQMBAAEH
AfgBAwL/AcABAwEAAQcB8AEBAgABwAEDAQABBwGAAwABgAEBAYABBwIAAYABAQIAAcABBwEBAQABgAEB
AgAB4AEDAgABgAEBAgAB4AEBAgABgAEBAgAB4AMAAYABAQIAAeABAAGAAQABgAEBAgAB4AEAAYABAAL/
AYABAQHgAQEB4AEBAv8BwAEDAf8BwwHwAQMC/wHgAQcB/wHHAfwBDwL/AfABDws=
</value>
</data>
</root>

View File

@@ -109,6 +109,8 @@ Public Class frmOptions
Friend WithEvents lblExperimental As System.Windows.Forms.Label
Friend WithEvents lblSQLDatabaseName As System.Windows.Forms.Label
Friend WithEvents txtSQLDatabaseName As System.Windows.Forms.TextBox
Friend WithEvents chkAlwaysShowPanelTabs As System.Windows.Forms.CheckBox
Friend WithEvents chkIdentifyQuickConnectTabs As System.Windows.Forms.CheckBox
Private components As System.ComponentModel.IContainer
Private Sub InitializeComponent()
@@ -197,7 +199,9 @@ Public Class frmOptions
Me.tcTabControl = New System.Windows.Forms.TabControl()
Me.tabStartupExit = New System.Windows.Forms.TabPage()
Me.tabAppearance = New System.Windows.Forms.TabPage()
Me.chkAlwaysShowPanelTabs = New System.Windows.Forms.CheckBox()
Me.tabTabsAndPanels = New System.Windows.Forms.TabPage()
Me.chkIdentifyQuickConnectTabs = New System.Windows.Forms.CheckBox()
Me.tabConnections = New System.Windows.Forms.TabPage()
Me.pnlDefaultCredentials = New System.Windows.Forms.Panel()
Me.radCredentialsCustom = New System.Windows.Forms.RadioButton()
@@ -744,7 +748,7 @@ Public Class frmOptions
'chkAlwaysShowPanelSelectionDlg
'
Me.chkAlwaysShowPanelSelectionDlg.AutoSize = True
Me.chkAlwaysShowPanelSelectionDlg.Location = New System.Drawing.Point(3, 95)
Me.chkAlwaysShowPanelSelectionDlg.Location = New System.Drawing.Point(3, 141)
Me.chkAlwaysShowPanelSelectionDlg.Name = "chkAlwaysShowPanelSelectionDlg"
Me.chkAlwaysShowPanelSelectionDlg.Size = New System.Drawing.Size(317, 17)
Me.chkAlwaysShowPanelSelectionDlg.TabIndex = 4
@@ -754,7 +758,7 @@ Public Class frmOptions
'chkShowLogonInfoOnTabs
'
Me.chkShowLogonInfoOnTabs.AutoSize = True
Me.chkShowLogonInfoOnTabs.Location = New System.Drawing.Point(3, 26)
Me.chkShowLogonInfoOnTabs.Location = New System.Drawing.Point(3, 49)
Me.chkShowLogonInfoOnTabs.Name = "chkShowLogonInfoOnTabs"
Me.chkShowLogonInfoOnTabs.Size = New System.Drawing.Size(203, 17)
Me.chkShowLogonInfoOnTabs.TabIndex = 1
@@ -764,7 +768,7 @@ Public Class frmOptions
'chkDoubleClickClosesTab
'
Me.chkDoubleClickClosesTab.AutoSize = True
Me.chkDoubleClickClosesTab.Location = New System.Drawing.Point(3, 72)
Me.chkDoubleClickClosesTab.Location = New System.Drawing.Point(3, 118)
Me.chkDoubleClickClosesTab.Name = "chkDoubleClickClosesTab"
Me.chkDoubleClickClosesTab.Size = New System.Drawing.Size(159, 17)
Me.chkDoubleClickClosesTab.TabIndex = 3
@@ -774,7 +778,7 @@ Public Class frmOptions
'chkShowProtocolOnTabs
'
Me.chkShowProtocolOnTabs.AutoSize = True
Me.chkShowProtocolOnTabs.Location = New System.Drawing.Point(3, 49)
Me.chkShowProtocolOnTabs.Location = New System.Drawing.Point(3, 72)
Me.chkShowProtocolOnTabs.Name = "chkShowProtocolOnTabs"
Me.chkShowProtocolOnTabs.Size = New System.Drawing.Size(166, 17)
Me.chkShowProtocolOnTabs.TabIndex = 2
@@ -784,7 +788,7 @@ Public Class frmOptions
'chkOpenNewTabRightOfSelected
'
Me.chkOpenNewTabRightOfSelected.AutoSize = True
Me.chkOpenNewTabRightOfSelected.Location = New System.Drawing.Point(3, 3)
Me.chkOpenNewTabRightOfSelected.Location = New System.Drawing.Point(3, 26)
Me.chkOpenNewTabRightOfSelected.Name = "chkOpenNewTabRightOfSelected"
Me.chkOpenNewTabRightOfSelected.Size = New System.Drawing.Size(280, 17)
Me.chkOpenNewTabRightOfSelected.TabIndex = 0
@@ -795,7 +799,7 @@ Public Class frmOptions
'
Me.chkMCWarnings.AutoSize = True
Me.chkMCWarnings.Enabled = False
Me.chkMCWarnings.Location = New System.Drawing.Point(19, 214)
Me.chkMCWarnings.Location = New System.Drawing.Point(19, 256)
Me.chkMCWarnings.Name = "chkMCWarnings"
Me.chkMCWarnings.Size = New System.Drawing.Size(71, 17)
Me.chkMCWarnings.TabIndex = 8
@@ -806,7 +810,7 @@ Public Class frmOptions
'
Me.chkMCErrors.AutoSize = True
Me.chkMCErrors.Enabled = False
Me.chkMCErrors.Location = New System.Drawing.Point(19, 237)
Me.chkMCErrors.Location = New System.Drawing.Point(19, 279)
Me.chkMCErrors.Name = "chkMCErrors"
Me.chkMCErrors.Size = New System.Drawing.Size(53, 17)
Me.chkMCErrors.TabIndex = 9
@@ -817,7 +821,7 @@ Public Class frmOptions
'
Me.chkMCInformation.AutoSize = True
Me.chkMCInformation.Enabled = False
Me.chkMCInformation.Location = New System.Drawing.Point(19, 191)
Me.chkMCInformation.Location = New System.Drawing.Point(19, 233)
Me.chkMCInformation.Name = "chkMCInformation"
Me.chkMCInformation.Size = New System.Drawing.Size(83, 17)
Me.chkMCInformation.TabIndex = 7
@@ -827,7 +831,7 @@ Public Class frmOptions
'lblSwitchToErrorsAndInfos
'
Me.lblSwitchToErrorsAndInfos.AutoSize = True
Me.lblSwitchToErrorsAndInfos.Location = New System.Drawing.Point(3, 171)
Me.lblSwitchToErrorsAndInfos.Location = New System.Drawing.Point(3, 213)
Me.lblSwitchToErrorsAndInfos.Name = "lblSwitchToErrorsAndInfos"
Me.lblSwitchToErrorsAndInfos.Size = New System.Drawing.Size(159, 13)
Me.lblSwitchToErrorsAndInfos.TabIndex = 6
@@ -836,7 +840,7 @@ Public Class frmOptions
'chkUseOnlyErrorsAndInfosPanel
'
Me.chkUseOnlyErrorsAndInfosPanel.AutoSize = True
Me.chkUseOnlyErrorsAndInfosPanel.Location = New System.Drawing.Point(3, 146)
Me.chkUseOnlyErrorsAndInfosPanel.Location = New System.Drawing.Point(3, 188)
Me.chkUseOnlyErrorsAndInfosPanel.Name = "chkUseOnlyErrorsAndInfosPanel"
Me.chkUseOnlyErrorsAndInfosPanel.Size = New System.Drawing.Size(278, 17)
Me.chkUseOnlyErrorsAndInfosPanel.TabIndex = 5
@@ -846,7 +850,7 @@ Public Class frmOptions
'chkShowFullConnectionsFilePathInTitle
'
Me.chkShowFullConnectionsFilePathInTitle.AutoSize = True
Me.chkShowFullConnectionsFilePathInTitle.Location = New System.Drawing.Point(3, 128)
Me.chkShowFullConnectionsFilePathInTitle.Location = New System.Drawing.Point(3, 141)
Me.chkShowFullConnectionsFilePathInTitle.Name = "chkShowFullConnectionsFilePathInTitle"
Me.chkShowFullConnectionsFilePathInTitle.Size = New System.Drawing.Size(239, 17)
Me.chkShowFullConnectionsFilePathInTitle.TabIndex = 4
@@ -856,7 +860,7 @@ Public Class frmOptions
'chkShowSystemTrayIcon
'
Me.chkShowSystemTrayIcon.AutoSize = True
Me.chkShowSystemTrayIcon.Location = New System.Drawing.Point(3, 176)
Me.chkShowSystemTrayIcon.Location = New System.Drawing.Point(3, 187)
Me.chkShowSystemTrayIcon.Name = "chkShowSystemTrayIcon"
Me.chkShowSystemTrayIcon.Size = New System.Drawing.Size(172, 17)
Me.chkShowSystemTrayIcon.TabIndex = 5
@@ -866,7 +870,7 @@ Public Class frmOptions
'chkMinimizeToSystemTray
'
Me.chkMinimizeToSystemTray.AutoSize = True
Me.chkMinimizeToSystemTray.Location = New System.Drawing.Point(3, 200)
Me.chkMinimizeToSystemTray.Location = New System.Drawing.Point(3, 210)
Me.chkMinimizeToSystemTray.Name = "chkMinimizeToSystemTray"
Me.chkMinimizeToSystemTray.Size = New System.Drawing.Size(139, 17)
Me.chkMinimizeToSystemTray.TabIndex = 6
@@ -876,7 +880,7 @@ Public Class frmOptions
'chkShowDescriptionTooltipsInTree
'
Me.chkShowDescriptionTooltipsInTree.AutoSize = True
Me.chkShowDescriptionTooltipsInTree.Location = New System.Drawing.Point(3, 104)
Me.chkShowDescriptionTooltipsInTree.Location = New System.Drawing.Point(3, 118)
Me.chkShowDescriptionTooltipsInTree.Name = "chkShowDescriptionTooltipsInTree"
Me.chkShowDescriptionTooltipsInTree.Size = New System.Drawing.Size(231, 17)
Me.chkShowDescriptionTooltipsInTree.TabIndex = 3
@@ -1019,8 +1023,20 @@ Public Class frmOptions
Me.tabAppearance.Text = "Appearance"
Me.tabAppearance.UseVisualStyleBackColor = True
'
'chkAlwaysShowPanelTabs
'
Me.chkAlwaysShowPanelTabs.AutoSize = True
Me.chkAlwaysShowPanelTabs.Location = New System.Drawing.Point(3, 3)
Me.chkAlwaysShowPanelTabs.Name = "chkAlwaysShowPanelTabs"
Me.chkAlwaysShowPanelTabs.Size = New System.Drawing.Size(139, 17)
Me.chkAlwaysShowPanelTabs.TabIndex = 7
Me.chkAlwaysShowPanelTabs.Text = "Always show panel tabs"
Me.chkAlwaysShowPanelTabs.UseVisualStyleBackColor = True
'
'tabTabsAndPanels
'
Me.tabTabsAndPanels.Controls.Add(Me.chkAlwaysShowPanelTabs)
Me.tabTabsAndPanels.Controls.Add(Me.chkIdentifyQuickConnectTabs)
Me.tabTabsAndPanels.Controls.Add(Me.chkUseOnlyErrorsAndInfosPanel)
Me.tabTabsAndPanels.Controls.Add(Me.chkOpenNewTabRightOfSelected)
Me.tabTabsAndPanels.Controls.Add(Me.lblSwitchToErrorsAndInfos)
@@ -1038,6 +1054,16 @@ Public Class frmOptions
Me.tabTabsAndPanels.Text = "Tabs & Panels"
Me.tabTabsAndPanels.UseVisualStyleBackColor = True
'
'chkIdentifyQuickConnectTabs
'
Me.chkIdentifyQuickConnectTabs.AutoSize = True
Me.chkIdentifyQuickConnectTabs.Location = New System.Drawing.Point(3, 95)
Me.chkIdentifyQuickConnectTabs.Name = "chkIdentifyQuickConnectTabs"
Me.chkIdentifyQuickConnectTabs.Size = New System.Drawing.Size(293, 17)
Me.chkIdentifyQuickConnectTabs.TabIndex = 10
Me.chkIdentifyQuickConnectTabs.Text = Global.mRemoteNG.My.Language.strIdentifyQuickConnectTabs
Me.chkIdentifyQuickConnectTabs.UseVisualStyleBackColor = True
'
'tabConnections
'
Me.tabConnections.Controls.Add(Me.pnlRdpReconnectionCount)
@@ -1418,6 +1444,7 @@ Public Class frmOptions
Me.cboLanguage.SelectedIndex = 0
End If
chkAlwaysShowPanelTabs.Checked = Settings.AlwaysShowPanelTabs
Me.chkShowDescriptionTooltipsInTree.Checked = My.Settings.ShowDescriptionTooltipsInTree
Me.chkShowSystemTrayIcon.Checked = My.Settings.ShowSystemTrayIcon
Me.chkMinimizeToSystemTray.Checked = My.Settings.MinimizeToTray
@@ -1425,6 +1452,7 @@ Public Class frmOptions
Me.chkOpenNewTabRightOfSelected.Checked = My.Settings.OpenTabsRightOfSelected
Me.chkShowLogonInfoOnTabs.Checked = My.Settings.ShowLogonInfoOnTabs
Me.chkShowProtocolOnTabs.Checked = My.Settings.ShowProtocolOnTabs
chkIdentifyQuickConnectTabs.Checked = Settings.IdentifyQuickConnectTabs
Me.chkShowFullConnectionsFilePathInTitle.Checked = My.Settings.ShowCompleteConsPathInTitle
Me.chkDoubleClickClosesTab.Checked = My.Settings.DoubleClickOnTabClosesIt
Me.chkAlwaysShowPanelSelectionDlg.Checked = My.Settings.AlwaysShowPanelSelectionDlg
@@ -1524,6 +1552,9 @@ Public Class frmOptions
My.Settings.OverrideUICulture = ""
End If
Settings.AlwaysShowPanelTabs = chkAlwaysShowPanelTabs.Checked
frmMain.ShowHidePanelTabs()
My.Settings.ShowDescriptionTooltipsInTree = Me.chkShowDescriptionTooltipsInTree.Checked
My.Settings.ShowSystemTrayIcon = Me.chkShowSystemTrayIcon.Checked
My.Settings.MinimizeToTray = Me.chkMinimizeToSystemTray.Checked
@@ -1544,6 +1575,7 @@ Public Class frmOptions
My.Settings.OpenTabsRightOfSelected = Me.chkOpenNewTabRightOfSelected.Checked
My.Settings.ShowLogonInfoOnTabs = Me.chkShowLogonInfoOnTabs.Checked
My.Settings.ShowProtocolOnTabs = Me.chkShowProtocolOnTabs.Checked
Settings.IdentifyQuickConnectTabs = chkIdentifyQuickConnectTabs.Checked
My.Settings.DoubleClickOnTabClosesIt = Me.chkDoubleClickClosesTab.Checked
My.Settings.AlwaysShowPanelSelectionDlg = Me.chkAlwaysShowPanelSelectionDlg.Checked
@@ -1715,8 +1747,10 @@ Public Class frmOptions
chkMinimizeToSystemTray.Text = My.Language.strMinimizeToSysTray
chkShowFullConnectionsFilePathInTitle.Text = My.Language.strShowFullConsFilePath
chkShowSystemTrayIcon.Text = My.Language.strAlwaysShowSysTrayIcon
chkAlwaysShowPanelTabs.Text = My.Language.strAlwaysShowPanelTabs
chkShowDescriptionTooltipsInTree.Text = My.Language.strShowDescriptionTooltips
chkShowProtocolOnTabs.Text = My.Language.strShowProtocolOnTabs
chkIdentifyQuickConnectTabs.Text = Language.strIdentifyQuickConnectTabs
chkShowLogonInfoOnTabs.Text = My.Language.strShowLogonInfoOnTabs
chkOpenNewTabRightOfSelected.Text = My.Language.strOpenNewTabRight
chkAlwaysShowPanelSelectionDlg.Text = My.Language.strAlwaysShowPanelSelection

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.261
' Runtime Version:4.0.30319.296
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -163,6 +163,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Always show panel tabs.
'''</summary>
Friend Shared ReadOnly Property strAlwaysShowPanelTabs() As String
Get
Return ResourceManager.GetString("strAlwaysShowPanelTabs", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Always show notification area icon.
'''</summary>
@@ -1317,6 +1326,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Could not find ToolStrip control in FilteredPropertyGrid..
'''</summary>
Friend Shared ReadOnly Property strCouldNotFindToolStripInFilteredPropertyGrid() As String
Get
Return ResourceManager.GetString("strCouldNotFindToolStripInFilteredPropertyGrid", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Installed version.
'''</summary>
@@ -1933,6 +1951,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Identify quick connect tabs by adding the prefix &quot;Quick:&quot;.
'''</summary>
Friend Shared ReadOnly Property strIdentifyQuickConnectTabs() As String
Get
Return ResourceManager.GetString("strIdentifyQuickConnectTabs", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Import from Active Directory.
'''</summary>
@@ -5006,6 +5033,15 @@ Namespace My
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Search.
'''</summary>
Friend Shared ReadOnly Property strSearchPrompt() As String
Get
Return ResourceManager.GetString("strSearchPrompt", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Send To....
'''</summary>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd: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>
@@ -105,15 +105,15 @@
</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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -219,12 +219,18 @@
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Neu</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;Okay</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Eigenschaften</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp;Scannen</value>
</data>
<data name="strButtonStop" xml:space="preserve">
<value>&amp;Halt</value>
</data>
<data name="strButtonTestProxy" xml:space="preserve">
<value>Proxy prüfen</value>
</data>
@@ -247,6 +253,9 @@ Bitte verwenden Sie Datei - Verbindungen laden für normale Verbindungs Dateien!
<data name="strCategoryDisplay" xml:space="preserve">
<value>Anzeige</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Allgemein</value>
</data>
@@ -390,6 +399,9 @@ VncSharpNG Control Version {0}</value>
<data name="strColumnFilename" xml:space="preserve">
<value>Dateiname</value>
</data>
<data name="strColumnHostnameIP" xml:space="preserve">
<value>Hostname/IP</value>
</data>
<data name="strColumnMessage" xml:space="preserve">
<value>Nachricht</value>
</data>
@@ -426,6 +438,15 @@ VncSharpNG Control Version {0}</value>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Konfigurationsfenster laden fehlgeschlagen!</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Bestätigen Sie das schließen der Verbindungstabs</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<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>
</data>
<data name="strConfirmDeleteExternalTool" xml:space="preserve">
<value>Sind Sie sicher dass Sie das extene Programm "{0}" entfernen möchten?</value>
</data>
@@ -570,18 +591,57 @@ Starte mit neuer Datei.</value>
<data name="strEncryptCompleteConnectionFile" xml:space="preserve">
<value>Verbindungsdaten Datei vollständig verschlüsseln</value>
</data>
<data name="strEndIP" xml:space="preserve">
<value>Letzte IP</value>
</data>
<data name="strEndPort" xml:space="preserve">
<value>letzte Port</value>
</data>
<data name="strErrorAddExternalToolsToToolBarFailed" xml:space="preserve">
<value>AddExternalToolsToToolBar (FrmMain) ist fehlgeschlagen. {0}</value>
</data>
<data name="strErrorAddFolderFailed" xml:space="preserve">
<value>AddFolder (UI.Window.Tree) fehlgeschlagen. {0}</value>
</data>
<data name="strErrorBadDatabaseVersion" xml:space="preserve">
<value>Die Datenbankversion {0} ist nicht kompatibel mit dieser Version von {1}.</value>
</data>
<data name="strErrorCloneNodeFailed" xml:space="preserve">
<value>CloneNode (Tree.Node) fehlgeschlagen. {0}</value>
</data>
<data name="strErrorCode" xml:space="preserve">
<value>Fehler Nummer {0}.</value>
</data>
<data name="strErrorConnectionListSaveFailed" xml:space="preserve">
<value>Die Verbindungsliste konnte nicht gespeichert werden.</value>
</data>
<data name="strErrorDecryptionFailed" xml:space="preserve">
<value>Entschlüsselung ist gescheitert. {0}</value>
</data>
<data name="strErrorEncryptionFailed" xml:space="preserve">
<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>
</data>
<data name="strErrors" xml:space="preserve">
<value>Fehler</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>Die Verbindungseinstellungen konnten nicht geladen werden.{0}{0}{2}{0}{3}{0}{0}Um Datenverlust zu vermeiden, wird {1} jetzt beendet.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>VerifyDatabaseVersion (Config.Connections.Save) ist fehlgeschlagen. {0}</value>
</data>
<data name="strExpandAllFolders" xml:space="preserve">
<value>Alle Ordner erweitern</value>
</data>
<data name="strExperimental" xml:space="preserve">
<value>Experimentell</value>
</data>
<data name="strExport" xml:space="preserve">
<value>Exportieren</value>
</data>
<data name="strExportmRemoteXML" xml:space="preserve">
<value>mRemote/mRemoteNG XML exportieren</value>
</data>
@@ -627,6 +687,9 @@ Starte mit neuer Datei.</value>
<data name="strGetConnectionInfoFromSqlFailed" xml:space="preserve">
<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>
</data>
<data name="strGroupboxAutomaticReconnect" xml:space="preserve">
<value>Automatisches wiederverbinden</value>
</data>
@@ -639,6 +702,9 @@ Starte mit neuer Datei.</value>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Dateien</value>
</data>
<data name="strHost" xml:space="preserve">
<value>Host</value>
</data>
<data name="strHttpConnectFailed" xml:space="preserve">
<value>Verbindung mit HTTP fehlgeschlagen!</value>
</data>
@@ -708,6 +774,9 @@ Starte mit neuer Datei.</value>
<data name="strIntAppKillFailed" xml:space="preserve">
<value>Beenden des Internen Programmes fehlgeschlagen!</value>
</data>
<data name="strIntAppParentHandle" xml:space="preserve">
<value>Panel Handle: {0}</value>
</data>
<data name="strIntAppResizeFailed" xml:space="preserve">
<value>Internes Programm Größenanpassung fehlgeschlagen!</value>
</data>
@@ -744,12 +813,21 @@ Starte mit neuer Datei.</value>
<data name="strLabelFilename" xml:space="preserve">
<value>Dateiname:</value>
</data>
<data name="strLabelHostname" xml:space="preserve">
<value>Hostname:</value>
</data>
<data name="strLabelOptions" xml:space="preserve">
<value>Optionen:</value>
</data>
<data name="strLabelPassword" xml:space="preserve">
<value>Passwort:</value>
</data>
<data name="strLabelPort" xml:space="preserve">
<value>Port:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Portable Edition</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Protokoll:</value>
</data>
@@ -768,6 +846,15 @@ Starte mit neuer Datei.</value>
<data name="strLabelSelectPanel" xml:space="preserve">
<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>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Datenbank:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Datenbank:</value>
</data>
<data name="strLabelUsername" xml:space="preserve">
<value>Benutzername:</value>
</data>
@@ -921,6 +1008,9 @@ Starte mit neuer Datei.</value>
<data name="strMenuPaste" xml:space="preserve">
<value>Einfügen</value>
</data>
<data name="strMenuPortScan" xml:space="preserve">
<value>Port Scan</value>
</data>
<data name="strMenuQuickConnectToolbar" xml:space="preserve">
<value>Direkt Verbinden Symbolleiste</value>
</data>
@@ -972,6 +1062,9 @@ Starte mit neuer Datei.</value>
<data name="strMenuShowText" xml:space="preserve">
<value>Text anzeigen</value>
</data>
<data name="strMenuSmartSize" xml:space="preserve">
<value>SmartSize (RDP/VNC)</value>
</data>
<data name="strMenuSSHFileTransfer" xml:space="preserve">
<value>SSH Datei Übertragung</value>
</data>
@@ -1041,6 +1134,9 @@ Starte mit neuer Datei.</value>
<data name="strNone" xml:space="preserve">
<value>Keine Angabe</value>
</data>
<data name="strNormal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="strNoSmartSize" xml:space="preserve">
<value>Keine automatische Größenanpassung (SmartSize)</value>
</data>
@@ -1057,6 +1153,9 @@ 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="strPanelName" xml:space="preserve">
<value>Panel Name</value>
</data>
<data name="strPasswordProtect" xml:space="preserve">
<value>Passwort Schutz</value>
</data>
@@ -1102,6 +1201,12 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyDescriptionDomain" xml:space="preserve">
<value>Geben Sie hier ihre Domäne ein.</value>
</data>
<data name="strPropertyDescriptionEnableDesktopComposition" xml:space="preserve">
<value>Wählen, ob die Desktopgestaltung genutzt werden soll.</value>
</data>
<data name="strPropertyDescriptionEnableFontSmoothing" xml:space="preserve">
<value>Wählen Sie, ob eine Schriftglättung genutzt werden soll oder nicht.</value>
</data>
<data name="strPropertyDescriptionEncoding" xml:space="preserve">
<value>Wählen Sie die zu verwendende Codierung.</value>
</data>
@@ -1169,7 +1274,7 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<value>Wählen Sie, ob ihre lokalen Drucker auf dem entfernten System zur Verfügung stehen sollen.</value>
</data>
<data name="strPropertyDescriptionRedirectSmartCards" xml:space="preserve">
<value>Wählen Sie, ob Ihre lokalen smart Cards auf dem entfernten System zur Verfügung stehen sollen.</value>
<value>Wählen Sie, ob lokale Smartcards auf dem Remotehost verfügbar sein sollen.</value>
</data>
<data name="strPropertyDescriptionRedirectSounds" xml:space="preserve">
<value>Wählen Sie, wie Töne auf dem entfernten System wiedergegeben werden sollen.</value>
@@ -1210,6 +1315,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyDescriptionVNCProxyUsername" xml:space="preserve">
<value>Geben Sie Ihren Benutzernamen ein.</value>
</data>
<data name="strPropertyNameAddress" xml:space="preserve">
<value>Hostname/IP</value>
</data>
<data name="strPropertyNameAll" xml:space="preserve">
<value>Alles</value>
</data>
@@ -1240,6 +1348,12 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameDomain" xml:space="preserve">
<value>Domäne</value>
</data>
<data name="strPropertyNameEnableDesktopComposition" xml:space="preserve">
<value>Desktopgestaltung</value>
</data>
<data name="strPropertyNameEnableFontSmoothing" xml:space="preserve">
<value>Schriftglättung</value>
</data>
<data name="strPropertyNameEncoding" xml:space="preserve">
<value>Codierung</value>
</data>
@@ -1261,9 +1375,18 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameMACAddress" xml:space="preserve">
<value>MAC Adresse</value>
</data>
<data name="strPropertyNameName" xml:space="preserve">
<value>Name</value>
</data>
<data name="strPropertyNamePanel" xml:space="preserve">
<value>Panel</value>
</data>
<data name="strPropertyNamePassword" xml:space="preserve">
<value>Passwort</value>
</data>
<data name="strPropertyNamePort" xml:space="preserve">
<value>Port</value>
</data>
<data name="strPropertyNameProtocol" xml:space="preserve">
<value>Protokoll</value>
</data>
@@ -1273,6 +1396,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameRDGatewayDomain" xml:space="preserve">
<value>Gateway Domäne</value>
</data>
<data name="strPropertyNameRDGatewayHostname" xml:space="preserve">
<value>Gateway-Hostname</value>
</data>
<data name="strPropertyNameRDGatewayPassword" xml:space="preserve">
<value>Gateway Passwort</value>
</data>
@@ -1291,12 +1417,21 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameRedirectKeys" xml:space="preserve">
<value>Tastenkombinationen</value>
</data>
<data name="strPropertyNameRedirectPorts" xml:space="preserve">
<value>Ports</value>
</data>
<data name="strPropertyNameRedirectPrinters" xml:space="preserve">
<value>Drucker</value>
</data>
<data name="strPropertyNameRedirectSmartCards" xml:space="preserve">
<value>Smartcards</value>
</data>
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
<value>Töne</value>
</data>
<data name="strPropertyNameRenderingEngine" xml:space="preserve">
<value>Rendering-Engine</value>
</data>
<data name="strPropertyNameResolution" xml:space="preserve">
<value>Auflösung</value>
</data>
@@ -1315,9 +1450,15 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPropertyNameViewOnly" xml:space="preserve">
<value>View-Only</value>
</data>
<data name="strPropertyNameVNCProxyAddress" xml:space="preserve">
<value>Proxy-Adresse</value>
</data>
<data name="strPropertyNameVNCProxyPassword" xml:space="preserve">
<value>Proxy Passwort</value>
</data>
<data name="strPropertyNameVNCProxyPort" xml:space="preserve">
<value>Proxy Port</value>
</data>
<data name="strPropertyNameVNCProxyType" xml:space="preserve">
<value>Proxy Typ</value>
</data>
@@ -1353,9 +1494,15 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPuttyGetSessionsFailed" xml:space="preserve">
<value>Auslesen der PuTTY Verbindungsliste fehlgeschlagen!</value>
</data>
<data name="strPuttyHandle" xml:space="preserve">
<value>Putty Handle: {0}</value>
</data>
<data name="strPuttyKillFailed" xml:space="preserve">
<value>Beenden von PuTTY fehlgeschlagen!</value>
</data>
<data name="strPuttyParentHandle" xml:space="preserve">
<value>Panel Handle: {0}</value>
</data>
<data name="strPuttyResizeFailed" xml:space="preserve">
<value>Ändern der Größe fehlgschlagen!</value>
</data>
@@ -1371,6 +1518,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strPuttyStuff" xml:space="preserve">
<value>--- PuTTY ---</value>
</data>
<data name="strPuttyTitle" xml:space="preserve">
<value>Putty Title: {0}</value>
</data>
<data name="strQuick" xml:space="preserve">
<value>Direkt: {0}</value>
</data>
@@ -1389,6 +1539,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strRAW" xml:space="preserve">
<value>Rohdaten (RAW)</value>
</data>
<data name="strRDP" xml:space="preserve">
<value>RDP</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Farben (24Bit)</value>
</data>
@@ -1572,6 +1725,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strRename" xml:space="preserve">
<value>Umbenennen</value>
</data>
<data name="strRlogin" xml:space="preserve">
<value>Rlogin</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Speichern</value>
</data>
@@ -1635,9 +1791,15 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strSmartSizeModeAspect" xml:space="preserve">
<value>Aspekt</value>
</data>
<data name="strSmartSizeModeFree" xml:space="preserve">
<value>verfügbar</value>
</data>
<data name="strSmartSizeModeNone" xml:space="preserve">
<value>Kein SmartSize</value>
</data>
<data name="strSocks5" xml:space="preserve">
<value>Socks 5</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Sortieren</value>
</data>
@@ -1648,7 +1810,7 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<value>Absteigend (Z-A)</value>
</data>
<data name="strSpecialKeys" xml:space="preserve">
<value>Spezielle Tastenkombinationen</value>
<value>spezielle Tasten</value>
</data>
<data name="strSQLInfo" xml:space="preserve">
<value>Für mehr Informationen bitte Hilfeeintrag lesen (Info - Help - Getting started - SQL Configuration)</value>
@@ -1686,6 +1848,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strStartupExit" xml:space="preserve">
<value>Anfang/Ende</value>
</data>
<data name="strStatus" xml:space="preserve">
<value>Status</value>
</data>
<data name="strSwitchToErrorsAndInfos" xml:space="preserve">
<value>Öffne das Fehler &amp;&amp; Infos Panel bei:</value>
</data>
@@ -1698,12 +1863,21 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strTabsAndPanels" xml:space="preserve">
<value>Tabs &amp;&amp; Panele</value>
</data>
<data name="strTabUpdates" xml:space="preserve">
<value>Aktualisierungen</value>
</data>
<data name="strTelnet" xml:space="preserve">
<value>Telnet</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>die folgenden:</value>
</data>
<data name="strTitleError" xml:space="preserve">
<value>Fehler ({0})</value>
</data>
<data name="strTitleInformation" xml:space="preserve">
<value>Informationen ({0})</value>
</data>
<data name="strTitlePassword" xml:space="preserve">
<value>Passwort</value>
</data>
@@ -1746,6 +1920,9 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungs Datei erstel
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>Prüfung auf Aktualisierung ist fehlgeschlagen!</value>
</data>
<data name="strUpdateCheckPortableEdition" xml:space="preserve">
<value>mRemoteNG Portable Edition unterstützt derzeit keine automatische Updates.</value>
</data>
<data name="strUpdateDeleteFailed" xml:space="preserve">
<value>Löschen der Aktualisierungsdatei ist gehlgeschlagen!</value>
</data>
@@ -1787,11 +1964,17 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
<value>Selben Benutzer und Passwort verwenden</value>
</data>
<data name="strUseSmartCard" xml:space="preserve">
<value>Verwenden einer smart Card</value>
<value>Verwenden sie eine Smartcard</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>SQL Server für das Laden &amp;&amp; Speichern der Verbindungen verwenden</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Version</value>
</data>
<data name="strVnc" xml:space="preserve">
<value>VNC</value>
</data>
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
<value>Trennen der VNC Verbindung fehlgeschlagen!</value>
</data>

View File

@@ -0,0 +1,390 @@
<?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="strActive" xml:space="preserve">
<value>Activo</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Actividad</value>
</data>
<data name="strButtonDefaultProperties" xml:space="preserve">
<value>Propiedades por defecto</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Desconectar</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Icono</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Ejecutar PuTTY</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp; OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Propiedades</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp; Scanear</value>
</data>
<data name="strButtonStop" xml:space="preserve">
<value>&amp; Parar</value>
</data>
<data name="strButtonTestProxy" xml:space="preserve">
<value>Probar Proxy</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Credenciales</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Varios</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Siempre mostrar esta pantalla al inicio</value>
</data>
<data name="strCcNotInstalledProperly" xml:space="preserve">
<value>no está correctamente instalado</value>
</data>
<data name="strCcPuttyOK" xml:space="preserve">
<value>El ejecutable de PuTTY se encontró y debería estar listo para usarse.</value>
</data>
<data name="strCcRDPOK" xml:space="preserve">
<value>Todos los componentes RDP se encontraron y parecen estar registrados correctamente. Versión de escritorio remoto {0}</value>
</data>
<data name="strCcVNCOK" xml:space="preserve">
<value>Todos los componentes de VNC se encontraron y parecen estar registrados correctamente.
VncSharpNG Control {0}</value>
</data>
<data name="strCheckboxAutomaticReconnect" xml:space="preserve">
<value>Intentar reconectar automáticamente cuando se desconecte (solo para RDP &amp;&amp; ICA)</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Dominio</value>
</data>
<data name="strCheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>No mostrar este mensaje de nuevo.</value>
</data>
<data name="strCheckboxInheritance" xml:space="preserve">
<value>Herencia</value>
</data>
<data name="strCheckboxPassword" xml:space="preserve">
<value>Contraseña</value>
</data>
<data name="strCheckboxProxyAuthentication" xml:space="preserve">
<value>Este servidor proxy requiere autenticación</value>
</data>
<data name="strCheckboxPuttyPath" xml:space="preserve">
<value>Usar ruta de Putty personalizada:</value>
</data>
<data name="strCheckboxReconnectWhenReady" xml:space="preserve">
<value>Vuelva a conectarse cuando esté listo</value>
</data>
<data name="strCheckboxUpdateUseProxy" xml:space="preserve">
<value>Usar un servidor proxy para conectarse</value>
</data>
<data name="strCheckboxUsername" xml:space="preserve">
<value>Usuario</value>
</data>
<data name="strCheckboxWaitForExit" xml:space="preserve">
<value>Esperar a Salir</value>
</data>
<data name="strCheckForUpdate" xml:space="preserve">
<value>Pruebe nuevamente</value>
</data>
<data name="strCheckForUpdatesOnStartup" xml:space="preserve">
<value>Comprobar las actualizaciones y anuncios en el inicio</value>
</data>
<data name="strCheckNow" xml:space="preserve">
<value>Compruebe ahora</value>
</data>
<data name="strCheckProperInstallationOfComponentsAtStartup" xml:space="preserve">
<value>Verifique la correcta instalación de los componentes en el inicio</value>
</data>
<data name="strChoosePanelBeforeConnecting" xml:space="preserve">
<value>Elija el panel antes de conectarse</value>
</data>
<data name="strClosedPorts" xml:space="preserve">
<value>Puertos Cerrados</value>
</data>
<data name="strCollapseAllFolders" xml:space="preserve">
<value>Contraer todas las carpetas</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Comprobación de componentes</value>
</data>
<data name="strConfigPropertyGridButtonIconClickFailed" xml:space="preserve">
<value>btnIcon_Click falló!</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<value>¿Desea cerrar la conexión, "{0}"?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>¿Está seguro que desea cerrar el panel, "{0}"? Cualquier conexión que contenga el panel también estará cerrada.</value>
</data>
<data name="strConfirmDeleteNodeFolder" xml:space="preserve">
<value>¿Está seguro que desea eliminar la carpeta vacía, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolderNotEmpty" xml:space="preserve">
<value>¿Está seguro que desea eliminar la carpeta "{0}"? También se eliminará cualquier carpetas o conexiones que contiene.</value>
</data>
<data name="strConfirmExit" xml:space="preserve">
<value>Confirmar salida si hay conexiones abiertas</value>
</data>
<data name="strConfirmExitMainInstruction" xml:space="preserve">
<value>¿Desea cerrar todas las conexiones abiertas?</value>
</data>
<data name="strConfirmResetLayout" xml:space="preserve">
<value>¿Estás seguro que deseas restablecer los paneles a su diseño predeterminado?</value>
</data>
<data name="strConnect" xml:space="preserve">
<value>Conectar</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Conectando...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Evento de protocolo conectado</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>¡Error de conexión!</value>
</data>
<data name="strConnectionOpenFailed" xml:space="preserve">
<value>No se pudo abrir la conexión!</value>
</data>
<data name="strConnectionOpenFailedNoHostname" xml:space="preserve">
<value>No se puede abrir la conexión: ningún nombre de host especificado!</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>Error de RDP.
Código de Error: {0}
Descripción del Error: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Conexiones</value>
</data>
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
<value>No se ha podido establecer el puerto predeterminado!</value>
</data>
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
<value>No se pudo crear copia de seguridad del archivo de conexiones!</value>
</data>
<data name="strConnectionsFileCouldNotBeImported" xml:space="preserve">
<value>No se pudo importar archivo de conexiones!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoaded" xml:space="preserve">
<value>No se pudo cargar el archivo de conexiones "{0}"!</value>
</data>
<data name="strConnectionsFileCouldNotBeSaved" xml:space="preserve">
<value>No se pudo guardar el archivo de conexiones!</value>
</data>
<data name="strConnectionsFileCouldNotSaveAs" xml:space="preserve">
<value>No se pudo guardar archivo de conexiones como "{0}"!</value>
</data>
<data name="strConnectToConsoleSession" xml:space="preserve">
<value>Conectar con la sesión de consola</value>
</data>
<data name="strConnectWithOptions" xml:space="preserve">
<value>Conectar (con opciones)</value>
</data>
<data name="strConnenctionClosedByUser" xml:space="preserve">
<value>Conexión a {0} {1} vía cerrada por usuario {2}.</value>
</data>
<data name="strConnenctionClosedByUserDetail" xml:space="preserve">
<value>Conexión a {0} {1} vía cerrada por usuario {2}. (Descripción: "{3}"; Campo de usuario: "{4}")</value>
</data>
<data name="strConnenctionCloseEvent" xml:space="preserve">
<value>Evento de conexión cerrada</value>
</data>
<data name="strConnenctionCloseEventFailed" xml:space="preserve">
<value>Evento de cerrar conexión falló!</value>
</data>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>No se pudo crear el nuevo archivo de conexiones!</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>Versión instalada</value>
</data>
<data name="strDetect" xml:space="preserve">
<value>Detectar</value>
</data>
<data name="strDontConnectWhenAuthFails" xml:space="preserve">
<value>No conectar si falla la autenticación</value>
</data>
<data name="strDownloadAndInstall" xml:space="preserve">
<value>Descargar e instalar</value>
</data>
<data name="strDuplicate" xml:space="preserve">
<value>Duplicar</value>
</data>
<data name="strEmptyPasswordContinue" xml:space="preserve">
<value>¿Desea continuar sin contraseña?</value>
</data>
<data name="strEmptyUsernamePasswordDomainFields" xml:space="preserve">
<value>Si desea Nombre de usuario, password o dominio vacio use:</value>
</data>
<data name="strEnc128Bit" xml:space="preserve">
<value>128-bit</value>
</data>
<data name="strEnc128BitLogonOnly" xml:space="preserve">
<value>128-bit (iniciar sesión)</value>
</data>
<data name="strEncBasic" xml:space="preserve">
<value>Básica</value>
</data>
<data name="strEncryptCompleteConnectionFile" xml:space="preserve">
<value>Encriptar completamente el archivo de conexiones</value>
</data>
<data name="strEndIP" xml:space="preserve">
<value>Último IP</value>
</data>
<data name="strEndPort" xml:space="preserve">
<value>Último puerto</value>
</data>
<data name="strErrorAddExternalToolsToToolBarFailed" xml:space="preserve">
<value>BarraAgregarHerramientasExternas (frmMain) falló. {0}</value>
</data>
<data name="strErrorBadDatabaseVersion" xml:space="preserve">
<value>La versión de la base de datos {0} no es compatible con esta versión de {1}.</value>
</data>
<data name="strErrorCloneNodeFailed" xml:space="preserve">
<value>ClonarModulo (Tree.Node) falló. {0}</value>
</data>
<data name="strErrorCode" xml:space="preserve">
<value>Código de Error {0}.</value>
</data>
<data name="strErrorConnectionListSaveFailed" xml:space="preserve">
<value>La lista de conexiones no pudo ser guardada.</value>
</data>
<data name="strErrorDecryptionFailed" xml:space="preserve">
<value>La decriptación falló. {0}</value>
</data>
<data name="strErrorEncryptionFailed" xml:space="preserve">
<value>La encriptación falló. {0}</value>
</data>
<data name="strErrorFipsPolicyIncompatible" xml:space="preserve">
<value>La configuración de seguridad de Windows, "criptografía de sistema: usar FIPS algoritmos compatibles para codificación, algoritmos hash y firma", está habilitada. Esta configuración no es compatible con {0}. Consulte el artículo de soporte técnico de Microsoft en http://support.microsoft.com/kb/811833 para obtener más información. {0} se cerrará.</value>
</data>
<data name="strErrors" xml:space="preserve">
<value>Errores</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>VerificarVersionBasedeDatos (Config.Connections.Save) falló. {0}</value>
</data>
</root>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd: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>
@@ -105,15 +105,15 @@
</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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -219,6 +219,9 @@
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Nuevo</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Propiedades</value>
</data>
@@ -253,6 +256,9 @@
<data name="strCategoryGateway" xml:space="preserve">
<value>Puerta de Enlace</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>General</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Varios</value>
</data>
@@ -413,6 +419,9 @@ Versión de Control {0} de VNCSharpNG</value>
<data name="strConfigPropertyGridSetHostStatusFailed" xml:space="preserve">
<value>No se pudo definir el estado del host!</value>
</data>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Error al Cargar la Interfaz de Configuración de Usuario</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Confirme el cierre de las pestañas de conexiones</value>
</data>
@@ -455,6 +464,9 @@ Versión de Control {0} de VNCSharpNG</value>
<data name="strConnecting" xml:space="preserve">
<value>Conectando...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Se lanzó el evento Connected en Protocol</value>
</data>
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
<value>Connexión a "{0}" via "{1}" establecida por el usuario "{2}" (Descripción: "{3}"; Campo de Usuario: "{4}")</value>
</data>
@@ -512,6 +524,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strConnenctionClosedByUserDetail" xml:space="preserve">
<value>Connexión a {0} via {1} cerrada por el usuario {2}. (Descripción: "{3}"; Campo de Usuario: "{4}")</value>
</data>
<data name="strConnenctionCloseEventFailed" xml:space="preserve">
<value>¡Ha fallado el evento Closed en Connection!</value>
</data>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>¡No se pudo crear un nuevo archivo de conexiones!</value>
</data>
@@ -539,9 +554,15 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strEmptyUsernamePasswordDomainFields" xml:space="preserve">
<value>Para campos de Nombre de Usuario, Contraseña y Dominio vacíos usar:</value>
</data>
<data name="strEnc128Bit" xml:space="preserve">
<value>128-bit</value>
</data>
<data name="strEnc128BitLogonOnly" xml:space="preserve">
<value>128-bit (sólo inicio de sesión)</value>
</data>
<data name="strEncBasic" xml:space="preserve">
<value>Básico</value>
</data>
<data name="strEncryptCompleteConnectionFile" xml:space="preserve">
<value>Cifrar por completo el archivo de conexión</value>
</data>
@@ -554,18 +575,46 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strErrorAddFolderFailed" xml:space="preserve">
<value>Añadir Carpeta (UI.Window.Tree) fallida. {0}</value>
</data>
<data name="strErrorBadDatabaseVersion" xml:space="preserve">
<value>La versión de Base de Datos {0} No es compatible con esta versión de {1}.</value>
</data>
<data name="strErrorCloneNodeFailed" xml:space="preserve">
<value>Clonado de Nodo (Tree.Node) fallido. {0}</value>
</data>
<data name="strErrorCode" xml:space="preserve">
<value>Código de error {0}.</value>
</data>
<data name="strErrorConnectionListSaveFailed" xml:space="preserve">
<value>La lista de conexiones no ha podido ser grabada.</value>
</data>
<data name="strErrorDecryptionFailed" xml:space="preserve">
<value>Descifrado fallido. {0}</value>
</data>
<data name="strErrorEncryptionFailed" xml:space="preserve">
<value>Cifrado fallido. {0}</value>
</data>
<data name="strErrorFipsPolicyIncompatible" xml:space="preserve">
<value>La configuración de Seguridad de Windows, "Criptografia del sistema: Usar Algoritmos compatibles FIPS para Encripción, Hashing y Firma", esta habilitada. Esta configuración es incompatible con {0}.
Ver el articulo de soporte de Microsoft en http://support.microsoft.com/kb/811833 Para más información.
{0} Se Cerrará.</value>
</data>
<data name="strErrors" xml:space="preserve">
<value>Errores</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>No ha podido cargarse el archivo de conexión inicial.{0}{0}{2}{0}{3}{0}{0}Para evitar la pérdida de datos, {1} se cerrará ahora.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>Error.{0} en Proceso VerifyDatabaseVersion (Config.Connections.Save)</value>
</data>
<data name="strExpandAllFolders" xml:space="preserve">
<value>Expandir todas las carpetas</value>
</data>
<data name="strExperimental" xml:space="preserve">
<value>Experimental</value>
</data>
<data name="strExport" xml:space="preserve">
<value>Exportar</value>
</data>
@@ -602,9 +651,15 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strFormatInheritDescription" xml:space="preserve">
<value>Descripción de la propiedad heredada: {0}</value>
</data>
<data name="strFree" xml:space="preserve">
<value>Gratis</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>Pantalla Completa</value>
</data>
<data name="strGeneral" xml:space="preserve">
<value>General</value>
</data>
<data name="strGetConnectionInfoFromSqlFailed" xml:space="preserve">
<value>Adquisición de Información de la Conexión desde SQL fallida</value>
</data>
@@ -623,6 +678,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Archivos</value>
</data>
<data name="strHost" xml:space="preserve">
<value>Servidor</value>
</data>
<data name="strHttpConnectFailed" xml:space="preserve">
<value>¡Conexión HTTP Fallida!</value>
</data>
@@ -680,6 +738,21 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strIntAppConnectionFailed" xml:space="preserve">
<value>¡Conexión fallida!</value>
</data>
<data name="strIntAppDisposeFailed" xml:space="preserve">
<value>¡La liberación del proceso Int App ha fallado!</value>
</data>
<data name="strIntAppFocusFailed" xml:space="preserve">
<value>¡No se pudo centrar el foco en Int App!</value>
</data>
<data name="strIntAppTitle" xml:space="preserve">
<value>Título Int App: {0}</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL-ALT-DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CTRL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Dirección:</value>
</data>
@@ -812,6 +885,12 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strMenuCopy" xml:space="preserve">
<value>Copiar</value>
</data>
<data name="strMenuCtrlAltDel" xml:space="preserve">
<value>Ctrl-Alt-Del</value>
</data>
<data name="strMenuCtrlEsc" xml:space="preserve">
<value>Ctrl-Esc</value>
</data>
<data name="strMenuDelete" xml:space="preserve">
<value>Borrar...</value>
</data>
@@ -998,6 +1077,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strNewTitle" xml:space="preserve">
<value>Nuevo Título</value>
</data>
<data name="strNo" xml:space="preserve">
<value>No</value>
</data>
<data name="strNoCompression" xml:space="preserve">
<value>Sin Compresión</value>
</data>
@@ -1010,6 +1092,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strNone" xml:space="preserve">
<value>Ninguno</value>
</data>
<data name="strNormal" xml:space="preserve">
<value>Normal</value>
</data>
<data name="strNoSmartSize" xml:space="preserve">
<value>Sin SmartSize</value>
</data>
@@ -1147,7 +1232,7 @@ Arrancando con un nuevo archivo de conexiones.</value>
<value>Seleccione si las impresoras locales deben ser mostradas en el host remoto.</value>
</data>
<data name="strPropertyDescriptionRedirectSmartCards" xml:space="preserve">
<value>Seleccione si las smart cards locales deben estar disponibles en el host remoto.</value>
<value>Seleccione si las tarjetas inteligentes deben presentarse a la máquina remota.</value>
</data>
<data name="strPropertyDescriptionRedirectSounds" xml:space="preserve">
<value>Seleccione cómo deberá ser redireccionado el sonido remoto.</value>
@@ -1251,6 +1336,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strPropertyNameName" xml:space="preserve">
<value>Nombre</value>
</data>
<data name="strPropertyNamePanel" xml:space="preserve">
<value>Panel</value>
</data>
<data name="strPropertyNamePassword" xml:space="preserve">
<value>Contraseña</value>
</data>
@@ -1293,6 +1381,9 @@ Arrancando con un nuevo archivo de conexiones.</value>
<data name="strPropertyNameRedirectPrinters" xml:space="preserve">
<value>Impresoras</value>
</data>
<data name="strPropertyNameRedirectSmartCards" xml:space="preserve">
<value>Tarjetas Inteligentes</value>
</data>
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
<value>Sonidos</value>
</data>
@@ -1382,6 +1473,12 @@ Mensaje:
<data name="strQuickConnectHistoryExistsFailed" xml:space="preserve">
<value>¡Fallo en el Histórico de Conexiones Rápidas!</value>
</data>
<data name="strRAW" xml:space="preserve">
<value>RAW</value>
</data>
<data name="strRDP" xml:space="preserve">
<value>RDP</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Colores (24-bit)</value>
</data>
@@ -1529,6 +1626,9 @@ Mensaje:
<data name="strRdpSetResolutionFailed" xml:space="preserve">
<value>¡RDP Asignación de Resolución fallida!</value>
</data>
<data name="strRDPSmartSize" xml:space="preserve">
<value>Tamaño inteligente</value>
</data>
<data name="strRDPSoundBringToThisComputer" xml:space="preserve">
<value>Traer a este equipo</value>
</data>
@@ -1559,6 +1659,9 @@ Mensaje:
<data name="strRename" xml:space="preserve">
<value>Renombrar</value>
</data>
<data name="strRlogin" xml:space="preserve">
<value>Rlogin</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Guardar</value>
</data>
@@ -1583,6 +1686,12 @@ Mensaje:
<data name="strSendTo" xml:space="preserve">
<value>Enviar a...</value>
</data>
<data name="strSessionGetFailed" xml:space="preserve">
<value>Falla al iniciar sesiones en Fondo</value>
</data>
<data name="strSessionKillFailed" xml:space="preserve">
<value>Fallo al detener sesión en Fondo</value>
</data>
<data name="strSetHostnameLikeDisplayName" xml:space="preserve">
<value>Usar el nombre del host como nombre a mostrar cuando se creen nuevas conexiones</value>
</data>
@@ -1619,6 +1728,9 @@ Mensaje:
<data name="strSmartSizeModeNone" xml:space="preserve">
<value>Sin SmartSize</value>
</data>
<data name="strSocks5" xml:space="preserve">
<value>Socks 5</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Ordenar</value>
</data>
@@ -1629,7 +1741,7 @@ Mensaje:
<value>Descendente (Z-A)</value>
</data>
<data name="strSpecialKeys" xml:space="preserve">
<value>Teclas Especiales</value>
<value>Teclas especiales</value>
</data>
<data name="strSQLInfo" xml:space="preserve">
<value>¡Por favor, mire en Ayuda - Comenzando - Configuración SQL para más información!</value>
@@ -1664,6 +1776,9 @@ Mensaje:
<data name="strStartPort" xml:space="preserve">
<value>Puerto Inicial</value>
</data>
<data name="strStartupExit" xml:space="preserve">
<value>Inicio/Salir</value>
</data>
<data name="strStatus" xml:space="preserve">
<value>Estado</value>
</data>
@@ -1682,9 +1797,15 @@ Mensaje:
<data name="strTabUpdates" xml:space="preserve">
<value>Actualizaciones</value>
</data>
<data name="strTelnet" xml:space="preserve">
<value>Telnet</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>El siguiente:</value>
</data>
<data name="strTitleError" xml:space="preserve">
<value>Error ({0})</value>
</data>
<data name="strTitleInformation" xml:space="preserve">
<value>Información ({0})</value>
</data>
@@ -1709,6 +1830,9 @@ Mensaje:
<data name="strType" xml:space="preserve">
<value>Tipo</value>
</data>
<data name="strUltraVncRepeater" xml:space="preserve">
<value>Repetidor de Ultra VNC</value>
</data>
<data name="strUltraVNCSCListeningPort" xml:space="preserve">
<value>Puerto SingleClick de UltraVNC:</value>
</data>
@@ -1727,6 +1851,9 @@ Mensaje:
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>¡Comprobación de actualizaciones fallida!</value>
</data>
<data name="strUpdateCheckPortableEdition" xml:space="preserve">
<value>mRemoteNG Portable Edition no soporta por el momento actualizaciones automáticas.</value>
</data>
<data name="strUpdateDeleteFailed" xml:space="preserve">
<value>¡Error borrando el archivo de actualización!</value>
</data>
@@ -1767,12 +1894,18 @@ mRemoteNG ahora se cerrará y comenzará la instalación.</value>
<data name="strUseSameUsernameAndPassword" xml:space="preserve">
<value>Usar el mismo nombre de usuario y contraseña</value>
</data>
<data name="strUseSmartCard" xml:space="preserve">
<value>Usar una tarjeta inteligente</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>Emplear SQL Server para cargar &amp;&amp; guardar las conexiones</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Versión</value>
</data>
<data name="strVnc" xml:space="preserve">
<value>VNC</value>
</data>
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
<value>¡Desconexión VNC fallida!</value>
</data>
@@ -1809,6 +1942,9 @@ mRemoteNG ahora se cerrará y comenzará la instalación.</value>
<data name="strWeifenLuoAttribution" xml:space="preserve">
<value>Emplea el DockPanel Suite de [Weifen Luo]</value>
</data>
<data name="strWeifenLuoAttributionURL" xml:space="preserve">
<value>http://sourceforge.net/projects/dockpanelsuite/</value>
</data>
<data name="strWriteLogFile" xml:space="preserve">
<value>Escribir archivo de log (mRemoteNG.log)</value>
</data>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd: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>
@@ -105,15 +105,15 @@
</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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -132,6 +132,9 @@
<data name="strAddFolder" xml:space="preserve">
<value>Nieuwe map</value>
</data>
<data name="strAddNodeFromXmlFailed" xml:space="preserve">
<value>AddNodeFromXML mislukt!</value>
</data>
<data name="strAddNodesFromSqlFailed" xml:space="preserve">
<value>Knooppunten toevoegen van XML mislukt!</value>
</data>
@@ -165,6 +168,9 @@
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatisch bijwerken instellingen</value>
</data>
<data name="strAspect" xml:space="preserve">
<value>Verhouding</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Automatisch ophalen sessie informatie</value>
</data>
@@ -183,6 +189,9 @@
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Annuleren</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Wijzig</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>&amp;Sluiten</value>
</data>
@@ -210,9 +219,21 @@
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Nieuw</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Eigenschapen</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp;Scan</value>
</data>
<data name="strButtonStop" xml:space="preserve">
<value>&amp;Stop</value>
</data>
<data name="strButtonTestProxy" xml:space="preserve">
<value>Test Proxy</value>
</data>
<data name="strCannotImportNormalSessionFile" xml:space="preserve">
<value>U kunt geen normale connectie bestand importeren.
Gebruik dan Bestand - Laad Connecties voor normale connectie bestanden!</value>
@@ -232,12 +253,18 @@ Gebruik dan Bestand - Laad Connecties voor normale connectie bestanden!</value>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Scherm</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Algemeen</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Diversen</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Protocol</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Verwijzing</value>
</data>
@@ -546,6 +573,9 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strEmptyUsernamePasswordDomainFields" xml:space="preserve">
<value>Voor lege gebruikersnaam, wachtwoord of domein velden gebruiken:</value>
</data>
<data name="strEnc128Bit" xml:space="preserve">
<value>128-bit</value>
</data>
<data name="strEnc128BitLogonOnly" xml:space="preserve">
<value>128-bit (aanmelding alleen)</value>
</data>
@@ -561,6 +591,9 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strEndPort" xml:space="preserve">
<value>Eind Poort</value>
</data>
<data name="strErrorAddExternalToolsToToolBarFailed" xml:space="preserve">
<value>AddExternalToolsToToolBar (frmMain) is mislukt. {0}</value>
</data>
<data name="strErrorAddFolderFailed" xml:space="preserve">
<value>Map toevoegen (UI.Window.Tree) is mislukt. {0}</value>
</data>
@@ -576,9 +609,25 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strErrorConnectionListSaveFailed" xml:space="preserve">
<value>De connectie lijst kan niet worden opgeslagen..</value>
</data>
<data name="strErrorDecryptionFailed" xml:space="preserve">
<value>Decryptie is mislukt. {0}</value>
</data>
<data name="strErrorEncryptionFailed" xml:space="preserve">
<value>Encryptie is mislukt. {0}</value>
</data>
<data name="strErrorFipsPolicyIncompatible" xml:space="preserve">
<value>De beveiligingsinstelling voor Windows, "Systeemcryptografie: gebruik FIPS-compatibele algoritmes voor codering, hashing en ondertekening", is ingeschakeld. Deze instelling is niet compatibel met {0}.
Zie het Microsoft Support artikel op http://support.microsoft.com/kb/811833 voor meer informatie.
{0} wordt nu gesloten.</value>
</data>
<data name="strErrors" xml:space="preserve">
<value>Foutmeldingen</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>Het verbindingsopstartbestand kon niet worden geladen. {0}{0}{2}{0}{3}{0}{0} Om dataverlies te voorkomen zal {1} nu worden afgesloten.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>Controleer Database Versie (Config.Connections.Save) is mislukt. {0}</value>
</data>
@@ -651,6 +700,9 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Bestanden</value>
</data>
<data name="strHost" xml:space="preserve">
<value>Host</value>
</data>
<data name="strHttpConnectFailed" xml:space="preserve">
<value>HTTP verbinding mislukt!</value>
</data>
@@ -732,6 +784,12 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strIntAppTitle" xml:space="preserve">
<value>Interne Applicatie naam: {0}</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL-ALT-DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CTRL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Adres:</value>
</data>
@@ -768,6 +826,9 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Mobiele Editie</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Protocol:</value>
</data>
<data name="strLabelPuttySessionsConfig" xml:space="preserve">
<value>Om PuTTY Sessies te configureren klik op deze knop:</value>
</data>
@@ -783,6 +844,15 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strLabelSelectPanel" xml:space="preserve">
<value>Selecteer een paneel uit de onderstaande lijst of klik op Nieuw om een nieuwe toe te voegen. Klik op OK om verder te gaan.</value>
</data>
<data name="strLabelServerStatus" xml:space="preserve">
<value>Server Status:</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strLabelUsername" xml:space="preserve">
<value>Gebruikersnaam:</value>
</data>
@@ -852,6 +922,12 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strMenuCopy" xml:space="preserve">
<value>Kopiëren</value>
</data>
<data name="strMenuCtrlAltDel" xml:space="preserve">
<value>Ctrl-Alt-Del</value>
</data>
<data name="strMenuCtrlEsc" xml:space="preserve">
<value>CTRL-Esc</value>
</data>
<data name="strMenuDelete" xml:space="preserve">
<value>Verwijder...</value>
</data>
@@ -900,6 +976,12 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strMenuFullScreenRDP" xml:space="preserve">
<value>Volledig Scherm (RDP)</value>
</data>
<data name="strMenuHelp" xml:space="preserve">
<value>&amp;Help</value>
</data>
<data name="strMenuHelpContents" xml:space="preserve">
<value>mRemoteNG Help</value>
</data>
<data name="strMenuJumpTo" xml:space="preserve">
<value>Ga naar</value>
</data>
@@ -951,12 +1033,18 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strMenuReportBug" xml:space="preserve">
<value>Meld een bug</value>
</data>
<data name="strMenuResetLayout" xml:space="preserve">
<value>Herstel lay-out</value>
</data>
<data name="strMenuSaveConnectionFile" xml:space="preserve">
<value>Opslaan Connectie bestand</value>
</data>
<data name="strMenuSaveConnectionFileAs" xml:space="preserve">
<value>Opslaan Connectie bestand Als...</value>
</data>
<data name="strMenuScreenshot" xml:space="preserve">
<value>Schermafbeelding</value>
</data>
<data name="strMenuScreenshotManager" xml:space="preserve">
<value>Screenshot beheerder</value>
</data>
@@ -972,9 +1060,15 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strMenuShowText" xml:space="preserve">
<value>Toon tekst</value>
</data>
<data name="strMenuSmartSize" xml:space="preserve">
<value>SmartSize (RDP/VNC)</value>
</data>
<data name="strMenuSSHFileTransfer" xml:space="preserve">
<value>SSH Bestandsoverdracht</value>
</data>
<data name="strMenuStartChat" xml:space="preserve">
<value>Start Chat (VNC)</value>
</data>
<data name="strMenuSupportForum" xml:space="preserve">
<value>Ondersteunings Forum</value>
</data>
@@ -990,6 +1084,9 @@ Beginnen met nieuwe Connectie bestand.</value>
<data name="strMenuViewOnly" xml:space="preserve">
<value>Alleen bekijken (VNC)</value>
</data>
<data name="strMenuWebsite" xml:space="preserve">
<value>Website</value>
</data>
<data name="strMinimizeToSysTray" xml:space="preserve">
<value>Minimaliseer naar het systeemvak</value>
</data>
@@ -1162,6 +1259,9 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<data name="strPropertyDescriptionRDGatewayUsername" xml:space="preserve">
<value>Hiermee geeft u de gebruikersnaam op waarmee een gebruiker verbinding kan maken met de RD-gateway-server.</value>
</data>
<data name="strPropertyDescriptionRedirectDrives" xml:space="preserve">
<value>Selecteer of lokale schijfstations op de externe host moeten worden weergegeven.</value>
</data>
<data name="strPropertyDescriptionRedirectKeys" xml:space="preserve">
<value>Selecteer of toetscombinaties (b.v. Alt-Tab) moeten worden doorgestuurd naar de externe host.</value>
</data>
@@ -1172,7 +1272,7 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<value>Selecteer of lokale printers getoond moeten worden op de externe host.</value>
</data>
<data name="strPropertyDescriptionRedirectSmartCards" xml:space="preserve">
<value>Selecteer of de lokale smart cards moet beschikbaar zijn op de externe host.</value>
<value>Selecteer of lokale smartcards beschikbaar moeten zijn op de externe host.</value>
</data>
<data name="strPropertyDescriptionRedirectSounds" xml:space="preserve">
<value>Selecteer hoe externe geluiden moeten worden doorgestuurd.</value>
@@ -1225,6 +1325,9 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<data name="strPropertyNameAuthenticationMode" xml:space="preserve">
<value>Authenticatie Modus</value>
</data>
<data name="strPropertyNameCacheBitmaps" xml:space="preserve">
<value>Cache Bitmapafbeeldingen</value>
</data>
<data name="strPropertyNameColors" xml:space="preserve">
<value>Kleuren</value>
</data>
@@ -1282,6 +1385,9 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<data name="strPropertyNamePort" xml:space="preserve">
<value>Poort</value>
</data>
<data name="strPropertyNameProtocol" xml:space="preserve">
<value>Protocol</value>
</data>
<data name="strPropertyNamePuttySession" xml:space="preserve">
<value>PuTTY Sessie</value>
</data>
@@ -1312,12 +1418,24 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<data name="strPropertyNameRedirectPorts" xml:space="preserve">
<value>Poorten</value>
</data>
<data name="strPropertyNameRedirectPrinters" xml:space="preserve">
<value>Printers</value>
</data>
<data name="strPropertyNameRedirectSmartCards" xml:space="preserve">
<value>Smartcards</value>
</data>
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
<value>Geluiden</value>
</data>
<data name="strPropertyNameRenderingEngine" xml:space="preserve">
<value>Rendering Engine</value>
</data>
<data name="strPropertyNameResolution" xml:space="preserve">
<value>Resolutie</value>
</data>
<data name="strPropertyNameSmartSizeMode" xml:space="preserve">
<value>SmartSize Modus</value>
</data>
<data name="strPropertyNameUseConsoleSession" xml:space="preserve">
<value>Gebruik consolesessie</value>
</data>
@@ -1339,6 +1457,9 @@ Als dergelijke problemen voorkomen maak dan een nieuwe verbindings bestand aan!<
<data name="strPropertyNameVNCProxyPort" xml:space="preserve">
<value>Proxy Poort</value>
</data>
<data name="strPropertyNameVNCProxyType" xml:space="preserve">
<value>Proxy-type</value>
</data>
<data name="strPropertyNameVNCProxyUsername" xml:space="preserve">
<value>Proxy Gebruikersnaam</value>
</data>
@@ -1414,6 +1535,12 @@ Bericht:
<data name="strQuickConnectHistoryExistsFailed" xml:space="preserve">
<value>Snelle Connectie geschiedenis bestaat mislukt!</value>
</data>
<data name="strRAW" xml:space="preserve">
<value>RAW</value>
</data>
<data name="strRDP" xml:space="preserve">
<value>RDP</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Kleuren (24-bit)</value>
</data>
@@ -1564,6 +1691,9 @@ Bericht:
<data name="strRdpSetResolutionFailed" xml:space="preserve">
<value>RDP instellen resolutie mislukt!</value>
</data>
<data name="strRDPSmartSize" xml:space="preserve">
<value>Smart Size</value>
</data>
<data name="strRDPSoundBringToThisComputer" xml:space="preserve">
<value>Afspelen op deze computer</value>
</data>
@@ -1594,6 +1724,9 @@ Bericht:
<data name="strRename" xml:space="preserve">
<value>Hernoemen</value>
</data>
<data name="strRlogin" xml:space="preserve">
<value>Rlogin</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Opslaan</value>
</data>
@@ -1612,6 +1745,12 @@ Bericht:
<data name="strScreen" xml:space="preserve">
<value>Scherm</value>
</data>
<data name="strScreenshot" xml:space="preserve">
<value>Schermafbeelding</value>
</data>
<data name="strScreenshots" xml:space="preserve">
<value>Schermafbeeldingen</value>
</data>
<data name="strSendTo" xml:space="preserve">
<value>Verstuur naar...</value>
</data>
@@ -1648,12 +1787,18 @@ Bericht:
<data name="strSingleClickOnOpenConnectionSwitchesToIt" xml:space="preserve">
<value>Enkele klik om naar geopende verbinding om te schakelen</value>
</data>
<data name="strSmartSizeModeAspect" xml:space="preserve">
<value>Verhouding</value>
</data>
<data name="strSmartSizeModeFree" xml:space="preserve">
<value>Vrij</value>
</data>
<data name="strSmartSizeModeNone" xml:space="preserve">
<value>Geen SmartSize</value>
</data>
<data name="strSocks5" xml:space="preserve">
<value>Socks 5</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Sorteer</value>
</data>
@@ -1693,12 +1838,18 @@ Bericht:
<data name="strSSHTransferFailed" xml:space="preserve">
<value>Overdracht</value>
</data>
<data name="strStartIP" xml:space="preserve">
<value>Start IP</value>
</data>
<data name="strStartPort" xml:space="preserve">
<value>Start Poort</value>
</data>
<data name="strStartupExit" xml:space="preserve">
<value>Opstarten/Afsluiten</value>
</data>
<data name="strStatus" xml:space="preserve">
<value>Status</value>
</data>
<data name="strSwitchToErrorsAndInfos" xml:space="preserve">
<value>Schakel Notificatiepaneel in:</value>
</data>
@@ -1711,6 +1862,12 @@ Bericht:
<data name="strTabsAndPanels" xml:space="preserve">
<value>Tabbladen &amp;&amp; Panelen</value>
</data>
<data name="strTabUpdates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="strTelnet" xml:space="preserve">
<value>Telnet</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>De volgende:</value>
</data>
@@ -1738,6 +1895,12 @@ Bericht:
<data name="strTryIntegrate" xml:space="preserve">
<value>Probeer te integreren</value>
</data>
<data name="strType" xml:space="preserve">
<value>Type</value>
</data>
<data name="strUltraVncRepeater" xml:space="preserve">
<value>UltraVNC Repeater</value>
</data>
<data name="strUltraVNCSCListeningPort" xml:space="preserve">
<value>Ultra VNC Enkele Klik Poort:</value>
</data>
@@ -1756,6 +1919,9 @@ Bericht:
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>Controleren op update mislukt!</value>
</data>
<data name="strUpdateCheckPortableEdition" xml:space="preserve">
<value>mRemoteNG Portable Edition ondersteunt momenteel geen automatische updates.</value>
</data>
<data name="strUpdateDeleteFailed" xml:space="preserve">
<value>Fout bij verwijderen van update-bestand!</value>
</data>
@@ -1796,12 +1962,18 @@ mRemoteNG zal nu worden gesloten en beginnen met de installatie.</value>
<data name="strUseSameUsernameAndPassword" xml:space="preserve">
<value>Gebruik dezelfde gebruikersnaam en wachtwoord</value>
</data>
<data name="strUseSmartCard" xml:space="preserve">
<value>Gebruik een SmartCard</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>Gebruik SQL Server om te connecties te laden en op te slaan</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Versie</value>
</data>
<data name="strVnc" xml:space="preserve">
<value>VNC</value>
</data>
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
<value>VNC Sluiten connectie mislukt!</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -2055,4 +2055,16 @@ mRemoteNG will now quit and begin with the installation.</value>
<data name="strYes" xml:space="preserve">
<value>Yes</value>
</data>
<data name="strCouldNotFindToolStripInFilteredPropertyGrid" xml:space="preserve">
<value>Could not find ToolStrip control in FilteredPropertyGrid.</value>
</data>
<data name="strAlwaysShowPanelTabs" xml:space="preserve">
<value>Always show panel tabs</value>
</data>
<data name="strIdentifyQuickConnectTabs" xml:space="preserve">
<value>Identify quick connect tabs by adding the prefix "Quick:"</value>
</data>
<data name="strSearchPrompt" xml:space="preserve">
<value>Search</value>
</data>
</root>

View File

@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd: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>
@@ -105,15 +105,15 @@
</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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -168,6 +168,9 @@
<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>
@@ -244,12 +247,18 @@
<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>
@@ -408,6 +417,27 @@
<data name="strComponentsCheck" xml:space="preserve">
<value>Проверка компонентов</value>
</data>
<data name="strConfigPropertyGridButtonIconClickFailed" xml:space="preserve">
<value>Ошибка btnIcon_Click!</value>
</data>
<data name="strConfigPropertyGridHideItemsFailed" xml:space="preserve">
<value>Ошибка ShowHideGridItems!</value>
</data>
<data name="strConfigPropertyGridMenuClickFailed" xml:space="preserve">
<value>Ошибка IconMenu_Click!</value>
</data>
<data name="strConfigPropertyGridObjectFailed" xml:space="preserve">
<value>Ошибка свойства Grid opject!</value>
</data>
<data name="strConfigPropertyGridSetHostStatusFailed" xml:space="preserve">
<value>Ошибка SetHostStatus!</value>
</data>
<data name="strConfigPropertyGridValueFailed" xml:space="preserve">
<value>Ошибка pGrid_PopertyValueChanged!</value>
</data>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Ошибка загрузки Config UI!</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Запрашивать подтверждение при закрытии вкладки подключения</value>
</data>
@@ -567,9 +597,18 @@
<data name="strEndPort" xml:space="preserve">
<value>Конечн. порт</value>
</data>
<data name="strErrorAddExternalToolsToToolBarFailed" xml:space="preserve">
<value>Ошибка добавления внешнего приложения на Панель (frmMain). {0}</value>
</data>
<data name="strErrorAddFolderFailed" xml:space="preserve">
<value>Ошибка AddFolder (UI.Window.Tree). {0}</value>
</data>
<data name="strErrorBadDatabaseVersion" xml:space="preserve">
<value>Версия базы данных {0} не совместима с этой версией {1}.</value>
</data>
<data name="strErrorCloneNodeFailed" xml:space="preserve">
<value>Ошибка CloneNode (Tree.Node). {0}</value>
</data>
<data name="strErrorCode" xml:space="preserve">
<value>Код ошибки {0}.</value>
</data>
@@ -592,6 +631,12 @@
<data name="strErrors" xml:space="preserve">
<value>Ошибки</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>Ошибка загрузки файла соединения.{0}{0}{2}{0}{3}{0}{0}Для предотвращения потери данных, {1} будет выполнен выход.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>Ошибка VerifyDatabaseVersion (Config.Connections.Save). {0}</value>
</data>
<data name="strExpandAllFolders" xml:space="preserve">
<value>Раскрыть все папки</value>
</data>
@@ -604,6 +649,9 @@
<data name="strExportmRemoteXML" xml:space="preserve">
<value>Экспорт mRemote / mRemoteNG XML</value>
</data>
<data name="strExtApp" xml:space="preserve">
<value>Внешнее Приложение</value>
</data>
<data name="strFAMFAMFAMAttribution" xml:space="preserve">
<value>Использованы значки [FAMFAMFAM]</value>
</data>
@@ -631,6 +679,9 @@
<data name="strFormatInheritDescription" xml:space="preserve">
<value>Описание наследованного свойства: {0}</value>
</data>
<data name="strFree" xml:space="preserve">
<value>Free</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>Во весь экран</value>
</data>
@@ -667,12 +718,27 @@
<data name="strHttpDocumentTileChangeFailed" xml:space="preserve">
<value>Изменение HTTP документа не удалось!</value>
</data>
<data name="strHttpSetPropsFailed" xml:space="preserve">
<value>Не удалось задать параметры HTTP!</value>
</data>
<data name="strIcaConnectionFailed" xml:space="preserve">
<value>Не удается создать новое подключение ICA!</value>
</data>
<data name="strIcaControlFailed" xml:space="preserve">
<value>Не удалось загрузить ICA-плагин!</value>
</data>
<data name="strIcaSetCredentialsFailed" xml:space="preserve">
<value>Ошибка установки учетных данных ICA!</value>
</data>
<data name="strIcaSetEventHandlersFailed" xml:space="preserve">
<value>Не удалось установить обработчик событий ICA!</value>
</data>
<data name="strIcaSetPropsFailed" xml:space="preserve">
<value>Не удалось задать параметры ICA!</value>
</data>
<data name="strIcaSetResolutionFailed" xml:space="preserve">
<value>Ошибка установки разрешений ICA!</value>
</data>
<data name="strImportAD" xml:space="preserve">
<value>Импорт из Active Directory</value>
</data>
@@ -700,9 +766,36 @@
<data name="strIntAppConnectionFailed" xml:space="preserve">
<value>Подключение не удалось!</value>
</data>
<data name="strIntAppDisposeFailed" xml:space="preserve">
<value>Не удалось завершить процесс внутреннего приложения!</value>
</data>
<data name="strIntAppFocusFailed" xml:space="preserve">
<value>Внутренний инструмент: Ошибка получения фокуса!</value>
</data>
<data name="strIntAppHandle" xml:space="preserve">
<value>Обработчик Внутр. инструментов: {0}</value>
</data>
<data name="strIntAppKillFailed" xml:space="preserve">
<value>Не удалось завершить процесс внутреннего приложения!</value>
</data>
<data name="strIntAppParentHandle" xml:space="preserve">
<value>Панель обработчика событий: {0}</value>
</data>
<data name="strIntAppResizeFailed" xml:space="preserve">
<value>Внутренний инструмент: Ошибка изменения размера!</value>
</data>
<data name="strIntAppStuff" xml:space="preserve">
<value>--- Внутреннее приложение ---</value>
</data>
<data name="strIntAppTitle" xml:space="preserve">
<value>Заголовок внешнего инструмента: {0}</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL+ALT+DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CTRL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Адрес:</value>
</data>
@@ -736,6 +829,9 @@
<data name="strLabelPort" xml:space="preserve">
<value>Порт:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Portable Edition</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Протокол:</value>
</data>
@@ -799,6 +895,9 @@
<data name="strLogWriteToFileFinalLocationFailed" xml:space="preserve">
<value>Невозможно сохранить отчет в папке назначения.</value>
</data>
<data name="strMagicLibraryAttribution" xml:space="preserve">
<value>Использовано Magic library от [Crownwood Software]</value>
</data>
<data name="strMenuAbout" xml:space="preserve">
<value>О программе</value>
</data>
@@ -829,6 +928,12 @@
<data name="strMenuCopy" xml:space="preserve">
<value>Копировать</value>
</data>
<data name="strMenuCtrlAltDel" xml:space="preserve">
<value>Ctrl-Alt-Del</value>
</data>
<data name="strMenuCtrlEsc" xml:space="preserve">
<value>Ctrl-Esc</value>
</data>
<data name="strMenuDelete" xml:space="preserve">
<value>Удалить...</value>
</data>
@@ -1012,6 +1117,9 @@
<data name="strNewPanel" xml:space="preserve">
<value>Новая панель</value>
</data>
<data name="strNewRoot" xml:space="preserve">
<value>Новый корень</value>
</data>
<data name="strNewTitle" xml:space="preserve">
<value>Новое название</value>
</data>
@@ -1021,6 +1129,9 @@
<data name="strNoCompression" xml:space="preserve">
<value>Без сжатия</value>
</data>
<data name="strNoExtAppDefined" xml:space="preserve">
<value>Не указано внешнее приложение.</value>
</data>
<data name="strNoInformation" xml:space="preserve">
<value>Нет</value>
</data>
@@ -1030,6 +1141,9 @@
<data name="strNormal" xml:space="preserve">
<value>Нормальный</value>
</data>
<data name="strNoSmartSize" xml:space="preserve">
<value>SmartSize недоступен</value>
</data>
<data name="strNoUpdateAvailable" xml:space="preserve">
<value>Нет доступных обновлений</value>
</data>
@@ -1253,6 +1367,12 @@
<data name="strPropertyNameExternalTool" xml:space="preserve">
<value>Внешний инструмент</value>
</data>
<data name="strPropertyNameExternalToolAfter" xml:space="preserve">
<value>Внеш. Инстр. После </value>
</data>
<data name="strPropertyNameExternalToolBefore" xml:space="preserve">
<value>Внеш. Инстр. До</value>
</data>
<data name="strPropertyNameIcon" xml:space="preserve">
<value>Значок</value>
</data>
@@ -1379,9 +1499,18 @@
<data name="strPuttyGetSessionsFailed" xml:space="preserve">
<value>Получить сессию Putty не удалось!</value>
</data>
<data name="strPuttyHandle" xml:space="preserve">
<value>Обработчик Putty: {0}</value>
</data>
<data name="strPuttyKillFailed" xml:space="preserve">
<value>Убить процесс Putty не удалось!</value>
</data>
<data name="strPuttyParentHandle" xml:space="preserve">
<value>Панель обработчиков: {0}</value>
</data>
<data name="strPuttyResizeFailed" xml:space="preserve">
<value>Ошибка изменения размера окна Putty!</value>
</data>
<data name="strPuttySettings" xml:space="preserve">
<value>Настройки PuTTY</value>
</data>
@@ -1391,6 +1520,12 @@
<data name="strPuttyStartFailed" xml:space="preserve">
<value>Не удалось запустить Putty!</value>
</data>
<data name="strPuttyStuff" xml:space="preserve">
<value>--- PuTTY ---</value>
</data>
<data name="strPuttyTitle" xml:space="preserve">
<value>Заголовок PuTTY: {0}</value>
</data>
<data name="strQuick" xml:space="preserve">
<value>Быстрое: {0}</value>
</data>
@@ -1406,6 +1541,12 @@
<data name="strQuickConnectHistoryExistsFailed" xml:space="preserve">
<value>Ошибка истории Быстрых подключений!</value>
</data>
<data name="strRAW" xml:space="preserve">
<value>RAW</value>
</data>
<data name="strRDP" xml:space="preserve">
<value>RDP</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 цв. (24-бит)</value>
</data>
@@ -1478,6 +1619,9 @@
<data name="strRdpErrorConnection" xml:space="preserve">
<value>Произошла неисправимая ошибка во время подключения клиента.</value>
</data>
<data name="strRdpErrorGetFailure" xml:space="preserve">
<value>Невозможно получить GetError (Критическая ошибка)</value>
</data>
<data name="strRdpErrorGetUnknown" xml:space="preserve">
<value>Произошла неизвестная критическая ошибка RDP. Код ошибки {0}.</value>
</data>
@@ -1499,21 +1643,63 @@
<data name="strRDPFitToPanel" xml:space="preserve">
<value>В окне</value>
</data>
<data name="strRdpFocusFailed" xml:space="preserve">
<value>RDP: Ошибка получения фокуса!</value>
</data>
<data name="strRdpGatewayIsSupported" xml:space="preserve">
<value>Шлюз Служб терминалов поддерживается.</value>
</data>
<data name="strRdpGatewayNotSupported" xml:space="preserve">
<value>Шлюз Служб терминалов не поддерживается!</value>
</data>
<data name="strRdpGetSessionsFailed" xml:space="preserve">
<value>Ошибка сессии!</value>
</data>
<data name="strRdpOpenConnectionFailed" xml:space="preserve">
<value>Открыть подключение RDP не удалось!</value>
</data>
<data name="strRdpReconnectCount" xml:space="preserve">
<value>К-ство переподключений RDP:</value>
</data>
<data name="strRdpSetAuthenticationLevelFailed" xml:space="preserve">
<value>RDP: Установить уровень проверки подлинности не удалась!</value>
</data>
<data name="strRdpSetConsoleSessionFailed" xml:space="preserve">
<value>RDP: Не удалось использование консольную сессию!</value>
</data>
<data name="strRdpSetConsoleSwitch" xml:space="preserve">
<value>Настройка переключения консолей для RDC {0}.</value>
</data>
<data name="strRdpSetCredentialsFailed" xml:space="preserve">
<value>Ошибка установки учетных данных RDP!</value>
</data>
<data name="strRdpSetEventHandlersFailed" xml:space="preserve">
<value>Ошибка RDP SetEventHandlers!</value>
</data>
<data name="strRdpSetGatewayFailed" xml:space="preserve">
<value>Ошибка установки шлюза RDP!</value>
</data>
<data name="strRdpSetPerformanceFlagsFailed" xml:space="preserve">
<value>Ошибка RDP SetPerformanceFlags!</value>
</data>
<data name="strRdpSetPortFailed" xml:space="preserve">
<value>Не удалось задать порт RDP!</value>
</data>
<data name="strRdpSetPropsFailed" xml:space="preserve">
<value>Не удалось задать параметры RDP!</value>
</data>
<data name="strRdpSetRedirectionFailed" xml:space="preserve">
<value>Установить перенаправление в RDP не удалось!</value>
</data>
<data name="strRdpSetRedirectKeysFailed" xml:space="preserve">
<value>Установить перенаправление клавиш в RDP не удалось!</value>
</data>
<data name="strRdpSetResolutionFailed" xml:space="preserve">
<value>Ошибка установки разрешения RDP!</value>
</data>
<data name="strRDPSmartSize" xml:space="preserve">
<value>Smart Size</value>
</data>
<data name="strRDPSoundBringToThisComputer" xml:space="preserve">
<value>Передать на этот компьютер</value>
</data>
@@ -1523,6 +1709,12 @@
<data name="strRDPSoundLeaveAtRemoteComputer" xml:space="preserve">
<value>Оставить на удаленном компьютере</value>
</data>
<data name="strRdpToggleFullscreenFailed" xml:space="preserve">
<value>Не удалось переключить RDP в режим Fullscreen!</value>
</data>
<data name="strRdpToggleSmartSizeFailed" xml:space="preserve">
<value>Не удалось переключить RDP в режим SmartSize!</value>
</data>
<data name="strReconnectAtStartup" xml:space="preserve">
<value>При запуске подключаться к предыдущим сессиям</value>
</data>
@@ -1538,6 +1730,9 @@
<data name="strRename" xml:space="preserve">
<value>Переименовать</value>
</data>
<data name="strRlogin" xml:space="preserve">
<value>Rlogin</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Сохранить</value>
</data>
@@ -1598,6 +1793,18 @@
<data name="strSingleClickOnOpenConnectionSwitchesToIt" xml:space="preserve">
<value>Один клик по открытому подключению переключается на него</value>
</data>
<data name="strSmartSizeModeAspect" xml:space="preserve">
<value>Вид</value>
</data>
<data name="strSmartSizeModeFree" xml:space="preserve">
<value>Free</value>
</data>
<data name="strSmartSizeModeNone" xml:space="preserve">
<value>SmartSize недоступен</value>
</data>
<data name="strSocks5" xml:space="preserve">
<value>Socks 5</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Сортировать</value>
</data>
@@ -1607,6 +1814,9 @@
<data name="strSortDesc" xml:space="preserve">
<value>По убыванию (Z-A)</value>
</data>
<data name="strSpecialKeys" xml:space="preserve">
<value>Специальные клавиши</value>
</data>
<data name="strSQLInfo" xml:space="preserve">
<value>Для дополнительной информации см. справку - Начало работы - конфигурация SQL!</value>
</data>
@@ -1616,6 +1826,12 @@
<data name="strSqlUpdateCheckUpdateAvailable" xml:space="preserve">
<value>Доступно обновление для SQL! Обновите подключения.</value>
</data>
<data name="strSsh1" xml:space="preserve">
<value>SSH version 1</value>
</data>
<data name="strSsh2" xml:space="preserve">
<value>SSH version 2</value>
</data>
<data name="strSSHStartTransferBG" xml:space="preserve">
<value>Фоновая передача по SSH - не удалась!</value>
</data>
@@ -1655,6 +1871,9 @@
<data name="strTabUpdates" xml:space="preserve">
<value>Обновления</value>
</data>
<data name="strTelnet" xml:space="preserve">
<value>Telnet</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>Установить вручную:</value>
</data>
@@ -1685,6 +1904,9 @@
<data name="strType" xml:space="preserve">
<value>Тип</value>
</data>
<data name="strUltraVncRepeater" xml:space="preserve">
<value>Ultra VNC Repeater</value>
</data>
<data name="strUltraVNCSCListeningPort" xml:space="preserve">
<value>Порт UltraVNC SingleClick:</value>
</data>
@@ -1703,6 +1925,9 @@
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>Не удалось проверить наличие обновлений!</value>
</data>
<data name="strUpdateCheckPortableEdition" xml:space="preserve">
<value>mRemoteNG Portable Edition не поддерживает автообновление.</value>
</data>
<data name="strUpdateDeleteFailed" xml:space="preserve">
<value>Ошибка при удалении файла обновления!</value>
</data>
@@ -1743,12 +1968,18 @@ mRemoteNG сейчас прекратит работу и начнет проц
<data name="strUseSameUsernameAndPassword" xml:space="preserve">
<value>Использовать те же имя пользователя и пароль</value>
</data>
<data name="strUseSmartCard" xml:space="preserve">
<value>Использовать смарт-карты</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>Использовать SQL Server для загрузки и сохранения подключений</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Версия</value>
</data>
<data name="strVnc" xml:space="preserve">
<value>VNC</value>
</data>
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
<value>Не удалось отключить VNC!</value>
</data>
@@ -1764,6 +1995,9 @@ mRemoteNG сейчас прекратит работу и начнет проц
<data name="strVncSetEventHandlersFailed" xml:space="preserve">
<value>Не удалось установить обработчик событий VNC!</value>
</data>
<data name="strVncSetPropsFailed" xml:space="preserve">
<value>Не удалось задать параметры VNC!</value>
</data>
<data name="strVncStartChatFailed" xml:space="preserve">
<value>Не удалось начать VNC-чат!</value>
</data>
@@ -1779,6 +2013,12 @@ mRemoteNG сейчас прекратит работу и начнет проц
<data name="strWarnings" xml:space="preserve">
<value>Предупреждения</value>
</data>
<data name="strWeifenLuoAttribution" xml:space="preserve">
<value>Использовано DockPanel Suite от [Weifen Luo]</value>
</data>
<data name="strWeifenLuoAttributionURL" xml:space="preserve">
<value>http://sourceforge.net/projects/dockpanelsuite/</value>
</data>
<data name="strWriteLogFile" xml:space="preserve">
<value>Запись в лог-файл (mRemoteNG.log)</value>
</data>

View File

@@ -59,7 +59,7 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd: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>
@@ -105,15 +105,15 @@
</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="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
@@ -168,6 +168,9 @@
<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>
@@ -414,6 +417,27 @@ VncSharpNG Control Version {0}</value>
<data name="strComponentsCheck" xml:space="preserve">
<value>Перевірка компонентів</value>
</data>
<data name="strConfigPropertyGridButtonIconClickFailed" xml:space="preserve">
<value>Помилка btnIcon_Click!</value>
</data>
<data name="strConfigPropertyGridHideItemsFailed" xml:space="preserve">
<value>Помилка ShowHideGridItems!</value>
</data>
<data name="strConfigPropertyGridMenuClickFailed" xml:space="preserve">
<value>Помилка IconMenu_Click!</value>
</data>
<data name="strConfigPropertyGridObjectFailed" xml:space="preserve">
<value>Помилка властивостей Grid object!</value>
</data>
<data name="strConfigPropertyGridSetHostStatusFailed" xml:space="preserve">
<value>Помилка отримання статусу Хоста!</value>
</data>
<data name="strConfigPropertyGridValueFailed" xml:space="preserve">
<value>Помилка pGrid_PopertyValueChanged!</value>
</data>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Помилка завантаження Config UI!</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Запитувати підтвердження при закритті вкладки з'єднання</value>
</data>
@@ -573,6 +597,12 @@ VncSharpNG Control Version {0}</value>
<data name="strEndPort" xml:space="preserve">
<value>Кінц. порт</value>
</data>
<data name="strErrorAddExternalToolsToToolBarFailed" xml:space="preserve">
<value>Помилка додавання на Панель зовнішнього інструменту (frmMain). {0}</value>
</data>
<data name="strErrorAddFolderFailed" xml:space="preserve">
<value>Помилка AddFolder (UI.Window.Tree). {0}</value>
</data>
<data name="strErrorBadDatabaseVersion" xml:space="preserve">
<value>Версія бази даних {0} не сумісна з цією версією {1}.</value>
</data>
@@ -601,6 +631,12 @@ VncSharpNG Control Version {0}</value>
<data name="strErrors" xml:space="preserve">
<value>Помилки</value>
</data>
<data name="strErrorStartupConnectionFileLoad" xml:space="preserve">
<value>Файл з'єднання не може бути завантажений. {0}{0}{2}{0}{3}{0}{0} Для того, щоб запобігти втраті даних, {1} буде здійснено вихід.</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed" xml:space="preserve">
<value>Помилка VerifyDatabaseVersion (Config.Connections.Save). {0}</value>
</data>
<data name="strExpandAllFolders" xml:space="preserve">
<value>Розкрити всі папки</value>
</data>
@@ -613,6 +649,9 @@ VncSharpNG Control Version {0}</value>
<data name="strExportmRemoteXML" xml:space="preserve">
<value>Експорт mRemote / mRemoteNG XML</value>
</data>
<data name="strExtApp" xml:space="preserve">
<value>Зовн. Інструмент</value>
</data>
<data name="strFAMFAMFAMAttribution" xml:space="preserve">
<value>Використано значки [FAMFAMFAM]</value>
</data>
@@ -640,6 +679,9 @@ VncSharpNG Control Version {0}</value>
<data name="strFormatInheritDescription" xml:space="preserve">
<value>Опис успадкованої властивості: {0}</value>
</data>
<data name="strFree" xml:space="preserve">
<value>Free</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>На весь екран</value>
</data>
@@ -676,12 +718,27 @@ VncSharpNG Control Version {0}</value>
<data name="strHttpDocumentTileChangeFailed" xml:space="preserve">
<value>Змінити HTTP документ не вдалося!</value>
</data>
<data name="strHttpSetPropsFailed" xml:space="preserve">
<value>Не вдалося задати параметри HTTP!</value>
</data>
<data name="strIcaConnectionFailed" xml:space="preserve">
<value>Не вдається створити нове з'єднання ICA!</value>
</data>
<data name="strIcaControlFailed" xml:space="preserve">
<value>Не вдалося завантажити ICA-плагін!</value>
</data>
<data name="strIcaSetCredentialsFailed" xml:space="preserve">
<value>Помилка встановлення облікових даних ICA!</value>
</data>
<data name="strIcaSetEventHandlersFailed" xml:space="preserve">
<value>Не вдалося встановити оброблювач подій ICA!</value>
</data>
<data name="strIcaSetPropsFailed" xml:space="preserve">
<value>Не вдалося задати параметри ICA!</value>
</data>
<data name="strIcaSetResolutionFailed" xml:space="preserve">
<value>Помилка встановлення дозволів ICA!</value>
</data>
<data name="strImportAD" xml:space="preserve">
<value>Імпорт з Active Directory</value>
</data>
@@ -709,9 +766,30 @@ VncSharpNG Control Version {0}</value>
<data name="strIntAppConnectionFailed" xml:space="preserve">
<value>З'єднання не вдалося!</value>
</data>
<data name="strIntAppFocusFailed" xml:space="preserve">
<value>Зовнішній інструмент: Помилка отримання фокусу!</value>
</data>
<data name="strIntAppHandle" xml:space="preserve">
<value>Оброблювач подій Зовн. інструментів: {0}</value>
</data>
<data name="strIntAppKillFailed" xml:space="preserve">
<value>Не вдалося завершити процес зовнішнього інструменту!</value>
</data>
<data name="strIntAppParentHandle" xml:space="preserve">
<value>Панель Оброблювача: {0}</value>
</data>
<data name="strIntAppResizeFailed" xml:space="preserve">
<value>Зовнішній інструмент: Помилка зміни розміру!</value>
</data>
<data name="strIntAppTitle" xml:space="preserve">
<value>Заголовок зовнішнього інструменту: {0}</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL + ALT + DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CTRL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Адреса:</value>
</data>
@@ -745,6 +823,9 @@ VncSharpNG Control Version {0}</value>
<data name="strLabelPort" xml:space="preserve">
<value>Порт:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Портативна версія</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Протокол:</value>
</data>
@@ -808,6 +889,9 @@ VncSharpNG Control Version {0}</value>
<data name="strLogWriteToFileFinalLocationFailed" xml:space="preserve">
<value>Неможливо зберегти звіт в папці призначення.</value>
</data>
<data name="strMagicLibraryAttribution" xml:space="preserve">
<value>Використано Magic library від [Crownwood Software]</value>
</data>
<data name="strMenuAbout" xml:space="preserve">
<value>Про програму</value>
</data>
@@ -838,6 +922,12 @@ VncSharpNG Control Version {0}</value>
<data name="strMenuCopy" xml:space="preserve">
<value>Копіювати</value>
</data>
<data name="strMenuCtrlAltDel" xml:space="preserve">
<value>Ctrl-Alt-Del</value>
</data>
<data name="strMenuCtrlEsc" xml:space="preserve">
<value>Ctrl-Esc</value>
</data>
<data name="strMenuDelete" xml:space="preserve">
<value>Видалити...</value>
</data>
@@ -1021,6 +1111,9 @@ VncSharpNG Control Version {0}</value>
<data name="strNewPanel" xml:space="preserve">
<value>Нова панель</value>
</data>
<data name="strNewRoot" xml:space="preserve">
<value>новий кореневої</value>
</data>
<data name="strNewTitle" xml:space="preserve">
<value>Нова назва</value>
</data>
@@ -1030,6 +1123,9 @@ VncSharpNG Control Version {0}</value>
<data name="strNoCompression" xml:space="preserve">
<value>Без стискання</value>
</data>
<data name="strNoExtAppDefined" xml:space="preserve">
<value>Не вказано зовнішній інструмент</value>
</data>
<data name="strNoInformation" xml:space="preserve">
<value>Ні</value>
</data>
@@ -1262,6 +1358,12 @@ VncSharpNG Control Version {0}</value>
<data name="strPropertyNameExternalTool" xml:space="preserve">
<value>Зовнішній інструмент</value>
</data>
<data name="strPropertyNameExternalToolAfter" xml:space="preserve">
<value>Зовн. Інстр. Після</value>
</data>
<data name="strPropertyNameExternalToolBefore" xml:space="preserve">
<value>Зовн. Інстр. До</value>
</data>
<data name="strPropertyNameIcon" xml:space="preserve">
<value>Значок</value>
</data>
@@ -1388,9 +1490,18 @@ VncSharpNG Control Version {0}</value>
<data name="strPuttyGetSessionsFailed" xml:space="preserve">
<value>Отримати сесію Putty не вдалося!</value>
</data>
<data name="strPuttyHandle" xml:space="preserve">
<value>Оброблювач подій Putty: {0}</value>
</data>
<data name="strPuttyKillFailed" xml:space="preserve">
<value>Вбити процес Putty не вдалося!</value>
</data>
<data name="strPuttyParentHandle" xml:space="preserve">
<value>Панель оброблювача подій: {0}</value>
</data>
<data name="strPuttyResizeFailed" xml:space="preserve">
<value>Помилка зміни розміру вікна Putty!</value>
</data>
<data name="strPuttySettings" xml:space="preserve">
<value>Налаштування PuTTY</value>
</data>
@@ -1400,6 +1511,9 @@ VncSharpNG Control Version {0}</value>
<data name="strPuttyStartFailed" xml:space="preserve">
<value>Не вдалося запустити Putty!</value>
</data>
<data name="strPuttyTitle" xml:space="preserve">
<value>Заголовок PuTTY: {0}</value>
</data>
<data name="strQuick" xml:space="preserve">
<value>Швидке: {0}</value>
</data>
@@ -1415,6 +1529,12 @@ VncSharpNG Control Version {0}</value>
<data name="strQuickConnectHistoryExistsFailed" xml:space="preserve">
<value>Помилка історії Швидких з'єднань!</value>
</data>
<data name="strRAW" xml:space="preserve">
<value>RAW</value>
</data>
<data name="strRDP" xml:space="preserve">
<value>RDP</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 кол. (24-біт)</value>
</data>
@@ -1508,21 +1628,63 @@ VncSharpNG Control Version {0}</value>
<data name="strRDPFitToPanel" xml:space="preserve">
<value>У вікні</value>
</data>
<data name="strRdpFocusFailed" xml:space="preserve">
<value>RDP: помилка отримання фокусу!</value>
</data>
<data name="strRdpGatewayIsSupported" xml:space="preserve">
<value>Шлюз Служб терміналів підтримується.</value>
</data>
<data name="strRdpGatewayNotSupported" xml:space="preserve">
<value>Шлюз Служб терміналів не підтримується!</value>
</data>
<data name="strRdpGetSessionsFailed" xml:space="preserve">
<value>Помилка сесії!</value>
</data>
<data name="strRdpOpenConnectionFailed" xml:space="preserve">
<value>Відкрити з'єднання RDP не вдалося!</value>
</data>
<data name="strRdpReconnectCount" xml:space="preserve">
<value>К-сть перепідключень RDP:</value>
</data>
<data name="strRdpSetAuthenticationLevelFailed" xml:space="preserve">
<value>RDP: не вдалося встановити рівень перевірки автентичності!</value>
</data>
<data name="strRdpSetConsoleSessionFailed" xml:space="preserve">
<value>RDP: Не вдалося використати консольну сесію!</value>
</data>
<data name="strRdpSetConsoleSwitch" xml:space="preserve">
<value>Налаштування перемикання консолей для RDC {0}.</value>
</data>
<data name="strRdpSetCredentialsFailed" xml:space="preserve">
<value>Помилка встановлення облікових даних RDP!</value>
</data>
<data name="strRdpSetEventHandlersFailed" xml:space="preserve">
<value>Не вдалося встановити оброблювач подій RDP!</value>
</data>
<data name="strRdpSetGatewayFailed" xml:space="preserve">
<value>Помилка встановлення шлюзу RDP!</value>
</data>
<data name="strRdpSetPerformanceFlagsFailed" xml:space="preserve">
<value>Помилка RDP SetPerformanceFlags!</value>
</data>
<data name="strRdpSetPortFailed" xml:space="preserve">
<value>Не вдалося встановити порт RDP!</value>
</data>
<data name="strRdpSetPropsFailed" xml:space="preserve">
<value>Не вдалося встановити параметри RDP!</value>
</data>
<data name="strRdpSetRedirectionFailed" xml:space="preserve">
<value>Не вдалося встановити перенаправлення в RDP!</value>
</data>
<data name="strRdpSetRedirectKeysFailed" xml:space="preserve">
<value>Не вдалося встановити перенаправлення клавіш в RDP!</value>
</data>
<data name="strRdpSetResolutionFailed" xml:space="preserve">
<value>Помилка встановлення дозволів RDP!</value>
</data>
<data name="strRDPSmartSize" xml:space="preserve">
<value>розумний розмір</value>
</data>
<data name="strRDPSoundBringToThisComputer" xml:space="preserve">
<value>Передати на цей комп'ютер</value>
</data>
@@ -1532,6 +1694,12 @@ VncSharpNG Control Version {0}</value>
<data name="strRDPSoundLeaveAtRemoteComputer" xml:space="preserve">
<value>Залишити на віддаленому комп'ютері</value>
</data>
<data name="strRdpToggleFullscreenFailed" xml:space="preserve">
<value>Не вдалося переключити RDP в режим Fullscreen!</value>
</data>
<data name="strRdpToggleSmartSizeFailed" xml:space="preserve">
<value>Не вдалося переключити RDP в режим SmartSize!</value>
</data>
<data name="strReconnectAtStartup" xml:space="preserve">
<value>При запуску підключатися до попередніх сесій</value>
</data>
@@ -1547,6 +1715,9 @@ VncSharpNG Control Version {0}</value>
<data name="strRename" xml:space="preserve">
<value>Перейменувати</value>
</data>
<data name="strRlogin" xml:space="preserve">
<value>Rlogin</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Зберегти</value>
</data>
@@ -1607,6 +1778,15 @@ VncSharpNG Control Version {0}</value>
<data name="strSingleClickOnOpenConnectionSwitchesToIt" xml:space="preserve">
<value>Один клік по відкритому з'єднанню переключається на нього</value>
</data>
<data name="strSmartSizeModeAspect" xml:space="preserve">
<value>Вигляд</value>
</data>
<data name="strSmartSizeModeFree" xml:space="preserve">
<value>Free</value>
</data>
<data name="strSocks5" xml:space="preserve">
<value>Socks 5</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Сортувати</value>
</data>
@@ -1616,6 +1796,9 @@ VncSharpNG Control Version {0}</value>
<data name="strSortDesc" xml:space="preserve">
<value>За спаданням (Z-A)</value>
</data>
<data name="strSpecialKeys" xml:space="preserve">
<value>Спеціальні клавіші</value>
</data>
<data name="strSQLInfo" xml:space="preserve">
<value>Для додаткової інформації див. довідку - Початок роботи - конфігурація SQL!</value>
</data>
@@ -1625,6 +1808,12 @@ VncSharpNG Control Version {0}</value>
<data name="strSqlUpdateCheckUpdateAvailable" xml:space="preserve">
<value>Доступно оновлення для SQL! Оновлення з'єднання.</value>
</data>
<data name="strSsh1" xml:space="preserve">
<value>SSH version 1</value>
</data>
<data name="strSsh2" xml:space="preserve">
<value>SSH version 2</value>
</data>
<data name="strSSHStartTransferBG" xml:space="preserve">
<value>Фонова передача по SSH - не вдалося!</value>
</data>
@@ -1664,6 +1853,9 @@ VncSharpNG Control Version {0}</value>
<data name="strTabUpdates" xml:space="preserve">
<value>Оновлення</value>
</data>
<data name="strTelnet" xml:space="preserve">
<value>Telnet</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>Встановити вручну:</value>
</data>
@@ -1694,6 +1886,9 @@ VncSharpNG Control Version {0}</value>
<data name="strType" xml:space="preserve">
<value>Тип</value>
</data>
<data name="strUltraVncRepeater" xml:space="preserve">
<value>Ultra VNC Repeater</value>
</data>
<data name="strUltraVNCSCListeningPort" xml:space="preserve">
<value>Порт UltraVNC SingleClick:</value>
</data>
@@ -1712,6 +1907,9 @@ VncSharpNG Control Version {0}</value>
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>Не вдалося перевірити наявність оновлень!</value>
</data>
<data name="strUpdateCheckPortableEdition" xml:space="preserve">
<value>Портативна версія mRemoteNG не підтримує автоматичне оновлення.</value>
</data>
<data name="strUpdateDeleteFailed" xml:space="preserve">
<value>Помилка при видаленні файлу оновлення!</value>
</data>
@@ -1752,12 +1950,18 @@ mRemoteNG зараз припинить роботу і почне процес
<data name="strUseSameUsernameAndPassword" xml:space="preserve">
<value>Використовувати ті ж ім'я користувача і пароль</value>
</data>
<data name="strUseSmartCard" xml:space="preserve">
<value>Використовувати смарт-карти</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>Використовувати SQL Server для завантаження і збереження з'єднань</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Версія</value>
</data>
<data name="strVnc" xml:space="preserve">
<value>VNC</value>
</data>
<data name="strVncConnectionDisconnectFailed" xml:space="preserve">
<value>Не вдалося вимкнути VNC!</value>
</data>
@@ -1773,6 +1977,9 @@ mRemoteNG зараз припинить роботу і почне процес
<data name="strVncSetEventHandlersFailed" xml:space="preserve">
<value>Не вдалося встановити оброблювач подій VNC!</value>
</data>
<data name="strVncSetPropsFailed" xml:space="preserve">
<value>Не вдалося задати параметри VNC!</value>
</data>
<data name="strVncStartChatFailed" xml:space="preserve">
<value>Не вдалося почати VNC-чат!</value>
</data>
@@ -1788,6 +1995,12 @@ mRemoteNG зараз припинить роботу і почне процес
<data name="strWarnings" xml:space="preserve">
<value>Попередження</value>
</data>
<data name="strWeifenLuoAttribution" xml:space="preserve">
<value>Використано DockPanel Suite від [Weifen Luo]</value>
</data>
<data name="strWeifenLuoAttributionURL" xml:space="preserve">
<value>http://sourceforge.net/projects/dockpanelsuite/</value>
</data>
<data name="strWriteLogFile" xml:space="preserve">
<value>Запис в лог-файл (mRemoteNG.log)</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("mRemoteNG")>
<Assembly: AssemblyCopyright("Copyright © 2007-2009 Felix Deimel, 2010-2012 Riley McArdle")>
<Assembly: AssemblyCopyright("Copyright © 2007-2009 Felix Deimel, 2010-2013 Riley McArdle")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
@@ -32,6 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.70.*")>
<Assembly: AssemblyVersion("1.71.*")>
<Assembly: NeutralResourcesLanguageAttribute("en")>

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.261
' Runtime Version:4.0.30319.296
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -1743,7 +1743,7 @@ Namespace My
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property StartupComponentsCheck() As Boolean
Get
Return CType(Me("StartupComponentsCheck"),Boolean)
@@ -2093,7 +2093,7 @@ Namespace My
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("de,en,en-US,es,fr,nl,pl,ru,uk")> _
Global.System.Configuration.DefaultSettingValueAttribute("de,en,en-US,es-AR,es,fr,it,nl,pt,pl,ru,uk,zh-CN")> _
Public ReadOnly Property SupportedUICultures() As String
Get
Return CType(Me("SupportedUICultures"),String)
@@ -2282,19 +2282,6 @@ Namespace My
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
Public Property ConDefaultUseCredSsp() As Boolean
Get
Return CType(Me("ConDefaultUseCredSsp"), Boolean)
End Get
Set(value As Boolean)
Me("ConDefaultUseCredSsp") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
@@ -2307,6 +2294,57 @@ Namespace My
Me("InhDefaultUseCredSsp") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
Public Property ConDefaultUseCredSsp() As Boolean
Get
Return CType(Me("ConDefaultUseCredSsp"),Boolean)
End Get
Set
Me("ConDefaultUseCredSsp") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property AlwaysShowPanelTabs() As Boolean
Get
Return CType(Me("AlwaysShowPanelTabs"),Boolean)
End Get
Set
Me("AlwaysShowPanelTabs") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property IdentifyQuickConnectTabs() As Boolean
Get
Return CType(Me("IdentifyQuickConnectTabs"),Boolean)
End Get
Set
Me("IdentifyQuickConnectTabs") = value
End Set
End Property
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("release")> _
Public ReadOnly Property UpdateChannel() As String
Get
Return CType(Me("UpdateChannel"),String)
End Get
End Property
End Class
End Namespace

View File

@@ -393,7 +393,7 @@
<Value Profile="(Default)">5500</Value>
</Setting>
<Setting Name="StartupComponentsCheck" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="XULRunnerPath" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
@@ -474,7 +474,7 @@
<Value Profile="(Default)" />
</Setting>
<Setting Name="SupportedUICultures" Type="System.String" Scope="Application">
<Value Profile="(Default)">de,en,en-US,es,fr,nl,pl,ru,uk</Value>
<Value Profile="(Default)">de,en,en-US,es-AR,es,fr,it,nl,pt,pl,ru,uk,zh-CN</Value>
</Setting>
<Setting Name="ConDefaultRDGatewayHostname" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
@@ -518,11 +518,20 @@
<Setting Name="BackupFileNameFormat" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">{0}.{1:yyyyMMdd-HHmmssffff}.backup</Value>
</Setting>
<Setting Name="ConDefaultUseCredSsp" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="Application">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="InhDefaultUseCredSsp" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseCredSsp" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AlwaysShowPanelTabs" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="IdentifyQuickConnectTabs" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateChannel" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="Application">
<Value Profile="(Default)">release</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -43,41 +43,46 @@ Namespace Security
Return StrToEncrypt
End Function
Public Shared Function Decrypt(ByVal StrToDecrypt As String, ByVal StrSecret As String) As String
If StrToDecrypt = "" Or StrSecret = "" Then
Return StrToDecrypt
Public Shared Function Decrypt(ByVal ciphertextBase64 As String, ByVal password As String) As String
If String.IsNullOrEmpty(ciphertextBase64) Or String.IsNullOrEmpty(password) Then
Return ciphertextBase64
End If
Try
Dim rd As New RijndaelManaged
Dim rijndaelIvLength As Integer = 16
Dim md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(StrSecret))
Dim plaintext As String
md5.Clear()
Using rijndaelManaged As New RijndaelManaged
Using md5 As New MD5CryptoServiceProvider
Dim key() As Byte = md5.ComputeHash(Encoding.UTF8.GetBytes(password))
rijndaelManaged.Key = key
End Using
Dim encdata() As Byte = Convert.FromBase64String(StrToDecrypt)
Dim ms As New MemoryStream(encdata)
Dim iv(15) As Byte
Dim ciphertext() As Byte = Convert.FromBase64String(ciphertextBase64)
ms.Read(iv, 0, rijndaelIvLength)
rd.IV = iv
rd.Key = key
Using memoryStream As New MemoryStream(ciphertext)
Const ivLength As Integer = 16
Dim iv(ivLength - 1) As Byte
memoryStream.Read(iv, 0, ivLength)
rijndaelManaged.IV = iv
Dim cs As New CryptoStream(ms, rd.CreateDecryptor, CryptoStreamMode.Read)
Using cryptoStream As New CryptoStream(memoryStream, rijndaelManaged.CreateDecryptor, CryptoStreamMode.Read)
Using streamReader As New StreamReader(cryptoStream, System.Text.Encoding.UTF8, True)
plaintext = streamReader.ReadToEnd()
End Using
rijndaelManaged.Clear()
End Using ' cryptoStream
End Using ' memoryStream
End Using ' rijndaelManaged
Dim data(ms.Length - rijndaelIvLength) As Byte
Dim i As Integer = cs.Read(data, 0, data.Length)
cs.Close()
rd.Clear()
Return System.Text.Encoding.UTF8.GetString(data, 0, i)
Return plaintext
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strErrorDecryptionFailed, ex.Message))
' Ignore CryptographicException "Padding is invalid and cannot be removed." when password is incorrect.
If Not TypeOf ex Is CryptographicException Then
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strErrorDecryptionFailed, ex.Message))
End If
End Try
Return StrToDecrypt
Return ciphertextBase64
End Function
End Class
End Namespace

View File

@@ -10,7 +10,7 @@ Namespace Security
Public Class Impersonator
#Region "Logon API"
Private Const LOGON32_PROVIDER_DEFAULT As Integer = 0
Private Const LOGON32_LOGON_INTERACTIVE As Integer = 2 ' This parameter causes LogonUser to create a primary token.
Private Const LOGON32_LOGON_NEW_CREDENTIALS As Integer = 9
Private Const SecurityImpersonation As Integer = 2
@@ -37,7 +37,6 @@ Namespace Security
#End Region
Private tokenHandle As New IntPtr(0)
Private dupeTokenHandle As New IntPtr(0)
Private impersonatedUser As WindowsImpersonationContext = Nothing
' GetErrorMessage formats and returns an error message corresponding to the input errorCode.
@@ -59,9 +58,8 @@ Namespace Security
If Not (impersonatedUser Is Nothing) Then Throw New Exception("Already impersonating a user.")
tokenHandle = IntPtr.Zero
dupeTokenHandle = IntPtr.Zero
Dim returnValue As Integer = LogonUser(UserName, DomainName, Password, LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, tokenHandle)
Dim returnValue As Integer = LogonUser(UserName, DomainName, Password, LOGON32_LOGON_NEW_CREDENTIALS, LOGON32_PROVIDER_DEFAULT, tokenHandle)
If 0 = returnValue Then
Dim errCode As Integer = Marshal.GetLastWin32Error()
@@ -70,17 +68,8 @@ Namespace Security
Throw exLogon
End If
returnValue = DuplicateToken(tokenHandle, SecurityImpersonation, dupeTokenHandle)
If 0 = returnValue Then
CloseHandle(tokenHandle)
Throw New ApplicationException("Error trying to duplicate handle.")
End If
' The token that is passed to the following constructor must
' be a primary token in order to use it for impersonation.
Dim newId As New WindowsIdentity(dupeTokenHandle)
Dim newId As New WindowsIdentity(tokenHandle)
impersonatedUser = newId.Impersonate()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Starting Impersonation failed (Sessions feature will not work)" & vbNewLine & ex.Message, True)
End Try
@@ -98,7 +87,6 @@ Namespace Security
Finally
If Not System.IntPtr.op_Equality(tokenHandle, IntPtr.Zero) Then CloseHandle(tokenHandle)
If Not System.IntPtr.op_Equality(dupeTokenHandle, IntPtr.Zero) Then CloseHandle(dupeTokenHandle)
impersonatedUser = Nothing
End Try

View File

@@ -0,0 +1,94 @@
Imports System.Text.RegularExpressions
Namespace Tools
' Adapted from http://qntm.org/cmd
Public Class CommandLineArguments
#Region "Protected Fields"
Protected Arguments As New List(Of Argument)
#End Region
#Region "Public Properties"
Public Property EscapeForShell As Boolean
#End Region
#Region "Public Methods"
Public Sub Add(ByVal argument As String, Optional ByVal forceQuotes As Boolean = False)
Arguments.Add(New Argument(argument, False, forceQuotes))
End Sub
Public Sub Add(ByVal ParamArray argumentArray As String())
For Each argument As String In argumentArray
Add(argument)
Next
End Sub
Public Sub AddFileName(ByVal fileName As String, Optional ByVal forceQuotes As Boolean = False)
Arguments.Add(New Argument(fileName, True, forceQuotes))
End Sub
Public Overrides Function ToString() As String
Dim processedArguments As New List(Of String)
For Each argument As Argument In Arguments
processedArguments.Add(ProcessArgument(argument, EscapeForShell))
Next
Return String.Join(" ", processedArguments.ToArray())
End Function
Public Shared Function PrefixFileName(ByVal argument As String) As String
If argument.StartsWith("-") Then argument = ".\" & argument
Return argument
End Function
Public Shared Function EscapeBackslashes(ByVal argument As String) As String
' Sequence of backslashes followed by a double quote:
' double up all the backslashes and escape the double quote
Return Regex.Replace(argument, "(\\*)""", "$1$1\""")
End Function
Public Shared Function QuoteArgument(ByVal argument As String, Optional ByVal forceQuotes As Boolean = False) As String
If Not forceQuotes And Not String.IsNullOrEmpty(argument) And Not argument.Contains(" ") Then Return argument
' Sequence of backslashes followed by the end of the string
' (which will become a double quote):
' double up all the backslashes
argument = Regex.Replace(argument, "(\\*)$", "$1$1")
Return """" & argument & """"
End Function
Public Shared Function EscapeShellMetacharacters(ByVal argument As String) As String
Return Regex.Replace(argument, "([()%!^""<>&|])", "^$1")
End Function
#End Region
#Region "Protected Methods"
Protected Shared Function ProcessArgument(ByVal argument As Argument, Optional ByVal escapeForShell As Boolean = False) As String
Dim text As String = argument.Text
If argument.IsFileName Then text = PrefixFileName(text)
text = EscapeBackslashes(text)
text = QuoteArgument(text, argument.ForceQuotes)
If escapeForShell Then text = EscapeShellMetacharacters(text)
Return text
End Function
#End Region
#Region "Protected Classes"
Protected Class Argument
Public Sub New(ByVal text As String, Optional ByVal isFileName As Boolean = False, Optional ByVal forceQuotes As Boolean = False)
Me.Text = text
Me.IsFileName = isFileName
Me.ForceQuotes = forceQuotes
End Sub
Public Property Text As String
Public Property IsFileName As Boolean
Public Property ForceQuotes As Boolean
End Class
#End Region
End Class
End Namespace

View File

@@ -179,15 +179,27 @@ Namespace Tools
End Class
Public Shared Function ConnectionsSaveAsDialog() As SaveFileDialog
Dim sDlg As New SaveFileDialog()
sDlg.CheckPathExists = True
sDlg.InitialDirectory = App.Info.Connections.DefaultConnectionsPath
sDlg.FileName = App.Info.Connections.DefaultConnectionsFile
sDlg.OverwritePrompt = True
Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.CheckPathExists = True
saveFileDialog.InitialDirectory = App.Info.Connections.DefaultConnectionsPath
saveFileDialog.FileName = App.Info.Connections.DefaultConnectionsFile
saveFileDialog.OverwritePrompt = True
sDlg.Filter = My.Language.strFiltermRemoteXML & "|*.xml|" & My.Language.strFiltermRemoteCSV & "|*.csv|" & My.Language.strFiltervRD2008CSV & "|*.csv|" & My.Language.strFilterAll & "|*.*"
saveFileDialog.Filter = My.Language.strFiltermRemoteXML & "|*.xml|" & My.Language.strFilterAll & "|*.*"
Return sDlg
Return saveFileDialog
End Function
Public Shared Function ConnectionsExportDialog() As SaveFileDialog
Dim saveFileDialog As New SaveFileDialog()
saveFileDialog.CheckPathExists = True
saveFileDialog.InitialDirectory = App.Info.Connections.DefaultConnectionsPath
saveFileDialog.FileName = App.Info.Connections.DefaultConnectionsFile
saveFileDialog.OverwritePrompt = True
saveFileDialog.Filter = My.Language.strFiltermRemoteXML & "|*.xml|" & My.Language.strFiltermRemoteCSV & "|*.csv|" & My.Language.strFiltervRD2008CSV & "|*.csv|" & My.Language.strFilterAll & "|*.*"
Return saveFileDialog
End Function
Public Shared Function ConnectionsLoadDialog() As OpenFileDialog
@@ -211,39 +223,26 @@ Namespace Tools
Public Class TreeNodeSorter
Implements IComparer
Private _nodeToSort As TreeNode
Private _sortType As SortType
Public Property Sorting As System.Windows.Forms.SortOrder
Public Sub New(ByVal node As TreeNode, ByVal sortType As SortType)
Public Sub New(Optional ByVal sortOrder As SortOrder = SortOrder.None)
MyBase.New()
Me._nodeToSort = node
Me._sortType = sortType
Sorting = sortOrder
End Sub
Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer Implements IComparer.Compare
Dim tx As TreeNode = CType(x, TreeNode)
Dim ty As TreeNode = CType(y, TreeNode)
If ((tx.Parent Is Me._nodeToSort) AndAlso (ty.Parent Is Me._nodeToSort)) Then
' Ascending
If (Me._sortType = SortType.Ascending) Then
Select Case Sorting
Case SortOrder.Ascending
Return String.Compare(tx.Text, ty.Text)
End If
' Descending
If (Me._sortType = SortType.Descending) Then
Case SortOrder.Descending
Return String.Compare(ty.Text, tx.Text)
End If
End If
Return 0
Case Else
Return 0
End Select
End Function
Public Enum SortType
Ascending = 0
Descending = 1
End Enum
End Class
End Class
End Namespace

View File

@@ -117,21 +117,21 @@ Namespace Tools
_ConnectionInfo = ConnectionInfo
Dim p As New Process()
Dim pI As New ProcessStartInfo()
Dim process As New Process()
With process.StartInfo
.UseShellExecute = False
.FileName = ParseText(_FileName)
pI.FileName = ParseText(_FileName)
pI.Arguments = ParseText(_Arguments)
.Arguments = CommandLineArguments.EscapeBackslashes(_Arguments)
End With
p.StartInfo = pI
p.Start()
process.Start()
If _WaitForExit Then
p.WaitForExit()
process.WaitForExit()
End If
Return p
Return process
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't start external application." & vbNewLine & ex.Message)
Return Nothing

View File

@@ -92,7 +92,7 @@ Namespace Tools
Get
If Not Me.Localized Then
Me.Localized = True
Me.DisplayNameValue = String.Format(My.Language.strFormatInherit, My.Resources.ResourceManager.GetString(Me.DisplayNameValue))
Me.DisplayNameValue = String.Format(My.Language.strFormatInherit, My.Language.ResourceManager.GetString(Me.DisplayNameValue))
End If
Return MyBase.DisplayName
@@ -116,7 +116,7 @@ Namespace Tools
Get
If Not Me.Localized Then
Me.Localized = True
Me.DescriptionValue = String.Format(My.Language.strFormatInheritDescription, My.Resources.ResourceManager.GetString(Me.DescriptionValue))
Me.DescriptionValue = String.Format(My.Language.strFormatInheritDescription, My.Language.ResourceManager.GetString(Me.DescriptionValue))
End If
Return MyBase.Description

View File

@@ -306,7 +306,7 @@ Namespace Tree
newInheritance.Parent = newConnectionInfo
newConnectionInfo.Inherit = newInheritance
connectionList.Add(newConnectionInfo)
ConnectionList.Add(newConnectionInfo)
Dim newTreeNode As New TreeNode(newConnectionInfo.Name)
newTreeNode.Tag = newConnectionInfo
@@ -316,9 +316,13 @@ Namespace Tree
newConnectionInfo.TreeNode = newTreeNode
If parentNode Is Nothing Then
oldTreeNode.Parent.Nodes.Add(newTreeNode)
Tree.Node.TreeView.SelectedNode = newTreeNode
oldTreeNode.Parent.Nodes.Insert(oldTreeNode.Index + 1, newTreeNode)
TreeView.SelectedNode = newTreeNode
Else
Dim parentContainerInfo As Container.Info = TryCast(parentNode.Tag, Container.Info)
If parentContainerInfo IsNot Nothing Then
newConnectionInfo.Parent = parentContainerInfo
End If
parentNode.Nodes.Add(newTreeNode)
End If
ElseIf GetNodeType(oldTreeNode) = Type.Container Then
@@ -332,15 +336,20 @@ Namespace Tree
newTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Container
newContainerInfo.ConnectionInfo.Parent = newContainerInfo
containerList.Add(newContainerInfo)
ContainerList.Add(newContainerInfo)
oldTreeNode.Parent.Nodes.Add(newTreeNode)
Tree.Node.TreeView.SelectedNode = newTreeNode
If parentNode Is Nothing Then
oldTreeNode.Parent.Nodes.Insert(oldTreeNode.Index + 1, newTreeNode)
TreeView.SelectedNode = newTreeNode
Else
parentNode.Nodes.Add(newTreeNode)
End If
For Each childTreeNode As TreeNode In oldTreeNode.Nodes
CloneNode(childTreeNode, newTreeNode)
Next
newTreeNode.Expand()
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, String.Format(My.Language.strErrorCloneNodeFailed, ex.Message))
@@ -420,18 +429,20 @@ Namespace Tree
End Sub
Public Shared Sub StartRenameSelectedNode()
If SelectedNode IsNot Nothing Then
Windows.treeForm.cMenTreeDelete.ShortcutKeys = Keys.None
SelectedNode.BeginEdit()
End If
If SelectedNode IsNot Nothing Then SelectedNode.BeginEdit()
End Sub
Public Shared Sub FinishRenameSelectedNode(ByVal NewName As String)
Windows.treeForm.cMenTreeDelete.ShortcutKeys = Keys.Delete
Public Shared Sub FinishRenameSelectedNode(ByVal newName As String)
If newName Is Nothing Then Return
If NewName IsNot Nothing Then
If NewName.Length > 0 Then
SelectedNode.Tag.Name = NewName
If newName.Length > 0 Then
SelectedNode.Tag.Name = newName
If My.Settings.SetHostnameLikeDisplayName Then
Dim connectionInfo As Connection.Info = TryCast(SelectedNode.Tag, Connection.Info)
If (connectionInfo IsNot Nothing) Then
connectionInfo.Hostname = newName
End If
End If
End If
End Sub
@@ -490,27 +501,52 @@ Namespace Tree
TreeView.EndUpdate()
End Sub
Public Shared Sub Sort(ByVal treeNode As TreeNode, ByVal sortType As Tools.Controls.TreeNodeSorter.SortType)
Try
TreeView.BeginUpdate()
If treeNode Is Nothing Then
Public Shared Sub Sort(ByVal treeNode As TreeNode, ByVal sorting As System.Windows.Forms.SortOrder)
If TreeView Is Nothing Then Return
TreeView.BeginUpdate()
If treeNode Is Nothing Then
If TreeView.Nodes.Count > 0 Then
treeNode = TreeView.Nodes.Item(0)
ElseIf Tree.Node.GetNodeType(treeNode) = Type.Connection Then
treeNode = treeNode.Parent
Else
Return
End If
ElseIf GetNodeType(treeNode) = Type.Connection Then
treeNode = treeNode.Parent
If treeNode Is Nothing Then Return
End If
Dim ns As New Tools.Controls.TreeNodeSorter(treeNode, sortType)
Sort(treeNode, New Tools.Controls.TreeNodeSorter(sorting))
TreeView.TreeViewNodeSorter = ns
TreeView.Sort()
TreeView.EndUpdate()
End Sub
For Each childNode As TreeNode In treeNode.Nodes
If GetNodeType(childNode) = Type.Container Then Sort(childNode, sortType)
' Adapted from http://www.codeproject.com/Tips/252234/ASP-NET-TreeView-Sort
Private Shared Sub Sort(ByVal treeNode As TreeNode, ByVal nodeSorter As Tools.Controls.TreeNodeSorter)
For Each childNode As TreeNode In treeNode.Nodes
Sort(childNode, nodeSorter)
Next
Try
Dim sortedNodes As New List(Of TreeNode)
Dim currentNode As TreeNode = Nothing
While (treeNode.Nodes.Count > 0)
For Each childNode As TreeNode In treeNode.Nodes
If (currentNode Is Nothing OrElse nodeSorter.Compare(childNode, currentNode) < 0) Then
currentNode = childNode
End If
Next
treeNode.Nodes.Remove(currentNode)
sortedNodes.Add(currentNode)
currentNode = Nothing
End While
For Each childNode As TreeNode In sortedNodes
treeNode.Nodes.Add(childNode)
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Sort nodes failed" & vbNewLine & ex.Message, True)
Finally
TreeView.EndUpdate()
End Try
End Sub

View File

@@ -81,7 +81,7 @@ Namespace UI
Me.AD.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)
Me.AD.Domain = "akane"
Me.AD.Domain = ""
Me.AD.Location = New System.Drawing.Point(0, 0)
Me.AD.Name = "AD"
Me.AD.SelectedNode = Nothing

View File

@@ -34,6 +34,15 @@ Namespace UI
End Sub
#End Region
#Region "Private Methods"
Private Sub Base_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
frmMain.ShowHidePanelTabs()
End Sub
Private Sub Base_FormClosed(sender As System.Object, e As System.Windows.Forms.FormClosedEventArgs) Handles MyBase.FormClosed
frmMain.ShowHidePanelTabs(Me)
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -1,3 +1,4 @@
Imports mRemoteNG.My
Imports WeifenLuo.WinFormsUI.Docking
Imports System.Net.NetworkInformation
Imports mRemoteNG.App.Runtime
@@ -19,22 +20,22 @@ Namespace UI
Private components As System.ComponentModel.IContainer
Friend WithEvents pGrid As Azuria.Common.Controls.FilteredPropertyGrid
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.pGrid = New Azuria.Common.Controls.FilteredPropertyGrid
Me.btnShowInheritance = New System.Windows.Forms.ToolStripButton
Me.btnShowDefaultInheritance = New System.Windows.Forms.ToolStripButton
Me.btnShowProperties = New System.Windows.Forms.ToolStripButton
Me.btnShowDefaultProperties = New System.Windows.Forms.ToolStripButton
Me.btnIcon = New System.Windows.Forms.ToolStripButton
Me.btnHostStatus = New System.Windows.Forms.ToolStripButton
Me.components = New System.ComponentModel.Container()
Me.pGrid = New Azuria.Common.Controls.FilteredPropertyGrid()
Me.btnShowInheritance = New System.Windows.Forms.ToolStripButton()
Me.btnShowDefaultInheritance = New System.Windows.Forms.ToolStripButton()
Me.btnShowProperties = New System.Windows.Forms.ToolStripButton()
Me.btnShowDefaultProperties = New System.Windows.Forms.ToolStripButton()
Me.btnIcon = New System.Windows.Forms.ToolStripButton()
Me.btnHostStatus = New System.Windows.Forms.ToolStripButton()
Me.cMenIcons = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.SuspendLayout()
'
'pGrid
'
Me.pGrid.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.pGrid.BrowsableProperties = Nothing
Me.pGrid.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.pGrid.HiddenAttributes = Nothing
@@ -214,49 +215,123 @@ Namespace UI
End Sub
' Main form handle command key events
' Adapted from http://kiwigis.blogspot.com/2009/05/adding-tab-key-support-to-propertygrid.html
Protected Overrides Function ProcessCmdKey(ByRef msg As System.Windows.Forms.Message, ByVal keyData As System.Windows.Forms.Keys) As Boolean
#If Config = "Debug" Then
Debug.Print("key: " & keyData.ToString)
Debug.Print("msg: " & msg.Msg)
Debug.Print("hwnd: " & msg.HWnd.ToString)
Debug.Print("lparam: " & msg.LParam.ToString)
Debug.Print("wparam: " & msg.WParam.ToString)
Debug.Print("result: " & msg.Result.ToString)
#End If
If keyData = Keys.Tab Then
Dim curGridItemLabel As String = pGrid.SelectedGridItem.Label
Dim gridItemIndex As Integer
If (keyData And Keys.KeyCode) = Keys.Tab Then
Dim selectedItem As GridItem = pGrid.SelectedGridItem
Dim gridRoot As GridItem = selectedItem
While gridRoot.GridItemType <> GridItemType.Root
gridRoot = gridRoot.Parent
End While
For gridItemIndex = 0 To pGrid.SelectedGridItem.Parent.GridItems.Count
If pGrid.SelectedGridItem.Parent.GridItems(gridItemIndex).Label = curGridItemLabel Then
Exit For
End If
Next
Dim gridItems As New List(Of GridItem)
FindChildGridItems(gridRoot, gridItems)
If pGrid.SelectedGridItem.Parent.GridItems.Count > gridItemIndex + 1 Then
pGrid.SelectedGridItem.Parent.GridItems(gridItemIndex + 1).Select()
Else
pGrid.SelectedGridItem.Parent.GridItems(0).Select()
If Not ContainsGridItemProperty(gridItems) Then Return True
Dim newItem As GridItem = selectedItem
If keyData = (Keys.Tab Or Keys.Shift) Then
newItem = FindPreviousGridItemProperty(gridItems, selectedItem)
ElseIf keyData = Keys.Tab Then
newItem = FindNextGridItemProperty(gridItems, selectedItem)
End If
pGrid.SelectedGridItem = newItem
Return True ' Handled
Else
Return MyBase.ProcessCmdKey(msg, keyData)
End If
If keyData = (Keys.Tab Or Keys.Shift) Then
Dim curGridItemLabel As String = pGrid.SelectedGridItem.Label
Dim gridItemIndex As Integer
End Function
For gridItemIndex = 0 To pGrid.SelectedGridItem.Parent.GridItems.Count
If pGrid.SelectedGridItem.Parent.GridItems(gridItemIndex).Label = curGridItemLabel Then
Exit For
End If
Private Sub FindChildGridItems(item As GridItem, ByRef gridItems As List(Of GridItem))
gridItems.Add(item)
If Not item.Expandable Or item.Expanded Then
For Each child As GridItem In item.GridItems
FindChildGridItems(child, gridItems)
Next
End If
End Sub
If gridItemIndex - 1 >= 0 Then
pGrid.SelectedGridItem.Parent.GridItems(gridItemIndex - 1).Select()
Else
pGrid.SelectedGridItem.Parent.GridItems(pGrid.SelectedGridItem.Parent.GridItems.Count - 1).Select()
End If
Private Function ContainsGridItemProperty(gridItems As List(Of GridItem)) As Boolean
For Each item As GridItem In gridItems
If item.GridItemType = GridItemType.Property Then Return True
Next
Return False
End Function
Private Function FindPreviousGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
If gridItems.Count = 0 Then Return Nothing
If startItem Is Nothing Then Return Nothing
Dim startIndex As Integer = gridItems.IndexOf(startItem)
If startItem.GridItemType = GridItemType.Property Then
startIndex = startIndex - 1
If startIndex < 0 Then startIndex = gridItems.Count - 1
End If
Return MyBase.ProcessCmdKey(msg, keyData)
Dim previousIndex As Integer = 0
Dim previousIndexValid As Boolean = False
For index As Integer = startIndex To 0 Step -1
If gridItems(index).GridItemType = GridItemType.Property Then
previousIndex = index
previousIndexValid = True
Exit For
End If
Next
If previousIndexValid Then Return gridItems(previousIndex)
For index As Integer = gridItems.Count - 1 To startIndex + 1 Step -1
If gridItems(index).GridItemType = GridItemType.Property Then
previousIndex = index
previousIndexValid = True
Exit For
End If
Next
If Not previousIndexValid Then Return Nothing
Return gridItems(previousIndex)
End Function
Private Function FindNextGridItemProperty(gridItems As List(Of GridItem), startItem As GridItem) As GridItem
If gridItems.Count = 0 Then Return Nothing
If startItem Is Nothing Then Return Nothing
Dim startIndex As Integer = gridItems.IndexOf(startItem)
If startItem.GridItemType = GridItemType.Property Then
startIndex = startIndex + 1
If startIndex >= gridItems.Count Then startIndex = 0
End If
Dim nextIndex As Integer = 0
Dim nextIndexValid As Boolean = False
For index As Integer = startIndex To gridItems.Count - 1
If gridItems(index).GridItemType = GridItemType.Property Then
nextIndex = index
nextIndexValid = True
Exit For
End If
Next
If nextIndexValid Then Return gridItems(nextIndex)
For index As Integer = 0 To startIndex - 1
If gridItems(index).GridItemType = GridItemType.Property Then
nextIndex = index
nextIndexValid = True
Exit For
End If
Next
If Not nextIndexValid Then Return Nothing
Return gridItems(nextIndex)
End Function
Public Sub SetPropertyGridObject(ByVal Obj As Object)
@@ -315,6 +390,8 @@ Namespace UI
Me.btnIcon.Enabled = True
Me.btnHostStatus.Enabled = True
ElseIf Me.DefaultInheritanceVisible Then 'Default Inhertiance selected
pGrid.SelectedObject = Obj
Me.btnShowProperties.Enabled = True
Me.btnShowInheritance.Enabled = True
Me.btnShowDefaultProperties.Enabled = False
@@ -400,41 +477,6 @@ Namespace UI
#End Region
#Region "Private Methods"
Private tsCustom As ToolStrip = Nothing
Private Sub Config_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
Try
'Show PropertyGrid Toolbar buttons
tsCustom = New ToolStrip
tsCustom.Items.Add(btnShowProperties)
tsCustom.Items.Add(btnShowInheritance)
tsCustom.Items.Add(btnShowDefaultProperties)
tsCustom.Items.Add(btnShowDefaultInheritance)
tsCustom.Items.Add(btnHostStatus)
tsCustom.Items.Add(btnIcon)
tsCustom.Show()
Dim tsDefault As New ToolStrip
For Each ctrl As System.Windows.Forms.Control In pGrid.Controls
Dim tStrip As ToolStrip = TryCast(ctrl, ToolStrip)
If tStrip IsNot Nothing Then
tsDefault = tStrip
Exit For
End If
Next
tsDefault.AllowMerge = True
tsDefault.Items(tsDefault.Items.Count - 1).Visible = False
ToolStripManager.Merge(tsCustom, tsDefault)
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub ApplyLanguage()
btnShowInheritance.Text = My.Language.strButtonInheritance
btnShowDefaultInheritance.Text = My.Language.strButtonDefaultInheritance
@@ -446,6 +488,65 @@ Namespace UI
TabText = My.Language.strMenuConfig
End Sub
Private _originalPropertyGridToolStripItemCountValid As Boolean
Private _originalPropertyGridToolStripItemCount As Integer
Private Sub AddToolStripItems()
Try
Dim customToolStrip As ToolStrip = New ToolStrip
customToolStrip.Items.Add(btnShowProperties)
customToolStrip.Items.Add(btnShowInheritance)
customToolStrip.Items.Add(btnShowDefaultProperties)
customToolStrip.Items.Add(btnShowDefaultInheritance)
customToolStrip.Items.Add(btnHostStatus)
customToolStrip.Items.Add(btnIcon)
customToolStrip.Show()
Dim propertyGridToolStrip As New ToolStrip
Dim toolStrip As ToolStrip = Nothing
For Each control As System.Windows.Forms.Control In pGrid.Controls
toolStrip = TryCast(control, ToolStrip)
If toolStrip IsNot Nothing Then
propertyGridToolStrip = toolStrip
Exit For
End If
Next
If toolStrip Is Nothing Then
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strCouldNotFindToolStripInFilteredPropertyGrid, True)
Return
End If
If Not _originalPropertyGridToolStripItemCountValid Then
_originalPropertyGridToolStripItemCount = propertyGridToolStrip.Items.Count
_originalPropertyGridToolStripItemCountValid = True
End If
Debug.Assert(_originalPropertyGridToolStripItemCount = 5)
' Hide the "Property Pages" button
propertyGridToolStrip.Items(_originalPropertyGridToolStripItemCount - 1).Visible = False
Dim expectedToolStripItemCount As Integer = _originalPropertyGridToolStripItemCount + customToolStrip.Items.Count
If propertyGridToolStrip.Items.Count <> expectedToolStripItemCount Then
propertyGridToolStrip.AllowMerge = True
ToolStripManager.Merge(customToolStrip, propertyGridToolStrip)
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub Config_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
AddToolStripItems()
End Sub
Private Sub Config_SystemColorsChanged(sender As System.Object, e As System.EventArgs) Handles MyBase.SystemColorsChanged
AddToolStripItems()
End Sub
Private Sub pGrid_PropertyValueChanged(ByVal s As Object, ByVal e As System.Windows.Forms.PropertyValueChangedEventArgs) Handles pGrid.PropertyValueChanged
Try
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
@@ -508,6 +609,12 @@ Namespace UI
End Try
End Sub
Private Sub pGrid_PropertySortChanged(ByVal sender As Object, ByVal e As EventArgs) Handles pGrid.PropertySortChanged
If pGrid.PropertySort = PropertySort.CategorizedAlphabetical Then
pGrid.PropertySort = PropertySort.Categorized
End If
End Sub
Private Sub ShowHideGridItems()
Try
Dim strHide As New List(Of String)
@@ -1306,7 +1413,6 @@ Namespace UI
End Try
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -262,6 +262,8 @@ Namespace UI
nTab.Title &= ")"
End If
nTab.Title = nTab.Title.Replace("&", "&&")
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(conI.Icon)
If conIcon IsNot Nothing Then
nTab.Icon = conIcon
@@ -274,6 +276,7 @@ Namespace UI
End If
nTab.Selected = True
_ignoreChangeSelectedTabClick = False
Return nTab
Catch ex As Exception
@@ -289,6 +292,30 @@ Namespace UI
ApplyLanguage()
End Sub
Private _documentHandlersAdded As Boolean = False
Private _floatHandlersAdded As Boolean = False
Private Sub Connection_DockStateChanged(ByVal sender As System.Object, ByVal e As EventArgs) Handles Me.DockStateChanged
If DockState = DockState.Float Then
If _documentHandlersAdded Then
RemoveHandler frmMain.ResizeBegin, AddressOf Connection_ResizeBegin
RemoveHandler frmMain.ResizeEnd, AddressOf Connection_ResizeEnd
_documentHandlersAdded = False
End If
AddHandler DockHandler.FloatPane.FloatWindow.ResizeBegin, AddressOf Connection_ResizeBegin
AddHandler DockHandler.FloatPane.FloatWindow.ResizeEnd, AddressOf Connection_ResizeEnd
_floatHandlersAdded = True
ElseIf DockState = DockState.Document Then
If _floatHandlersAdded Then
RemoveHandler DockHandler.FloatPane.FloatWindow.ResizeBegin, AddressOf Connection_ResizeBegin
RemoveHandler DockHandler.FloatPane.FloatWindow.ResizeEnd, AddressOf Connection_ResizeEnd
_floatHandlersAdded = False
End If
AddHandler frmMain.ResizeBegin, AddressOf Connection_ResizeBegin
AddHandler frmMain.ResizeEnd, AddressOf Connection_ResizeEnd
_documentHandlersAdded = True
End If
End Sub
Private Sub ApplyLanguage()
cmenTabFullscreen.Text = My.Language.strMenuFullScreenRDP
cmenTabSmartSize.Text = My.Language.strMenuSmartSize
@@ -332,19 +359,14 @@ Namespace UI
End Try
End Sub
Private Sub Connection_Resize(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Resize
Try
For Each tabP As Magic.Controls.TabPage In Me.TabController.TabPages
If tabP.Tag IsNot Nothing Then
If TypeOf tabP.Tag Is mRemoteNG.Connection.InterfaceControl Then
Dim IC As mRemoteNG.Connection.InterfaceControl = tabP.Tag
IC.Protocol.Resize()
End If
End If
Next
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Connection_Resize (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
Public Shadows Event ResizeBegin As EventHandler
Private Sub Connection_ResizeBegin(ByVal sender As System.Object, ByVal e As EventArgs)
RaiseEvent ResizeBegin(Me, e)
End Sub
Public Shadows Event ResizeEnd As EventHandler
Public Sub Connection_ResizeEnd(ByVal sender As System.Object, ByVal e As EventArgs)
RaiseEvent ResizeEnd(sender, e)
End Sub
#End Region
@@ -382,6 +404,7 @@ Namespace UI
End Sub
Private Sub TabController_DoubleClickTab(ByVal sender As Crownwood.Magic.Controls.TabControl, ByVal page As Crownwood.Magic.Controls.TabPage) Handles TabController.DoubleClickTab
_lastMouseUp = 0
If My.Settings.DoubleClickOnTabClosesIt Then
Me.CloseConnectionTab()
End If
@@ -420,15 +443,20 @@ Namespace UI
End If
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.RDP Then
Me.cmenTabFullscreen.Enabled = True
Me.cmenTabSmartSize.Enabled = True
Dim rdp As mRemoteNG.Connection.Protocol.RDP = IC.Protocol
Me.cmenTabSmartSize.Checked = rdp.SmartSize
Me.cmenTabFullscreen.Checked = rdp.Fullscreen
If rdp.RedirectKeys Then
cmenTabFullscreen.Enabled = False
Else
cmenTabFullscreen.Enabled = True
cmenTabFullscreen.Checked = rdp.Fullscreen
End If
cmenTabSmartSize.Enabled = True
cmenTabSmartSize.Checked = rdp.SmartSize
Else
Me.cmenTabFullscreen.Enabled = False
Me.cmenTabSmartSize.Enabled = False
cmenTabFullscreen.Enabled = False
cmenTabSmartSize.Enabled = False
End If
If IC.Info.Protocol = mRemoteNG.Connection.Protocol.Protocols.VNC Then
@@ -760,6 +788,7 @@ Namespace UI
Dim IC As mRemoteNG.Connection.InterfaceControl = Me.TabController.SelectedTab.Tag
App.Runtime.OpenConnection(IC.Info, mRemoteNG.Connection.Info.Force.DoNotJump)
_ignoreChangeSelectedTabClick = False
End If
End If
Catch ex As Exception
@@ -820,6 +849,7 @@ Namespace UI
Else
Try
Me.TabController.TabPages.Remove(TabToBeClosed)
_ignoreChangeSelectedTabClick = False
Catch comEx As System.Runtime.InteropServices.COMException
CloseTab(TabToBeClosed)
Catch ex As Exception
@@ -832,9 +862,47 @@ Namespace UI
End If
End Sub
Private _ignoreChangeSelectedTabClick As Boolean = False
Private Sub TabController_SelectionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabController.SelectionChanged
Me.FocusIC()
Me.RefreshIC()
_ignoreChangeSelectedTabClick = True
FocusIC()
RefreshIC()
End Sub
Private _lastMouseUp As Integer = 0
Private Sub TabController_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TabController.MouseUp
Debug.Print("TabController_MouseUp()")
Debug.Print("_ignoreChangeSelectedTabClick = {0}", _ignoreChangeSelectedTabClick)
Try
If Not Native.GetForegroundWindow() = frmMain.Handle And Not _ignoreChangeSelectedTabClick Then
Dim clickedTab As Magic.Controls.TabPage = TabController.TabPageFromPoint(e.Location)
If clickedTab IsNot Nothing And TabController.SelectedTab IsNot clickedTab Then
Native.SetForegroundWindow(Handle)
TabController.SelectedTab = clickedTab
End If
End If
_ignoreChangeSelectedTabClick = False
Select Case e.Button
Case MouseButtons.Left
Dim currentTicks As Integer = Environment.TickCount
Dim elapsedTicks As Integer = currentTicks - _lastMouseUp
If elapsedTicks > SystemInformation.DoubleClickTime Then
_lastMouseUp = currentTicks
FocusIC()
Else
TabController.OnDoubleClickTab(TabController.SelectedTab)
End If
Case MouseButtons.Middle
CloseConnectionTab()
Case MouseButtons.Right
ShowHideMenuButtons()
Native.SetForegroundWindow(Handle)
cmenTab.Show(TabController, e.Location)
End Select
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "TabController_MouseUp (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub FocusIC()
@@ -916,24 +984,6 @@ Namespace UI
TabController.SelectedTab = sourceTab
TabController.TabPages.ResumeEvents()
End Sub
Private Sub TabController_MouseUp(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TabController.MouseUp
Debug.Print("UI.Window.Connection.TabController_MouseUp()")
Try
Select Case e.Button
Case MouseButtons.Left
FocusIC()
Case MouseButtons.Middle
TabController.SelectedTab = TabController.TabPageFromPoint(e.Location)
CloseConnectionTab()
Case MouseButtons.Right
ShowHideMenuButtons()
cmenTab.Show(TabController, e.Location)
End Select
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "TabController_MouseUp (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
End Class
End Namespace

View File

@@ -3,7 +3,7 @@ Imports mRemoteNG.App.Runtime
Namespace UI
Namespace Window
Public Class SaveAs
Public Class Export
Inherits UI.Window.Base
#Region "Form Init"
@@ -112,7 +112,7 @@ Namespace UI
Me.PictureBox1.TabIndex = 112
Me.PictureBox1.TabStop = False
'
'SaveAs
'Export
'
Me.AcceptButton = Me.btnOK
Me.CancelButton = Me.btnCancel
@@ -124,9 +124,9 @@ Namespace UI
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnOK)
Me.Icon = Global.mRemoteNG.My.Resources.Resources.Connections_SaveAs_Icon
Me.Name = "SaveAs"
Me.TabText = "Save Connections As"
Me.Text = "Save Connections As"
Me.Name = "Export"
Me.TabText = "Export Connections"
Me.Text = "Export Connections"
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
@@ -135,50 +135,33 @@ Namespace UI
#End Region
#Region "Public Properties"
Private _Export As Boolean
Public Property Export() As Boolean
Get
Return _Export
End Get
Set(ByVal value As Boolean)
_Export = value
End Set
End Property
Private _TreeNode As TreeNode
Private _treeNode As TreeNode
Public Property TreeNode() As TreeNode
Get
Return _TreeNode
Return _treeNode
End Get
Set(ByVal value As TreeNode)
_TreeNode = value
_treeNode = value
End Set
End Property
#End Region
#Region "Public Methods"
Public Sub New(ByVal Panel As DockContent)
Me.New(Panel, False, Nothing)
Public Sub New(ByVal panel As DockContent)
Me.New(panel, Nothing)
End Sub
Public Sub New(ByVal Panel As DockContent, ByVal Export As Boolean, ByVal TreeNode As TreeNode)
Me.WindowType = Type.SaveAs
Me.DockPnl = Panel
Me.InitializeComponent()
Public Sub New(ByVal panel As DockContent, ByVal treeNode As TreeNode)
WindowType = Type.Export
DockPnl = panel
InitializeComponent()
If Export Then
Me.SetFormText(My.Language.strExport)
Else
Me.SetFormText(My.Language.strMenuSaveConnectionFileAs)
End If
Me._Export = Export
Me._TreeNode = TreeNode
_treeNode = treeNode
End Sub
#End Region
#Region "Form Stuff"
Private Sub SaveAs_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Private Sub Export_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
End Sub
@@ -191,8 +174,8 @@ Namespace UI
btnOK.Text = My.Language.strButtonOK
Label1.Text = My.Language.strUncheckProperties
lblMremoteXMLOnly.Text = My.Language.strPropertiesWillOnlyBeSavedMRemoteXML
TabText = My.Language.strMenuSaveConnectionFileAs
Text = My.Language.strMenuSaveConnectionFileAs
TabText = My.Language.strExport
Text = My.Language.strExport
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
@@ -201,21 +184,21 @@ Namespace UI
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Try
If _TreeNode Is Nothing Then
_TreeNode = App.Runtime.Windows.treeForm.tvConnections.Nodes(0)
If _treeNode Is Nothing Then
_treeNode = Windows.treeForm.tvConnections.Nodes(0)
End If
Dim sS As New Security.Save()
Dim saveSecurity As New Security.Save()
sS.Username = Me.lvSecurity.Items(0).Checked
sS.Password = Me.lvSecurity.Items(1).Checked
sS.Domain = Me.lvSecurity.Items(2).Checked
sS.Inheritance = Me.lvSecurity.Items(3).Checked
saveSecurity.Username = lvSecurity.Items(0).Checked
saveSecurity.Password = lvSecurity.Items(1).Checked
saveSecurity.Domain = lvSecurity.Items(2).Checked
saveSecurity.Inheritance = lvSecurity.Items(3).Checked
App.Runtime.SaveConnectionsAs(sS, _TreeNode)
Me.Close()
SaveConnectionsAs(_treeNode, saveSecurity)
Close()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "btnOK_Click (UI.Window.SaveAs) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "UI.Window.Export.btnOK_Click() failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -1,3 +1,5 @@
Imports mRemoteNG.Connection
Imports mRemoteNG.My
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
@@ -52,51 +54,51 @@ Namespace UI
Friend WithEvents mMenAddFolder As System.Windows.Forms.ToolStripMenuItem
Public WithEvents tvConnections As System.Windows.Forms.TreeView
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Me.components = New System.ComponentModel.Container()
Dim TreeNode1 As System.Windows.Forms.TreeNode = New System.Windows.Forms.TreeNode("Connections")
Me.tvConnections = New System.Windows.Forms.TreeView
Me.tvConnections = New System.Windows.Forms.TreeView()
Me.cMenTree = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenTreeAddConnection = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeAddFolder = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeSep1 = New System.Windows.Forms.ToolStripSeparator
Me.cMenTreeConnect = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeConnectWithOptions = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeConnectWithOptionsConnectToConsoleSession = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeConnectWithOptionsDontConnectToConsoleSession = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeConnectWithOptionsConnectInFullscreen = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeConnectWithOptionsChoosePanelBeforeConnecting = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeDisconnect = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeSep2 = New System.Windows.Forms.ToolStripSeparator
Me.cMenTreeToolsTransferFile = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExport = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExportExportmRemoteXML = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExportImportmRemoteXML = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExportSep1 = New System.Windows.Forms.ToolStripSeparator
Me.cMenTreeToolsImportExportImportFromAD = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExportImportFromRDPFiles = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsImportExportImportFromPortScan = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsSort = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsSortAscending = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsSortDescending = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeToolsExternalApps = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeSep3 = New System.Windows.Forms.ToolStripSeparator
Me.cMenTreeDuplicate = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeRename = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeDelete = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeSep4 = New System.Windows.Forms.ToolStripSeparator
Me.cMenTreeMoveUp = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeMoveDown = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTreeAddConnection = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeAddFolder = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeSep1 = New System.Windows.Forms.ToolStripSeparator()
Me.cMenTreeConnect = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeConnectWithOptions = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeConnectWithOptionsConnectToConsoleSession = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeConnectWithOptionsDontConnectToConsoleSession = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeConnectWithOptionsConnectInFullscreen = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeConnectWithOptionsChoosePanelBeforeConnecting = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeDisconnect = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeSep2 = New System.Windows.Forms.ToolStripSeparator()
Me.cMenTreeToolsTransferFile = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExport = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExportExportmRemoteXML = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExportImportmRemoteXML = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExportSep1 = New System.Windows.Forms.ToolStripSeparator()
Me.cMenTreeToolsImportExportImportFromAD = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExportImportFromRDPFiles = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsImportExportImportFromPortScan = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsSort = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsSortAscending = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsSortDescending = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeToolsExternalApps = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeSep3 = New System.Windows.Forms.ToolStripSeparator()
Me.cMenTreeDuplicate = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeRename = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeDelete = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeSep4 = New System.Windows.Forms.ToolStripSeparator()
Me.cMenTreeMoveUp = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTreeMoveDown = New System.Windows.Forms.ToolStripMenuItem()
Me.imgListTree = New System.Windows.Forms.ImageList(Me.components)
Me.pnlConnections = New System.Windows.Forms.Panel
Me.PictureBox1 = New System.Windows.Forms.PictureBox
Me.txtSearch = New System.Windows.Forms.TextBox
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenAddConnection = New System.Windows.Forms.ToolStripMenuItem
Me.mMenAddFolder = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewExpandAllFolders = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewCollapseAllFolders = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSortAscending = New System.Windows.Forms.ToolStripMenuItem
Me.pnlConnections = New System.Windows.Forms.Panel()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.txtSearch = New System.Windows.Forms.TextBox()
Me.msMain = New System.Windows.Forms.MenuStrip()
Me.mMenAddConnection = New System.Windows.Forms.ToolStripMenuItem()
Me.mMenAddFolder = New System.Windows.Forms.ToolStripMenuItem()
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem()
Me.mMenViewExpandAllFolders = New System.Windows.Forms.ToolStripMenuItem()
Me.mMenViewCollapseAllFolders = New System.Windows.Forms.ToolStripMenuItem()
Me.mMenSortAscending = New System.Windows.Forms.ToolStripMenuItem()
Me.cMenTree.SuspendLayout()
Me.pnlConnections.SuspendLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -107,8 +109,8 @@ Namespace UI
'
Me.tvConnections.AllowDrop = True
Me.tvConnections.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.tvConnections.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.tvConnections.ContextMenuStrip = Me.cMenTree
Me.tvConnections.HideSelection = False
@@ -121,7 +123,7 @@ Namespace UI
TreeNode1.Text = "Connections"
Me.tvConnections.Nodes.AddRange(New System.Windows.Forms.TreeNode() {TreeNode1})
Me.tvConnections.SelectedImageIndex = 0
Me.tvConnections.Size = New System.Drawing.Size(192, 407)
Me.tvConnections.Size = New System.Drawing.Size(192, 410)
Me.tvConnections.TabIndex = 20
'
'cMenTree
@@ -156,7 +158,7 @@ Namespace UI
Me.cMenTreeConnect.Image = Global.mRemoteNG.My.Resources.Resources.Play
Me.cMenTreeConnect.Name = "cMenTreeConnect"
Me.cMenTreeConnect.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Me.cMenTreeConnect.Size = New System.Drawing.Size(186, 22)
Me.cMenTreeConnect.Text = "Connect"
'
@@ -347,8 +349,8 @@ Namespace UI
'pnlConnections
'
Me.pnlConnections.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.pnlConnections.Controls.Add(Me.PictureBox1)
Me.pnlConnections.Controls.Add(Me.txtSearch)
Me.pnlConnections.Controls.Add(Me.tvConnections)
@@ -361,7 +363,7 @@ Namespace UI
'
Me.PictureBox1.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.PictureBox1.Image = Global.mRemoteNG.My.Resources.Resources.Search
Me.PictureBox1.Location = New System.Drawing.Point(0, 411)
Me.PictureBox1.Location = New System.Drawing.Point(2, 412)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(16, 16)
Me.PictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
@@ -371,13 +373,15 @@ Namespace UI
'txtSearch
'
Me.txtSearch.Anchor = CType(((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.Right), System.Windows.Forms.AnchorStyles)
Me.txtSearch.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtSearch.Location = New System.Drawing.Point(21, 412)
Me.txtSearch.ForeColor = System.Drawing.SystemColors.GrayText
Me.txtSearch.Location = New System.Drawing.Point(19, 413)
Me.txtSearch.Name = "txtSearch"
Me.txtSearch.Size = New System.Drawing.Size(169, 13)
Me.txtSearch.Size = New System.Drawing.Size(171, 13)
Me.txtSearch.TabIndex = 30
Me.txtSearch.TabStop = False
Me.txtSearch.Text = "Search"
'
'msMain
'
@@ -461,6 +465,10 @@ Namespace UI
#Region "Form Stuff"
Private Sub Tree_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
txtSearch.Multiline = True
txtSearch.MinimumSize = New Size(0, 14)
txtSearch.Size = New Size(txtSearch.Size.Width, 14)
txtSearch.Multiline = False
End Sub
Private Sub ApplyLanguage()
@@ -494,6 +502,7 @@ Namespace UI
mMenViewExpandAllFolders.Text = My.Language.strExpandAllFolders
mMenViewCollapseAllFolders.Text = My.Language.strCollapseAllFolders
mMenSortAscending.ToolTipText = My.Language.strSortAsc
txtSearch.Text = Language.strSearchPrompt
TabText = My.Language.strConnections
Text = My.Language.strConnections
End Sub
@@ -540,13 +549,13 @@ Namespace UI
End Try
End Sub
Private Sub tvConnections_BeforeLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles tvConnections.BeforeLabelEdit
cMenTreeDelete.ShortcutKeys = Keys.None
End Sub
Private Sub tvConnections_AfterLabelEdit(ByVal sender As Object, ByVal e As System.Windows.Forms.NodeLabelEditEventArgs) Handles tvConnections.AfterLabelEdit
Try
If My.Settings.SetHostnameLikeDisplayName Then
If TypeOf e.Node.Tag Is mRemoteNG.Connection.Info Then
DirectCast(e.Node.Tag, mRemoteNG.Connection.Info).Hostname = e.Label
End If
End If
cMenTreeDelete.ShortcutKeys = System.Windows.Forms.Keys.Delete
mRemoteNG.Tree.Node.FinishRenameSelectedNode(e.Label)
Windows.configForm.pGrid_SelectedObjectChanged()
@@ -722,7 +731,7 @@ Namespace UI
Me.cMenTreeToolsTransferFile.Enabled = False
Me.cMenTreeToolsImportExport.Enabled = True
Me.cMenTreeToolsImportExportExportmRemoteXML.Enabled = False
Me.cMenTreeToolsImportExportExportmRemoteXML.Enabled = True
Me.cMenTreeToolsImportExportImportFromAD.Enabled = True
Me.cMenTreeToolsImportExportImportmRemoteXML.Enabled = True
@@ -933,24 +942,24 @@ Namespace UI
Me.ImportFromPortScan()
End Sub
Private Sub mMenSortAscending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenSortAscending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.Nodes.Item(0), Tools.Controls.TreeNodeSorter.SortType.Ascending)
Me.tvConnections.EndUpdate()
Private Sub mMenSortAscending_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles mMenSortAscending.Click
tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(tvConnections.Nodes.Item(0), System.Windows.Forms.SortOrder.Ascending)
tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
Private Sub cMenTreeToolsSortAscending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeToolsSortAscending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.SelectedNode, Tools.Controls.TreeNodeSorter.SortType.Ascending)
Me.tvConnections.EndUpdate()
Private Sub cMenTreeToolsSortAscending_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles cMenTreeToolsSortAscending.Click
tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(tvConnections.SelectedNode, System.Windows.Forms.SortOrder.Ascending)
tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
Private Sub cMenTreeToolsSortDescending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeToolsSortDescending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.SelectedNode, Tools.Controls.TreeNodeSorter.SortType.Descending)
Me.tvConnections.EndUpdate()
Private Sub cMenTreeToolsSortDescending_Click(ByVal sender As System.Object, ByVal e As EventArgs) Handles cMenTreeToolsSortDescending.Click
tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(tvConnections.SelectedNode, System.Windows.Forms.SortOrder.Descending)
tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
@@ -991,33 +1000,36 @@ Namespace UI
#Region "Context Menu Actions"
Public Sub AddConnection()
Try
Dim nNode As TreeNode = mRemoteNG.Tree.Node.AddNode(mRemoteNG.Tree.Node.Type.Connection)
If tvConnections.SelectedNode Is Nothing Then tvConnections.SelectedNode = tvConnections.Nodes.Item(0)
If nNode IsNot Nothing Then
Dim nConI As New mRemoteNG.Connection.Info()
If Me.tvConnections.SelectedNode Is Nothing Then Me.tvConnections.SelectedNode = Me.tvConnections.Nodes.Item(0)
If TypeOf Me.tvConnections.SelectedNode.Tag Is mRemoteNG.Container.Info Then
nConI.Parent = Me.tvConnections.SelectedNode.Tag
Else
nConI.Inherit.TurnOffInheritanceCompletely()
End If
nConI.TreeNode = nNode
nNode.Tag = nConI
connectionList.Add(nConI)
If mRemoteNG.Tree.Node.GetNodeType(Me.tvConnections.SelectedNode) = mRemoteNG.Tree.Node.Type.Connection Then
Me.tvConnections.SelectedNode.Parent.Nodes.Add(nNode)
Else
Me.tvConnections.SelectedNode.Nodes.Add(nNode)
End If
Me.tvConnections.SelectedNode = nNode
Me.tvConnections.SelectedNode.BeginEdit()
Dim newTreeNode As TreeNode = mRemoteNG.Tree.Node.AddNode(mRemoteNG.Tree.Node.Type.Connection)
If newTreeNode Is Nothing Then
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "UI.Window.Tree.AddConnection() failed." & vbNewLine & "mRemoteNG.Tree.Node.AddNode() returned Nothing.", True)
Return
End If
Dim containerNode As TreeNode = tvConnections.SelectedNode
If mRemoteNG.Tree.Node.GetNodeType(containerNode) = mRemoteNG.Tree.Node.Type.Connection Then
containerNode = containerNode.Parent
End If
Dim newConnectionInfo As New Info()
If mRemoteNG.Tree.Node.GetNodeType(containerNode) = mRemoteNG.Tree.Node.Type.Root Then
newConnectionInfo.Inherit.TurnOffInheritanceCompletely()
Else
newConnectionInfo.Parent = containerNode.Tag
End If
newConnectionInfo.TreeNode = newTreeNode
newTreeNode.Tag = newConnectionInfo
ConnectionList.Add(newConnectionInfo)
containerNode.Nodes.Add(newTreeNode)
tvConnections.SelectedNode = newTreeNode
tvConnections.SelectedNode.BeginEdit()
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddConnection (UI.Window.Tree) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "UI.Window.Tree.AddConnection() failed." & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -1040,6 +1052,8 @@ Namespace UI
End If
End If
newContainerInfo.ConnectionInfo = New Info(newContainerInfo)
' 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
newContainerInfo.Parent = parentNode.Tag
@@ -1047,8 +1061,6 @@ Namespace UI
newContainerInfo.ConnectionInfo.Inherit.TurnOffInheritanceCompletely()
End If
newContainerInfo.ConnectionInfo = New mRemoteNG.Connection.Info(newContainerInfo)
App.Runtime.ContainerList.Add(newContainerInfo)
parentNode.Nodes.Add(newNode)
@@ -1103,10 +1115,10 @@ Namespace UI
Private Sub ExportXML()
Try
If Me.tvConnections.SelectedNode IsNot Nothing Then
Windows.saveasForm = New UI.Window.SaveAs(Windows.saveasPanel, True, Me.tvConnections.SelectedNode)
Windows.saveasPanel = Windows.saveasForm
Windows.exportForm = New UI.Window.Export(Windows.exportPanel, Me.tvConnections.SelectedNode)
Windows.exportPanel = Windows.exportForm
Windows.saveasForm.Show(frmMain.pnlDock)
Windows.exportForm.Show(frmMain.pnlDock)
End If
Catch ex As Exception
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ExportXml (UI.Window.Tree) failed" & vbNewLine & ex.Message, True)
@@ -1190,12 +1202,28 @@ Namespace UI
End Sub
Private Sub mMenViewCollapseAllFolders_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewCollapseAllFolders.Click
If Me.tvConnections.SelectedNode.IsEditing Then Me.tvConnections.SelectedNode.EndEdit(False)
If tvConnections.SelectedNode IsNot Nothing Then
If tvConnections.SelectedNode.IsEditing Then tvConnections.SelectedNode.EndEdit(False)
End If
mRemoteNG.Tree.Node.CollapseAllNodes()
End Sub
#End Region
#Region "Search"
Private Sub txtSearch_GotFocus(ByVal sender As Object, ByVal e As EventArgs) Handles txtSearch.GotFocus
txtSearch.ForeColor = SystemColors.WindowText
If txtSearch.Text = Language.strSearchPrompt Then
txtSearch.Text = ""
End If
End Sub
Private Sub txtSearch_LostFocus(ByVal sender As Object, ByVal e As EventArgs) Handles txtSearch.LostFocus
If txtSearch.Text = "" Then
txtSearch.ForeColor = SystemColors.GrayText
txtSearch.Text = Language.strSearchPrompt
End If
End Sub
Private Sub txtSearch_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSearch.KeyDown
Try
If e.KeyCode = Keys.Escape Then

View File

@@ -8,7 +8,7 @@ Namespace UI
ErrorsAndInfos = 4
ScreenshotManager = 5
Options = 6
SaveAs = 7
Export = 7
About = 8
Update = 9
SSHTransfer = 10

View File

@@ -1,33 +1,33 @@
<?xml version="1.0" encoding="utf-8" ?>
<?xml version="1.0"?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0" />
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="mRemoteNG.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
<section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="mRemoteNG.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
</sectionGroup>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="mRemoteNG.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="mRemoteNG.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
</sectionGroup>
</configSections>
<log4net>
<logger name="mRemoteNG.Log">
<logger name="Logger">
<level value="INFO"/>
</logger>
<root>
<level value="ALL" />
<appender-ref ref="LogFileAppender" />
<level value="ALL"/>
<appender-ref ref="LogFileAppender"/>
</root>
<appender name="LogFileAppender" type="log4net.Appender.FileAppender">
<file value="${USERPROFILE}\AppData\Local\mRemoteNG\mRemoteNG.log" />
<file value="${USERPROFILE}\AppData\Local\mRemoteNG\mRemoteNG.log"/>
<!-- Example using environment variables in params -->
<!-- <file value="${TMP}\log-file.txt" /> -->
<appendToFile value="true" />
<appendToFile value="true"/>
<!-- An alternate output encoding can be specified -->
<!-- <encoding value="unicodeFFFE" /> -->
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date [%thread] %-5level- %message%newline" />
<conversionPattern value="%date [%thread] %-5level- %message%newline"/>
</layout>
<!-- Alternate layout using XML
<layout type="log4net.Layout.XMLLayout" /> -->
@@ -45,12 +45,10 @@
</source>
</sources>
<switches>
<add name="DefaultSwitch" value="Information" />
<add name="DefaultSwitch" value="Information"/>
</switches>
<sharedListeners>
<add name="FileLog"
type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL"
initializeData="FileLogWriter"/>
<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/>
<!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log -->
<!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="APPLICATION_NAME"/> -->
</sharedListeners>
@@ -442,7 +440,7 @@
<value>5500</value>
</setting>
<setting name="StartupComponentsCheck" serializeAs="String">
<value>True</value>
<value>False</value>
</setting>
<setting name="XULRunnerPath" serializeAs="String">
<value />
@@ -561,16 +559,25 @@
<setting name="InhDefaultUseCredSsp" serializeAs="String">
<value>False</value>
</setting>
<setting name="ConDefaultUseCredSsp" serializeAs="String">
<value>True</value>
</setting>
<setting name="AlwaysShowPanelTabs" serializeAs="String">
<value>False</value>
</setting>
<setting name="IdentifyQuickConnectTabs" serializeAs="String">
<value>False</value>
</setting>
</mRemoteNG.My.MySettings>
</userSettings>
<applicationSettings>
<mRemoteNG.My.MySettings>
<setting name="SupportedUICultures" serializeAs="String">
<value>de,en,en-US,es,fr,nl,pl,ru,uk</value>
<value>de,en,en-US,es-AR,es,fr,it,nl,pt,pl,ru,uk,zh-CN</value>
</setting>
<setting name="ConDefaultUseCredSsp" serializeAs="String">
<value>True</value>
<setting name="UpdateChannel" serializeAs="String">
<value>release</value>
</setting>
</mRemoteNG.My.MySettings>
</applicationSettings>
</configuration>
<startup><supportedRuntime version="v2.0.50727"/></startup></configuration>

View File

@@ -25,7 +25,7 @@
<ManifestKeyFile>mRemoteV1_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<TargetFrameworkVersion>v3.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -41,6 +41,7 @@
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
<TargetFrameworkProfile />
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
@@ -212,6 +213,7 @@
<Compile Include="Connection\Connection.Protocol.VNC.vb" />
<Compile Include="Connection\Connection.PuttySession.vb" />
<Compile Include="Connection\Connection.QuickConnect.vb" />
<Compile Include="Tools\CommandLineArguments.vb" />
<Compile Include="Container\Container.Info.vb" />
<Compile Include="Container\Container.List.vb" />
<Compile Include="Credential\Credential.Info.vb" />
@@ -316,7 +318,7 @@
<Compile Include="UI\UI.Window.QuickConnect.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.SaveAs.vb">
<Compile Include="UI\UI.Window.Export.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.ScreenshotManager.vb">
@@ -358,12 +360,15 @@
<EmbeddedResource Include="Language\Language.en-US.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.es-AR.resx" />
<EmbeddedResource Include="Language\Language.es.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.it.resx" />
<EmbeddedResource Include="Language\Language.nl.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.pt.resx" />
<EmbeddedResource Include="Language\Language.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Language.Designer.vb</LastGenOutput>
@@ -382,6 +387,7 @@
<EmbeddedResource Include="Language\Language.uk.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Language.zh-CN.resx" />
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
@@ -440,8 +446,8 @@
<DependentUpon>UI.Window.QuickConnect.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.SaveAs.resx">
<DependentUpon>UI.Window.SaveAs.vb</DependentUpon>
<EmbeddedResource Include="UI\UI.Window.Export.resx">
<DependentUpon>UI.Window.Export.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.ScreenshotManager.resx">