Compare commits

..

148 Commits

Author SHA1 Message Date
Riley McArdle
1af6fde986 Prepare CHANGELOG.TXT for release of 1.70 RC3. 2013-03-07 12:07:01 -06:00
Riley McArdle
6d21c85d98 Fix issue MR-355 - Moving sub folders to top level causes property loss 2013-03-06 22:58:53 -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
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
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
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
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
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
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
rmcardle
01d62c410d Replaced putty.exe with PuTTYNG.exe. Changed code to look for PuTTYNG.exe instead of putty.exe. 2012-02-27 20:50:28 -06:00
rmcardle
a1b4cadc1d Updated VncSharpNG to version 1.2.4440.36644. Added debugging symbols for VncSharpNG.dll. 2012-02-27 20:47:01 -06:00
rmcardle
9a283e5da7 Made the use of CredSSP for RDP connections optional. 2012-02-27 19:41:51 -06:00
rmcardle
7a7c6aebd9 Removed unused string. 2012-02-23 22:23:50 -06:00
rmcardle
4b03e542d6 Created script to update language files with translations from Crowdin. 2012-02-23 22:10:52 -06:00
rmcardle
66d3a83f1c Sorted strings in resource files to improve merging of updated translations. 2012-02-23 20:58:37 -06:00
rmcardle
cbda4f3b96 Corrected capitalization of "smart cards". 2012-02-13 02:08:50 -06:00
rmcardle
1e139fa5d9 Cleanup code in Connection.Protocol.RDP.vb. 2012-02-13 02:08:04 -06:00
rmcardle
816b5baefb Cherry-pick commit cc1266910c from kusuriya.
Added options and code to allow use of smart card credentials for RD Gateway
2012-02-13 02:07:04 -06:00
rmcardle
ba3fb6cab2 Update PuTTY information in CREDITS.TXT. 2012-02-13 01:42:39 -06:00
rmcardle
a19a027d5a Improved PuTTY focus handling. 2012-02-13 01:41:01 -06:00
rmcardle
ab9f61dbd8 Cherry-pick commit 78b5253fd9 from kusuriya.
Added RDP.TransportSettings2.GatewayCredSharing = 0 to the SetRDGateway to make it respect separate creds instead of attempting SSO

Fixes issue MR-131.
2012-02-12 23:09:47 -06:00
rmcardle
b76019f516 Removed special case for frameless PuTTYNG window. 2012-02-12 22:57:36 -06:00
rmcardle
9d97c86704 Add additional file extensions to .gitignore. 2012-02-12 22:55:45 -06:00
rmcardle
8bbb717ac1 Merge branch 'develop' into feature/puttyng
Conflicts:
	mRemoteV1/Language/Language.resx
2012-02-12 22:23:48 -06:00
rmcardle
43f1c1fdce Corrected two variable declarations. 2012-01-27 12:14:37 -06:00
rmcardle
ec6cb2218f Cleaned up Config.Connections.Save. Changed saving to an XML file to write to a temp file first and then rename it. 2012-01-26 23:07:45 -06:00
rmcardle
b382c8556f Added saving the most recent ten backups of the connection file. 2012-01-26 23:06:10 -06:00
rmcardle
427464bca5 Fixed typo. 2012-01-25 12:41:16 -06:00
rmcardle
5629acba85 Fix issue MR-78 - Renaming Connections 2012-01-23 00:00:57 -06:00
rmcardle
55caaefe88 Changed to always log error messages to the log file. 2012-01-22 23:31:06 -06:00
rmcardle
1ce99d89b3 Improved error reporting when loading connection files. 2012-01-22 23:30:37 -06:00
rmcardle
ad64e7f7f3 Fix issue MR-79 - MoveUp/Down item doesn't work + Sort button broken. Improved refreshing of tree control when making changes. Cleaned up some other code in Tree.Node.vb. 2012-01-22 23:16:53 -06:00
rmcardle
8d857867f2 Improved error handling when loading connection files. Fixed bugs with creating a new connection file. Refactored Config.Connections.Load.AddNodeFromXml. 2012-01-22 22:56:23 -06:00
rmcardle
8211a730d2 Update copyright year to 2012. 2012-01-22 21:00:41 -06:00
rmcardle
4d4fd79ce1 Move two resource strings from Resources.resx to Language.resx. 2012-01-22 20:58:47 -06:00
rmcardle
c155ac234e Adjusted Options dialog to allow new translations to fit better. 2012-01-22 20:55:08 -06:00
rmcardle
0d71be34f2 Cleaned up English, French, German and Polish translations. 2012-01-22 20:54:31 -06:00
rmcardle
b5295dc98d Integrate Dutch, Spanish, Russian, and Ukranian translations. 2012-01-22 20:53:59 -06:00
rmcardle
864bfd912e Remove duplicate entries from Language.en-US.resx. 2012-01-22 20:52:06 -06:00
rmcardle
a20606888e Add detection of PuTTYNG. 2012-01-14 23:49:06 -06:00
rmcardle
80791ff642 Improved focus handling. Cleaned up App.Native.vb. 2012-01-14 22:47:40 -06:00
rmcardle
00db5c4dc7 Fix merge of two language strings. 2012-01-14 17:47:28 -06:00
rmcardle
701933cfb5 Merge branch 'develop' into feature/puttyng 2012-01-14 17:41:47 -06:00
rmcardle
13a19fc9eb Clean up code in UI.Window.Connection.WndProc. 2012-01-10 00:22:44 -06:00
rmcardle
be8ed0f263 Fix focus issue with RDP connections when changing tabs. Show changes live as connection tabs are being dragged around to change their order. 2012-01-10 00:18:55 -06:00
rmcardle
435e5eb9a8 Focus fixes for PuTTYNG. 2012-01-09 01:24:49 -06:00
rmcardle
b539c34cf6 Fix typo in CHANGELOG.TXT. 2011-12-28 20:38:44 -06:00
rmcardle
2cd27114d6 Use InvariantCulture instead of en-US when serializing data. Fixes issues MR-77 and MR-93. 2011-12-28 20:37:26 -06:00
rmcardle
eff877169d Change version number to 1.70. 2011-12-28 20:10:00 -06:00
rmcardle
4474b84dac Add *.orig to .gitignore. 2011-12-28 20:07:37 -06:00
rmcardle
175d955ef8 Update PuTTY to 0.62. 2011-12-28 20:06:42 -06:00
rmcardle
d23fd3fc1f Fix merge error. 2011-12-28 20:02:40 -06:00
rmcardle
82d56f13fc Merge branch 'master' into develop
Conflicts:
	CHANGELOG.TXT
	Installer/mRemote.nsi
	mRemoteV1/App/App.Runtime.vb
	mRemoteV1/Config/Config.Connections.Load.vb
	mRemoteV1/My Project/Resources.Designer.vb
	mRemoteV1/My Project/Settings.Designer.vb
2011-12-28 19:59:06 -06:00
rmcardle
cb224a352a Add support for PuTTYNG. 2011-12-08 01:15:21 -06:00
rmcardle
f249505d84 Merge branch 'release/1.69' into develop
Conflicts:
	CHANGELOG.TXT
	mRemoteV1/Forms/frmOptions.vb
	mRemoteV1/My Project/AssemblyInfo.vb
	mRemoteV1/My Project/Resources.Designer.vb
	mRemoteV1/My Project/Resources.resx
2011-12-05 00:59:32 -06:00
rmcardle
6792737f25 Merge branch 'release/1.68' into develop
Conflicts:
	CHANGELOG.TXT
	mRemoteV1/App/App.Runtime.vb
	mRemoteV1/My Project/AssemblyInfo.vb
2011-12-05 00:48:55 -06:00
Riley McArdle
1a26a6a145 Renamed translation files from Resources.xx.resx to Language.xx.resx. Refactored string resources from My.Resources to My.Language. Moved neutral (en) string resources to Language.resx. 2011-06-12 12:39:55 -05:00
Riley McArdle
5f3449876e Removed image references from resx for Polish translation. 2011-06-12 11:29:12 -05:00
Riley McArdle
d757443e38 Hide the panel tabs if only one panel is open. 2011-06-12 02:02:34 -05:00
Riley McArdle
f8fe2c9760 Fixed missing link between chkUseOnlyErrorsAndInfosPanel and CheckedChanged event handler. 2011-06-11 21:10:25 -05:00
Riley McArdle
a24728eebf Added partial Polish translation. 2011-06-10 22:45:07 -05:00
Riley McArdle
06bdb264bc Remove CHANGELOG.TXT from project file. 2011-06-10 22:42:47 -05:00
Riley McArdle
7a2c18804b Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable. 2011-06-10 21:54:34 -05:00
Riley McArdle
ac797aaa8e Updated EstimatedSize in installer. 2011-06-10 21:52:46 -05:00
Riley McArdle
c530ea300f Moved CHANGELOG.TXT. 2011-06-10 21:51:57 -05:00
Riley McArdle
245282bd06 Added compatibility check for "Use FIPS compliant algorithms" security setting. Improved reporting of errors when encrypting and decrypting connection files. 2011-06-10 20:57:31 -05:00
Riley McArdle
ab1930e972 Changed neutral language to English. 2011-06-06 18:33:54 -05:00
Riley McArdle
13ba0b2802 Code cleanup. 2011-06-06 17:49:55 -05:00
Riley McArdle
ee94b65fb0 Code cleanup. 2011-06-06 16:10:09 -05:00
Riley McArdle
cf16606348 Merge branch 'release/1.67' into develop 2011-06-05 12:50:06 -05:00
Riley McArdle
5b57f46d99 Hide unimplemented File->Import/Export Folder menu item. 2011-06-05 12:30:34 -05:00
Riley McArdle
0436a6490e Fixed some exception handling. 2011-06-05 02:48:26 -05:00
Riley McArdle
b3ee2633a8 Merge branch 'feature/sql' 2011-06-05 02:02:07 -05:00
Riley McArdle
036b90370f Code cleanup. 2011-06-05 01:54:47 -05:00
Riley McArdle
04dbfb2bf4 Fix ThreadStateException. 2011-06-05 00:30:04 -05:00
Riley McArdle
bfb137c442 Removed Spanlink related code. 2011-06-04 23:08:34 -05:00
Riley McArdle
5c2059c16f Code cleanup. 2011-06-04 21:31:14 -05:00
Riley McArdle
52694a1c4c Changed header, removed footer, and added command line to the log file. 2011-06-04 19:20:08 -05:00
Riley McArdle
961eb0b92c Removed unused data sources from project. 2011-06-04 19:12:55 -05:00
Riley McArdle
cbf74e5432 Added code to verify database version and upgrade database from 2.2 (mRemoteNG 1.66 or earlier) to 2.3 (mRemoteNG 1.67). 2011-06-04 19:07:37 -05:00
Riley McArdle
760b9b5434 Enable creation of PDB debug symbol files for release builds. 2011-06-04 02:00:52 -05:00
Riley McArdle
d344e5ad16 Fixed bug 45 - Changing some settings in the config file may not save. 2011-06-03 22:00:30 -05:00
Riley McArdle
3247f9a487 Refactored App.Runtime.cL and Tree.Node.CloneNode(). 2011-06-03 21:58:08 -05:00
Riley McArdle
33a140ed60 Fixed Inherit All not affecting Enable Font Smoothing and Enable Desktop Composition. 2011-06-03 12:29:08 -05:00
Riley McArdle
0bc3cdb111 Refactored App.Runtime.ctL and UI.Window.Tree.AddFolder(). 2011-06-03 12:03:09 -05:00
Riley McArdle
127e7cce2e Only try to load 2.3 settings from SQL if the database is version 2.3. 2011-06-02 12:26:46 -05:00
Riley McArdle
db428989b1 Fixed ShowUpdatesTab to show the correct tab. 2011-06-02 12:10:08 -05:00
Riley McArdle
4c33adfee7 Added version and culture information to log on startup. 2011-06-02 12:06:09 -05:00
Riley McArdle
3876099d56 Fixed tab order of controls in Options dialog. 2011-06-01 18:41:53 -05:00
110 changed files with 29979 additions and 12782 deletions

4
.gitignore vendored
View File

@@ -20,3 +20,7 @@ _Re[Ss]harper.*
_UpgradeReport_Files/
Backup/
UpgradeLog.XML
*.orig
*.sdf
*.opensdf
*.ipch

View File

@@ -1,6 +1,98 @@
1.70 (2013-03-07):
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 issue MR-355 - Moving sub folders to top level causes property loss
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.
The panel tabs are now hidden if only one panel is open.
Fix focus issue with RDP connections when changing tabs.
Show changes live as connection tabs are being dragged around to change their order.
Updated PuTTY to version 0.62.
Improved error handling when loading connection files.
Fixed bugs with creating a new connection file.
A backup of the connection file is saved when it is loaded. The most recent ten backup copies are kept.
Added the option to use a smart card for RD Gateway credentials.
Made the use of CredSSP for RDP connections optional.
Updated VncSharpNG to version 1.2.4440.36644.
Added debugging symbols for VncSharpNG.
1.69 (2011-12-09):
Fixed issue #66 - Fresh Install Fails to Create Config
Fixed issue #67 - Connection file gets erased
Fixed issue #69 - Connection file gets erased
Fixed issue #72 - scrollbars added to RDP window after minimize/restore of mRemoteNG
Disabled automatic updates in the portable edition
Fixed file name in window title changing when exporting an XML file.

View File

@@ -1,6 +1,8 @@
Contributors
============
Jason Barbier
Wiktor Beryt
Lionel Caignec
Felix Deimel
Holger Henke
@@ -19,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
===================
@@ -79,8 +86,8 @@ MiniTabControl 1.0
Copyright <20> 2008 Felix Deimel
http://www.appjuice.org/
PuTTY 0.60
Copyright <20> 1997-2007 Simon Tatham
PuTTY 0.62
Copyright <20> 1997-2011 Simon Tatham
MIT License
http://www.chiark.greenend.org.uk/~sgtatham/putty/

Binary file not shown.

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

BIN
Tools/SortRESX.exe Normal file

Binary file not shown.

50
Update Languages.cmd Normal file
View File

@@ -0,0 +1,50 @@
@echo off
set ZIP_FILE="%~dp0\..\mremoteng.zip"
set TEMP_FOLDER="%TEMP%\Translations.tmp"
set SORTRESX="%~dp0\Tools\SortRESX.exe"
set RAR="%ProgramFiles%\WinRAR\WinRAR.exe"
call :expand %ZIP_FILE%
goto :skip
:expand
set ZIP_FILE="%~f1"
exit /b
:skip
echo.
echo This script updates the language files with new translations from Crowdin
echo.
echo Download the latest translation file from Crowdin and place it here:
echo.
echo %ZIP_FILE%
echo.
choice /m "Would you like to continue?"
echo.
mkdir %TEMP_FOLDER%
%RAR% x -o+ %ZIP_FILE% *.* %TEMP_FOLDER%
%SORTRESX% %TEMP_FOLDER%\ar\Language.ar.resx "%~dp0\mRemoteV1\Language\Language.ar.resx"
%SORTRESX% %TEMP_FOLDER%\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%
echo Done.
echo.
pause

View File

@@ -3,18 +3,23 @@ Imports mRemoteNG.App.Runtime
Namespace App
Public Class Announcement
#Region "Private Properties"
Private wCl As WebClient
Private wPr As WebProxy
Implements IDisposable
#Region "Private Variables"
Private webClient As WebClient
Private webProxy As WebProxy
#End Region
Private _curAI As Info
Public ReadOnly Property curAI() As Info
#Region "Public Properties"
Private _currentAnnouncementInfo As Info
Public ReadOnly Property CurrentAnnouncementInfo() As Info
Get
Return _curAI
Return _currentAnnouncementInfo
End Get
End Property
#End Region
#Region "Public Methods"
Public Function IsAnnouncementAvailable() As Boolean
Try
Dim aI As Info = GetAnnouncementInfo()
@@ -29,7 +34,7 @@ Namespace App
Return False
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsAnnouncementAvailable failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "IsAnnouncementAvailable failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -57,7 +62,7 @@ Namespace App
strU = strAnnouncement.Substring(strAnnouncement.IndexOf("URL: ") + 5, strAnnouncement.IndexOf(vbNewLine) - 5)
aI.URL = strU
aI.Url = strU
Catch ex As Exception
aI.InfoOk = False
End Try
@@ -65,10 +70,10 @@ Namespace App
aI.InfoOk = False
End If
_curAI = aI
_currentAnnouncementInfo = aI
Return aI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting Announcement info failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Getting Announcement info failed" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
@@ -80,37 +85,35 @@ Namespace App
Dim strTemp As String
Try
strTemp = wCl.DownloadString(App.Info.General.URLAnnouncement)
strTemp = webClient.DownloadString(App.Info.General.URLAnnouncement)
Catch ex As Exception
strTemp = ""
End Try
Return strTemp
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetAnnouncementFile failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "GetAnnouncementFile failed" & vbNewLine & ex.Message, True)
Return ""
End Try
End Function
Private Sub CreateWebClient()
wCl = New WebClient()
webClient = New WebClient()
If My.Settings.UpdateUseProxy Then
wPr = New WebProxy(My.Settings.UpdateProxyAddress, My.Settings.UpdateProxyPort)
webProxy = New WebProxy(My.Settings.UpdateProxyAddress, My.Settings.UpdateProxyPort)
If My.Settings.UpdateProxyUseAuthentication Then
Dim cred As ICredentials
cred = New NetworkCredential(My.Settings.UpdateProxyAuthUser, Security.Crypt.Decrypt(My.Settings.UpdateProxyAuthPass, App.Info.General.EncryptionKey))
wPr.Credentials = cred
webProxy.Credentials = cred
End If
wCl.Proxy = wPr
webClient.Proxy = webProxy
End If
End Sub
#End Region
Public Class Info
Private _Name As String
@@ -123,17 +126,16 @@ Namespace App
End Set
End Property
Private _URL As String
Public Property URL() As String
Private _url As String
Public Property Url() As String
Get
Return _URL
Return _url
End Get
Set(ByVal value As String)
_URL = value
_url = value
End Set
End Property
Private _InfoOk As Boolean
Public Property InfoOk() As Boolean
Get
@@ -144,5 +146,36 @@ Namespace App
End Set
End Property
End Class
#Region "IDisposable Support"
Private disposedValue As Boolean ' To detect redundant calls
' IDisposable
Protected Overridable Sub Dispose(disposing As Boolean)
If Not Me.disposedValue Then
If disposing Then
If webClient IsNot Nothing Then webClient.Dispose()
End If
' TODO: free unmanaged resources (unmanaged objects) and override Finalize() below.
' TODO: set large fields to null.
End If
Me.disposedValue = True
End Sub
' TODO: override Finalize() only if Dispose(ByVal disposing As Boolean) above has code to free unmanaged resources.
'Protected Overrides Sub Finalize()
' ' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above.
' Dispose(False)
' MyBase.Finalize()
'End Sub
' This code added by Visual Basic to correctly implement the disposable pattern.
Public Sub Dispose() Implements IDisposable.Dispose
' Do not change this code. Put cleanup code in Dispose(ByVal disposing As Boolean) above.
Dispose(True)
GC.SuppressFinalize(Me)
End Sub
#End Region
End Class
End Namespace

View File

@@ -1,8 +0,0 @@
Namespace App
Namespace Editions
Public Class Spanlink
Public Shared Enabled As Boolean = True
End Class
End Namespace
End Namespace

View File

@@ -36,7 +36,7 @@ Namespace App
Public Shared ReadOnly DefaultConnectionsPath As String = App.Info.Settings.SettingsPath
Public Shared ReadOnly DefaultConnectionsFile As String = "confCons.xml"
Public Shared ReadOnly DefaultConnectionsFileNew As String = "confConsNew.xml"
Public Shared ReadOnly ConnectionFileVersion As Double = 2.3
Public Shared ReadOnly ConnectionFileVersion As Double = 2.4
End Class
Public Class Credentials

View File

@@ -2,148 +2,198 @@
Namespace App
Public Class Native
#Region "Dll Imports"
<DllImport("user32.dll", EntryPoint:="GetWindowThreadProcessId", SetLastError:=True, CharSet:=CharSet.Unicode, ExactSpelling:=True, CallingConvention:=CallingConvention.StdCall)> _
Public Shared Function GetWindowThreadProcessId(ByVal hWnd As Long, ByVal lpdwProcessId As Long) As Long
End Function
Private Sub New()
' Fix Warning 292 CA1053 : Microsoft.Design : Because type 'Native' contains only 'static' ('Shared' in Visual Basic) members, add a default private constructor to prevent the compiler from adding a default public constructor.
End Sub
<DllImport("user32.dll", SetLastError:=True)> _
Public Shared Function FindWindow(ByVal lpClassName As String, ByVal lpWindowName As String) As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True)> _
Public Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Long
End Function
<DllImport("user32.dll", EntryPoint:="GetWindowLongA", SetLastError:=True)> _
Public Shared Function GetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer) As Long
End Function
<DllImport("user32.dll")> _
Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True)> _
Public Shared Function SetWindowPos(ByVal hWnd As IntPtr, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
End Function
<DllImport("user32.dll", SetLastError:=True)> _
Public Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal repaint As Boolean) As Boolean
End Function
<DllImport("user32.dll", EntryPoint:="PostMessageA", SetLastError:=True)> _
Public Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer) As Boolean
End Function
<DllImport("user32")> _
Public Shared Function ShowWindow(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Integer
End Function
<DllImport("user32.dll")> _
Public Shared Function BringWindowToTop(ByVal hWnd As IntPtr) As Boolean
End Function
<DllImport("user32.dll")> _
Public Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean
End Function
<DllImport("user32.dll")> _
Public Shared Function GetForegroundWindow() As IntPtr
End Function
<DllImport("user32.dll", EntryPoint:="GetWindowTextLengthA")> _
Public Shared Function GetWindowTextLength(ByVal hWnd As IntPtr) As Long
End Function
<DllImport("user32.dll")> _
Public Shared Function IsIconic(ByVal hWnd As IntPtr) As Integer
End Function
<DllImport("user32.dll")> _
Public Shared Function GetSystemMenu(ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
End Function
<DllImport("user32.dll")> _
#Region "Functions"
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function AppendMenu(ByVal hMenu As IntPtr, ByVal uFlags As Int32, ByVal uIDNewItem As IntPtr, ByVal lpNewItem As String) As Boolean
End Function
<DllImport("user32")> _
Public Shared Function InsertMenu(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer, ByVal uIDNewItem As IntPtr, ByVal lpNewItem As String) As Boolean
End Function
<DllImport("user32")> _
Public Shared Function SetMenuItemBitmaps(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer, ByVal hBitmapUnchecked As IntPtr, ByVal hBitmapChecked As IntPtr) As Boolean
End Function
<DllImport("user32")> _
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function CreatePopupMenu() As IntPtr
End Function
<DllImport("user32")> _
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function FindWindowEx(ByVal parentHandle As IntPtr, ByVal childAfter As IntPtr, ByVal lclassName As String, ByVal windowTitle As String) As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function GetForegroundWindow() As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function GetSystemMenu(ByVal hWnd As IntPtr, ByVal bRevert As Boolean) As IntPtr
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function InsertMenu(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer, ByVal uIDNewItem As IntPtr, ByVal lpNewItem As String) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function IsIconic(ByVal hWnd As IntPtr) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function MoveWindow(ByVal hWnd As IntPtr, ByVal x As Integer, ByVal y As Integer, ByVal cx As Integer, ByVal cy As Integer, ByVal repaint As Boolean) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal Msg As UInteger, ByVal wParam As Integer, ByVal lParam As Integer) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SendMessage(ByVal hWnd As IntPtr, ByVal msg As Integer, ByVal wparam As Integer, ByVal lparam As Integer) As Integer
End Function
<DllImport("user32")> _
Public Shared Function MapVirtualKey(ByVal wCode As Integer, ByVal wMapType As Integer) As Integer
End Function
<DllImport("User32")> _
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SetClipboardViewer(ByVal hWndNewViewer As IntPtr) As IntPtr
End Function
<DllImport("User32")> _
Public Shared Function SendMessage(ByVal Handle As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean
End Function
<DllImport("user32")> _
Public Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SetMenuItemBitmaps(ByVal hMenu As IntPtr, ByVal uPosition As Integer, ByVal uFlags As Integer, ByVal hBitmapUnchecked As IntPtr, ByVal hBitmapChecked As IntPtr) As Boolean
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SetParent(ByVal hWndChild As IntPtr, ByVal hWndNewParent As IntPtr) As Long
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function ShowWindow(ByVal hWnd As IntPtr, ByVal nCmdShow As Integer) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True, CharSet:=CharSet.Auto)> _
Public Shared Function WindowFromPoint(ByVal point As Point) As IntPtr
End Function
#End Region
#Region "Structures"
<StructLayout(LayoutKind.Sequential)> _
Public Structure WINDOWPOS
Public hwnd As IntPtr
Public hwndInsertAfter As IntPtr
Public x As Integer
Public y As Integer
Public cx As Integer
Public cy As Integer
Public flags As Integer
End Structure
#End Region
#Region "Helpers"
Public Shared Function MAKELONG(ByRef wLow As Int32, ByRef wHigh As Int32) As Int32
Return wLow Or wHigh << 16
End Function
Public Shared Function MAKELPARAM(ByRef wLow As Int32, ByRef wHigh As Int32) As Int32
Return MAKELONG(wLow, wHigh)
End Function
Public Shared Function LOWORD(ByRef value As Int32) As Int32
Return value And &HFFFF
End Function
Public Shared Function LOWORD(ByRef value As IntPtr) As Int32
Return LOWORD(value.ToInt32)
End Function
Public Shared Function HIWORD(ByRef value As Int32) As Int32
Return value >> 16
End Function
Public Shared Function HIWORD(ByRef value As IntPtr) As Int32
Return HIWORD(value.ToInt32)
End Function
#End Region
#Region "Constants"
Public Const SWP_NOOWNERZORDER As Integer = 512
Public Const SWP_NOREDRAW As Integer = 8
Public Const SWP_NOZORDER As Integer = 4
Public Const SWP_SHOWWINDOW As Integer = 64
Public Const WS_EX_MDICHILD As Integer = 64
Public Const SWP_FRAMECHANGED As Integer = 32
Public Const SWP_NOACTIVATE As Integer = 16
Public Const SWP_ASYNCWINDOWPOS As Integer = 16384
Public Const SWP_NOMOVE As Integer = 2
Public Const SWP_NOSIZE As Integer = 1
' GetWindowLong
Public Const GWL_STYLE As Integer = (-16)
Public Const WS_VISIBLE As Integer = 268435456
Public Const WM_CLOSE As Integer = 16
Public Const WS_CHILD As Integer = 1073741824
Public Const WS_MAXIMIZE As Integer = 16777216
' AppendMenu / ModifyMenu / DeleteMenu / RemoveMenu
Public Const MF_BYCOMMAND As Integer = &H0
Public Const MF_BYPOSITION As Integer = &H400
Public Const MF_STRING As Integer = &H0
Public Const MF_POPUP As Integer = &H10
Public Const MF_SEPARATOR As Integer = &H800
' WM_LBUTTONDOWN / WM_LBUTTONUP
Public Const MK_LBUTTON As Integer = &H1
' ShowWindow
Public Const SW_SHOWMAXIMIZED As Integer = 3
Public Const SW_RESTORE As Integer = 9
Public Const MF_STRING As Integer = &H0
Public Const MF_SEPARATOR As Integer = &H800&
Public Const MF_BYCOMMAND As Integer = &H0
Public Const MF_BYPOSITION As Integer = &H400
Public Const MF_POPUP As Integer = &H10
' SetWindowPos / WM_WINDOWPOSCHANGING / WM_WINDOWPOSCHANGED
Public Const SWP_NOSIZE As Integer = &H1
Public Const SWP_NOMOVE As Integer = &H2
Public Const SWP_NOZORDER As Integer = &H4
Public Const SWP_NOREDRAW As Integer = &H8
Public Const SWP_NOACTIVATE As Integer = &H10
Public Const SWP_DRAWFRAME As Integer = &H20
Public Const SWP_FRAMECHANGED As Integer = &H20
Public Const SWP_SHOWWINDOW As Integer = &H40
Public Const SWP_HIDEWINDOW As Integer = &H80
Public Const SWP_NOCOPYBITS As Integer = &H100
Public Const SWP_NOOWNERZORDER As Integer = &H200
Public Const SWP_NOSENDCHANGING As Integer = &H400
Public Const SWP_NOCLIENTSIZE As Integer = &H800
Public Const SWP_NOCLIENTMOVE As Integer = &H1000
Public Const SWP_DEFERERASE As Integer = &H2000
Public Const SWP_ASYNCWINDOWPOS As Integer = &H4000
Public Const SWP_STATECHANGED As Integer = &H8000
' WM_ACTIVATE
Public Const WA_INACTIVE As Integer = &H0
Public Const WA_ACTIVE As Integer = &H1
Public Const WA_CLICKACTIVE As Integer = &H2
' Window Messages
Public Const WM_CREATE As Integer = &H1
Public Const WM_DESTROY As Integer = &H2
Public Const WM_ACTIVATE As Integer = &H6
Public Const WM_GETTEXT As Integer = &HD
Public Const WM_CLOSE As Integer = &H10
Public Const WM_ACTIVATEAPP As Integer = &H1C
Public Const WM_MOUSEACTIVATE As Integer = &H21
Public Const WM_WINDOWPOSCHANGED As Integer = &H47
Public Const WM_KEYDOWN As Integer = &H100
Public Const WM_KEYUP As Integer = &H101
Public Const WM_SYSCOMMAND As Integer = &H112
Public Const WM_MOUSEMOVE As Integer = &H200
Public Const WM_LBUTTONDOWN As Integer = &H201
Public Const WM_LBUTTONUP As Integer = &H202
Public Const WM_RBUTTONDOWN As Integer = &H204
Public Const WM_RBUTTONUP As Integer = &H205
Public Const WM_MBUTTONDOWN As Integer = &H207
Public Const WM_MBUTTONUP As Integer = &H208
Public Const WM_XBUTTONDOWN As Integer = &H20B
Public Const WM_XBUTTONUP As Integer = &H20C
Public Const WM_PARENTNOTIFY As Integer = &H210
Public Const WM_ENTERSIZEMOVE As Integer = &H231
Public Const WM_EXITSIZEMOVE As Integer = &H232
Public Const WM_DRAWCLIPBOARD As Integer = &H308
Public Const WM_CHANGECBCHAIN As Integer = &H30D
Public Const WM_KEYDOWN As Integer = &H100
Public Const WM_KEYUP As Integer = &H101
' Window Styles
Public Const WS_MAXIMIZE As Integer = &H1000000
Public Const WS_VISIBLE As Integer = &H10000000
Public Const WS_CHILD As Integer = &H40000000
Public Const WS_EX_MDICHILD As Integer = &H40
' Virtual Key Codes
Public Const VK_CONTROL As Integer = &H11
Public Const VK_C As Integer = &H67
Public Const WM_DRAWCLIPBOARD As Integer = 776
Public Const WM_CHANGECBCHAIN As Integer = 781
#End Region
End Class
End Namespace

File diff suppressed because it is too large Load Diff

View File

@@ -55,7 +55,7 @@
Public Shared ReadOnly Property CultureNativeNames() As List(Of String)
Get
Dim ValueList As List(Of String) = New List(Of String)
Dim ValueList As New List(Of String)
For Each Value As String In _Instance.Values
ValueList.Add(Value)
Next

View File

@@ -27,10 +27,8 @@ Namespace App
Dim uI As Info = GetUpdateInfo()
Return uI.InfoOk
uI = Nothing
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsProxyOK (App.Update) failed" & vbNewLine & ex.Message, False)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "IsProxyOK (App.Update) failed" & vbNewLine & ex.Message, False)
Return False
End Try
End Function
@@ -49,7 +47,7 @@ Namespace App
Return False
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsUpdateAvailable failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "IsUpdateAvailable failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -99,7 +97,7 @@ Namespace App
Dim strImgURLLink As String = strUpdate.Substring(strUpdate.IndexOf("imgURLLink: ") + 12, strUpdate.IndexOf(vbNewLine) - 12)
uI.ImageURLLink = strImgURLLink
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Update Image Info could not be read." & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Update Image Info could not be read." & vbNewLine & ex.Message, True)
End Try
Catch ex As Exception
uI.InfoOk = False
@@ -111,7 +109,7 @@ Namespace App
_curUI = uI
Return uI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting update info failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Getting update info failed" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
@@ -125,10 +123,10 @@ Namespace App
_curUI.UpdateLocation = My.Computer.FileSystem.SpecialDirectories.Temp & "\mRemote_Update.exe"
wCl.DownloadFileAsync(New Uri(dURL), _curUI.UpdateLocation)
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Update download failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Update download failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -166,7 +164,7 @@ Namespace App
Return strTemp
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetUpdateFile failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "GetUpdateFile failed" & vbNewLine & ex.Message, True)
Return ""
End Try
End Function
@@ -186,7 +184,7 @@ Namespace App
RaiseEvent DownloadCompleted(sender, e, False)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "DLCompleted failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "DLCompleted failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -63,6 +63,5 @@
End If
End Sub
End Class
End Namespace

View File

@@ -182,7 +182,7 @@ Namespace Config
#Region "SQL"
Private Sub LoadFromSQL()
Try
App.Runtime.ConnectionsFileLoaded = False
App.Runtime.IsConnectionsFileLoaded = False
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
@@ -206,8 +206,7 @@ Namespace Config
sqlRd.Read()
End If
Dim enCulture As CultureInfo = New CultureInfo("en-US")
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), enCulture)
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), CultureInfo.InvariantCulture)
Dim rootNode As TreeNode
rootNode = New TreeNode(sqlRd.Item("Name"))
@@ -238,7 +237,7 @@ Namespace Config
' SECTION 3. Populate the TreeView with the DOM nodes.
AddNodesFromSQL(rootNode)
'AddNodeFromXML(xDom.DocumentElement, Me._RootTreeNode)
'AddNodeFromXml(xDom.DocumentElement, Me._RootTreeNode)
rootNode.Expand()
@@ -264,12 +263,12 @@ Namespace Config
AddNodeToTree(rootNode)
SetSelectedNode(selNode)
App.Runtime.ConnectionsFileLoaded = True
App.Runtime.IsConnectionsFileLoaded = True
'App.Runtime.Windows.treeForm.InitialRefresh()
sqlCon.Close()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strLoadFromSqlFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strLoadFromSqlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -315,7 +314,7 @@ Namespace Config
If Tree.Node.GetNodeTypeFromString(sqlRd.Item("Type")) = Tree.Node.Type.Connection Then
Dim conI As Connection.Info = GetConnectionInfoFromSQL()
conI.TreeNode = tNode
'conI.Parent = prevCont 'NEW
'conI.Parent = _previousContainer 'NEW
Me._ConnectionList.Add(conI)
@@ -356,7 +355,7 @@ Namespace Config
' contI.Parent = tNode.Parent.Tag
' End If
'End If
'prevCont = contI 'NEW
'_previousContainer = contI 'NEW
contI.TreeNode = tNode
contI.Name = sqlRd.Item("Name")
@@ -415,7 +414,7 @@ Namespace Config
'AddNodesFromSQL(tNode)
End While
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strAddNodesFromSqlFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strAddNodesFromSqlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -560,6 +559,11 @@ Namespace Config
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
End If
If confVersion >= 2.4 Then
conI.UseCredSsp = .Item("UseCredSsp")
conI.Inherit.UseCredSsp = .Item("InheritUseCredSsp")
End If
If SQLUpdate = True Then
conI.PleaseConnect = .Item("Connected")
End If
@@ -567,7 +571,7 @@ Namespace Config
Return conI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strGetConnectionInfoFromSqlFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strGetConnectionInfoFromSqlFailed & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -624,7 +628,7 @@ Namespace Config
Private Sub LoadFromXML(Optional ByVal cons As String = "")
Try
App.Runtime.ConnectionsFileLoaded = False
App.Runtime.IsConnectionsFileLoaded = False
' SECTION 1. Create a DOM Document and load the XML data into it.
Me.xDom = New XmlDocument()
@@ -635,20 +639,21 @@ Namespace Config
End If
If xDom.DocumentElement.HasAttribute("ConfVersion") Then
Dim enCulture As System.Globalization.CultureInfo = New CultureInfo("en-US")
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value, enCulture)
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value.Replace(",", "."), CultureInfo.InvariantCulture)
Else
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strOldConffile)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strOldConffile)
End If
' SECTION 2. Initialize the treeview control.
Dim rootNode As TreeNode
Try
rootNode = New TreeNode(xDom.DocumentElement.Attributes("Name").Value)
Catch ex As Exception
Dim rootNodeName As String = ""
If xDom.DocumentElement.HasAttribute("Name") Then rootNodeName = xDom.DocumentElement.Attributes("Name").Value.Trim()
If Not String.IsNullOrEmpty(rootNodeName) Then
rootNode = New TreeNode(rootNodeName)
Else
rootNode = New TreeNode(xDom.DocumentElement.Name)
End Try
End If
Dim rInfo As New Root.Info(Root.Info.RootType.Connection)
rInfo.Name = rootNode.Text
@@ -661,7 +666,7 @@ Namespace Config
If Authenticate(xDom.DocumentElement.Attributes("Protected").Value, False, rInfo) = False Then
My.Settings.LoadConsFromCustomLocation = False
My.Settings.CustomConsPath = ""
rootNode.Remove()
_RootTreeNode.Remove()
Exit Sub
End If
End If
@@ -676,7 +681,7 @@ Namespace Config
End If
If Me._Import = True And imp = False Then
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strCannotImportNormalSessionFile)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strCannotImportNormalSessionFile)
Exit Sub
End If
@@ -711,88 +716,89 @@ Namespace Config
Me._RootTreeNode.EnsureVisible()
App.Runtime.ConnectionsFileLoaded = True
App.Runtime.IsConnectionsFileLoaded = True
App.Runtime.Windows.treeForm.InitialRefresh()
Catch ex As Exception
App.Runtime.ConnectionsFileLoaded = False
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strLoadFromXmlFailed & vbNewLine & ex.Message, True)
App.Runtime.IsConnectionsFileLoaded = False
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strLoadFromXmlFailed & vbNewLine & ex.Message & vbNewLine & ex.StackTrace, True)
Throw
End Try
End Sub
Private prevCont As Container.Info
Private Sub AddNodeFromXML(ByRef inXmlNode As XmlNode, ByRef inTreeNode As TreeNode)
Private _previousContainer As Container.Info
Private Sub AddNodeFromXml(ByRef parentXmlNode As XmlNode, ByRef parentTreeNode As TreeNode)
Try
Dim i As Integer
Dim xNode As XmlNode
Dim xNodeList As XmlNodeList
Dim tNode As TreeNode
' Loop through the XML nodes until the leaf is reached.
' Add the nodes to the TreeView during the looping process.
If inXmlNode.HasChildNodes() Then
xNodeList = inXmlNode.ChildNodes
For i = 0 To xNodeList.Count - 1
xNode = xNodeList(i)
inTreeNode.Nodes.Add(New TreeNode(xNode.Attributes("Name").Value))
tNode = inTreeNode.Nodes(i)
If parentXmlNode.HasChildNodes() Then
For Each xmlNode As XmlNode In parentXmlNode.ChildNodes
Dim treeNode As TreeNode = New TreeNode(xmlNode.Attributes("Name").Value)
parentTreeNode.Nodes.Add(TreeNode)
If Tree.Node.GetNodeTypeFromString(xNode.Attributes("Type").Value) = Tree.Node.Type.Connection Then 'connection info
Dim conI As Connection.Info = GetConnectionInfoFromXml(xNode)
conI.TreeNode = tNode
conI.Parent = prevCont 'NEW
If Tree.Node.GetNodeTypeFromString(xmlNode.Attributes("Type").Value) = Tree.Node.Type.Connection Then 'connection info
Dim connectionInfo As Connection.Info = GetConnectionInfoFromXml(xmlNode)
connectionInfo.TreeNode = treeNode
connectionInfo.Parent = _previousContainer 'NEW
Me._ConnectionList.Add(conI)
ConnectionList.Add(connectionInfo)
tNode.Tag = conI
tNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
tNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
ElseIf Tree.Node.GetNodeTypeFromString(xNode.Attributes("Type").Value) = Tree.Node.Type.Container Then 'container info
Dim contI As New Container.Info
If tNode.Parent IsNot Nothing Then
If Tree.Node.GetNodeType(tNode.Parent) = Tree.Node.Type.Container Then
contI.Parent = tNode.Parent.Tag
treeNode.Tag = connectionInfo
treeNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
treeNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
ElseIf Tree.Node.GetNodeTypeFromString(xmlNode.Attributes("Type").Value) = Tree.Node.Type.Container Then 'container info
Dim containerInfo As New Container.Info
If treeNode.Parent IsNot Nothing Then
If Tree.Node.GetNodeType(treeNode.Parent) = Tree.Node.Type.Container Then
containerInfo.Parent = treeNode.Parent.Tag
End If
End If
prevCont = contI 'NEW
contI.TreeNode = tNode
_previousContainer = containerInfo 'NEW
containerInfo.TreeNode = treeNode
contI.Name = xNode.Attributes("Name").Value
containerInfo.Name = xmlNode.Attributes("Name").Value
If Me.confVersion > 0.7 Then '0.8
If xNode.Attributes("Expanded").Value = "True" Then
contI.IsExpanded = True
If confVersion >= 0.8 Then
If xmlNode.Attributes("Expanded").Value = "True" Then
containerInfo.IsExpanded = True
Else
contI.IsExpanded = False
containerInfo.IsExpanded = False
End If
End If
Dim conI As Connection.Info
If Me.confVersion > 0.8 Then '0.9
conI = GetConnectionInfoFromXml(xNode)
Dim connectionInfo As Connection.Info
If confVersion >= 0.9 Then
connectionInfo = GetConnectionInfoFromXml(xmlNode)
Else
conI = New Connection.Info
connectionInfo = New Connection.Info
End If
conI.Parent = contI
conI.IsContainer = True
contI.ConnectionInfo = conI
connectionInfo.Parent = containerInfo
connectionInfo.IsContainer = True
containerInfo.ConnectionInfo = connectionInfo
Me._ContainerList.Add(contI)
ContainerList.Add(containerInfo)
tNode.Tag = contI
tNode.ImageIndex = Images.Enums.TreeImage.Container
tNode.SelectedImageIndex = Images.Enums.TreeImage.Container
treeNode.Tag = containerInfo
treeNode.ImageIndex = Images.Enums.TreeImage.Container
treeNode.SelectedImageIndex = Images.Enums.TreeImage.Container
End If
AddNodeFromXML(xNode, tNode)
AddNodeFromXml(xmlNode, treeNode)
Next
Else
inTreeNode.Text = inXmlNode.Attributes("Name").Value.Trim
Dim nodeName As String = ""
Dim nameAttribute As XmlAttribute = parentXmlNode.Attributes("Name")
If Not IsNothing(nameAttribute) Then nodeName = nameAttribute.Value.Trim()
If Not String.IsNullOrEmpty(nodeName) Then
parentTreeNode.Text = nodeName
Else
parentTreeNode.Text = parentXmlNode.Name
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strAddNodeFromXmlFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strAddNodeFromXmlFailed & vbNewLine & ex.Message & ex.StackTrace, True)
Throw
End Try
End Sub
@@ -932,7 +938,7 @@ Namespace Config
conI.Inherit = New Connection.Info.Inheritance(conI, .Attributes("Inherit").Value)
conI.Icon = .Attributes("Icon").Value.Replace(".ico", "")
conI.Panel = My.Resources.strGeneral
conI.Panel = My.Language.strGeneral
End If
If Me.confVersion > 1.4 Then '1.5
@@ -1026,9 +1032,14 @@ Namespace Config
conI.Inherit.EnableFontSmoothing = .Attributes("InheritEnableFontSmoothing").Value
conI.Inherit.EnableDesktopComposition = .Attributes("InheritEnableDesktopComposition").Value
End If
If confVersion >= 2.4 Then
conI.UseCredSsp = .Attributes("UseCredSsp").Value
conI.Inherit.UseCredSsp = .Attributes("InheritUseCredSsp").Value
End If
End With
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Resources.strGetConnectionInfoFromXmlFailed, conI.Name, Me.ConnectionFileName, ex.Message), False)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strGetConnectionInfoFromXmlFailed, conI.Name, Me.ConnectionFileName, ex.Message), False)
End Try
Return conI
End Function

File diff suppressed because it is too large Load Diff

View File

@@ -84,11 +84,11 @@ Namespace Config
If My.Settings.UseCustomPuttyPath Then
Connection.Protocol.PuttyBase.PuttyPath = My.Settings.CustomPuttyPath
Else
Connection.Protocol.PuttyBase.PuttyPath = My.Application.Info.DirectoryPath & "\Putty.exe"
Connection.Protocol.PuttyBase.PuttyPath = My.Application.Info.DirectoryPath & "\PuTTYNG.exe"
End If
If My.Settings.ShowSystemTrayIcon Then
App.Runtime.SysTrayIcon = New Tools.Controls.SysTrayIcon()
App.Runtime.NotificationAreaIcon = New Tools.Controls.NotificationAreaIcon()
End If
If My.Settings.AutoSaveEveryMinutes > 0 Then
@@ -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
@@ -117,8 +121,8 @@ Namespace Config
With MainForm
ToolStripPanelFromString("top").Join(.tsQuickConnect, New Point(300, 0))
.tsQuickConnect.Visible = True
ToolStripPanelFromString("bottom").Join(.tsExtAppsToolbar, New Point(3, 0))
.tsExtAppsToolbar.Visible = False
ToolStripPanelFromString("bottom").Join(.tsExternalTools, New Point(3, 0))
.tsExternalTools.Visible = False
End With
End Sub
@@ -143,8 +147,8 @@ Namespace Config
Private Sub AddDynamicPanels()
With MainForm
ToolStripPanelFromString(My.Settings.ExtAppsTBParentDock).Join(.tsExtAppsToolbar, My.Settings.ExtAppsTBLocation)
.tsExtAppsToolbar.Visible = My.Settings.ExtAppsTBVisible
ToolStripPanelFromString(My.Settings.ExtAppsTBParentDock).Join(.tsExternalTools, My.Settings.ExtAppsTBLocation)
.tsExternalTools.Visible = My.Settings.ExtAppsTBVisible
End With
End Sub
@@ -210,7 +214,7 @@ Namespace Config
End If
For Each xEl As XmlElement In xDom.DocumentElement.ChildNodes
Dim extA As New Tools.ExternalApp
Dim extA As New Tools.ExternalTool
extA.DisplayName = xEl.Attributes("DisplayName").Value
extA.FileName = xEl.Attributes("FileName").Value
extA.Arguments = xEl.Attributes("Arguments").Value
@@ -223,14 +227,14 @@ Namespace Config
extA.TryIntegrate = xEl.Attributes("TryToIntegrate").Value
End If
ExtApps.Add(extA)
ExternalTools.Add(extA)
Next
MainForm.SwitchToolbarText(My.Settings.ExtAppsTBShowText)
MainForm.SwitchToolBarText(My.Settings.ExtAppsTBShowText)
xDom = Nothing
frmMain.AddExtAppsToToolbar()
frmMain.AddExternalToolsToToolBar()
End Sub
#End Region

View File

@@ -63,12 +63,12 @@ Namespace Config
Public Overrides Function GetPropertyValues(ByVal context As SettingsContext, ByVal props As SettingsPropertyCollection) As SettingsPropertyValueCollection
'Create new collection of values
Dim values As SettingsPropertyValueCollection = New SettingsPropertyValueCollection()
Dim values As New SettingsPropertyValueCollection()
'Iterate through the settings to be retrieved
For Each setting As SettingsProperty In props
Dim value As SettingsPropertyValue = New SettingsPropertyValue(setting)
Dim value As New SettingsPropertyValue(setting)
value.IsDirty = False
value.SerializedValue = GetValue(setting)
values.Add(value)

View File

@@ -1,32 +1,15 @@
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.IO
Imports mRemoteNG.Tools.WindowPlacement
Namespace Config
Namespace Settings
Public Class Save
#Region "Public Properties"
Private _MainForm As frmMain
Public Property MainForm() As frmMain
Get
Return Me._MainForm
End Get
Set(ByVal value As frmMain)
Me._MainForm = value
End Set
End Property
#End Region
#Region "Public Methods"
Public Sub New(ByVal MainForm As frmMain)
Me._MainForm = MainForm
End Sub
Public Sub Save()
Try
With Me._MainForm
Dim windowPlacement As New Tools.WindowPlacement(_MainForm)
With frmMain
Dim windowPlacement As New Tools.WindowPlacement(frmMain)
If .WindowState = FormWindowState.Minimized And windowPlacement.RestoreToMaximized Then
.Opacity = 0
.WindowState = FormWindowState.Maximized
@@ -49,11 +32,11 @@ Namespace Config
My.Settings.ResetToolbars = False
My.Settings.NoReconnect = False
My.Settings.ExtAppsTBLocation = .tsExtAppsToolbar.Location
If .tsExtAppsToolbar.Parent IsNot Nothing Then
My.Settings.ExtAppsTBParentDock = .tsExtAppsToolbar.Parent.Dock.ToString
My.Settings.ExtAppsTBLocation = .tsExternalTools.Location
If .tsExternalTools.Parent IsNot Nothing Then
My.Settings.ExtAppsTBParentDock = .tsExternalTools.Parent.Dock.ToString
End If
My.Settings.ExtAppsTBVisible = .tsExtAppsToolbar.Visible
My.Settings.ExtAppsTBVisible = .tsExternalTools.Visible
My.Settings.ExtAppsTBShowText = .cMenToolbarShowText.Checked
My.Settings.QuickyTBLocation = .tsQuickConnect.Location
@@ -62,12 +45,7 @@ Namespace Config
End If
My.Settings.QuickyTBVisible = .tsQuickConnect.Visible
If App.Editions.Spanlink.Enabled = False Then
My.Settings.ConDefaultPassword = Security.Crypt.Encrypt(My.Settings.ConDefaultPassword, App.Info.General.EncryptionKey)
Else
My.Settings.LoadConsFromCustomLocation = False
My.Settings.CustomConsPath = ""
End If
My.Settings.ConDefaultPassword = Security.Crypt.Encrypt(My.Settings.ConDefaultPassword, App.Info.General.EncryptionKey)
My.Settings.Save()
End With
@@ -75,7 +53,7 @@ Namespace Config
Me.SavePanelsToXML()
Me.SaveExternalAppsToXML()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Saving settings failed" & vbNewLine & vbNewLine & ex.Message, False)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Saving settings failed" & vbNewLine & vbNewLine & ex.Message, False)
End Try
End Sub
@@ -85,9 +63,9 @@ Namespace Config
Directory.CreateDirectory(App.Info.Settings.SettingsPath)
End If
MainForm.pnlDock.SaveAsXml(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName)
frmMain.pnlDock.SaveAsXml(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SavePanelsToXML failed" & vbNewLine & vbNewLine & ex.Message, False)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SavePanelsToXML failed" & vbNewLine & vbNewLine & ex.Message, False)
End Try
End Sub
@@ -97,29 +75,29 @@ Namespace Config
Directory.CreateDirectory(App.Info.Settings.SettingsPath)
End If
Dim xW As New XmlTextWriter(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName, System.Text.Encoding.UTF8)
xW.Formatting = Formatting.Indented
xW.Indentation = 4
Dim xmlTextWriter As New XmlTextWriter(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName, System.Text.Encoding.UTF8)
xmlTextWriter.Formatting = Formatting.Indented
xmlTextWriter.Indentation = 4
xW.WriteStartDocument()
xW.WriteStartElement("Apps")
xmlTextWriter.WriteStartDocument()
xmlTextWriter.WriteStartElement("Apps")
For Each extA As Tools.ExternalApp In ExtApps
xW.WriteStartElement("App")
xW.WriteAttributeString("DisplayName", "", extA.DisplayName)
xW.WriteAttributeString("FileName", "", extA.FileName)
xW.WriteAttributeString("Arguments", "", extA.Arguments)
xW.WriteAttributeString("WaitForExit", "", extA.WaitForExit)
xW.WriteAttributeString("TryToIntegrate", "", extA.TryIntegrate)
xW.WriteEndElement()
For Each extA As Tools.ExternalTool In ExternalTools
xmlTextWriter.WriteStartElement("App")
xmlTextWriter.WriteAttributeString("DisplayName", "", extA.DisplayName)
xmlTextWriter.WriteAttributeString("FileName", "", extA.FileName)
xmlTextWriter.WriteAttributeString("Arguments", "", extA.Arguments)
xmlTextWriter.WriteAttributeString("WaitForExit", "", extA.WaitForExit)
xmlTextWriter.WriteAttributeString("TryToIntegrate", "", extA.TryIntegrate)
xmlTextWriter.WriteEndElement()
Next
xW.WriteEndElement()
xW.WriteEndDocument()
xmlTextWriter.WriteEndElement()
xmlTextWriter.WriteEndDocument()
xW.Close()
xmlTextWriter.Close()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SaveExternalAppsToXML failed" & vbNewLine & vbNewLine & ex.Message, False)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SaveExternalAppsToXML failed" & vbNewLine & vbNewLine & ex.Message, False)
End Try
End Sub
#End Region

View File

@@ -29,7 +29,7 @@ Namespace Connection
Return nI
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get Icon from String" & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get Icon from String" & vbNewLine & ex.Message)
End Try
Return Nothing

View File

@@ -8,7 +8,7 @@ Namespace Connection
Public Class Info
#Region "Properties"
#Region "1 Display"
Private _Name As String = My.Resources.strNewConnection
Private _Name As String = My.Language.strNewConnection
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameName"), _
@@ -75,7 +75,7 @@ Namespace Connection
End Set
End Property
Private _Panel As String = My.Resources.strGeneral
Private _Panel As String = My.Language.strGeneral
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
LocalizedDisplayName("strPropertyNamePanel"), _
@@ -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
@@ -410,6 +410,33 @@ Namespace Connection
_RenderingEngine = value
End Set
End Property
Private _useCredSsp As Boolean = My.Settings.ConDefaultUseCredSsp
<LocalizedCategory("strCategoryProtocol", 3), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameUseCredSsp"), _
LocalizedDescription("strPropertyDescriptionUseCredSsp"), _
TypeConverter(GetType(mRemoteNG.Tools.Misc.YesNoTypeConverter))> _
Public Property UseCredSsp() As Boolean
Get
If Me._Inherit.UseCredSsp And Me._Parent IsNot Nothing Then
Dim parCon As Connection.Info = TryCast(Me._Parent, Container.Info).ConnectionInfo
If Me._IsContainer = True Then
Dim curCont As Container.Info = Me._Parent
Dim parCont As Container.Info = curCont.Parent
parCon = parCont.ConnectionInfo
End If
Return parCon.UseCredSsp
Else
Return Me._useCredSsp
End If
End Get
Set(ByVal value As Boolean)
Me._useCredSsp = value
End Set
End Property
#End Region
#Region "4 RD Gateway"
Private _RDGatewayUsageMethod As mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(Connection.Protocol.RDP.RDGatewayUsageMethod), My.Settings.ConDefaultRDGatewayUsageMethod)
@@ -455,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
@@ -508,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
@@ -561,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
@@ -1038,7 +1065,7 @@ Namespace Connection
LocalizedDisplayName("strPropertyNameCompression"), _
LocalizedDescription("strPropertyDescriptionCompression"), _
TypeConverter(GetType(Tools.Misc.EnumTypeConverter))> _
Public Property VNCCompression() As mRemoteNG.Connection.Protocol.VNC.Compression
Public Property VNCCompression() As mRemoteNG.Connection.Protocol.VNC.Compression
Get
If Me._Inherit.VNCCompression And Me._Parent IsNot Nothing Then
Dim parCon As Connection.Info = TryCast(Me._Parent, Container.Info).ConnectionInfo
@@ -1252,7 +1279,7 @@ Namespace Connection
LocalizedDisplayName("strPropertyNameColors"), _
LocalizedDescription("strPropertyDescriptionColors"), _
TypeConverter(GetType(Tools.Misc.EnumTypeConverter))> _
Public Property VNCColors() As mRemoteNG.Connection.Protocol.VNC.Colors
Public Property VNCColors() As mRemoteNG.Connection.Protocol.VNC.Colors
Get
If Me._Inherit.VNCColors And Me._Parent IsNot Nothing Then
Dim parCon As Connection.Info = TryCast(Me._Parent, Container.Info).ConnectionInfo
@@ -1328,7 +1355,7 @@ Namespace Connection
End Property
#End Region
Private _Inherit As Inheritance = New Inheritance(Me)
Private _Inherit As New Inheritance(Me)
<Category(""), _
Browsable(False)> _
Public Property Inherit() As Inheritance
@@ -1451,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()
@@ -1499,7 +1528,7 @@ Namespace Connection
Me._Port = Connection.Protocol.IntApp.Defaults.Port
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConnectionSetDefaultPortFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConnectionSetDefaultPortFailed & vbNewLine & ex.Message)
End Try
End Sub
#End Region
@@ -1548,6 +1577,7 @@ Namespace Connection
Me._RedirectSound = val
Me._Resolution = val
Me._UseConsoleSession = val
_useCredSsp = val
Me._RenderingEngine = val
Me._Username = val
Me._Panel = val
@@ -1617,7 +1647,7 @@ Namespace Connection
And Me._EnableFontSmoothing And Me._EnableDesktopComposition _
And Me._Domain And Me._Icon And Me._Password And Me._Port And Me._Protocol And Me._PuttySession _
And Me._RedirectDiskDrives And Me._RedirectKeys And Me._RedirectPorts And Me._RedirectPrinters _
And Me._RedirectSmartCards And Me._RedirectSound And Me._Resolution And Me._UseConsoleSession _
And Me._RedirectSmartCards And Me._RedirectSound And Me._Resolution And Me._UseConsoleSession And _useCredSsp _
And Me._RenderingEngine And Me._UserField And Me._ExtApp And Me._Username And Me._Panel And Me._ICAEncryption And Me._RDPAuthenticationLevel And Me._PreExtApp And Me._PostExtApp _
And Me._MacAddress And Me._VNCAuthMode And Me._VNCColors And Me._VNCCompression And Me._VNCEncoding And Me._VNCProxyIP _
And Me._VNCProxyPassword And Me._VNCProxyPort And Me._VNCProxyType And Me._VNCProxyUsername Then
@@ -1847,6 +1877,21 @@ Namespace Connection
Me._UseConsoleSession = value
End Set
End Property
Private _useCredSsp As Boolean = My.Settings.InhDefaultUseCredSsp
<LocalizedCategory("strCategoryProtocol", 4), _
Browsable(True), _
LocalizedDisplayNameInheritAttribute("strPropertyNameUseCredSsp"), _
LocalizedDescriptionInheritAttribute("strPropertyDescriptionUseCredSsp"), _
TypeConverter(GetType(Tools.Misc.YesNoTypeConverter))> _
Public Property UseCredSsp() As Boolean
Get
Return _useCredSsp
End Get
Set(ByVal value As Boolean)
_useCredSsp = value
End Set
End Property
#End Region
#Region "5 RD Gateway"
Private _RDGatewayUsageMethod As Boolean = My.Settings.InhDefaultRDGatewayUsageMethod

View File

@@ -37,7 +37,7 @@ Namespace Connection
Me.Anchor = AnchorStyles.Bottom Or AnchorStyles.Left Or AnchorStyles.Right Or AnchorStyles.Top
InitializeComponent()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create new InterfaceControl" & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create new InterfaceControl" & vbNewLine & ex.Message)
End Try
End Sub
#End Region

View File

@@ -58,7 +58,7 @@ Namespace Connection
Try
Me._Control.Focus()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't focus Control (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't focus Control (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -77,7 +77,7 @@ Namespace Connection
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't SetProps (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't SetProps (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -98,6 +98,7 @@ Namespace Connection
Public Overridable Sub Close()
Dim t As New Thread(AddressOf CloseBG)
t.SetApartmentState(Threading.ApartmentState.STA)
t.IsBackground = True
t.Start()
End Sub
@@ -112,7 +113,7 @@ Namespace Connection
Try
Me.DisposeControl()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Could not dispose control, probably form is already closed (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Could not dispose control, probably form is already closed (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
End Try
End If
@@ -126,11 +127,11 @@ Namespace Connection
Me.DisposeInterface()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Could not set InterfaceControl.Parent.Tag or Dispose Interface, probably form is already closed (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Could not set InterfaceControl.Parent.Tag or Dispose Interface, probably form is already closed (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
End Try
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Close InterfaceControl BG (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Close InterfaceControl BG (Connection.Protocol.Base)" & vbNewLine & ex.Message, True)
End Try
End Sub

View File

@@ -1,6 +1,5 @@
Imports System.Windows.Forms
Imports mRemoteNG.App.Runtime
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
@@ -27,7 +26,7 @@ Namespace Connection
NewExtended()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpConnectionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpConnectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -65,7 +64,7 @@ Namespace Connection
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpSetPropsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -108,7 +107,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpConnectFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpConnectFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -164,7 +163,7 @@ Namespace Connection
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strHttpDocumentTileChangeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strHttpDocumentTileChangeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -1,7 +1,4 @@
Imports System.Windows.Forms
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Connection
Namespace Protocol
Public Class HTTPS
Inherits Connection.Protocol.HTTPBase

View File

@@ -1,7 +1,6 @@
Imports mRemoteNG.App.Runtime
Imports System.Threading
Imports AxWFICALib
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
@@ -19,7 +18,7 @@ Namespace Connection
Try
Me.Control = New AxICAClient
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaControlFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaControlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -76,7 +75,7 @@ Namespace Connection
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaSetPropsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -89,7 +88,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaConnectionFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -135,7 +134,7 @@ Namespace Connection
ICA.Domain = _dom
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaSetCredentialsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetCredentialsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -160,7 +159,7 @@ Namespace Connection
ICA.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, RDP.Resolutions.Items(Int(Info.Resolution)).Width, RDP.Resolutions.Items(Int(Info.Resolution)).Height, 0)
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaSetResolutionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetResolutionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -201,7 +200,7 @@ Namespace Connection
AddHandler ICA.OnConnectFailed, AddressOf ICAEvent_OnConnectFailed
AddHandler ICA.OnDisconnect, AddressOf ICAEvent_OnDisconnect
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIcaSetEventHandlersFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -10,7 +10,7 @@ Namespace Connection
#Region "Private Properties"
Private IntAppProcessStartInfo As New ProcessStartInfo()
Private Arguments As String
Private ExtApp As Tools.ExternalApp
Private ExtApp As Tools.ExternalTool
#End Region
#Region "Public Properties"
@@ -110,11 +110,11 @@ Namespace Connection
IntAppHandle = IntAppProcess.MainWindowHandle
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strIntAppStuff, True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strIntAppStuff, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppHandle, IntAppHandle.ToString), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppTitle, IntAppProcess.MainWindowTitle), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strIntAppHandle, IntAppHandle.ToString), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strIntAppTitle, IntAppProcess.MainWindowTitle), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strIntAppParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
SetParent(Me.IntAppHandle, Me.InterfaceControl.Parent.Handle)
SetWindowLong(Me.IntAppHandle, 0, WS_VISIBLE)
@@ -125,7 +125,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppConnectionFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -135,7 +135,7 @@ Namespace Connection
Try
SetForegroundWindow(IntAppHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppFocusFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -143,7 +143,7 @@ Namespace Connection
Try
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
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppResizeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -153,7 +153,7 @@ Namespace Connection
IntAppProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppKillFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppKillFailed & vbNewLine & ex.Message, True)
End Try
Try
@@ -161,7 +161,7 @@ Namespace Connection
IntAppProcess.Dispose()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppDisposeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()

View File

@@ -1,3 +1,6 @@
Imports System.Runtime.InteropServices
Imports System.ComponentModel
Imports mRemoteNG.Messages
Imports mRemoteNG.App.Native
Imports System.Threading
Imports Microsoft.Win32
@@ -14,6 +17,7 @@ Namespace Connection
#End Region
#Region "Private Properties"
Dim _isPuttyNg As Boolean
#End Region
#Region "Public Properties"
@@ -103,99 +107,111 @@ Namespace Connection
Public Overrides Function Connect() As Boolean
Try
PuttyProcess = New Process
_isPuttyNg = IsFilePuttyNg(PuttyPath)
PuttyProcess = New Process
With PuttyProcess.StartInfo
.FileName = _PuttyPath
Select Case Me._PuttyProtocol
Select Case _PuttyProtocol
Case Putty_Protocol.raw
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
.Arguments = "-load " & """" & PuttyEscapeArgument(InterfaceControl.Info.PuttySession) & """" & " -" & _PuttyProtocol.ToString & " -P " & InterfaceControl.Info.Port & " """ & 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 & """"
.Arguments = "-load " & """" & PuttyEscapeArgument(InterfaceControl.Info.PuttySession) & """" & " -" & _PuttyProtocol.ToString & " -P " & InterfaceControl.Info.Port & " """ & InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.ssh
Dim UserArg As String = ""
Dim PassArg As String = ""
Dim userArgument As String = ""
Dim passwordArgument As String = ""
If My.Settings.EmptyCredentials = "windows" Then
UserArg = " -l """ & Environment.UserName & """"
userArgument = " -l """ & 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) & """"
userArgument = " -l """ & My.Settings.DefaultUsername & """"
passwordArgument = " -pw """ & PuttyEscapeArgument(Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey)) & """"
End If
If Me.InterfaceControl.Info.Username <> "" Then
UserArg = " -l """ & Me.InterfaceControl.Info.Username & """"
If InterfaceControl.Info.Username <> "" Then
userArgument = " -l """ & InterfaceControl.Info.Username & """"
End If
If Me.InterfaceControl.Info.Password <> "" Then
PassArg = " -pw """ & Me.InterfaceControl.Info.Password & """"
If InterfaceControl.Info.Password <> "" Then
passwordArgument = " -pw """ & PuttyEscapeArgument(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 & """"
.Arguments = "-load " & """" & PuttyEscapeArgument(InterfaceControl.Info.PuttySession) & """" & " -" & _PuttyProtocol.ToString & " -" & _PuttySSHVersion & userArgument & passwordArgument & " -P " & InterfaceControl.Info.Port & " """ & 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 & """"
.Arguments = "-load " & """" & PuttyEscapeArgument(InterfaceControl.Info.PuttySession) & """" & " -" & _PuttyProtocol.ToString & " -P " & InterfaceControl.Info.Port & " """ & 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 & """"
.Arguments = "-load " & """" & PuttyEscapeArgument(InterfaceControl.Info.PuttySession) & """" & " -" & _PuttyProtocol.ToString & " -P " & InterfaceControl.Info.Port & " """ & InterfaceControl.Info.Hostname & """"
End Select
If _isPuttyNg Then
.Arguments = .Arguments & " -hwndparent " & InterfaceControl.Handle.ToString()
End If
'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)
Dim TryCount As Integer = 0
Do Until PuttyProcess.MainWindowHandle <> IntPtr.Zero And Me.InterfaceControl.Handle <> IntPtr.Zero And Me.PuttyProcess.MainWindowTitle <> "Default IME"
If TryCount >= My.Settings.MaxPuttyWaitTime * 2 Then
Exit Do
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
PuttyProcess.Refresh()
If Not _isPuttyNg Then
SetParent(PuttyHandle, InterfaceControl.Handle)
End If
Thread.Sleep(500)
MessageCollector.AddMessage(MessageClass.InformationMsg, My.Language.strPuttyStuff, True)
TryCount += 1
Loop
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)
PuttyHandle = PuttyProcess.MainWindowHandle
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strPuttyStuff, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyHandle, PuttyHandle.ToString), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyTitle, PuttyProcess.MainWindowTitle), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
SetParent(PuttyHandle, InterfaceControl.Parent.Handle)
ShowWindow(PuttyHandle, SW_SHOWMAXIMIZED)
Resize()
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyConnectionFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(MessageClass.ErrorMsg, My.Language.strPuttyConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
' Due to the way PuTTY handles command line arguments, backslashes followed by a quotation mark will be removed.
' Since all the strings we send to PuTTY are surrounded by quotation marks, we need to escape any trailing
' backslashes by adding another. See split_into_argv() in WINDOWS\WINUTILS.C of the PuTTY source for more info.
Private Shared Function PuttyEscapeArgument(ByVal argument As String) As String
If argument.EndsWith("\") Then argument = argument & "\"
Return argument
End Function
Public Overrides Sub Focus()
Try
'SetForegroundWindow(PuttyHandle)
SetForegroundWindow(PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyFocusFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Overrides Sub Resize()
Try
MoveWindow(PuttyHandle, -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)
If frmMain.WindowState = FormWindowState.Minimized 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
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyResizeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -205,13 +221,13 @@ Namespace Connection
PuttyProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyKillFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyKillFailed & vbNewLine & ex.Message, True)
End Try
Try
PuttyProcess.Dispose()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyDisposeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()
@@ -222,7 +238,7 @@ Namespace Connection
PostMessage(Me.PuttyHandle, WM_SYSCOMMAND, IDM_RECONF, 0)
SetForegroundWindow(Me.PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyShowSettingsDialogFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyShowSettingsDialogFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -244,11 +260,21 @@ Namespace Connection
Return arrKeys
Catch ex As Exception
App.Runtime.mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strPuttyGetSessionsFailed & vbNewLine & ex.Message, True)
App.Runtime.MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strPuttyGetSessionsFailed & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
Public Shared Function IsFilePuttyNg(file As String) As Boolean
Dim isPuttyNg As Boolean
Try
isPuttyNg = FileVersionInfo.GetVersionInfo(file).InternalName.Contains("PuTTYNG")
Catch
isPuttyNg = False
End Try
Return isPuttyNg
End Function
Public Shared Sub StartPutty()
Try
Dim p As Process
@@ -260,7 +286,7 @@ Namespace Connection
mRemoteNG.Connection.PuttySession.PuttySessions = GetSessions()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyStartFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyStartFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -279,7 +305,6 @@ Namespace Connection
ssh2 = 2
End Enum
#End Region
End Class
End Namespace
End Namespace

View File

@@ -59,7 +59,7 @@ Namespace Connection
System.Windows.Forms.Application.DoEvents()
Loop
Catch comEx As System.Runtime.InteropServices.COMException
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpControlCreationFailed & vbNewLine & vbNewLine & comEx.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpControlCreationFailed & vbNewLine & vbNewLine & comEx.Message)
RDP.Dispose()
Return False
End Try
@@ -79,11 +79,11 @@ Namespace Connection
RDP.AdvancedSettings2.keepAliveInterval = 60000 'in milliseconds (10.000 = 10 seconds)
RDP.AdvancedSettings5.AuthenticationLevel = 0
RDP.AdvancedSettings.EncryptionEnabled = 1
RDP.AdvancedSettings7.EnableCredSspSupport = True
RDP.AdvancedSettings2.overallConnectionTimeout = 20
RDP.AdvancedSettings2.BitmapPeristence = Me.Info.CacheBitmaps
RDP.AdvancedSettings7.EnableCredSspSupport = Info.UseCredSsp
Me.SetUseConsoleSession()
Me.SetPort()
@@ -96,13 +96,13 @@ Namespace Connection
Me.SetPerformanceFlags()
RDP.ConnectingText = My.Resources.strConnecting
RDP.ConnectingText = My.Language.strConnecting
Control.Anchor = AnchorStyles.None
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPropsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -115,7 +115,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpConnectionOpenFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpConnectionOpenFailed & vbNewLine & ex.Message)
End Try
Return False
@@ -125,7 +125,7 @@ Namespace Connection
Try
RDP.Disconnect()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpDisconnectFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpDisconnectFailed & vbNewLine & ex.Message, True)
MyBase.Close()
End Try
End Sub
@@ -134,7 +134,7 @@ Namespace Connection
Try
Me.Fullscreen = Not Me.Fullscreen
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpToggleFullscreenFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpToggleFullscreenFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -142,7 +142,7 @@ Namespace Connection
Try
Me.SmartSize = Not Me.SmartSize
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpToggleSmartSizeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpToggleSmartSizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -152,7 +152,7 @@ Namespace Connection
RDP.Focus()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpFocusFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -167,26 +167,30 @@ Namespace Connection
Private Sub SetRDGateway()
Try
If RDP.TransportSettings.GatewayIsSupported = 1 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strRdpGatewayIsSupported, True)
If Me.Info.RDGatewayUsageMethod <> RDGatewayUsageMethod.Never Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strRdpGatewayIsSupported, True)
If Info.RDGatewayUsageMethod <> RDGatewayUsageMethod.Never Then
RDP.TransportSettings2.GatewayProfileUsageMethod = 1
RDP.TransportSettings.GatewayUsageMethod = Me.Info.RDGatewayUsageMethod
RDP.TransportSettings.GatewayHostname = Me.Info.RDGatewayHostname
If Me.Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes Then
RDP.TransportSettings.GatewayUsername = Me.Info.Username
RDP.TransportSettings.GatewayPassword = Me.Info.Password
RDP.TransportSettings.GatewayDomain = Me.Info.Domain
RDP.TransportSettings.GatewayUsageMethod = Info.RDGatewayUsageMethod
RDP.TransportSettings.GatewayHostname = Info.RDGatewayHostname
If Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes Then
RDP.TransportSettings.GatewayUsername = Info.Username
RDP.TransportSettings.GatewayPassword = Info.Password
RDP.TransportSettings.GatewayDomain = Info.Domain
ElseIf Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.SmartCard Then
RDP.TransportSettings2.GatewayCredsSource = 1 ' TSC_PROXY_CREDS_MODE_SMARTCARD
RDP.TransportSettings2.GatewayCredSharing = 0
Else
RDP.TransportSettings.GatewayUsername = Me.Info.RDGatewayUsername
RDP.TransportSettings.GatewayPassword = Me.Info.RDGatewayPassword
RDP.TransportSettings.GatewayDomain = Me.Info.RDGatewayDomain
RDP.TransportSettings.GatewayUsername = Info.RDGatewayUsername
RDP.TransportSettings.GatewayPassword = Info.RDGatewayPassword
RDP.TransportSettings.GatewayDomain = Info.RDGatewayDomain
RDP.TransportSettings2.GatewayCredSharing = 0
End If
End If
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strRdpGatewayNotSupported, True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strRdpGatewayNotSupported, True)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetGatewayFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetGatewayFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -194,31 +198,31 @@ Namespace Connection
Try
If (Me.Force And Connection.Info.Force.UseConsoleSession) = Connection.Info.Force.UseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = True
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = True
End If
ElseIf (Me.Force And Connection.Info.Force.DontUseConsoleSession) = Connection.Info.Force.DontUseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = False
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = False
End If
Else
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = Me.Info.UseConsoleSession
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Language.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = Me.Info.UseConsoleSession
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetConsoleSessionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetConsoleSessionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -261,7 +265,7 @@ Namespace Connection
RDP.Domain = _dom
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetCredentialsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetCredentialsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -292,7 +296,7 @@ Namespace Connection
RDP.DesktopHeight = Resolutions.Items(Int(Me.Info.Resolution)).Height
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetResolutionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetResolutionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -302,7 +306,7 @@ Namespace Connection
RDP.AdvancedSettings2.RDPPort = Me.Info.Port
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPortFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetPortFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -315,7 +319,7 @@ Namespace Connection
RDP.FullScreen = True
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -327,7 +331,7 @@ Namespace Connection
RDP.AdvancedSettings2.RedirectSmartCards = Me.Info.RedirectSmartCards
RDP.SecuredSettings2.AudioRedirectionMode = Int(Me.Info.RedirectSound)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetRedirectionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetRedirectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -352,7 +356,7 @@ Namespace Connection
RDP.AdvancedSettings.PerformanceFlags = pFlags
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPerformanceFlagsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetPerformanceFlagsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -360,7 +364,7 @@ Namespace Connection
Try
RDP.AdvancedSettings5.AuthenticationLevel = Me.Info.RDPAuthenticationLevel
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetAuthenticationLevelFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetAuthenticationLevelFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -372,7 +376,7 @@ Namespace Connection
AddHandler RDP.OnDisconnected, AddressOf RDPEvent_OnDisconnected
AddHandler RDP.OnLeaveFullScreenMode, AddressOf RDPEvent_OnLeaveFullscreenMode
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetEventHandlersFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -382,9 +386,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
@@ -394,7 +401,7 @@ Namespace Connection
ReconnectGroup.Show()
tmrReconnect.Enabled = True
Else
MyBase.Close()
Close()
End If
End Sub
@@ -532,6 +539,8 @@ Namespace Connection
No = 0
<LocalizedDescription("strUseSameUsernameAndPassword")> _
Yes = 1
<LocalizedDescription("strUseSmartCard")> _
SmartCard = 2
End Enum
#End Region
@@ -579,7 +588,7 @@ Namespace Connection
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddResolutionsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpAddResolutionsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -606,7 +615,7 @@ Namespace Connection
Return nRes
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddResolutionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpAddResolutionFailed & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -615,8 +624,8 @@ Namespace Connection
#End Region
Public Class Versions
Public Shared RDC60 As Version = New Version(6, 0, 6000)
Public Shared RDC61 As Version = New Version(6, 0, 6001)
Public Shared RDC60 As New Version(6, 0, 6000)
Public Shared RDC61 As New Version(6, 0, 6001)
End Class
#Region "Terminal Sessions"
@@ -634,7 +643,7 @@ Namespace Connection
Return True
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpOpenConnectionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpOpenConnectionFailed & vbNewLine & ex.Message, True)
End Try
Return False
@@ -645,7 +654,7 @@ Namespace Connection
oWTSCOM.WTSCloseServer(ServerHandle)
ServerHandle = 0
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpCloseConnectionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpCloseConnectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -668,14 +677,14 @@ Namespace Connection
If SessionUser <> "" Then
If SessionState = 0 Then
colSessions.Add(SessionID, My.Resources.strActive, SessionUser, SessionName)
colSessions.Add(SessionID, My.Language.strActive, SessionUser, SessionName)
Else
colSessions.Add(SessionID, My.Resources.strInactive, SessionUser, SessionName)
colSessions.Add(SessionID, My.Language.strInactive, SessionUser, SessionName)
End If
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpGetSessionsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpGetSessionsFailed & vbNewLine & ex.Message, True)
End Try
Return colSessions
@@ -714,7 +723,7 @@ Namespace Connection
List.Add(newSes)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddSessionFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpAddSessionFailed & vbNewLine & ex.Message, True)
End Try
Return newSes
@@ -773,23 +782,23 @@ Namespace Connection
#Region "Fatal Errors"
Public Class FatalErrors
Protected Shared _description() As String = { _
0 = My.Resources.strRdpErrorUnknown, _
1 = My.Resources.strRdpErrorCode1, _
2 = My.Resources.strRdpErrorOutOfMemory, _
3 = My.Resources.strRdpErrorWindowCreation, _
4 = My.Resources.strRdpErrorCode2, _
5 = My.Resources.strRdpErrorCode3, _
6 = My.Resources.strRdpErrorCode4, _
7 = My.Resources.strRdpErrorConnection, _
100 = My.Resources.strRdpErrorWinsock _
0 = My.Language.strRdpErrorUnknown, _
1 = My.Language.strRdpErrorCode1, _
2 = My.Language.strRdpErrorOutOfMemory, _
3 = My.Language.strRdpErrorWindowCreation, _
4 = My.Language.strRdpErrorCode2, _
5 = My.Language.strRdpErrorCode3, _
6 = My.Language.strRdpErrorCode4, _
7 = My.Language.strRdpErrorConnection, _
100 = My.Language.strRdpErrorWinsock _
}
Public Shared Function GetError(ByVal id As String) As String
Try
Return (_description(id))
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpErrorGetFailure & vbNewLine & ex.Message, True)
Return String.Format(My.Resources.strRdpErrorUnknown, id)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strRdpErrorGetFailure & vbNewLine & ex.Message, True)
Return String.Format(My.Language.strRdpErrorUnknown, id)
End Try
End Function
End Class

View File

@@ -105,14 +105,14 @@ Namespace Connection
' VNC.RestrictPixel = False
'End If
'VNC.ConnectingText = My.Resources.strInheritConnecting & " (SmartCode VNC viewer)"
'VNC.DisconnectedText = My.Resources.strInheritDisconnected
'VNC.ConnectingText = My.Language.strInheritConnecting & " (SmartCode VNC viewer)"
'VNC.DisconnectedText = My.Language.strInheritDisconnected
'VNC.MessageBoxes = False
'VNC.EndInit()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSetPropsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -123,7 +123,7 @@ Namespace Connection
Try
VNC.Connect(Me.Info.Hostname, Me.Info.VNCViewOnly, Info.VNCSmartSizeMode <> SmartSizeMode.SmartSNo)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncConnectionOpenFailed & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncConnectionOpenFailed & vbNewLine & ex.Message)
Return False
End Try
@@ -134,7 +134,7 @@ Namespace Connection
Try
VNC.Disconnect()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncConnectionDisconnectFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncConnectionDisconnectFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -147,7 +147,7 @@ Namespace Connection
VNC.SendSpecialKeys(SpecialKeys.CtrlEsc)
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSendSpecialKeysFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncSendSpecialKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -156,7 +156,7 @@ Namespace Connection
SmartSize = Not SmartSize
RefreshScreen()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncToggleSmartSizeFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncToggleSmartSizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -164,7 +164,7 @@ Namespace Connection
Try
ViewOnly = Not ViewOnly
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncToggleViewOnlyFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncToggleViewOnlyFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -177,7 +177,7 @@ Namespace Connection
' mC.AddMessage(Messages.MessageClass.InformationMsg, "VNC Server doesn't support chat")
'End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncStartChatFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncStartChatFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -197,7 +197,7 @@ Namespace Connection
Try
VNC.FullScreenUpdate()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncRefreshFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncRefreshFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -212,7 +212,7 @@ Namespace Connection
VNC.GetPassword = AddressOf VNCEvent_Authenticate
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSetEventHandlersFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -13,7 +13,7 @@ Namespace Connection
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strQuickConnectHistoryExistsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strQuickConnectHistoryExistsFailed & vbNewLine & ex.Message, True)
End Try
Return False
@@ -23,7 +23,7 @@ Namespace Connection
Try
qBox.Items.Insert(0, Text)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strQuickConnectAddFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strQuickConnectAddFailed & vbNewLine & ex.Message, True)
End Try
End Sub
End Class

View File

@@ -81,7 +81,7 @@ Namespace Container
End Set
End Property
Private _ConnectionInfo As Connection.Info = New Connection.Info
Private _ConnectionInfo As New Connection.Info
Public Property ConnectionInfo() As Connection.Info
Get
Return Me._ConnectionInfo

View File

@@ -46,7 +46,7 @@ Partial Class frmChoosePanel
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(69, 23)
Me.btnOK.TabIndex = 20
Me.btnOK.Text = My.Resources.strButtonOK
Me.btnOK.Text = My.Language.strButtonOK
Me.btnOK.UseVisualStyleBackColor = True
'
'lblDescription
@@ -55,7 +55,7 @@ Partial Class frmChoosePanel
Me.lblDescription.Name = "lblDescription"
Me.lblDescription.Size = New System.Drawing.Size(229, 29)
Me.lblDescription.TabIndex = 0
Me.lblDescription.Text = My.Resources.strLabelSelectPanel
Me.lblDescription.Text = My.Language.strLabelSelectPanel
'
'btnNew
'
@@ -66,7 +66,7 @@ Partial Class frmChoosePanel
Me.btnNew.Name = "btnNew"
Me.btnNew.Size = New System.Drawing.Size(57, 23)
Me.btnNew.TabIndex = 40
Me.btnNew.Text = My.Resources.strButtonNew
Me.btnNew.Text = My.Language.strButtonNew
Me.btnNew.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btnNew.UseVisualStyleBackColor = True
'
@@ -78,7 +78,7 @@ Partial Class frmChoosePanel
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(69, 23)
Me.btnCancel.TabIndex = 30
Me.btnCancel.Text = My.Resources.strButtonCancel
Me.btnCancel.Text = My.Language.strButtonCancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'frmChoosePanel
@@ -100,7 +100,7 @@ Partial Class frmChoosePanel
Me.Name = "frmChoosePanel"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = My.Resources.strTitleSelectPanel
Me.Text = My.Language.strTitleSelectPanel
Me.ResumeLayout(False)
End Sub

View File

@@ -17,18 +17,18 @@ Public Class frmChoosePanel
End Sub
Private Sub ApplyLanguage()
btnOK.Text = My.Resources.strButtonOK
lblDescription.Text = My.Resources.strLabelSelectPanel
btnNew.Text = My.Resources.strButtonNew
btnCancel.Text = My.Resources.strButtonCancel
Text = My.Resources.strTitleSelectPanel
btnOK.Text = My.Language.strButtonOK
lblDescription.Text = My.Language.strLabelSelectPanel
btnNew.Text = My.Language.strButtonNew
btnCancel.Text = My.Language.strButtonCancel
Text = My.Language.strTitleSelectPanel
End Sub
Private Sub AddAvailablePanels()
cbPanels.Items.Clear()
For i As Integer = 0 To wL.Count - 1
cbPanels.Items.Add(wL(i).Text.Replace("&&", "&"))
For i As Integer = 0 To WindowList.Count - 1
cbPanels.Items.Add(WindowList(i).Text.Replace("&&", "&"))
Next
If cbPanels.Items.Count > 0 Then
@@ -42,7 +42,7 @@ Public Class frmChoosePanel
End Sub
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
Dim pnlName As String = InputBox(My.Resources.strPanelName & ":", My.Resources.strNewPanel, My.Resources.strNewPanel)
Dim pnlName As String = InputBox(My.Language.strPanelName & ":", My.Language.strNewPanel, My.Language.strNewPanel)
If pnlName <> "" Then
AddPanel(pnlName)

View File

@@ -107,7 +107,7 @@ Partial Class frmMain
Me.lblQuickConnect = New System.Windows.Forms.ToolStripLabel
Me.cmbQuickConnect = New System.Windows.Forms.ToolStripComboBox
Me.tsContainer = New System.Windows.Forms.ToolStripContainer
Me.tsExtAppsToolbar = New System.Windows.Forms.ToolStrip
Me.tsExternalTools = New System.Windows.Forms.ToolStrip
Me.cMenExtAppsToolbar = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenToolbarShowText = New System.Windows.Forms.ToolStripMenuItem
Me.tsQuickConnect = New System.Windows.Forms.ToolStrip
@@ -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)
@@ -678,18 +678,18 @@ Partial Class frmMain
'
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.msMain)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.tsQuickConnect)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.tsExtAppsToolbar)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.tsExternalTools)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.ToolStrip1)
Me.tsContainer.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
'
'tsExtAppsToolbar
'
Me.tsExtAppsToolbar.ContextMenuStrip = Me.cMenExtAppsToolbar
Me.tsExtAppsToolbar.Dock = System.Windows.Forms.DockStyle.None
Me.tsExtAppsToolbar.Location = New System.Drawing.Point(39, 49)
Me.tsExtAppsToolbar.Name = "tsExtAppsToolbar"
Me.tsExtAppsToolbar.Size = New System.Drawing.Size(111, 25)
Me.tsExtAppsToolbar.TabIndex = 17
Me.tsExternalTools.ContextMenuStrip = Me.cMenExtAppsToolbar
Me.tsExternalTools.Dock = System.Windows.Forms.DockStyle.None
Me.tsExternalTools.Location = New System.Drawing.Point(39, 49)
Me.tsExternalTools.Name = "tsExtAppsToolbar"
Me.tsExternalTools.Size = New System.Drawing.Size(111, 25)
Me.tsExternalTools.TabIndex = 17
'
'cMenExtAppsToolbar
'
@@ -860,7 +860,7 @@ Partial Class frmMain
Friend WithEvents tmrShowUpdate As System.Windows.Forms.Timer
Friend WithEvents mMenToolsExternalApps As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tmrAutoSave As System.Windows.Forms.Timer
Friend WithEvents tsExtAppsToolbar As System.Windows.Forms.ToolStrip
Friend WithEvents tsExternalTools As System.Windows.Forms.ToolStrip
Friend WithEvents mMenViewExtAppsToolbar As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cMenExtAppsToolbar As System.Windows.Forms.ContextMenuStrip
Friend WithEvents cMenToolbarShowText As System.Windows.Forms.ToolStripMenuItem

View File

@@ -1,12 +1,21 @@
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports Crownwood
Imports mRemoteNG.App.Native
Imports System.Runtime.InteropServices
Imports PSTaskDialog
Public Class frmMain
Public prevWindowsState As FormWindowState
Private _previousWindowState As FormWindowState
Public Property PreviousWindowState As FormWindowState
Get
Return _previousWindowState
End Get
Set(value As FormWindowState)
_previousWindowState = value
End Set
End Property
Public Shared Event clipboardchange()
Private fpChainedWindowHandle As IntPtr
@@ -21,17 +30,15 @@ Public Class frmMain
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'insert enable edition code here
App.Editions.Spanlink.Enabled = False
Startup.CheckCompatibility()
Startup.CreateLogger()
' Create gui config load and save objects
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
Dim SettingsLoad As New Config.Settings.Load(Me)
' Load GUI Configuration
sL.Load()
SettingsLoad.Load()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
@@ -41,12 +48,12 @@ Public Class frmMain
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
mC = New Messages.Collector(Windows.errorsForm)
MessageCollector = New Messages.Collector(Windows.errorsForm)
Connection.Protocol.RDP.Resolutions.AddResolutions()
Connection.Protocol.PuttyBase.BorderSize = New Size(SystemInformation.FrameBorderSize.Width, SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height) 'Size.Subtract(Me.Size, Me.ClientSize)
wL = New UI.Window.List
WindowList = New UI.Window.List
Startup.GetConnectionIcons()
Startup.GetPuttySessions()
@@ -55,11 +62,12 @@ Public Class frmMain
Tree.Node.TreeView = Windows.treeForm.tvConnections
'insert new edition code here
Dim edSpanlink As New App.Editions.Spanlink
'LoadCredentials()
LoadConnections()
If Not IsConnectionsFileLoaded Then
Application.Exit()
Return
End If
If My.Settings.StartupComponentsCheck Then
Windows.Show(UI.Window.Type.ComponentsCheck)
@@ -67,8 +75,8 @@ Public Class frmMain
#If Not PORTABLE Then
If Not My.Settings.CheckForUpdatesAsked Then
Dim CommandButtons() As String = {My.Resources.strAskUpdatesCommandRecommended, My.Resources.strAskUpdatesCommandCustom, My.Resources.strAskUpdatesCommandAskLater}
Dim Result As DialogResult = cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Resources.strAskUpdatesMainInstruction, String.Format(My.Resources.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", CommandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
Dim CommandButtons() As String = {My.Language.strAskUpdatesCommandRecommended, My.Language.strAskUpdatesCommandCustom, My.Language.strAskUpdatesCommandAskLater}
cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Language.strAskUpdatesMainInstruction, String.Format(My.Language.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", CommandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
If cTaskDialog.CommandButtonResult = 0 Or cTaskDialog.CommandButtonResult = 1 Then
My.Settings.CheckForUpdatesAsked = True
End If
@@ -94,89 +102,93 @@ Public Class frmMain
End Sub
Private Sub ApplyLanguage()
mMenFile.Text = My.Resources.strMenuFile
mMenFileNew.Text = My.Resources.strMenuNewConnectionFile
mMenFileNewConnection.Text = My.Resources.strNewConnection
mMenFileNewFolder.Text = My.Resources.strNewFolder
mMenFileLoad.Text = My.Resources.strMenuOpenConnectionFile
mMenFileSave.Text = My.Resources.strMenuSaveConnectionFile
mMenFileSaveAs.Text = My.Resources.strMenuSaveConnectionFileAs
mMenFileImportExport.Text = My.Resources.strImportExport
ImportFromActiveDirectoryToolStripMenuItem.Text = My.Resources.strImportAD
ImportFromPortScanToolStripMenuItem.Text = My.Resources.strImportPortScan
ImportFromRDPFileToolStripMenuItem.Text = My.Resources.strImportRDPFiles
ImportFromXMLFileToolStripMenuItem.Text = My.Resources.strImportmRemoteXML
ExportToXMLFileToolStripMenuItem.Text = My.Resources.strExportmRemoteXML
mMenFileExit.Text = My.Resources.strMenuExit
mMenFile.Text = My.Language.strMenuFile
mMenFileNew.Text = My.Language.strMenuNewConnectionFile
mMenFileNewConnection.Text = My.Language.strNewConnection
mMenFileNewFolder.Text = My.Language.strNewFolder
mMenFileLoad.Text = My.Language.strMenuOpenConnectionFile
mMenFileSave.Text = My.Language.strMenuSaveConnectionFile
mMenFileSaveAs.Text = My.Language.strMenuSaveConnectionFileAs
mMenFileImportExport.Text = My.Language.strImportExport
ImportFromActiveDirectoryToolStripMenuItem.Text = My.Language.strImportAD
ImportFromPortScanToolStripMenuItem.Text = My.Language.strImportPortScan
ImportFromRDPFileToolStripMenuItem.Text = My.Language.strImportRDPFiles
ImportFromXMLFileToolStripMenuItem.Text = My.Language.strImportmRemoteXML
ExportToXMLFileToolStripMenuItem.Text = My.Language.strExportmRemoteXML
mMenFileExit.Text = My.Language.strMenuExit
mMenView.Text = My.Resources.strMenuView
mMenViewAddConnectionPanel.Text = My.Resources.strMenuAddConnectionPanel
mMenViewConnectionPanels.Text = My.Resources.strMenuConnectionPanels
mMenViewConnections.Text = My.Resources.strMenuConnections
mMenViewConfig.Text = My.Resources.strMenuConfig
mMenViewSessions.Text = My.Resources.strMenuSessions
mMenViewErrorsAndInfos.Text = My.Resources.strMenuNotifications
mMenViewScreenshotManager.Text = My.Resources.strMenuScreenshotManager
mMenViewJumpTo.Text = My.Resources.strMenuJumpTo
mMenViewJumpToConnectionsConfig.Text = My.Resources.strMenuConnectionsAndConfig
mMenViewJumpToSessionsScreenshots.Text = My.Resources.strMenuSessionsAndScreenshots
mMenViewJumpToErrorsInfos.Text = My.Resources.strMenuNotifications
mMenViewResetLayout.Text = My.Resources.strMenuResetLayout
mMenViewQuickConnectToolbar.Text = My.Resources.strMenuQuickConnectToolbar
mMenViewExtAppsToolbar.Text = My.Resources.strMenuExternalToolsToolbar
mMenViewFullscreen.Text = My.Resources.strMenuFullScreen
mMenView.Text = My.Language.strMenuView
mMenViewAddConnectionPanel.Text = My.Language.strMenuAddConnectionPanel
mMenViewConnectionPanels.Text = My.Language.strMenuConnectionPanels
mMenViewConnections.Text = My.Language.strMenuConnections
mMenViewConfig.Text = My.Language.strMenuConfig
mMenViewSessions.Text = My.Language.strMenuSessions
mMenViewErrorsAndInfos.Text = My.Language.strMenuNotifications
mMenViewScreenshotManager.Text = My.Language.strMenuScreenshotManager
mMenViewJumpTo.Text = My.Language.strMenuJumpTo
mMenViewJumpToConnectionsConfig.Text = My.Language.strMenuConnectionsAndConfig
mMenViewJumpToSessionsScreenshots.Text = My.Language.strMenuSessionsAndScreenshots
mMenViewJumpToErrorsInfos.Text = My.Language.strMenuNotifications
mMenViewResetLayout.Text = My.Language.strMenuResetLayout
mMenViewQuickConnectToolbar.Text = My.Language.strMenuQuickConnectToolbar
mMenViewExtAppsToolbar.Text = My.Language.strMenuExternalToolsToolbar
mMenViewFullscreen.Text = My.Language.strMenuFullScreen
mMenTools.Text = My.Resources.strMenuTools
mMenToolsSSHTransfer.Text = My.Resources.strMenuSSHFileTransfer
mMenToolsExternalApps.Text = My.Resources.strMenuExternalTools
mMenToolsPortScan.Text = My.Resources.strMenuPortScan
mMenToolsComponentsCheck.Text = My.Resources.strComponentsCheck
mMenToolsUpdate.Text = My.Resources.strMenuCheckForUpdates
mMenToolsOptions.Text = My.Resources.strMenuOptions
mMenTools.Text = My.Language.strMenuTools
mMenToolsSSHTransfer.Text = My.Language.strMenuSSHFileTransfer
mMenToolsExternalApps.Text = My.Language.strMenuExternalTools
mMenToolsPortScan.Text = My.Language.strMenuPortScan
mMenToolsComponentsCheck.Text = My.Language.strComponentsCheck
mMenToolsUpdate.Text = My.Language.strMenuCheckForUpdates
mMenToolsOptions.Text = My.Language.strMenuOptions
mMenInfo.Text = My.Resources.strMenuHelp
mMenInfoHelp.Text = My.Resources.strMenuHelpContents
mMenInfoForum.Text = My.Resources.strMenuSupportForum
mMenInfoBugReport.Text = My.Resources.strMenuReportBug
mMenInfoDonate.Text = My.Resources.strMenuDonate
mMenInfoWebsite.Text = My.Resources.strMenuWebsite
mMenInfoAbout.Text = My.Resources.strMenuAbout
mMenInfoAnnouncements.Text = My.Resources.strMenuAnnouncements
mMenInfo.Text = My.Language.strMenuHelp
mMenInfoHelp.Text = My.Language.strMenuHelpContents
mMenInfoForum.Text = My.Language.strMenuSupportForum
mMenInfoBugReport.Text = My.Language.strMenuReportBug
mMenInfoDonate.Text = My.Language.strMenuDonate
mMenInfoWebsite.Text = My.Language.strMenuWebsite
mMenInfoAbout.Text = My.Language.strMenuAbout
mMenInfoAnnouncements.Text = My.Language.strMenuAnnouncements
lblQuickConnect.Text = My.Resources.strLabelConnect
btnQuickyPlay.Text = My.Resources.strMenuConnect
mMenQuickyCon.Text = My.Resources.strMenuConnections
lblQuickConnect.Text = My.Language.strLabelConnect
btnQuickyPlay.Text = My.Language.strMenuConnect
mMenQuickyCon.Text = My.Language.strMenuConnections
cMenToolbarShowText.Text = My.Resources.strMenuShowText
cMenToolbarShowText.Text = My.Language.strMenuShowText
ToolStripButton1.Text = My.Resources.strConnect
ToolStripButton2.Text = My.Resources.strScreenshot
ToolStripButton3.Text = My.Resources.strRefresh
ToolStripButton1.Text = My.Language.strConnect
ToolStripButton2.Text = My.Language.strScreenshot
ToolStripButton3.Text = My.Language.strRefresh
ToolStripSplitButton1.Text = My.Resources.strSpecialKeys
ToolStripMenuItem1.Text = My.Resources.strKeysCtrlAltDel
ToolStripMenuItem2.Text = My.Resources.strKeysCtrlEsc
ToolStripSplitButton1.Text = My.Language.strSpecialKeys
ToolStripMenuItem1.Text = My.Language.strKeysCtrlAltDel
ToolStripMenuItem2.Text = My.Language.strKeysCtrlEsc
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 wL.Count > 0 Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, My.Resources.strConfirmExitMainInstruction, "", "", "", My.Resources.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 WindowList IsNot Nothing Then
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
End If
End If
End If
Shutdown.BeforeQuit()
_IsClosing = True
For Each Window As UI.Window.Base In wL
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
@@ -203,50 +215,46 @@ Public Class frmMain
End Sub
Private Sub tmrAutoSave_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAutoSave.Tick
mC.AddMessage(Messages.MessageClass.InformationMsg, "Doing AutoSave", True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, "Doing AutoSave", True)
App.Runtime.SaveConnections()
End Sub
#End Region
#Region "Ext Apps Toolbar"
Private Sub cMenToolbarShowText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenToolbarShowText.Click
SwitchToolbarText(Not cMenToolbarShowText.Checked)
SwitchToolBarText(Not cMenToolbarShowText.Checked)
End Sub
Public Sub AddExtAppsToToolbar()
Public Sub AddExternalToolsToToolBar()
Try
'clean up
tsExtAppsToolbar.Items.Clear()
For Each item As ToolStripItem In tsExternalTools.Items
item.Dispose()
Next
tsExternalTools.Items.Clear()
'add ext apps
For Each extA As Tools.ExternalApp In ExtApps
Dim nItem As New ToolStripButton
nItem.Text = extA.DisplayName
nItem.Image = extA.Image
Dim button As ToolStripButton
For Each tool As Tools.ExternalTool In ExternalTools
button = tsExternalTools.Items.Add(tool.DisplayName, tool.Image, AddressOf tsExtAppEntry_Click)
If cMenToolbarShowText.Checked = True Then
nItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
button.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
Else
If nItem.Image IsNot Nothing Then
nItem.DisplayStyle = ToolStripItemDisplayStyle.Image
If button.Image IsNot Nothing Then
button.DisplayStyle = ToolStripItemDisplayStyle.Image
Else
nItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
button.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
End If
End If
nItem.Tag = extA
AddHandler nItem.Click, AddressOf tsExtAppEntry_Click
tsExtAppsToolbar.Items.Add(nItem)
button.Tag = tool
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddExtAppsToToolbar failed (frmMain)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strErrorAddExternalToolsToToolBarFailed, ex.Message), True)
End Try
End Sub
Private Sub tsExtAppEntry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim extA As Tools.ExternalApp = sender.Tag
Dim extA As Tools.ExternalTool = sender.Tag
If Tree.Node.GetNodeType(Tree.Node.SelectedNode) = Tree.Node.Type.Connection Then
extA.Start(Tree.Node.SelectedNode.Tag)
@@ -255,9 +263,9 @@ Public Class frmMain
End If
End Sub
Public Sub SwitchToolbarText(ByVal Show As Boolean)
For Each tItem As ToolStripButton In tsExtAppsToolbar.Items
If Show = True Then
Public Sub SwitchToolBarText(ByVal show As Boolean)
For Each tItem As ToolStripButton In tsExternalTools.Items
If show = True Then
tItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
Else
If tItem.Image IsNot Nothing Then
@@ -268,7 +276,7 @@ Public Class frmMain
End If
Next
cMenToolbarShowText.Checked = Show
cMenToolbarShowText.Checked = show
End Sub
#End Region
@@ -281,33 +289,33 @@ Public Class frmMain
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Resources.strMenuDelete
mMenFileRename.Text = My.Resources.strMenuRenameFolder
mMenFileDuplicate.Text = My.Resources.strMenuDuplicate
mMenFileDelete.Text = My.Language.strMenuDelete
mMenFileRename.Text = My.Language.strMenuRenameFolder
mMenFileDuplicate.Text = My.Language.strMenuDuplicate
Case Tree.Node.Type.Container
mMenFileImportExport.Enabled = True
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Resources.strMenuDeleteFolder
mMenFileRename.Text = My.Resources.strMenuRenameFolder
mMenFileDuplicate.Text = My.Resources.strMenuDuplicateFolder
mMenFileDelete.Text = My.Language.strMenuDeleteFolder
mMenFileRename.Text = My.Language.strMenuRenameFolder
mMenFileDuplicate.Text = My.Language.strMenuDuplicateFolder
Case Tree.Node.Type.Connection
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Resources.strMenuDeleteConnection
mMenFileRename.Text = My.Resources.strMenuRenameConnection
mMenFileDuplicate.Text = My.Resources.strMenuDuplicateConnection
mMenFileDelete.Text = My.Language.strMenuDeleteConnection
mMenFileRename.Text = My.Language.strMenuRenameConnection
mMenFileDuplicate.Text = My.Language.strMenuDuplicateConnection
Case Else
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = False
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Resources.strMenuDelete
mMenFileRename.Text = My.Resources.strMenuRename
mMenFileDuplicate.Text = My.Resources.strMenuDuplicate
mMenFileDelete.Text = My.Language.strMenuDelete
mMenFileRename.Text = My.Language.strMenuRename
mMenFileDuplicate.Text = My.Language.strMenuDuplicate
End Select
End Sub
@@ -331,8 +339,8 @@ Public Class frmMain
End Sub
Private Sub mMenFileLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileLoad.Click
If App.Runtime.ConnectionsFileLoaded Then
Select Case MsgBox(My.Resources.strSaveConnectionsFileBeforeOpeningAnother, MsgBoxStyle.YesNoCancel Or MsgBoxStyle.Question)
If App.Runtime.IsConnectionsFileLoaded Then
Select Case MsgBox(My.Language.strSaveConnectionsFileBeforeOpeningAnother, MsgBoxStyle.YesNoCancel Or MsgBoxStyle.Question)
Case MsgBoxResult.Yes
App.Runtime.SaveConnections()
Case MsgBoxResult.Cancel
@@ -348,7 +356,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
@@ -379,14 +387,14 @@ Public Class frmMain
Me.mMenViewSessions.Checked = Not Windows.sessionsForm.IsHidden
Me.mMenViewScreenshotManager.Checked = Not Windows.screenshotForm.IsHidden
Me.mMenViewExtAppsToolbar.Checked = tsExtAppsToolbar.Visible
Me.mMenViewExtAppsToolbar.Checked = tsExternalTools.Visible
Me.mMenViewQuickConnectToolbar.Checked = tsQuickConnect.Visible
Me.mMenViewConnectionPanels.DropDownItems.Clear()
For i As Integer = 0 To wL.Count - 1
Dim tItem As New ToolStripMenuItem(wL(i).Text, wL(i).Icon.ToBitmap, AddressOf ConnectionPanelMenuItem_Click)
tItem.Tag = wL(i)
For i As Integer = 0 To WindowList.Count - 1
Dim tItem As New ToolStripMenuItem(WindowList(i).Text, WindowList(i).Icon.ToBitmap, AddressOf ConnectionPanelMenuItem_Click)
tItem.Tag = WindowList(i)
Me.mMenViewConnectionPanels.DropDownItems.Add(tItem)
Next
@@ -474,7 +482,7 @@ Public Class frmMain
End Sub
Private Sub mMenViewResetLayout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewResetLayout.Click
If MsgBox(My.Resources.strConfirmResetLayout, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
If MsgBox(My.Language.strConfirmResetLayout, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
App.Runtime.Startup.SetDefaultLayout()
End If
End Sub
@@ -485,10 +493,10 @@ Public Class frmMain
Private Sub mMenViewExtAppsToolbar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewExtAppsToolbar.Click
If mMenViewExtAppsToolbar.Checked = False Then
tsExtAppsToolbar.Visible = True
tsExternalTools.Visible = True
mMenViewExtAppsToolbar.Checked = True
Else
tsExtAppsToolbar.Visible = False
tsExternalTools.Visible = False
mMenViewExtAppsToolbar.Checked = False
End If
End Sub
@@ -566,7 +574,7 @@ Public Class frmMain
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CreateButtons (frmMain) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CreateButtons (frmMain) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -588,7 +596,7 @@ Public Class frmMain
App.Runtime.OpenConnection(conI, mRemoteNG.Connection.Info.Force.DoNotJump)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickyProtocolButton_Click (frmMain) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "QuickyProtocolButton_Click (frmMain) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -679,7 +687,7 @@ Public Class frmMain
AddHandler tMenItem.MouseDown, AddressOf ConMenItem_MouseDown
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -696,18 +704,18 @@ Public Class frmMain
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
If My.Settings.MinimizeToTray Then
If App.Runtime.SysTrayIcon Is Nothing Then
App.Runtime.SysTrayIcon = New Tools.Controls.SysTrayIcon()
If App.Runtime.NotificationAreaIcon Is Nothing Then
App.Runtime.NotificationAreaIcon = New Tools.Controls.NotificationAreaIcon()
End If
Me.Hide()
End If
Else
prevWindowsState = Me.WindowState
PreviousWindowState = Me.WindowState
End If
End Sub
Private bWmGetTextFlag As Boolean = False
Private bWmWindowPosChangedFlag As Boolean = False
Private _inMouseActivate As Boolean = False
Private _inSizeMove As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
Try
@@ -716,19 +724,45 @@ Public Class frmMain
#End If
Select Case m.Msg
Case WM_GETTEXT
bWmGetTextFlag = True
Case WM_WINDOWPOSCHANGED
If bWmGetTextFlag Then
ActivateConnection()
Case WM_MOUSEACTIVATE
_inMouseActivate = True
Case WM_ACTIVATEAPP
_inMouseActivate = False
Case WM_ACTIVATE
' Ingore this message if it wasn't triggered by a click
If Not LOWORD(m.WParam) = WA_CLICKACTIVE Then Exit Select
Dim control As Control = FromChildHandle(WindowFromPoint(MousePosition))
If Not IsNothing(control) Then
' 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
Dim clientMousePosition As Point = control.PointToClient(MousePosition)
SendMessage(control.Handle, WM_LBUTTONDOWN, MK_LBUTTON, MAKELPARAM(clientMousePosition.X, clientMousePosition.Y))
control.Focus()
Exit Select
End If
End If
bWmGetTextFlag = False
bWmWindowPosChangedFlag = True
Case WM_ACTIVATEAPP
If bWmWindowPosChangedFlag Then
ActivateConnection()
End If
' 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))
If (Not (windowPos.flags And SWP_NOACTIVATE) = 0) Then Exit Select
' This handles all other activations
If Not _inMouseActivate And Not _inSizeMove Then ActivateConnection()
Case WM_SYSCOMMAND
For i As Integer = 0 To SysMenSubItems.Length - 1
If SysMenSubItems(i) = m.WParam Then
@@ -743,9 +777,6 @@ Public Class frmMain
'Send to the next window
SendMessage(fpChainedWindowHandle, m.Msg, m.LParam, m.WParam)
fpChainedWindowHandle = m.LParam
Case Else
bWmGetTextFlag = False
bWmWindowPosChangedFlag = False
End Select
Catch ex As Exception
End Try
@@ -768,6 +799,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"
@@ -777,21 +834,21 @@ Public Class frmMain
End Sub
Private SysMenSubItems(50) As Integer
Private Sub ResetSysMenuItems()
SysMenu.Reset()
Private Shared Sub ResetSysMenuItems()
SystemMenu.Reset()
End Sub
Private Sub AddSysMenuItems()
SysMenu = New Tools.SystemMenu(Me.Handle)
Dim popMen As IntPtr = SysMenu.CreatePopupMenuItem()
SystemMenu = New Tools.SystemMenu(Me.Handle)
Dim popMen As IntPtr = SystemMenu.CreatePopupMenuItem()
For i As Integer = 0 To Screen.AllScreens.Length - 1
SysMenSubItems(i) = 200 + i
SysMenu.AppendMenuItem(popMen, Tools.SystemMenu.Flags.MF_STRING, SysMenSubItems(i), My.Resources.strScreen & " " & i + 1)
SystemMenu.AppendMenuItem(popMen, Tools.SystemMenu.Flags.MF_STRING, SysMenSubItems(i), My.Language.strScreen & " " & i + 1)
Next
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 0, Tools.SystemMenu.Flags.MF_POPUP Or Tools.SystemMenu.Flags.MF_BYPOSITION, popMen, My.Resources.strSendTo)
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 1, Tools.SystemMenu.Flags.MF_BYPOSITION Or Tools.SystemMenu.Flags.MF_SEPARATOR, IntPtr.Zero, Nothing)
SystemMenu.InsertMenuItem(SystemMenu.SystemMenuHandle, 0, Tools.SystemMenu.Flags.MF_POPUP Or Tools.SystemMenu.Flags.MF_BYPOSITION, popMen, My.Language.strSendTo)
SystemMenu.InsertMenuItem(SystemMenu.SystemMenuHandle, 1, Tools.SystemMenu.Flags.MF_BYPOSITION Or Tools.SystemMenu.Flags.MF_SEPARATOR, IntPtr.Zero, Nothing)
End Sub
#End Region
End Class

View File

@@ -124,154 +124,154 @@
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABq
IgAAAk1TRnQBSQFMAgEBBwEAAdgBAAHYAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAeIB7wH0Af8BqAHJAdcB/wF2AaQBtgH/AVkBhgGcAf8BRAFrAYoB/wE/
AWYBhwH/AT8BcAGVAf8BUgGOAasB/wGPAbcBzQH/Ad0B6gHxAf8MAANXAbcDnwH/A5oB/wOWAf8DkQH/
A40B/wOJAf8DhAH/A4AB/wNhAf8DXQH/A1kB/wNWAf8DUgH/A08B/wNXAbcYAAMNARIDVgG2A1YBtgMN
ARFgAAGtAc8B3wH/AVEBkQGtAf8BVgGjAb8B/wFyAcAB1AH/AZUB2QHmAf8BgQHbAfAB/wFKAcYB7AH/
AR4BqgHdAf8BEAGSAccB/wEcAYABrAH/ATMBawGSAf8BnQG/AdEB/wgAA6gB/wPpAf8D0wH/A9IB/wPR
Af8D0AH/A84B/wPNAf8DzQH/A8sB/wPLAf8DygH/A8kB/wPIAf8D4gH/A08B/xgAA14B2QPkAf8D4wH/
A1gBwWAAAVQBhAGbAf8BPgG9AecB/wFhAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUoBygHw
Af8BGAG2Ae0B/wEAAacB6AH/AQABoQHhAf8BAwGWAdIB/wE3AVgBdAH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DUwH/CAADCwEPA1QBrQM6
AWEDPwFuA3oB+AHiAeEB3wH/AeEB4AHfAf8DagHzAzwBZwM8AWYDUwGtAwsBD1AAAVcBhwGeAf8BPQHE
AfAB/wFjAdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUoBygHwAf8BGAG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE4AVkBdgH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOw
Af8DrwH/A60B/wOrAf8DqQH/A6gB/wPKAf8DVwH/CAADWgHFBP8CsQGwAf4CsAGvAf4C5wHmAf8B1gHV
AdMB/wHXAdYB1AH/AeMB4gHgAf8BpQGkAaIB/gKwAa8B/QHpAegB5gH/A1gBwVAAAVkBiQGgAf8BPQHE
Ae8B/wFiAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGCAd8B8wH/AUsBygHwAf8BGAG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE6AVwBeAH/CAADtgH/A90B/wPBAf8DvQH/A7wB/wO6Af8DuAH/A7UB/wO0
Af8DsgH/A7AB/wOtAf8DrAH/A6wB/wPPAf8DWwH/CAADZAHnAvkB9wH/Au8B7gH/AtsB2gH/AcoCyQH/
AckByAHGAf8ByQHIAccB/wHJAcgBxwH/AssByQH/AeYB5QHkAf8B5QHkAeIB/wNlAeVQAAFbAYwBogH/
AT8BxgHwAf8BZAHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BggHfAfQB/wFLAcoB8AH/ARgBtgHtAf8BAAGo
AegB/wEAAaIB4gH/AQABmwHbAf8BPAFfAYAB/wgAA1oBvQPaAf8DyAH/A8AB/wO/Af8DvQH/A7oB/wO4
Af8DtwH/A7UB/wOzAf8DsAH/A68B/wOzAf8DwgH/A1oBvQgAA04BlQH2AfUB9AH/AeYB5QHkAf8BvwG+
Ab0B/wLrAeoB/wHUAdMB0gH/AdYB1QHUAf8B4gLhAf8CtAGzAf8B1wHWAdQB/wHiAeEB3wH/A0oBjVAA
AV4BjwGlAf8BQAHGAfAB/wFkAdQB8gH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUoBygHwAf8BGAG2
Ae0B/wEAAacB6AH/AQABoQHiAf8BAAGcAdsB/wE+AWIBgwH/CAADWgG9A+MB/wPnAf8D4QH/A+AB/wPg
Af8D3wH/A98B/wPeAf8D3QH/A90B/wPcAf8D2wH/A+AB/wPQAf8DWgG9AwsBDwNVAbUDZAHnAeQB4wHi
Af8B0QHQAc8B/wLwAe8B/wOuAf8DZAHxA2cB8gKsAasB/wLoAecB/wLLAcoB/wHgAd8B3QH/A2EB5ANV
AbUDCwEPSAABXwGSAagB/wFAAcUB8AH/AWUB1AHyAf8BjQHjAfQB/wGiAesB9gH/AYIB3wH0Af8BSgHK
AfAB/wEYAbYB7QH/AQABpwHoAf8BAAGhAeEB/wEAAZwB2wH/AUABZQGGAf8IAAMpAT8DzgH/A+wB/wPe
Af8D2AH/A9IB/wPMAf8DyAH/A8cB/wPIAf8DywH/A9AB/wPdAf8D6AH/A6QB/wMrAUIDPwFtAuQB4wH/
AdgB1gHVAf8B0gHRAdAB/wHFAcQBwwH/Ae0B7AHrAf8DVwG6CAADXAHNAegB5wHmAf8BtgG1AbQB/wHW
AdUB0wH/AeIB4QHgAf8C4AHfAf8DPAFmSAABYgGVAasB/wFAAcUB8AH/AWUB1AHyAf8BjQHjAfQB/wGi
AesB9gH/AYMB3wH0Af8BSwHLAfAB/wEYAbUB7QH/AQABpwHoAf8BAAGhAeIB/wEAAZwB2gH/AUMBaAGI
Af8MAANaAb0D4wH/A9sB/wPiAf8BtwHQAbgB/wFJAa0BTQH/AVsBqgFJAf8BVQGvAU0B/wE7AaUBRwH/
AawBxQGsAf8DwgH/A9EB/wPTAf8DWgG9BAADQgF2AewB6wHoAf8B2gHZAdcB/wHUAdMB0QH/AcYBxQHE
Af8B3gLcAf8DRgF+CAADUAGaAd0B3AHbAf8ByAHGAcUB/wLiAeEB/wLhAd8B/wHuAe0B7AH/Az8Bb0gA
AWQBmAGuAf8BQAHFAfAB/wFlAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHwAf8BGAG2
Ae0B/wEAAagB6QH/AQABoQHhAf8BAAGcAdoB/wFFAWoBigH/DAADKQE/A9EB/wPzAf8BxwHeAcoB/wFJ
AckBhQH/AbMB3AGkAf8B5wHHAWEB/wHcAb8BWAH/AVsBzAGPAf8BNAGtAU0B/wG4AdABuAH/A/EB/wOv
Af8DKwFCBAADLwFKA2AB6wOJAfwB3gHdAdwB/wHLAsoB/wHmAuUB/wNhAeEDMgFQAzgBXANgAesC7gHs
Af8BzALLAf8B5wHmAeUB/wKKAYkB/ANgAesDLAFDSAABZwGbAbAB/wE/AcYB8AH/AWUB1AHyAf8BjQHj
AfQB/wGiAesB9gH/AYMB3wH0Af8BSwHKAfAB/wEYAbYB7QH/AQABqAHoAf8BAAGhAeEB/wEAAZwB2gH/
AUgBbgGOAf8QAANaAb0DxAH/AVsBzgGLAf8BmQHkAasB/wGwAcUBQgH/AeoBtQEtAf8B4QGiAR4B/wGl
AZ0BJQH/AYIBxQGPAf8BLgGaATsB/wOgAf8DWgG9EAADXgHOAeEB4AHeAf8B2QHXAdYB/wG4ArcB/wHh
AeAB3wH/A6sB/QOwAf0C9gH1Af8CwAG/Af8B6gHpAegB/wLzAfIB/wNcAclQAAFqAZ8BswH/AT8BxgHw
Af8BYwHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wFLAcoB8AH/ARgBtgHtAf8BAAGnAegB/wEA
AaEB4QH/AQABmwHaAf8BSgFxAZAB/xgAAWcBkQFyAfwBogHpAZUB/wHWAc8BTgH/AeIBswEsAf8B0QG7
ATQB/wHCAa4BJwH/AYIBvQFRAf8BLwF4AV0B/BgAA0wBkQHjAeIB4AH/At4B3AH/AeEB4AHfAf8BzALL
Af8BxAHDAcIB/wLPAc4B/wLeAd0B/wLwAe8B/wLwAe8B/wL2AfUB/wNIAYdQAAFrAaEBtQH/AWUB1QH0
Af8BmgHoAfcB/wG1AfMB+gH/AcIB+AH8Af8BwwH4Af0B/wHBAfcB/QH/Aa8B8AH7Af8BjwHiAfcB/wFk
AdAB8AH/ATgBuAHlAf8BTQF0AZMB/xgAAWkBkQFzAfwBogHwAZ8B/wHYAe0BrwH/Ad4BxQFNAf8BtAHi
AUoB/wFFAecBHgH/AVAB1wFQAf8BPgF6AWQB/BQAAwEBAgNfAeMB5QHkAeEB/wLuAe0B/wLuAe0B/wLr
AeoB/wHjAeIB4QH/AugB5wH/AuoB6QH/AvMB8gH/AvUB9AH/AfoB+QH4Af8DXAHfUAABbgGjAbgB/wHF
AfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9
Af8BxQH5Af0B/wHFAfkB/QH/AU8BdwGVAf8YAANhAdwByAH3AdQB/wHYAfYBygH/AecB4wGpAf8B2wHP
AVEB/wGvAdwBTQH/AZ0B6gGrAf8DXwHgGAADQAFvA38B/gNkAecDXwHzAegB5wHmAf8B5wHmAeUB/wLt
AewB/wL7AfoB/wNnAfIDZAHnA4EB/gM9AWhQAAG3AdcB4QH/AYwBvQHMAf8BnQHPAdsB/wGtAd8B6AH/
AbkB7AHzAf8BwgH1AfoB/wHCAfUB+gH/AbgB6wHxAf8BqQHaAeMB/wGUAcQB0QH/AXUBqAG4Af8BqQHF
AdEB/xgAAy0BRQFqAYEBdgH6AdsB+AHpAf8B5wHyAdgB/wHtAeUBswH/Ad8B2QGmAf8BXwGOAV8B+wMy
AVAgAAMPARQDCgEOA1MBqgHvAe4B7QH/AvQB8wH/A1IBpAMIAQsDEQEXWAAC/gL/AeMB8QH0Af8BuQHX
AeEB/wGVAb4BzAH/AXUBqAG7Af8BaAGbAbAB/wFkAZgBrQH/AW0BoQGzAf8BjAGyAcIB/wGxAc0B1wH/
Ad8B6wHvAf8D/gH/HAADLgFHA14B2QFtAZEBcQH8AW0BjQFtAfwDXgHdAzIBUCwAAy8BSgNdAfADYgHv
AywBQ2QAAxEBFwNWAbMBUwFUAVMBrLQAAwQBBQMQARUDHwEtAykBPwMvAUkDLgFIAygBPQMeASsDDwEU
AwMBBBAAA7cB/wGcAagBngH/AQABXAE3Af8BIQGSAVkB/wEAAWABNwH/AQkBTQGgAf8BBgFLAZ4B/wEC
AUgBmwH/AQABRgGZAf8BAAFEAZcB/wEAAUEBlAH/AQABQAGTAf8DUQH/A1EB/xwAA0EBcgFMAl8B8wFZ
AlwBzwFLAkwBkAMjATNcAAMFAQcDHwEsAj4BPQFqAlIBUAGjAVsCWQHEAV0CWgHTAV0CWgHTAVsCWQHD
AVICUQGhAzwBZgMcASgDBAEGDAADFQEdA1EBogEmAZUBXQH/AYIBvgGqAf8BNQGlAYIB/wEWAZcBTwH/
ARkBmQFUAf8BHQGZAVgB/wEhAZ0BXQH/AVsBqgHSAf8BWQGoAdEB/wEAAUIBlQH/IAADIQEwASsBQwFx
AfwBhgGtAeEB/wFjAagB3AH/AUQBkgHJAf8BFQFXAasB/wFVAlYBsQMfAS1TAAEBAxIBGAM+AWsBXQJZ
AdcBXwErASoB/AGsATIBCQH/AeEBUgEmAf8B5AFkAToB/wHTAVABHgH/AaMBQAExAf0BYQJeAdoCPgE9
AWoDDwEUCAADGAEiAVABUgFQAaQDVgGzAVIBrAGfAf8BWQG3AZ4B/wFjAbsBrAH/AWMBuwGuAf8BZAG7
AbAB/wGAAbwBswH/ARwBmgFgAf8BOQGVAccB/wFcAasB0wH/AQABRQGYAf8gAAFUAlYBqwFSAZ0B0QH/
AZkBvAHrAf8BVgGgAeMB/wGWAbkB6gH/AZQBuAHqAf8BRQGTAcoB/wErATIBbQH8A0MBeFAAAxsBJgNZ
AdIBIgEMAQAB/wGKAUEBKQH/AcoBhgFLAf8B9gG8AZwB/wH5AcwBtwH/AeMBoAFdAf8BsQFcAUIB/wFe
ATgBGQH/AV4CWAHdAxwBKAgAAVUBVgFVAbEDVgGzA1YBswFBAaQBkQH/AVQBtgGbAf8BTQGyAZsB/wFP
AbIBngH/AVEBswGhAf8BhQG/AbYB/wEjAZ4BggH/AT4BmQHJAf8BYAGtAdQB/wEDAUkBnAH/HAADHwEt
ASsBWAF1AfwBnQG/AewB/wFOAZwB4gH/AUABkwHfAf8BPQGRAd8B/wFEAZQB4AH/AZUBuAHqAf8BhgGt
AeEB/wEuAYMBuwH/AUsCTAGQBAADnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/CAABUwJPAaUBOQEeAQYB/wFeAUkBNAH/AY8BWwFGAf8BrAGI
AVAB/wHCAaMBiAH/AcEBpQGOAf8BswGYAYEB/wGRAVsBRQH/AVkBQAErAf8BSAEhAQAB/wFWAlUBsQgA
AwgBCwNVAbIDVgGzAVsBsgGoAf8BYgG9AacB/wGHAcEBtQH/AYYBwQG2Af8BhwHBAbcB/wGIAcEBuQH/
ASkBogGIAf8BQwGcAcsB/wFkAbAB1QH/AQgBTAGfAf8QAAMrAUIDSAGEAVUCVwG3AUwCXwHzAVsBpAHX
Af8BoQHCAe0B/wGfAcAB7QH/AZ0BvwHtAf8BWQGjAeQB/wE/AZIB3wH/AT0BkAHeAf8BYAGnAeYB/wGS
AbYB6AH/ASgBZAG3Af8DNwFaA50B/wG6Ar0B/wHmAuwB/wHmAu0B/wHnAu0B/wHoAu4B/wHpAu8B/wHp
Au8B/wHqAu8B/wHqAvAB/wHrAvAB/wHrAvEB/wHsAvEB/wHsAvEB/wG9Ar8B/wOdAf8EAAM5AV8BWgE6
AR8B/wHDAbEBogH/AbYBnAGDAf8BpgFeATEB/wGoAVwBLgH/AcMBpAGHAf8B2AHGAbAB/wG9AakBiwH/
AWQBRAEkAf8BQQEhAQIB/wE3ARMBAAH/AT4BFwEAAf8DMwFTCAADBgEIA1UBsgE0AaABigH/AZMByQG6
Af8BRAGvAZcB/wEpAaIBgwH/ASoBowGHAf8BLAGkAYsB/wErAaoBkgH/ATkBwgHtAf8BgQG0AdcB/wEN
AVABowH/DAADTAGTAUkBlwHPAf8BYAGoAdkB/wGNAbQB4gH/AaMBxAHtAf8BpwHHAe4B/wFJAZcBzQH/
ARkBWgGyAf8BRAGTAckB/wGfAcAB7QH/AV0BlgGjAf8BngGWAS0B/wFhAZQBkQH/AY0BswHpAf8BXgGl
AdgB/wFaAl4B2AQAA1wB6gHbAuIB/wHNAs8B/wPLAf8DzAH/A84B/wPPAf8D0AH/A9IB/wPTAf8D1QH/
AdcC2AH/AecC7AH/A20B9wQAAyIBMQFWAlUBsQFMASABAAH/AaoBhQFEAf8BsgFXARUB/wGtATQBAAH/
AboBUQEJAf8B6gHVAb8B/wH9AfwB+gH/AdYBvgGmAf8BkAFEAREB/wFHARUBAAH/AUgBJQEEAf8BQQEh
AQMB/wNXAcUDHAEnCAADBAEGARoBlAFcAf8BUwG5AZ4B/wEuAaYBiQH/AV4BsQHVAf8BWgGtAdQB/wFW
AasB0gH/AUQBugHkAf8BAAGZAU4B/wEMAY4BPQH/AQ8BVQGaAf8MAAFIAmIB9gGuAc0B8AH/AbABzwHw
Af8BmAG/AewB/wFjAa4B5wH/AaoBygHvAf8BIgFgAbgB/wQAARoBWwGzAf8BogHDAe0B/wGoAZcBFgH/
AcQBtQE/Af8BrAGXAQsB/wFAAZMB3wH/AZgBuwHrAf8BAQFJAZ8B/wQAA1wB6gHZAuEB/wHLAswB/wPH
Af8DyAH/A8oB/wPLAf8DzQH/A84B/wPQAf8D0QH/AdMC1AH/AeUC6wH/A20B9wQAAy4BRwNZAewBRwEV
AQAB/wGZATQBAAH/AbgBTAEAAf8BwgFIAQAB/wHJAVoBCAH/AeYBvwGUAf8B7AHUAbYB/wHNAZwBRwH/
AagBUQERAf8BmQFSASYB/wGjAYwBVwH/AWQBSwE0Af8CUQE/AfcBNQI0AVUMAAE9AY4BxAH/ATcBrAGL
Af8BNAGqAY8B/wFjAbUB2AH/AV8BsgHWAf8BXAGvAdUB/wFYAawB0wH/AQkBkAFHAf8BPgGoAYQB/wEA
AV0BOAH/AxQBGwgAAVoCYAHeAagByQHtAf8BhAGnAe0B/wE9AU8B7QH/AU8BjgHpAf8BrQHNAfAB/wFS
AZ0B0gH/ASMBYQG5Af8BTAGZAc4B/wGlAcUB7gH/AZUBmgFOAf8BrQGXAQsB/wGdAZcBMgH/AUsBmwHi
Af8BmAG7AeoB/wFIAmIB9gQAA1wB6gHXAt8B/wHHAskB/wPCAf8DxAH/A8UB/wPIAf8DyQH/A8oB/wPM
Af8DzQH/AdAC0QH/AeMC6gH/A20B9wQAAzkBXwJAAR4B/QFZASABAAH/Aa4BPgEAAf8BwAFGAQAB/wHn
AZYBKwH/AegBsgFfAf8B5AGxAV8B/wHSAYkBHgH/Ab0BSwEAAf8BqAE5AQAB/wG4AY0BQgH/AdQBwwGy
Af8BmAGEAVMB/wFAASIBBAH/AT4CPQFqDAABQwGRAckB/wGkAcwB5AH/AYcBuwHbAf8BJAGhAV8B/wEe
AZwBWQH/ARkBmgFVAf8BFAGWAU8B/wEwAaMBgQH/AYQBwAGrAf8BJwGWAV4B/wNRAaIDFQEdBAADUQGc
AZIBuQHlAf8BUwFZAfYB/wGBAYQB9QH/AiUB8AH/AZABuwHrAf8BrgHNAfAB/wGsAcwB8AH/AaoBygHw
Af8BhQGyAekB/wFDAakBwQH/ASkBswGNAf8BOwGoAbYB/wFVAaEB5AH/AZcBugHoAf8DXQHtBAADXAHq
AdYC3wH/AcMCxQH/A8AB/wPAAf8DwgH/A8MB/wPEAf8DxQH/A8gB/wPJAf8DzQH/AeAC6AH/A20B9wQA
AzcCWgFNASgB+gGDASsBAAH/AcsBVQEAAf8B5QGLASIB/wH+AbYBVwL/AeMBwgH/AfQBvAGFAf8B1gFc
AQ4B/wHFAVMBAAH/AboBSAEAAf8BrwFcAR4B/wGuAYgBQgH/AZQBWwFCAf8BQQEjAQcB/wM8AWYMAAFI
AZUBzQH/AagBzwHlAf8BjAG/Ad0B/wEqAaUBgQH/AY0BxQG4Af8BiQHDAbQB/wGGAcEBsQH/AYQBvwGv
Af8BXAG5AZ8B/wFTAa0BoAH/A1YBswFQAVIBUAGkAxgBIgMjATMBLgFqAYMB/AGSAaQB9QH/AT4BPwH2
Af8BNgGGAfQB/wEgAaYB+wH/AUEBqwHyAf8BYwGvAecB/wFgAa0B5wH/AV0BqgHmAf8BJAG2AYAB/wFF
AcgBlwH/ASABtwFfAf8BYgGsAecB/wGPAbUB4wH/AVoCXgHVBAADYAHWAccCzQH/AdsC5AH/AdsC5AH/
AdsC5QH/AdwC5QH/AdwC5QH/Ad0C5gH/Ad0C5gH/Ad4C5wH/Ad8C6AH/AeAC6AH/Ac0C0wH/A18B4wQA
AyYBOQFgAloB3gGOATMBAAH/AewBngE4Af8B/gG/AYUC/wHMAaEC/wHfAbsB/wH+AcIBZAH/AeIBjgEu
Af8B0wGEAR8B/wHKAV4BEQH/AbUBVQEPAf8BlwFGAQwB/wGBAUMBHgH/A1kB7AMuAUgMAAFMAZgB0AH/
AasB0QHnAf8BkAHCAd8B/wExAakBiAH/AZEByQG7Af8BWwG6AaUB/wFXAbgBoQH/AVMBtgGeAf8BVwG4
AZ0B/wFCAaUBkgH/A1YBswNWAbMBVQFWAVUBsQQAA0kBhwGGAa8B4QH/AbkB1wHzAf8BFwGmAf4B/wFR
Ab8C/wEQAaMC/wFLAb4B8AH/AR8BzgH7Af8BPwG+AfEB/wE3AbMBoAH/ASABtwFeAf8BLAGzAZAB/wGn
AcgB7gH/AVwBpQHWAf8BTwJRAZwEAAMsAUMDWwHIA50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOd
Af8DnQH/A50B/wNeAd0DMQFOBAADCQEMA0sBjgHAAVMBEgL/AbwBZAH/AfoBzgGnAf8B+AHbAb4C/wHi
AcYC/wG+AYYB/wH0AawBWgH/AewBwgGaAf8B4gG1AYsB/wG4AVoBGAH/AZ0BSQERAf8BiAFJASUB/wNP
AaUDEAEVDAABUAGbAdMB/wGuAdQB6AH/AasB0wHoAf8BPgGxAZAB/wGbAc4BwAH/AZkBzQG9Af8BlgHL
AbsB/wGVAcoBuQH/AYABvwGoAf8BXAGzAakB/wNWAbMDVQGyAwgBCwQAAwQBBgNRAZ8BhQGuAeEB/wE/
AbIB+QH/ARABowL/ASUBqQH7Af8BFQHTAf4B/wFRAeIC/wEQAdUC/wFkAbAB6AH/AWEBrQHnAf8BqQHK
Ae8B/wGlAcUB7QH/ASsBXAF3AfwDIQEwRAADEwEaAmQBUwHxAdgBngFXAf8B5wHTAcAB/wH8AfUB7gL/
AfgB6wL/AeUBwgH/AfYBuQGCAf8B8gHSAbgB/wHuAdIBtgH/AcIBhgEzAf8BpwFbASwB/wJNASkB+gMd
ASkQAAFTAZ0B1QH/AVEBmwHTAf8BTgGaAdIB/wEuAaEBjAH/ASkBnwGKAf8BJgGdAYUB/wEiAZkBgAH/
ATsBpQGSAf8BZAG4AbEB/wE1AaEBiwH/A1UBsgMGAQgQAANCAXUBXwJiAfYBjgG2AeMB/wG5AdcB8wH/
AUIB1QH7Af8BDwHVAv8BJgHRAfsB/wGzAdIB8gH/AbEB0AHxAf8BkgG4AeIB/wFHAZUBzAH/A0oBikwA
AzUBVwGpAUcBGQH/AcoBuAGoBv8B/gH8Av8B9gHiAf8B+wHFAaAB/wHkAbkBlQH/AdsBrAFiAf8BwwGO
AUEB/wGTAUkBHQH/AT4CPQFqMAABUwJUAawDVgGzA1YBswMEAQYYAAMWAR4DVAGuAVsBowHcAf8BkQG4
AeQB/wGoAcoB7AH/AaUBxwHsAf8BjQG1AeIB/wFNAZoB0gH/AVoCXwHbAzEBTlQAAzIBUQJkAVkB7AHQ
AbIBlQH/AewB4AHZAf8B5gHVAcQB/wHTAbABlAH/AdMBpgFcAf8BywGPAToB/wFnAWUBWQHyAToCOQFg
NAABUwJUAawDVgGzAwQBBiQAAysBQgNMAZABWwJdAdIBWQJcAc8DTgGZAy0BRWAAAxEBFwNEAXoCWgFX
AcUCZQFeAeUCYQFYAeYCXAFZAckCSAFHAYMDFQEdEAABQgFNAT4HAAE+AwABKAMAAUADAAEgAwABAQEA
AQEGAAEBFgAD/wEAAeABBwIAAfwBPwIAAcABAwIAAfwBPwIAAcABAwIAAcABAwIAAcABAwIAAcABAwIA
AcABAwIAAcABAwIAAcABAwIAAcABAwIAAcABAwYAAcABAwIAAQEBgAIAAcABAwGAAgEBgAIAAcABAwGA
AQEEAAHAAQMBwAEDAcABAwIAAcABAwHwAQ8BwAEDAgABwAEDAfABDwGAAQMCAAHAAQMB8AEPAcABAwIA
AcABAwHwAQ8B8AEPAgABwAEDAfgBHwH8AT8CAAHjBf8B4AEHAYABAQH8AR8C/wHAAQMBgAEHAfgBBwL/
AYABAwEAAQcB+AEDAv8BwAEDAQABBwHwAQECAAHAAQMBAAEHAYADAAGAAQEBgAEHAgABgAEBAgABwAEH
AQEBAAGAAQECAAHgAQMCAAGAAQECAAHgAQECAAGAAQECAAHgAwABgAEBAgAB4AEAAYABAAGAAQECAAHg
AQABgAEAAv8BgAEBAeABAQHgAQEC/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>

File diff suppressed because it is too large Load Diff

View File

@@ -64,7 +64,7 @@ Partial Class frmPassword
Me.lblPassword.Name = "lblPassword"
Me.lblPassword.Size = New System.Drawing.Size(56, 13)
Me.lblPassword.TabIndex = 2
Me.lblPassword.Text = My.Resources.strLabelPassword
Me.lblPassword.Text = My.Language.strLabelPassword
'
'lblVerify
'
@@ -73,7 +73,7 @@ Partial Class frmPassword
Me.lblVerify.Name = "lblVerify"
Me.lblVerify.Size = New System.Drawing.Size(36, 13)
Me.lblVerify.TabIndex = 3
Me.lblVerify.Text = My.Resources.strLabelVerify
Me.lblVerify.Text = My.Language.strLabelVerify
'
'btnOK
'
@@ -83,7 +83,7 @@ Partial Class frmPassword
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(69, 23)
Me.btnOK.TabIndex = 4
Me.btnOK.Text = My.Resources.strButtonOK
Me.btnOK.Text = My.Language.strButtonOK
Me.btnOK.UseVisualStyleBackColor = True
'
'btnCancel
@@ -95,7 +95,7 @@ Partial Class frmPassword
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(69, 23)
Me.btnCancel.TabIndex = 5
Me.btnCancel.Text = My.Resources.strButtonCancel
Me.btnCancel.Text = My.Language.strButtonCancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'lblStatus
@@ -152,7 +152,7 @@ Partial Class frmPassword
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = My.Resources.strTitlePassword
Me.Text = My.Language.strTitlePassword
CType(Me.pbLock, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnlImage.ResumeLayout(False)
Me.pnlImage.PerformLayout()

View File

@@ -29,12 +29,12 @@
Public Sub New(Optional ByVal UserAndPass As Boolean = False, Optional ByVal Title As String = "Security")
Public Sub New(Optional ByVal UserAndPass As Boolean = False, Optional ByVal title As String = "Security")
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.Text = Title
Me.Text = title
If UserAndPass = True Then
_UserAndPass = True
@@ -86,12 +86,12 @@
End Sub
Private Sub ApplyLanguage()
lblPassword.Text = My.Resources.strLabelPassword
lblVerify.Text = My.Resources.strLabelVerify
btnOK.Text = My.Resources.strButtonOK
btnCancel.Text = My.Resources.strButtonCancel
lblPassword.Text = My.Language.strLabelPassword
lblVerify.Text = My.Language.strLabelVerify
btnOK.Text = My.Language.strButtonOK
btnCancel.Text = My.Language.strButtonCancel
lblStatus.Text = "Status"
Text = My.Resources.strTitlePassword
Text = My.Language.strTitlePassword
End Sub
Private Sub txtPassword_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPassword.GotFocus

View File

@@ -30,6 +30,7 @@ CREATE TABLE [dbo].[tblCons] (
[PuttySession] [varchar] (128) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[Port] [int] NOT NULL ,
[ConnectToConsole] [bit] NOT NULL ,
[UseCredSsp] [bit] NOT NULL ,
[RenderingEngine] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[ICAEncryptionStrength] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RDPAuthenticationLevel] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
@@ -91,6 +92,7 @@ CREATE TABLE [dbo].[tblCons] (
[InheritRedirectSound] [bit] NOT NULL ,
[InheritResolution] [bit] NOT NULL ,
[InheritUseConsoleSession] [bit] NOT NULL ,
[InheritUseCredSsp] [bit] NOT NULL ,
[InheritRenderingEngine] [bit] NOT NULL ,
[InheritICAEncryptionStrength] [bit] NOT NULL ,
[InheritRDPAuthenticationLevel] [bit] NOT NULL ,

5838
mRemoteV1/Language/Language.Designer.vb generated Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -123,31 +123,19 @@
<data name="strPropertyNameColors" xml:space="preserve">
<value>Colors</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Components Check</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Always show this screen at startup</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Connecting...</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Colors (24-bit)</value>
</data>
<data name="strRDP256Colors" xml:space="preserve">
<value>256 Colors (8-bit)</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Colors (15-bit)</value>
</data>
<data name="strRDP4294967296Colors" xml:space="preserve">
<value>16777216 Colors (32-bit)</value>
</data>
<data name="strRDP65536Colors" xml:space="preserve">
<value>65536 Colors (16-bit)</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Colors (15-bit)</value>
</data>
</root>

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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,851 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>O programie</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Nowe połączenie</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Nowy folder</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Zawsze</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Zapytaj mnie znów później</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Ustawienia automatycznej aktualizacji</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Automatyczny zapis co:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Minuty (0 oznacza wyłączony)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Aktualna wersja</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp;Wybierz...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Anuluj</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Zmiana</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>&amp;Zamknij</value>
</data>
<data name="strButtonDefaultInheritance" xml:space="preserve">
<value>Dziedziczenie domyślne</value>
</data>
<data name="strButtonDefaultProperties" xml:space="preserve">
<value>Ustawienia domyślne</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Rozłącz</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Ikona</value>
</data>
<data name="strButtonInheritance" xml:space="preserve">
<value>Dziedziczenie</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Uruchom PuTTY</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Nowy</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Ustawienia</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp;Skanuj</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Wygląd</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Połączenie</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Wyświetl</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Brama</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Ogólny</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Protokół</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Odświerz</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Domena</value>
</data>
<data name="strCheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Nie pokazuj więcej tej informacji.</value>
</data>
<data name="strCheckboxInheritance" xml:space="preserve">
<value>Dziedziczenie</value>
</data>
<data name="strCheckboxPassword" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="strCheckboxUsername" xml:space="preserve">
<value>Użytkownik</value>
</data>
<data name="strCheckForUpdate" xml:space="preserve">
<value>Sprawdź ponownie</value>
</data>
<data name="strCheckNow" xml:space="preserve">
<value>Sprawdź teraz</value>
</data>
<data name="strChoosePanelBeforeConnecting" xml:space="preserve">
<value>Przed połączeniem wybierz panel</value>
</data>
<data name="strClosedPorts" xml:space="preserve">
<value>Porty zamknięte</value>
</data>
<data name="strCollapseAllFolders" xml:space="preserve">
<value>Zwiń wszystkie foldery</value>
</data>
<data name="strColumnFilename" xml:space="preserve">
<value>Nazwa pliku</value>
</data>
<data name="strColumnMessage" xml:space="preserve">
<value>Wiadomość</value>
</data>
<data name="strColumnUsername" xml:space="preserve">
<value>Użytkownik</value>
</data>
<data name="strConfirmDeleteNodeConnection" xml:space="preserve">
<value>Czy jesteś pewien, że chcesz usunąć połączenie, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolder" xml:space="preserve">
<value>Czy jesteś pewien, że chcesz usunąć pusty folder, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolderNotEmpty" xml:space="preserve">
<value>Czy jesteś pewien, że chcesz usunąć folder, "{0}"? Wszystkie foldery oraz połączenia które zawiera także zostaną usunięte.</value>
</data>
<data name="strConfirmExitMainInstruction" xml:space="preserve">
<value>Czy chcesz zamknąć wszystkie otwarte połączenia?</value>
</data>
<data name="strConfirmResetLayout" xml:space="preserve">
<value>Czy jesteś pewien, że chcesz powrócić z ustawieniami paneli do ich domyślego wyglądu?</value>
</data>
<data name="strConnect" xml:space="preserve">
<value>Połącz</value>
</data>
<data name="strConnectInFullscreen" xml:space="preserve">
<value>Połącz w trybie pełnego ekranu</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Łączenie...</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>Błąd RDP!
Kod błędu: {0}
Opis błędu: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Połączenia</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>Zainstalowana wersja</value>
</data>
<data name="strDetect" xml:space="preserve">
<value>Wykryj</value>
</data>
<data name="strDownloadAndInstall" xml:space="preserve">
<value>Ściągnij i zainstaluj</value>
</data>
<data name="strDuplicate" xml:space="preserve">
<value>Duplikuj</value>
</data>
<data name="strEndIP" xml:space="preserve">
<value>Końcowe IP</value>
</data>
<data name="strEndPort" xml:space="preserve">
<value>Port końcowy</value>
</data>
<data name="strErrorCode" xml:space="preserve">
<value>Kod błędu {0}.</value>
</data>
<data name="strErrors" xml:space="preserve">
<value>Błędy</value>
</data>
<data name="strExpandAllFolders" xml:space="preserve">
<value>Rozwiń wszystkie foldery</value>
</data>
<data name="strExport" xml:space="preserve">
<value>Eksport</value>
</data>
<data name="strFAMFAMFAMAttribution" xml:space="preserve">
<value>Zawiera ikony ze strony [FAMFAMFAM]</value>
</data>
<data name="strFilterAll" xml:space="preserve">
<value>Wszystkie pliki (*.*)</value>
</data>
<data name="strFilterApplication" xml:space="preserve">
<value>Pliki programów (*.exe)</value>
</data>
<data name="strFiltermRemoteCSV" xml:space="preserve">
<value>Pliki CSV mRemote (*.csv)</value>
</data>
<data name="strFiltermRemoteXML" xml:space="preserve">
<value>Pliki XML mRemote (*.xml)</value>
</data>
<data name="strFilterRDP" xml:space="preserve">
<value>Pliki RDP (*.rdp)</value>
</data>
<data name="strFiltervRD2008CSV" xml:space="preserve">
<value>Pliki CSV visionapp Remote Desktop 2008 (*.csv)</value>
</data>
<data name="strFree" xml:space="preserve">
<value>Wolne</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>Pełen ekran</value>
</data>
<data name="strGeneral" xml:space="preserve">
<value>Ogólne</value>
</data>
<data name="strGroupboxAutomaticReconnect" xml:space="preserve">
<value>Połącz automatycznie</value>
</data>
<data name="strGroupboxConnection" xml:space="preserve">
<value>Połączenie</value>
</data>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Pliki</value>
</data>
<data name="strImportAD" xml:space="preserve">
<value>Importów z Active Directory</value>
</data>
<data name="strImportExport" xml:space="preserve">
<value>Importuj/Eksportuj</value>
</data>
<data name="strInactive" xml:space="preserve">
<value>Bezczynny</value>
</data>
<data name="strInformations" xml:space="preserve">
<value>Informacje</value>
</data>
<data name="strInheritNewConnection" xml:space="preserve">
<value>mRemoteNG jest w najnowszej wersji</value>
</data>
<data name="strIntAppConnectionFailed" xml:space="preserve">
<value>Połączenie nieudane</value>
</data>
<data name="strLabelChangeLog" xml:space="preserve">
<value>Historia wersji:</value>
</data>
<data name="strLabelConnect" xml:space="preserve">
<value>&amp;Połącz</value>
</data>
<data name="strLabelDisplayName" xml:space="preserve">
<value>Widoczna nazwa</value>
</data>
<data name="strLabelDomain" xml:space="preserve">
<value>Domena:</value>
</data>
<data name="strLabelFilename" xml:space="preserve">
<value>Nazwa pliku:</value>
</data>
<data name="strLabelOptions" xml:space="preserve">
<value>Opcje:</value>
</data>
<data name="strLabelPassword" xml:space="preserve">
<value>Hasło:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Wersja przenośna.</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Protokół</value>
</data>
<data name="strLabelReleasedUnderGPL" xml:space="preserve">
<value>Wydane na licencji GNU General Public License (GPL)</value>
</data>
<data name="strLabelServerStatus" xml:space="preserve">
<value>Status serwera:</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Baza danych:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Baza danych:</value>
</data>
<data name="strLabelUsername" xml:space="preserve">
<value>Użytkownik:</value>
</data>
<data name="strLabelVerify" xml:space="preserve">
<value>Sprawdź:</value>
</data>
<data name="strLanguage" xml:space="preserve">
<value>Język</value>
</data>
<data name="strLanguageDefault" xml:space="preserve">
<value>(Wykryj automatycznie)</value>
</data>
<data name="strLocalFile" xml:space="preserve">
<value>Plik lokalny</value>
</data>
<data name="strLogOff" xml:space="preserve">
<value>Wyloguj</value>
</data>
<data name="strMagicLibraryAttribution" xml:space="preserve">
<value>Program korzysta z bibliotek "Magic library" [Crownwood Software]</value>
</data>
<data name="strMenuAbout" xml:space="preserve">
<value>O programie</value>
</data>
<data name="strMenuCheckForUpdates" xml:space="preserve">
<value>Sprawdź aktualizacje</value>
</data>
<data name="strMenuConfig" xml:space="preserve">
<value>Konfiguracja</value>
</data>
<data name="strMenuConnect" xml:space="preserve">
<value>Połącz</value>
</data>
<data name="strMenuConnectionPanels" xml:space="preserve">
<value>Panele połączeń</value>
</data>
<data name="strMenuConnections" xml:space="preserve">
<value>Połączenia</value>
</data>
<data name="strMenuConnectionsAndConfig" xml:space="preserve">
<value>Połączenia i konfiguracja</value>
</data>
<data name="strMenuCopy" xml:space="preserve">
<value>Kopiuj</value>
</data>
<data name="strMenuDelete" xml:space="preserve">
<value>Usuń...</value>
</data>
<data name="strMenuDeleteConnection" xml:space="preserve">
<value>Usuń połączenie...</value>
</data>
<data name="strMenuDeleteFolder" xml:space="preserve">
<value>Usuń folder...</value>
</data>
<data name="strMenuDisconnect" xml:space="preserve">
<value>Rozłącz</value>
</data>
<data name="strMenuDonate" xml:space="preserve">
<value>Darowizna</value>
</data>
<data name="strMenuDuplicate" xml:space="preserve">
<value>Duplikuj</value>
</data>
<data name="strMenuDuplicateConnection" xml:space="preserve">
<value>Duplikuj połączenie</value>
</data>
<data name="strMenuDuplicateFolder" xml:space="preserve">
<value>Duplikuj folder</value>
</data>
<data name="strMenuDuplicateTab" xml:space="preserve">
<value>Duplikuj zakładkę</value>
</data>
<data name="strMenuExit" xml:space="preserve">
<value>Wyjście</value>
</data>
<data name="strMenuExternalTools" xml:space="preserve">
<value>Narzędzia zewnętrzne</value>
</data>
<data name="strMenuExternalToolsToolbar" xml:space="preserve">
<value>Pasek narzędzi zewnętrznych</value>
</data>
<data name="strMenuFile" xml:space="preserve">
<value>&amp;Plik</value>
</data>
<data name="strMenuFullScreen" xml:space="preserve">
<value>Pełen ekran</value>
</data>
<data name="strMenuFullScreenRDP" xml:space="preserve">
<value>Pełen ekran (RDP)</value>
</data>
<data name="strMenuHelp" xml:space="preserve">
<value>&amp;Pomoc</value>
</data>
<data name="strMenuHelpContents" xml:space="preserve">
<value>Pomoc mRemoteNG</value>
</data>
<data name="strMenuJumpTo" xml:space="preserve">
<value>Idz do</value>
</data>
<data name="strMenuOptions" xml:space="preserve">
<value>Opcje</value>
</data>
<data name="strMenuPaste" xml:space="preserve">
<value>Wklej</value>
</data>
<data name="strMenuPortScan" xml:space="preserve">
<value>Skaner portów</value>
</data>
<data name="strMenuRename" xml:space="preserve">
<value>Zmień nazwę</value>
</data>
<data name="strMenuRenameConnection" xml:space="preserve">
<value>Zmień nazwę połączenia</value>
</data>
<data name="strMenuRenameFolder" xml:space="preserve">
<value>Zmień nazwę folderu</value>
</data>
<data name="strMenuSaveConnectionFile" xml:space="preserve">
<value>Zapisz plik połączeń</value>
</data>
<data name="strMenuSaveConnectionFileAs" xml:space="preserve">
<value>Zapisz plik połączeń jako ...</value>
</data>
<data name="strMenuScreenshot" xml:space="preserve">
<value>Zrzut ekranu</value>
</data>
<data name="strMenuScreenshotManager" xml:space="preserve">
<value>Menager zrzutów ekranów</value>
</data>
<data name="strMenuSessions" xml:space="preserve">
<value>Sesje</value>
</data>
<data name="strMenuSessionsAndScreenshots" xml:space="preserve">
<value>Sesje i zrzuty ekranów</value>
</data>
<data name="strMenuShowText" xml:space="preserve">
<value>Pokarz tekst</value>
</data>
<data name="strMenuSSHFileTransfer" xml:space="preserve">
<value>Transfer plików poprzez SSH</value>
</data>
<data name="strMenuStartChat" xml:space="preserve">
<value>Zacznij Chat (VNC)</value>
</data>
<data name="strMenuSupportForum" xml:space="preserve">
<value>Forum pomocy</value>
</data>
<data name="strMenuTools" xml:space="preserve">
<value>&amp;Narzędzia</value>
</data>
<data name="strMenuView" xml:space="preserve">
<value>&amp;Widok</value>
</data>
<data name="strMenuWebsite" xml:space="preserve">
<value>Strona WWW</value>
</data>
<data name="strMoveDown" xml:space="preserve">
<value>Idź w dół</value>
</data>
<data name="strMoveUp" xml:space="preserve">
<value>Idź w górę</value>
</data>
<data name="strNever" xml:space="preserve">
<value>Nigdy</value>
</data>
<data name="strNewConnection" xml:space="preserve">
<value>Nowe połączenie</value>
</data>
<data name="strNewFolder" xml:space="preserve">
<value>Nowy folder</value>
</data>
<data name="strNewPanel" xml:space="preserve">
<value>Nowy panel</value>
</data>
<data name="strNewRoot" xml:space="preserve">
<value>Nowe drzewo</value>
</data>
<data name="strNewTitle" xml:space="preserve">
<value>Nowy tytuł</value>
</data>
<data name="strNo" xml:space="preserve">
<value>Nie</value>
</data>
<data name="strNoCompression" xml:space="preserve">
<value>Bez kompresji</value>
</data>
<data name="strNoUpdateAvailable" xml:space="preserve">
<value>Brak aktualizacji</value>
</data>
<data name="strOpenPorts" xml:space="preserve">
<value>Porty otwarte</value>
</data>
<data name="strPanelName" xml:space="preserve">
<value>Nazwa panelu</value>
</data>
<data name="strPropertyDescriptionDomain" xml:space="preserve">
<value>Podaj domenę.</value>
</data>
<data name="strPropertyDescriptionUsername" xml:space="preserve">
<value>Nazwa użytkownika.</value>
</data>
<data name="strPropertyNameAll" xml:space="preserve">
<value>Wszystkie</value>
</data>
<data name="strPropertyNameColors" xml:space="preserve">
<value>Kolory</value>
</data>
<data name="strPropertyNameCompression" xml:space="preserve">
<value>Kompresja</value>
</data>
<data name="strPropertyNameDescription" xml:space="preserve">
<value>Opis</value>
</data>
<data name="strPropertyNameDisplayThemes" xml:space="preserve">
<value>Wyświetlaj motywy</value>
</data>
<data name="strPropertyNameDisplayWallpaper" xml:space="preserve">
<value>Wyświetl tapetę</value>
</data>
<data name="strPropertyNameDomain" xml:space="preserve">
<value>Domena</value>
</data>
<data name="strPropertyNameEnableFontSmoothing" xml:space="preserve">
<value>Wygładzenie czcionki</value>
</data>
<data name="strPropertyNameEncoding" xml:space="preserve">
<value>Kodowanie</value>
</data>
<data name="strPropertyNameIcon" xml:space="preserve">
<value>Ikona</value>
</data>
<data name="strPropertyNameMACAddress" xml:space="preserve">
<value>Adres MAC</value>
</data>
<data name="strPropertyNameName" xml:space="preserve">
<value>Nazwa</value>
</data>
<data name="strPropertyNamePassword" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="strPropertyNameProtocol" xml:space="preserve">
<value>Protokół</value>
</data>
<data name="strPropertyNamePuttySession" xml:space="preserve">
<value>Sesja PuTTY</value>
</data>
<data name="strPropertyNameRDGatewayUsageMethod" xml:space="preserve">
<value>Użyj bramy</value>
</data>
<data name="strPropertyNameRDGatewayUsername" xml:space="preserve">
<value>Użytkownik bramy</value>
</data>
<data name="strPropertyNameRedirectDrives" xml:space="preserve">
<value>Dyski</value>
</data>
<data name="strPropertyNameRedirectPorts" xml:space="preserve">
<value>Porty</value>
</data>
<data name="strPropertyNameRedirectPrinters" xml:space="preserve">
<value>Drukarki</value>
</data>
<data name="strPropertyNameRedirectSounds" xml:space="preserve">
<value>Dźwięki</value>
</data>
<data name="strPropertyNameResolution" xml:space="preserve">
<value>Rozdzielczość</value>
</data>
<data name="strPropertyNameUsername" xml:space="preserve">
<value>Użytkownik</value>
</data>
<data name="strPropertyNameViewOnly" xml:space="preserve">
<value>Tylko podgląd</value>
</data>
<data name="strPropertyNameVNCProxyAddress" xml:space="preserve">
<value>Adres proxy</value>
</data>
<data name="strPropertyNameVNCProxyPassword" xml:space="preserve">
<value>Hasło proxy</value>
</data>
<data name="strPropertyNameVNCProxyPort" xml:space="preserve">
<value>Port proxy</value>
</data>
<data name="strPropertyNameVNCProxyType" xml:space="preserve">
<value>Typ proxy</value>
</data>
<data name="strPropertyNameVNCProxyUsername" xml:space="preserve">
<value>Użytkownik proxy</value>
</data>
<data name="strProxyTestFailed" xml:space="preserve">
<value>Test proxy nie powiódł się!</value>
</data>
<data name="strProxyTestSucceeded" xml:space="preserve">
<value>Test proxy powiódł się!</value>
</data>
<data name="strPuttyConnectionFailed" xml:space="preserve">
<value>Nieudane połączenie!</value>
</data>
<data name="strPuttySettings" xml:space="preserve">
<value>Ustawienia PuTTY</value>
</data>
<data name="strQuickConnect" xml:space="preserve">
<value>Szybkie połączenie</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Kolorów (24-bir)</value>
</data>
<data name="strRDP256Colors" xml:space="preserve">
<value>256 Kolorów (8-bit)</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Kolorów (15-bit)</value>
</data>
<data name="strRDP4294967296Colors" xml:space="preserve">
<value>16777216 Kolorów (32-bit)</value>
</data>
<data name="strRDP65536Colors" xml:space="preserve">
<value>65536 Kolorów (16-bit)</value>
</data>
<data name="strRDPDisableCursorblinking" xml:space="preserve">
<value>Wyłącz miganie kursora</value>
</data>
<data name="strRDPDisableCursorShadow" xml:space="preserve">
<value>Wyłącz cień kursora</value>
</data>
<data name="strRDPDisableMenuAnimations" xml:space="preserve">
<value>Wyłącz animacje menu</value>
</data>
<data name="strRDPDisableThemes" xml:space="preserve">
<value>Wyłącz tematy</value>
</data>
<data name="strRDPDisableWallpaper" xml:space="preserve">
<value>Wyłącz tapetę</value>
</data>
<data name="strRDPSmartSize" xml:space="preserve">
<value>Mądry rozmiar</value>
</data>
<data name="strRefresh" xml:space="preserve">
<value>Odświerz</value>
</data>
<data name="strRemoteFile" xml:space="preserve">
<value>Plik zdalny</value>
</data>
<data name="strRemoveAll" xml:space="preserve">
<value>Usuń wszystkie</value>
</data>
<data name="strRename" xml:space="preserve">
<value>Zmień nazwę</value>
</data>
<data name="strSave" xml:space="preserve">
<value>Zapisz</value>
</data>
<data name="strSaveAll" xml:space="preserve">
<value>Zapisz wszystkie</value>
</data>
<data name="strScreenshot" xml:space="preserve">
<value>Zrzut ekranu</value>
</data>
<data name="strScreenshots" xml:space="preserve">
<value>Zrzuty ekranów</value>
</data>
<data name="strSendTo" xml:space="preserve">
<value>Wyślij do...</value>
</data>
<data name="strSort" xml:space="preserve">
<value>Sortuj</value>
</data>
<data name="strSortAsc" xml:space="preserve">
<value>Rosnąco (A-Z)</value>
</data>
<data name="strSortDesc" xml:space="preserve">
<value>Malejąco (Z-A)</value>
</data>
<data name="strSpecialKeys" xml:space="preserve">
<value>Znaki specjalne</value>
</data>
<data name="strSQLServer" xml:space="preserve">
<value>Serwer SQL:</value>
</data>
<data name="strSsh1" xml:space="preserve">
<value>SSH wersja 1</value>
</data>
<data name="strSsh2" xml:space="preserve">
<value>SSH wersja 2</value>
</data>
<data name="strStartIP" xml:space="preserve">
<value>Początkowe IP</value>
</data>
<data name="strStartPort" xml:space="preserve">
<value>Port początkowy</value>
</data>
<data name="strTabAdvanced" xml:space="preserve">
<value>Zaawansowane</value>
</data>
<data name="strTabAppearance" xml:space="preserve">
<value>Wygląd</value>
</data>
<data name="strTabUpdates" xml:space="preserve">
<value>Aktualizacje</value>
</data>
<data name="strTitleError" xml:space="preserve">
<value>Błąd ({0})</value>
</data>
<data name="strTitleInformation" xml:space="preserve">
<value>Informacja ({0})</value>
</data>
<data name="strTitlePassword" xml:space="preserve">
<value>Hasło</value>
</data>
<data name="strTitleSelectPanel" xml:space="preserve">
<value>Wybierz panel</value>
</data>
<data name="strTitleWarning" xml:space="preserve">
<value>Ostrzeżenie ({0})</value>
</data>
<data name="strType" xml:space="preserve">
<value>Typ</value>
</data>
<data name="strUpdateCheckFailed" xml:space="preserve">
<value>Sprawdzanie aktualizacji nie powiodło się!</value>
</data>
<data name="strUpdateFrequencyCustom" xml:space="preserve">
<value>Co {0} dni</value>
</data>
<data name="strUpdateFrequencyDaily" xml:space="preserve">
<value>Codziennie</value>
</data>
<data name="strUpdateFrequencyMonthly" xml:space="preserve">
<value>Miesięcznie</value>
</data>
<data name="strUpdateFrequencyWeekly" xml:space="preserve">
<value>Tygodniowo</value>
</data>
<data name="strUseDifferentUsernameAndPassword" xml:space="preserve">
<value>Użyj innego loginu użytkownika i hasła</value>
</data>
<data name="strUser" xml:space="preserve">
<value>Użytkownik</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Wersja</value>
</data>
<data name="strWarnings" xml:space="preserve">
<value>Ostrzeżenia</value>
</data>
<data name="strYes" xml:space="preserve">
<value>Tak</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -81,9 +81,8 @@ Namespace Messages
If My.Settings.SwitchToMCOnError And nMsg.MsgClass = Messages.MessageClass.ErrorMsg Then
Debug.Print("Error: " & nMsg.MsgText)
If My.Settings.WriteLogFile Then
App.Runtime.log.Error(nMsg.MsgText)
End If
' Always log error messages
App.Runtime.Log.Error(nMsg.MsgText)
If OnlyLog Then
Exit Sub
@@ -100,14 +99,7 @@ Namespace Messages
Debug.Print("Report: " & nMsg.MsgText)
If My.Settings.WriteLogFile Then
App.Runtime.log.Info(nMsg.MsgText)
End If
If App.Editions.Spanlink.Enabled Then
App.Runtime.Report(Tools.Misc.LeadingZero(Now.Year) & "-" & Tools.Misc.LeadingZero(Now.Month) & "-" & _
Tools.Misc.LeadingZero(Now.Day) & " " & Tools.Misc.LeadingZero(Now.Hour) & ":" & _
Tools.Misc.LeadingZero(Now.Minute) & ":" & Tools.Misc.LeadingZero(Now.Second) & _
" " & nMsg.MsgText)
App.Runtime.Log.Info(nMsg.MsgText)
End If
Exit Sub
@@ -138,11 +130,11 @@ Namespace Messages
Private Shared Sub ShowMessageBox(ByVal Msg As Messages.Message)
Select Case Msg.MsgClass
Case Messages.MessageClass.InformationMsg
MessageBox.Show(Msg.MsgText, String.Format(My.Resources.strTitleInformation, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Information)
MessageBox.Show(Msg.MsgText, String.Format(My.Language.strTitleInformation, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Information)
Case Messages.MessageClass.WarningMsg
MessageBox.Show(Msg.MsgText, String.Format(My.Resources.strTitleWarning, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Warning)
MessageBox.Show(Msg.MsgText, String.Format(My.Language.strTitleWarning, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Warning)
Case Messages.MessageClass.ErrorMsg
MessageBox.Show(Msg.MsgText, String.Format(My.Resources.strTitleError, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Error)
MessageBox.Show(Msg.MsgText, String.Format(My.Language.strTitleError, Msg.MsgDate), MessageBoxButtons.OK, MessageBoxIcon.Error)
End Select
End Sub

View File

@@ -1,4 +1,5 @@
Imports System
Imports System.Resources
Imports System.Reflection
Imports System.Runtime.InteropServices
@@ -12,10 +13,10 @@ Imports System.Runtime.InteropServices
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("mRemoteNG")>
<Assembly: AssemblyCopyright("Copyright © 2007-2009 Felix Deimel, 2010-2011 Riley McArdle")>
<Assembly: AssemblyCopyright("Copyright © 2007-2009 Felix Deimel, 2010-2013 Riley McArdle")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
<Assembly: ComVisible(False)>
'The following GUID is for the ID of the typelib if this project is exposed to COM
<Assembly: Guid("A99669B2-FAEB-11DE-995A-826C56D89593")>
@@ -31,4 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.69.*")>
<Assembly: AssemblyVersion("1.70.*")>
<Assembly: NeutralResourcesLanguageAttribute("en")>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="Base" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>mRemote.Language.Base, mRemote, Version=1.44.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

View File

@@ -1,10 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
This file is automatically generated by Visual Studio .Net. It is
used to store generic object data source configuration information.
Renaming the file extension or editing the content of this file may
cause the file to be unrecognizable by the program.
-->
<GenericObjectDataSource DisplayName="EN" Version="1.0" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TypeInfo>mRemote.Language.EN, mRemote, Version=1.44.0.0, Culture=neutral, PublicKeyToken=null</TypeInfo>
</GenericObjectDataSource>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.239
' 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,fr")> _
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)
@@ -2253,6 +2253,74 @@ Namespace My
Me("SQLDatabaseName") = 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("10"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property BackupFileKeepCount() As Integer
Get
Return CType(Me("BackupFileKeepCount"),Integer)
End Get
Set
Me("BackupFileKeepCount") = 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("{0}.{1:yyyyMMdd-HHmmssffff}.backup"), _
Global.System.Configuration.SettingsManageabilityAttribute(Global.System.Configuration.SettingsManageability.Roaming)> _
Public Property BackupFileNameFormat() As String
Get
Return CType(Me("BackupFileNameFormat"),String)
End Get
Set
Me("BackupFileNameFormat") = 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")> _
Public Property InhDefaultUseCredSsp() As Boolean
Get
Return CType(Me("InhDefaultUseCredSsp"),Boolean)
End Get
Set
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
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,fr</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)" />
@@ -512,5 +512,20 @@
<Setting Name="SQLDatabaseName" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)">mRemoteNG</Value>
</Setting>
<Setting Name="BackupFileKeepCount" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">10</Value>
</Setting>
<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="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>
</Settings>
</SettingsFile>

Binary file not shown.

Binary file not shown.

View File

@@ -10,7 +10,7 @@ Namespace Root
End Sub
#Region "Properties"
Private _Name As String = My.Resources.strConnections
Private _Name As String = My.Language.strConnections
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
[ReadOnly](False), _

View File

@@ -37,7 +37,7 @@ Namespace Security
Return Convert.ToBase64String(encdata)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Encryption failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strErrorEncryptionFailed, ex.Message))
End Try
Return StrToEncrypt
@@ -74,7 +74,10 @@ Namespace Security
Return System.Text.Encoding.UTF8.GetString(data, 0, i)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Decryption failed" & vbNewLine & ex.Message, True)
' 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

View File

@@ -66,14 +66,14 @@ Namespace Security
If 0 = returnValue Then
Dim errCode As Integer = Marshal.GetLastWin32Error()
Dim errMsg As String = "LogonUser failed with error code: " + errCode.ToString() + "(" + GetErrorMessage(errCode) + ")"
Dim exLogon As Exception = New System.Exception(errMsg)
Dim exLogon As New ApplicationException(errMsg)
Throw exLogon
End If
returnValue = DuplicateToken(tokenHandle, SecurityImpersonation, dupeTokenHandle)
If 0 = returnValue Then
CloseHandle(tokenHandle)
Throw New System.Exception("Error trying to duplicate handle.")
Throw New ApplicationException("Error trying to duplicate handle.")
End If
' The token that is passed to the following constructor must
@@ -82,7 +82,7 @@ Namespace Security
impersonatedUser = newId.Impersonate()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Starting Impersonation failed (Sessions feature will not work)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Starting Impersonation failed (Sessions feature will not work)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -93,8 +93,8 @@ Namespace Security
Try
impersonatedUser.Undo() ' Stop impersonating the user.
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Stopping Impersonation failed" & vbNewLine & ex.Message, True)
Throw ex
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Stopping Impersonation failed" & vbNewLine & ex.Message, True)
Throw
Finally
If Not System.IntPtr.op_Equality(tokenHandle, IntPtr.Zero) Then CloseHandle(tokenHandle)

View File

@@ -84,9 +84,9 @@
End Sub
Private Sub ApplyLanguage()
grpAutomaticReconnect.Text = My.Resources.strGroupboxAutomaticReconnect
btnClose.Text = My.Resources.strButtonClose
lblServerStatus.Text = My.Resources.strLabelServerStatus
chkReconnectWhenReady.Text = My.Resources.strCheckboxReconnectWhenReady
grpAutomaticReconnect.Text = My.Language.strGroupboxAutomaticReconnect
btnClose.Text = My.Language.strButtonClose
lblServerStatus.Text = My.Language.strLabelServerStatus
chkReconnectWhenReady.Text = My.Language.strCheckboxReconnectWhenReady
End Sub
End Class

View File

@@ -37,7 +37,7 @@ Namespace Tools
End Class
Public Class SysTrayIcon
Public Class NotificationAreaIcon
Private _nI As NotifyIcon
Private _cMen As ContextMenuStrip
@@ -63,13 +63,13 @@ Namespace Tools
Public Sub New()
Try
Me._cMenCons = New ToolStripMenuItem
Me._cMenCons.Text = My.Resources.strConnections
Me._cMenCons.Text = My.Language.strConnections
Me._cMenCons.Image = My.Resources.Root
Me._cMenSep1 = New ToolStripSeparator
Me._cMenExit = New ToolStripMenuItem
Me._cMenExit.Text = My.Resources.strMenuExit
Me._cMenExit.Text = My.Language.strMenuExit
AddHandler Me._cMenExit.Click, AddressOf cMenExit_Click
Me._cMen = New ContextMenuStrip
@@ -87,7 +87,7 @@ Namespace Tools
AddHandler Me._nI.MouseClick, AddressOf nI_MouseClick
AddHandler Me._nI.MouseDoubleClick, AddressOf nI_MouseDoubleClick
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Creating new SysTrayIcon failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Creating new SysTrayIcon failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -98,7 +98,7 @@ Namespace Tools
Me._cMen.Dispose()
Me._Disposed = True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Disposing SysTrayIcon failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Disposing SysTrayIcon failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -135,7 +135,7 @@ Namespace Tools
AddHandler tMenItem.MouseDown, AddressOf ConMenItem_MouseDown
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -149,17 +149,17 @@ Namespace Tools
Private Sub ShowForm()
frmMain.Show()
frmMain.WindowState = frmMain.prevWindowsState
frmMain.WindowState = frmMain.PreviousWindowState
If My.Settings.ShowSystemTrayIcon = False Then
App.Runtime.SysTrayIcon.Dispose()
App.Runtime.SysTrayIcon = Nothing
App.Runtime.NotificationAreaIcon.Dispose()
App.Runtime.NotificationAreaIcon = Nothing
End If
End Sub
Private Sub HideForm()
frmMain.Hide()
frmMain.prevWindowsState = frmMain.WindowState
frmMain.PreviousWindowState = frmMain.WindowState
End Sub
Private Sub ConMenItem_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
@@ -179,22 +179,34 @@ 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.Resources.strFiltermRemoteXML & "|*.xml|" & My.Resources.strFiltermRemoteCSV & "|*.csv|" & My.Resources.strFiltervRD2008CSV & "|*.csv|" & My.Resources.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
Dim lDlg As New OpenFileDialog()
lDlg.CheckFileExists = True
lDlg.InitialDirectory = App.Info.Connections.DefaultConnectionsPath
lDlg.Filter = My.Resources.strFiltermRemoteXML & "|*.xml|" & My.Resources.strFilterAll & "|*.*"
lDlg.Filter = My.Language.strFiltermRemoteXML & "|*.xml|" & My.Language.strFilterAll & "|*.*"
Return lDlg
End Function
@@ -203,7 +215,7 @@ Namespace Tools
Dim lDlg As New OpenFileDialog()
lDlg.CheckFileExists = True
'lDlg.InitialDirectory = App.Info.Connections.DefaultConnectionsPath
lDlg.Filter = My.Resources.strFilterRDP & "|*.rdp|" & My.Resources.strFilterAll & "|*.*"
lDlg.Filter = My.Language.strFilterRDP & "|*.rdp|" & My.Language.strFilterAll & "|*.*"
Return lDlg
End Function

View File

@@ -3,7 +3,7 @@ Imports System.IO
Imports System.ComponentModel
Namespace Tools
Public Class ExternalApp
Public Class ExternalTool
#Region "Properties"
Private _DisplayName As String
Public Property DisplayName() As String
@@ -108,7 +108,6 @@ Namespace Tools
Try
If _FileName = "" Then
Throw New Exception("No Filename specified!")
Return Nothing
End If
If _TryIntegrate = True Then
@@ -134,7 +133,7 @@ Namespace Tools
Return p
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't start external application." & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't start external application." & vbNewLine & ex.Message)
Return Nothing
End Try
End Function
@@ -194,7 +193,7 @@ Namespace Tools
pText = Replace(pText, "%UserField%", "", , , CompareMethod.Text)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "ParseText failed (Tools.ExternalApp)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "ParseText failed (Tools.ExternalApp)" & vbNewLine & ex.Message, True)
End Try
Return pText

View File

@@ -24,7 +24,7 @@ Namespace Tools
OrderPrefix &= vbTab
Next
Return OrderPrefix & My.Resources.ResourceManager.GetString(value)
Return OrderPrefix & My.Language.ResourceManager.GetString(value)
End Function
End Class
@@ -43,7 +43,7 @@ Namespace Tools
Get
If Not Me.Localized Then
Me.Localized = True
Me.DisplayNameValue = My.Resources.ResourceManager.GetString(Me.DisplayNameValue)
Me.DisplayNameValue = My.Language.ResourceManager.GetString(Me.DisplayNameValue)
End If
Return MyBase.DisplayName
@@ -66,7 +66,7 @@ Namespace Tools
Get
If Not Me.Localized Then
Me.Localized = True
Me.DescriptionValue = My.Resources.ResourceManager.GetString(Me.DescriptionValue)
Me.DescriptionValue = My.Language.ResourceManager.GetString(Me.DescriptionValue)
End If
Return MyBase.Description
@@ -92,7 +92,7 @@ Namespace Tools
Get
If Not Me.Localized Then
Me.Localized = True
Me.DisplayNameValue = String.Format(My.Resources.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.Resources.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

@@ -54,7 +54,7 @@ Namespace Tools
Return myIcon
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetIconFromFile failed (Tools.Misc)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "GetIconFromFile failed (Tools.Misc)" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
@@ -62,6 +62,7 @@ Namespace Tools
Public Shared Event SQLUpdateCheckFinished(ByVal UpdateAvailable As Boolean)
Public Shared Sub IsSQLUpdateAvailableBG()
Dim t As New Threading.Thread(AddressOf IsSQLUpdateAvailable)
t.SetApartmentState(Threading.ApartmentState.STA)
t.Start()
End Sub
@@ -97,9 +98,9 @@ Namespace Tools
RaiseEvent SQLUpdateCheckFinished(False)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsSQLUpdateAvailable failed (Tools.Misc)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "IsSQLUpdateAvailable failed (Tools.Misc)" & vbNewLine & ex.Message, True)
End Try
Return False
End Function
@@ -173,7 +174,7 @@ Namespace Tools
Next
Dim ex As New Exception(String.Format("Can't convert {0} to {1}", value, t.ToString))
mC.AddMessage(Messages.MessageClass.ErrorMsg, "StringToEnum failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "StringToEnum failed" & vbNewLine & ex.Message, True)
Throw ex
End Function
@@ -184,7 +185,7 @@ Namespace Tools
Dim LeftWidth As Integer = sender.TabController.SelectedTab.Width 'Me.Width - (Splitter.SplitterDistance + 16)
Dim TopHeight As Integer = sender.TabController.SelectedTab.Height 'Me.Height - (Splitter.Top + TabController.Top + TabController.SelectedTab.Top * 2 + 2)
Dim currentFormSize As Size = New Size(LeftWidth, TopHeight)
Dim currentFormSize As New Size(LeftWidth, TopHeight)
Dim ScreenToBitmap As New Bitmap(LeftWidth, TopHeight)
Dim gGraphics As System.Drawing.Graphics = System.Drawing.Graphics.FromImage(ScreenToBitmap)
@@ -192,7 +193,7 @@ Namespace Tools
Return ScreenToBitmap
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Taking Screenshot failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Taking Screenshot failed" & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -260,11 +261,11 @@ Namespace Tools
Public Overloads Overrides Function ConvertFrom(ByVal context As ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object) As Object
If value.GetType() Is GetType(String) Then
If CStr(value).ToLower() = My.Resources.strYes.ToLower Then
If CStr(value).ToLower() = My.Language.strYes.ToLower Then
Return True
End If
If CStr(value).ToLower() = My.Resources.strNo.ToLower Then
If CStr(value).ToLower() = My.Language.strNo.ToLower Then
Return False
End If
@@ -276,7 +277,7 @@ Namespace Tools
Public Overloads Overrides Function ConvertTo(ByVal context As ITypeDescriptorContext, ByVal culture As System.Globalization.CultureInfo, ByVal value As Object, ByVal destinationType As Type) As Object
If destinationType Is GetType(String) Then
Return IIf(CBool(value), My.Resources.strYes, My.Resources.strNo)
Return IIf(CBool(value), My.Language.strYes, My.Language.strNo)
End If
Return MyBase.ConvertTo(context, culture, value, destinationType)
@@ -314,7 +315,7 @@ Namespace Tools
SetWinFullScreen(targetForm.Handle)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Entering Fullscreen failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Entering Fullscreen failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -331,7 +332,7 @@ Namespace Tools
targetForm.Bounds = bounds
FullscreenActive = False
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Exiting Fullscreen failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Exiting Fullscreen failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -350,7 +351,7 @@ Namespace Tools
Dim curScreen As Screen = Screen.FromHandle(targetForm.Handle)
SetWindowPos(hwnd, HWND_TOP, curScreen.Bounds.Left, curScreen.Bounds.Top, curScreen.Bounds.Right, curScreen.Bounds.Bottom, SWP_SHOWWINDOW)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SetWindowPos failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetWindowPos failed" & vbNewLine & ex.Message, True)
End Try
End Sub
End Class
@@ -438,7 +439,7 @@ Namespace Tools
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Creating new Args failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Creating new Args failed" & vbNewLine & ex.Message, True)
End Try
End Sub
End Class

View File

@@ -223,7 +223,7 @@ Namespace Tools
Try
Return "SSH: " & _SSH & " Telnet: " & _Telnet & " HTTP: " & _HTTP & " HTTPS: " & _HTTPS & " Rlogin: " & _Rlogin & " RDP: " & _RDP & " VNC: " & _VNC
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "ToString failed (Tools.PortScan)", True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "ToString failed (Tools.PortScan)", True)
Return ""
End Try
End Function
@@ -264,16 +264,16 @@ Namespace Tools
Return lvI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "ToString failed (Tools.PortScan)", True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "ToString failed (Tools.PortScan)", True)
Return Nothing
End Try
End Function
Private Function BoolToYesNo(ByVal Bool As Boolean) As String
If Bool = True Then
Return My.Resources.strYes
Return My.Language.strYes
Else
Return My.Resources.strNo
Return My.Language.strNo
End If
End Function
@@ -395,6 +395,7 @@ Namespace Tools
Public Sub StartScan()
sThread = New Thread(AddressOf StartScanBG)
sThread.SetApartmentState(Threading.ApartmentState.STA)
sThread.IsBackground = True
sThread.Start()
End Sub
@@ -475,7 +476,7 @@ Namespace Tools
RaiseEvent ScanComplete(_ScannedHosts)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "StartScanBG failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "StartScanBG failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -526,7 +527,7 @@ Namespace Tools
Return arrIPs
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetIPRange failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "GetIPRange failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
@@ -546,7 +547,7 @@ Namespace Tools
Next
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "matchIP failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "matchIP failed (Tools.PortScan)" & vbNewLine & ex.Message, True)
Return False
End Try
End Function

View File

@@ -100,7 +100,7 @@ Namespace Tools
GetWindowPlacement(_form.Handle, windowPlacement)
Return windowPlacement
Catch ex As Exception
Throw ex
Throw
End Try
End Function
@@ -112,7 +112,7 @@ Namespace Tools
Try
Return SetWindowPlacement(_form.Handle, windowPlacement)
Catch ex As Exception
Throw ex
Throw
End Try
End Function
#End Region

View File

@@ -55,7 +55,7 @@ Namespace Tree
End Function
Public Shared Function GetNodeFromPositionID(ByVal id As Integer) As TreeNode
For Each conI As Connection.Info In cL
For Each conI As Connection.Info In connectionList
If conI.PositionID = id Then
If conI.IsContainer Then
Return TryCast(conI.Parent, Container.Info).TreeNode
@@ -69,7 +69,7 @@ Namespace Tree
End Function
Public Shared Function GetNodeFromConstantID(ByVal id As String) As TreeNode
For Each conI As Connection.Info In cL
For Each conI As Connection.Info In connectionList
If conI.ConstantID = id Then
If conI.IsContainer Then
Return TryCast(conI.Parent, Container.Info).TreeNode
@@ -100,7 +100,7 @@ Namespace Tree
Return Type.Connection
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get node type" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get node type" & vbNewLine & ex.Message, True)
End Try
Return Type.NONE
@@ -117,7 +117,7 @@ Namespace Tree
Return Type.Connection
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get node type from string" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't get node type from string" & vbNewLine & ex.Message, True)
End Try
Return Type.NONE
@@ -138,7 +138,7 @@ Namespace Tree
Next
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Find node failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Find node failed" & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -159,7 +159,7 @@ Namespace Tree
Next
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Find node failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Find node failed" & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -171,7 +171,7 @@ Namespace Tree
Return False
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "IsEmpty (Tree.Node) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "IsEmpty (Tree.Node) failed" & vbNewLine & ex.Message, True)
End Try
Return True
@@ -185,15 +185,15 @@ Namespace Tree
Select Case NodeType
Case Type.Connection
nNode.Text = My.Resources.strNewConnection
nNode.Text = My.Language.strNewConnection
nNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
nNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
Case Type.Container
nNode.Text = My.Resources.strNewFolder
nNode.Text = My.Language.strNewFolder
nNode.ImageIndex = Images.Enums.TreeImage.Container
nNode.SelectedImageIndex = Images.Enums.TreeImage.Container
Case Type.Root
nNode.Text = My.Resources.strNewRoot
nNode.Text = My.Language.strNewRoot
nNode.ImageIndex = Images.Enums.TreeImage.Root
nNode.SelectedImageIndex = Images.Enums.TreeImage.Root
End Select
@@ -204,7 +204,7 @@ Namespace Tree
Return nNode
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNode failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNode failed" & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -232,7 +232,7 @@ Namespace Tree
nContI.TreeNode.Text = strDisplayName
adCNode.Tag = nContI
ctL.Add(nContI)
containerList.Add(nContI)
CreateADSubNodes(adCNode, ldapPath)
@@ -241,7 +241,7 @@ Namespace Tree
SelectedNode.Nodes.Add(adCNode)
SelectedNode = SelectedNode.Nodes(SelectedNode.Nodes.Count - 1)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddADNodes failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddADNodes failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -287,63 +287,68 @@ Namespace Tree
nConI.TreeNode = adNode
adNode.Tag = nConI 'set the nodes tag to the conI
'add connection to connections
cL.Add(nConI)
connectionList.Add(nConI)
rNode.Nodes.Add(adNode)
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CreateADSubNodes failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CreateADSubNodes failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub CloneNode(ByVal tNode As TreeNode, Optional ByVal ParentNode As TreeNode = Nothing)
Public Shared Sub CloneNode(ByVal oldTreeNode As TreeNode, Optional ByVal parentNode As TreeNode = Nothing)
Try
If GetNodeType(tNode) = Type.Connection Then
Dim conI As Connection.Info = tNode.Tag
If GetNodeType(oldTreeNode) = Type.Connection Then
Dim oldConnectionInfo As Connection.Info = oldTreeNode.Tag
Dim nConI As Connection.Info = conI.Copy
Dim nInh As Connection.Info.Inheritance = conI.Inherit.Copy()
nInh.Parent = nConI
nConI.Inherit = nInh
Dim newConnectionInfo As Connection.Info = oldConnectionInfo.Copy
Dim newInheritance As Connection.Info.Inheritance = oldConnectionInfo.Inherit.Copy()
newInheritance.Parent = newConnectionInfo
newConnectionInfo.Inherit = newInheritance
cL.Add(nConI)
ConnectionList.Add(newConnectionInfo)
Dim nNode As New TreeNode(nConI.Name)
nNode.Tag = nConI
nNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
nNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
Dim newTreeNode As New TreeNode(newConnectionInfo.Name)
newTreeNode.Tag = newConnectionInfo
newTreeNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
newTreeNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
nConI.TreeNode = nNode
newConnectionInfo.TreeNode = newTreeNode
If ParentNode Is Nothing Then
tNode.Parent.Nodes.Add(nNode)
Tree.Node.TreeView.SelectedNode = nNode
If parentNode Is Nothing Then
oldTreeNode.Parent.Nodes.Insert(oldTreeNode.Index + 1, newTreeNode)
TreeView.SelectedNode = newTreeNode
Else
ParentNode.Nodes.Add(nNode)
parentNode.Nodes.Add(newTreeNode)
End If
ElseIf GetNodeType(tNode) = Type.Container Then
Dim nCont As Container.Info = TryCast(tNode.Tag, Container.Info).Copy
Dim nConI As Connection.Info = TryCast(tNode.Tag, Container.Info).ConnectionInfo.Copy
nCont.ConnectionInfo = nConI
ElseIf GetNodeType(oldTreeNode) = Type.Container Then
Dim newContainerInfo As Container.Info = TryCast(oldTreeNode.Tag, Container.Info).Copy
Dim newConnectionInfo As Connection.Info = TryCast(oldTreeNode.Tag, Container.Info).ConnectionInfo.Copy
newContainerInfo.ConnectionInfo = newConnectionInfo
Dim nNode As New TreeNode(nCont.Name)
nNode.Tag = nCont
nNode.ImageIndex = Images.Enums.TreeImage.Container
nNode.SelectedImageIndex = Images.Enums.TreeImage.Container
nCont.ConnectionInfo.Parent = nCont
Dim newTreeNode As New TreeNode(newContainerInfo.Name)
newTreeNode.Tag = newContainerInfo
newTreeNode.ImageIndex = Images.Enums.TreeImage.Container
newTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Container
newContainerInfo.ConnectionInfo.Parent = newContainerInfo
ctL.Add(nCont)
ContainerList.Add(newContainerInfo)
tNode.Parent.Nodes.Add(nNode)
If parentNode Is Nothing Then
oldTreeNode.Parent.Nodes.Insert(oldTreeNode.Index + 1, newTreeNode)
TreeView.SelectedNode = newTreeNode
Else
parentNode.Nodes.Add(newTreeNode)
End If
Tree.Node.TreeView.SelectedNode = nNode
For Each cNode As TreeNode In tNode.Nodes
CloneNode(cNode, nNode)
For Each childTreeNode As TreeNode In oldTreeNode.Nodes
CloneNode(childTreeNode, newTreeNode)
Next
newTreeNode.Expand()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "CloneNode failed (Tree.Node)" & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, String.Format(My.Language.strErrorCloneNodeFailed, ex.Message))
End Try
End Sub
@@ -382,7 +387,7 @@ Namespace Tree
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SetNodeToolTip failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetNodeToolTip failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -393,14 +398,14 @@ Namespace Tree
Select Case Tree.Node.GetNodeType(SelectedNode)
Case Type.Root
mC.AddMessage(Messages.MessageClass.WarningMsg, "The root item cannot be deleted!")
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "The root item cannot be deleted!")
Case Type.Container
If Tree.Node.IsEmpty(SelectedNode) = False Then
If MsgBox(String.Format(My.Resources.strConfirmDeleteNodeFolder, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
If MsgBox(String.Format(My.Language.strConfirmDeleteNodeFolder, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
SelectedNode.Remove()
End If
Else
If MsgBox(String.Format(My.Resources.strConfirmDeleteNodeFolderNotEmpty, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
If MsgBox(String.Format(My.Language.strConfirmDeleteNodeFolderNotEmpty, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
For Each tNode As TreeNode In SelectedNode.Nodes
tNode.Remove()
Next
@@ -408,30 +413,32 @@ Namespace Tree
End If
End If
Case Type.Connection
If MsgBox(String.Format(My.Resources.strConfirmDeleteNodeConnection, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
If MsgBox(String.Format(My.Language.strConfirmDeleteNodeConnection, SelectedNode.Text), MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.Yes Then
SelectedNode.Remove()
End If
Case Else
mC.AddMessage(Messages.MessageClass.WarningMsg, "Tree item type is unknown so it cannot be deleted!")
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Tree item type is unknown so it cannot be deleted!")
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Deleting selected node failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Deleting selected node failed" & vbNewLine & ex.Message, True)
End Try
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
@@ -440,15 +447,19 @@ Namespace Tree
Try
If SelectedNode IsNot Nothing Then
If Not (SelectedNode.PrevNode Is Nothing) Then
Dim oldParent As TreeNode = SelectedNode.Parent
Dim nNode As TreeNode = SelectedNode.Clone
SelectedNode.Parent.Nodes.Insert(SelectedNode.Index - 1, nNode)
TreeView.BeginUpdate()
TreeView.Sorted = False
Dim newNode As TreeNode = SelectedNode.Clone
SelectedNode.Parent.Nodes.Insert(SelectedNode.Index - 1, newNode)
SelectedNode.Remove()
SelectedNode = nNode
SelectedNode = newNode
TreeView.EndUpdate()
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "MoveNodeUp failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "MoveNodeUp failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -456,60 +467,71 @@ Namespace Tree
Try
If SelectedNode IsNot Nothing Then
If Not (SelectedNode.NextNode Is Nothing) Then
Dim oldParent As TreeNode = SelectedNode.Parent
Dim nNode As TreeNode = SelectedNode.Clone
SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 2, nNode)
TreeView.BeginUpdate()
TreeView.Sorted = False
Dim newNode As TreeNode = SelectedNode.Clone
SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 2, newNode)
SelectedNode.Remove()
SelectedNode = nNode
SelectedNode = newNode
TreeView.EndUpdate()
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "MoveNodeDown failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "MoveNodeDown failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub ExpandAllNodes()
_TreeView.ExpandAll()
TreeView.BeginUpdate()
TreeView.ExpandAll()
TreeView.EndUpdate()
End Sub
Public Shared Sub CollapseAllNodes()
For Each tNode As TreeNode In _TreeView.Nodes(0).Nodes
tNode.Collapse(False)
TreeView.BeginUpdate()
For Each treeNode As TreeNode In TreeView.Nodes(0).Nodes
treeNode.Collapse(False)
Next
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
treeNode = _TreeView.Nodes.Item(0)
treeNode = TreeView.Nodes.Item(0)
ElseIf Tree.Node.GetNodeType(treeNode) = Type.Connection Then
treeNode = treeNode.Parent
End If
Dim ns As New Tools.Controls.TreeNodeSorter(treeNode, sortType)
_TreeView.TreeViewNodeSorter = ns
_TreeView.Sort()
TreeView.TreeViewNodeSorter = ns
TreeView.Sort()
For Each childNode As TreeNode In treeNode.Nodes
If GetNodeType(childNode) = Type.Container Then Sort(childNode, sortType)
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Sort nodes failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Sort nodes failed" & vbNewLine & ex.Message, True)
Finally
TreeView.EndUpdate()
End Try
End Sub
Private Delegate Sub ResetTreeCB()
Private Delegate Sub ResetTreeDelegate()
Public Shared Sub ResetTree()
If _TreeView.InvokeRequired Then
Dim d As New ResetTreeCB(AddressOf ResetTree)
Windows.treeForm.Invoke(d)
If TreeView.InvokeRequired Then
Dim resetTreeDelegate As New ResetTreeDelegate(AddressOf ResetTree)
Windows.treeForm.Invoke(resetTreeDelegate)
Else
_TreeView.Nodes.Clear()
'_TreeView.Nodes.Add("Credentials")
_TreeView.Nodes.Add(My.Resources.strConnections)
TreeView.BeginUpdate()
TreeView.Nodes.Clear()
TreeView.Nodes.Add(My.Language.strConnections)
TreeView.EndUpdate()
End If
End Sub
End Class
End Namespace

View File

@@ -30,7 +30,7 @@ Namespace UI
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(75, 23)
Me.btnOK.TabIndex = 100
Me.btnOK.Text = Global.mRemoteNG.My.Resources.Resources.strButtonOK
Me.btnOK.Text = "OK"
Me.btnOK.UseVisualStyleBackColor = True
'
'btnCancel
@@ -42,7 +42,7 @@ Namespace UI
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(75, 23)
Me.btnCancel.TabIndex = 110
Me.btnCancel.Text = Global.mRemoteNG.My.Resources.Resources.strButtonCancel
Me.btnCancel.Text = "Cancel"
Me.btnCancel.UseVisualStyleBackColor = True
'
'txtDomain
@@ -72,7 +72,7 @@ Namespace UI
Me.btnChangeDomain.Name = "btnChangeDomain"
Me.btnChangeDomain.Size = New System.Drawing.Size(75, 23)
Me.btnChangeDomain.TabIndex = 40
Me.btnChangeDomain.Text = Global.mRemoteNG.My.Resources.Resources.strButtonChange
Me.btnChangeDomain.Text = "Change"
Me.btnChangeDomain.UseVisualStyleBackColor = True
'
'AD
@@ -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
@@ -124,10 +124,10 @@ Namespace UI
End Sub
Private Sub ApplyLanguage()
btnOK.Text = My.Resources.strButtonOK
btnCancel.Text = My.Resources.strButtonCancel
lblDomain.Text = My.Resources.strLabelDomain
btnChangeDomain.Text = My.Resources.strButtonChange
btnOK.Text = My.Language.strButtonOK
btnCancel.Text = My.Language.strButtonCancel
lblDomain.Text = My.Language.strLabelDomain
btnChangeDomain.Text = My.Language.strButtonChange
End Sub
#End Region

View File

@@ -254,21 +254,16 @@ Namespace UI
#Region "Private Methods"
Private Sub ApplyLanguage()
lblLicense.Text = My.Resources.strLabelReleasedUnderGPL
lblChangeLog.Text = My.Resources.strLabelChangeLog
TabText = My.Resources.strAbout
Text = My.Resources.strAbout
lblLicense.Text = My.Language.strLabelReleasedUnderGPL
lblChangeLog.Text = My.Language.strLabelChangeLog
TabText = My.Language.strAbout
Text = My.Language.strAbout
End Sub
Private Sub ApplyEditions()
#If PORTABLE Then
lblEdition.Text = My.Resources.strLabelPortableEdition
lblEdition.Text = My.Language.strLabelPortableEdition
lblEdition.Visible = True
#Else
If App.Editions.Spanlink.Enabled Then
lblEdition.Text = "Spanlink Communications"
lblEdition.Visible = True
End If
#End If
End Sub
@@ -300,9 +295,9 @@ Namespace UI
Me.lblVersion.Text = "Version " & My.Application.Info.Version.ToString
FillLinkLabel(llblFAMFAMFAM, My.Resources.strFAMFAMFAMAttribution, My.Resources.strFAMFAMFAMAttributionURL)
FillLinkLabel(llblMagicLibrary, My.Resources.strMagicLibraryAttribution, My.Resources.strMagicLibraryAttributionURL)
FillLinkLabel(llblWeifenLuo, My.Resources.strWeifenLuoAttribution, My.Resources.strWeifenLuoAttributionURL)
FillLinkLabel(llblFAMFAMFAM, My.Language.strFAMFAMFAMAttribution, My.Language.strFAMFAMFAMAttributionURL)
FillLinkLabel(llblMagicLibrary, My.Language.strMagicLibraryAttribution, My.Language.strMagicLibraryAttributionURL)
FillLinkLabel(llblWeifenLuo, My.Language.strWeifenLuoAttribution, My.Language.strWeifenLuoAttributionURL)
If File.Exists(My.Application.Info.DirectoryPath & "\CHANGELOG.TXT") Then
Dim sR As New StreamReader(My.Application.Info.DirectoryPath & "\CHANGELOG.TXT")
@@ -310,20 +305,20 @@ Namespace UI
sR.Close()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Loading About failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Loading About failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub llblFAMFAMFAM_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles llblFAMFAMFAM.LinkClicked
App.Runtime.GoToURL(My.Resources.strFAMFAMFAMAttributionURL)
App.Runtime.GoToURL(My.Language.strFAMFAMFAMAttributionURL)
End Sub
Private Sub llblMagicLibrary_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles llblMagicLibrary.LinkClicked
App.Runtime.GoToURL(My.Resources.strMagicLibraryAttributionURL)
App.Runtime.GoToURL(My.Language.strMagicLibraryAttributionURL)
End Sub
Private Sub llblWeifenLuo_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles llblWeifenLuo.LinkClicked
App.Runtime.GoToURL(My.Resources.strWeifenLuoAttributionURL)
App.Runtime.GoToURL(My.Language.strWeifenLuoAttributionURL)
End Sub
#End Region
End Class

View File

@@ -67,8 +67,8 @@ Namespace UI
Public Sub CheckForAnnouncement()
Try
uT = New Thread(AddressOf CheckForAnnouncementBG)
uT.SetApartmentState(ApartmentState.STA)
uT.IsBackground = True
'uT.SetApartmentState(ApartmentState.STA)
If Me.IsAnnouncementCheckHandlerDeclared = False Then
AddHandler AnnouncementCheckCompleted, AddressOf AnnouncementCheckComplete
@@ -77,7 +77,7 @@ Namespace UI
uT.Start()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CheckForAnnouncement (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CheckForAnnouncement (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -91,16 +91,16 @@ Namespace UI
RaiseEvent AnnouncementCheckCompleted(False)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CheckForAnnouncementBG (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CheckForAnnouncementBG (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub AnnouncementCheckComplete(ByVal AnnouncementAvailable As Boolean)
Try
wBrowser.Navigate(aN.curAI.URL)
My.Settings.LastAnnouncement = aN.curAI.Name
wBrowser.Navigate(aN.CurrentAnnouncementInfo.Url)
My.Settings.LastAnnouncement = aN.CurrentAnnouncementInfo.Name
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AnnouncementCheckComplete (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AnnouncementCheckComplete (UI.Window.Announcement) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
End Class

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

@@ -461,10 +461,10 @@ Namespace UI
End Sub
Private Sub ApplyLanguage()
TabText = My.Resources.strComponentsCheck
Text = My.Resources.strComponentsCheck
chkAlwaysShow.Text = My.Resources.strCcAlwaysShowScreen
btnCheckAgain.Text = My.Resources.strCcCheckAgain
TabText = My.Language.strComponentsCheck
Text = My.Language.strComponentsCheck
chkAlwaysShow.Text = My.Language.strCcAlwaysShowScreen
btnCheckAgain.Text = My.Language.strCcCheckAgain
End Sub
Private Sub btnCheckAgain_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCheckAgain.Click
@@ -479,7 +479,7 @@ Namespace UI
#Region "Private Methods"
Private Sub CheckComponents()
Dim errorMsg As String = My.Resources.strCcNotInstalledProperly
Dim errorMsg As String = My.Language.strCcNotInstalledProperly
pnlCheck1.Visible = True
pnlCheck2.Visible = True
@@ -502,16 +502,16 @@ Namespace UI
pbCheck1.Image = My.Resources.Good_Symbol
lblCheck1.ForeColor = Color.DarkOliveGreen
lblCheck1.Text = "RDP (Remote Desktop) " & My.Resources.strCcCheckSucceeded
txtCheck1.Text = String.Format(My.Resources.strCcRDPOK, RDP.Version)
lblCheck1.Text = "RDP (Remote Desktop) " & My.Language.strCcCheckSucceeded
txtCheck1.Text = String.Format(My.Language.strCcRDPOK, RDP.Version)
Catch ex As Exception
pbCheck1.Image = My.Resources.Bad_Symbol
lblCheck1.ForeColor = Color.Firebrick
lblCheck1.Text = "RDP (Remote Desktop) " & My.Resources.strCcCheckFailed
txtCheck1.Text = My.Resources.strCcRDPFailed
lblCheck1.Text = "RDP (Remote Desktop) " & My.Language.strCcCheckFailed
txtCheck1.Text = My.Language.strCcRDPFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "RDP " & errorMsg, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "RDP " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
End Try
If RDP IsNot Nothing Then RDP.Dispose()
@@ -530,15 +530,15 @@ Namespace UI
pbCheck2.Image = My.Resources.Good_Symbol
lblCheck2.ForeColor = Color.DarkOliveGreen
lblCheck2.Text = "VNC (Virtual Network Computing) " & My.Resources.strCcCheckSucceeded
txtCheck2.Text = String.Format(My.Resources.strCcVNCOK, VNC.ProductVersion)
lblCheck2.Text = "VNC (Virtual Network Computing) " & My.Language.strCcCheckSucceeded
txtCheck2.Text = String.Format(My.Language.strCcVNCOK, VNC.ProductVersion)
Catch ex As Exception
pbCheck2.Image = My.Resources.Bad_Symbol
lblCheck2.ForeColor = Color.Firebrick
lblCheck2.Text = "VNC (Virtual Network Computing) " & My.Resources.strCcCheckFailed
txtCheck2.Text = My.Resources.strCcVNCFailed
lblCheck2.Text = "VNC (Virtual Network Computing) " & My.Language.strCcCheckFailed
txtCheck2.Text = My.Language.strCcVNCFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "VNC " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "VNC " & errorMsg, True)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
End Try
@@ -547,7 +547,7 @@ Namespace UI
Dim pPath As String = ""
If My.Settings.UseCustomPuttyPath = False Then
pPath = My.Application.Info.DirectoryPath & "\putty.exe"
pPath = My.Application.Info.DirectoryPath & "\PuTTYNG.exe"
Else
pPath = My.Settings.CustomPuttyPath
End If
@@ -555,16 +555,16 @@ Namespace UI
If File.Exists(pPath) Then
pbCheck3.Image = My.Resources.Good_Symbol
lblCheck3.ForeColor = Color.DarkOliveGreen
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " & My.Resources.strCcCheckSucceeded
txtCheck3.Text = My.Resources.strCcPuttyOK
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " & My.Language.strCcCheckSucceeded
txtCheck3.Text = My.Language.strCcPuttyOK
Else
pbCheck3.Image = My.Resources.Bad_Symbol
lblCheck3.ForeColor = Color.Firebrick
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " & My.Resources.strCcCheckFailed
txtCheck3.Text = My.Resources.strCcPuttyFailed
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " & My.Language.strCcCheckFailed
txtCheck3.Text = My.Language.strCcPuttyFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "PuTTY " & errorMsg, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, "File " & pPath & " does not exist.", True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "PuTTY " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "File " & pPath & " does not exist.", True)
End If
@@ -582,16 +582,16 @@ Namespace UI
pbCheck4.Image = My.Resources.Good_Symbol
lblCheck4.ForeColor = Color.DarkOliveGreen
lblCheck4.Text = "ICA (Citrix ICA) " & My.Resources.strCcCheckSucceeded
txtCheck4.Text = String.Format(My.Resources.strCcICAOK, ICA.Version)
lblCheck4.Text = "ICA (Citrix ICA) " & My.Language.strCcCheckSucceeded
txtCheck4.Text = String.Format(My.Language.strCcICAOK, ICA.Version)
Catch ex As Exception
pbCheck4.Image = My.Resources.Bad_Symbol
lblCheck4.ForeColor = Color.Firebrick
lblCheck4.Text = "ICA (Citrix ICA) " & My.Resources.strCcCheckFailed
txtCheck4.Text = My.Resources.strCcICAFailed
lblCheck4.Text = "ICA (Citrix ICA) " & My.Language.strCcCheckFailed
txtCheck4.Text = My.Language.strCcICAFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "ICA " & errorMsg, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "ICA " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
End Try
If ICA IsNot Nothing Then ICA.Dispose()
@@ -614,16 +614,16 @@ Namespace UI
If GeckoBad = False Then
pbCheck5.Image = My.Resources.Good_Symbol
lblCheck5.ForeColor = Color.DarkOliveGreen
lblCheck5.Text = "Gecko (Firefox) Rendering Engine (HTTP/S) " & My.Resources.strCcCheckSucceeded
txtCheck5.Text = My.Resources.strCcGeckoOK
lblCheck5.Text = "Gecko (Firefox) Rendering Engine (HTTP/S) " & My.Language.strCcCheckSucceeded
txtCheck5.Text = My.Language.strCcGeckoOK
Else
pbCheck5.Image = My.Resources.Bad_Symbol
lblCheck5.ForeColor = Color.Firebrick
lblCheck5.Text = "Gecko (Firefox) Rendering Engine (HTTP/S) " & My.Resources.strCcCheckFailed
txtCheck5.Text = My.Resources.strCcGeckoFailed
lblCheck5.Text = "Gecko (Firefox) Rendering Engine (HTTP/S) " & My.Language.strCcCheckFailed
txtCheck5.Text = My.Language.strCcGeckoFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "Gecko " & errorMsg, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, "XULrunner was not found in " & My.Settings.XULRunnerPath, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "Gecko " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "XULrunner was not found in " & My.Settings.XULRunnerPath, True)
End If
@@ -634,16 +634,16 @@ Namespace UI
pbCheck6.Image = My.Resources.Good_Symbol
lblCheck6.ForeColor = Color.DarkOliveGreen
lblCheck6.Text = "(RDP) Sessions " & My.Resources.strCcCheckSucceeded
txtCheck6.Text = My.Resources.strCcEOLOK
lblCheck6.Text = "(RDP) Sessions " & My.Language.strCcCheckSucceeded
txtCheck6.Text = My.Language.strCcEOLOK
Catch ex As Exception
pbCheck6.Image = My.Resources.Bad_Symbol
lblCheck6.ForeColor = Color.Firebrick
lblCheck6.Text = "(RDP) Sessions " & My.Resources.strCcCheckFailed
txtCheck6.Text = My.Resources.strCcEOLFailed
lblCheck6.Text = "(RDP) Sessions " & My.Language.strCcCheckFailed
txtCheck6.Text = My.Language.strCcEOLFailed
mC.AddMessage(Messages.MessageClass.WarningMsg, "EOLWTSCOM " & errorMsg, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "EOLWTSCOM " & errorMsg, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, ex.Message, True)
End Try
End Sub
#End Region

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)
@@ -390,7 +465,7 @@ Namespace UI
Me.ShowHideGridItems()
Me.SetHostStatus(Obj)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridObjectFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridObjectFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -400,68 +475,98 @@ Namespace UI
#End Region
#Region "Private Methods"
Private tsCustom As ToolStrip = Nothing
Private Sub ApplyLanguage()
btnShowInheritance.Text = My.Language.strButtonInheritance
btnShowDefaultInheritance.Text = My.Language.strButtonDefaultInheritance
btnShowProperties.Text = My.Language.strButtonProperties
btnShowDefaultProperties.Text = My.Language.strButtonDefaultProperties
btnIcon.Text = My.Language.strButtonIcon
btnHostStatus.Text = My.Language.strStatus
Text = My.Language.strMenuConfig
TabText = My.Language.strMenuConfig
End Sub
Private Sub Config_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
Private _originalPropertyGridToolStripItemCountValid As Boolean
Private _originalPropertyGridToolStripItemCount As Integer
Private Sub AddToolStripItems()
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 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 tsDefault As ToolStrip = New ToolStrip
Dim propertyGridToolStrip As New ToolStrip
For Each ctrl As System.Windows.Forms.Control In pGrid.Controls
Dim tStrip As ToolStrip = TryCast(ctrl, ToolStrip)
Dim toolStrip As ToolStrip = Nothing
For Each control As System.Windows.Forms.Control In pGrid.Controls
toolStrip = TryCast(control, ToolStrip)
If tStrip IsNot Nothing Then
tsDefault = tStrip
If toolStrip IsNot Nothing Then
propertyGridToolStrip = toolStrip
Exit For
End If
Next
tsDefault.AllowMerge = True
tsDefault.Items(tsDefault.Items.Count - 1).Visible = False
ToolStripManager.Merge(tsCustom, tsDefault)
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
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, Language.strConfigUiLoadFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub ApplyLanguage()
btnShowInheritance.Text = My.Resources.strButtonInheritance
btnShowDefaultInheritance.Text = My.Resources.strButtonDefaultInheritance
btnShowProperties.Text = My.Resources.strButtonProperties
btnShowDefaultProperties.Text = My.Resources.strButtonDefaultProperties
btnIcon.Text = My.Resources.strButtonIcon
btnHostStatus.Text = My.Resources.strStatus
Text = My.Resources.strMenuConfig
TabText = My.Resources.strMenuConfig
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
Select Case e.ChangedItem.Label
Case My.Resources.strPropertyNameProtocol
Case My.Language.strPropertyNameProtocol
TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).SetDefaultPort()
Case My.Resources.strPropertyNameName
Case My.Language.strPropertyNameName
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
Case My.Resources.strPropertyNameIcon
If My.Settings.SetHostnameLikeDisplayName And TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Dim connectionInfo As mRemoteNG.Connection.Info = DirectCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info)
If Not String.IsNullOrEmpty(connectionInfo.Name) Then
connectionInfo.Hostname = connectionInfo.Name
End If
End If
Case My.Language.strPropertyNameIcon
Dim conIcon As Icon = mRemoteNG.Connection.Icon.FromString(TryCast(Me.pGrid.SelectedObject, mRemoteNG.Connection.Info).Icon)
If conIcon IsNot Nothing Then
Me.btnIcon.Image = conIcon.ToBitmap
End If
Case My.Resources.strPropertyNamePuttySession
Case My.Language.strPropertyNamePuttySession
mRemoteNG.Connection.PuttySession.PuttySessions = mRemoteNG.Connection.Protocol.PuttyBase.GetSessions()
Case My.Resources.strPropertyNameAddress
Case My.Language.strPropertyNameAddress
Me.SetHostStatus(Me.pGrid.SelectedObject)
End Select
@@ -474,7 +579,7 @@ Namespace UI
Dim rInfo As mRemoteNG.Root.Info = Me.pGrid.SelectedObject
Select Case e.ChangedItem.Label
Case My.Resources.strPasswordProtect
Case My.Language.strPasswordProtect
If rInfo.Password = True Then
Dim pw As String = Tools.Misc.PasswordDialog
@@ -484,7 +589,7 @@ Namespace UI
rInfo.Password = False
End If
End If
Case My.Resources.strPropertyNameName
Case My.Language.strPropertyNameName
App.Runtime.Windows.treeForm.tvConnections.SelectedNode.Text = Me.pGrid.SelectedObject.Name
End Select
End If
@@ -498,13 +603,13 @@ Namespace UI
Me.ShowHideGridItems()
App.Runtime.SaveConnectionsBG()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridValueFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridValueFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub ShowHideGridItems()
Try
Dim strHide As List(Of String) = New List(Of String)
Dim strHide As New List(Of String)
If TypeOf Me.pGrid.SelectedObject Is mRemoteNG.Connection.Info Then
Dim conI As mRemoteNG.Connection.Info = pGrid.SelectedObject
@@ -563,6 +668,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
If conI.VNCAuthMode = mRemoteNG.Connection.Protocol.VNC.AuthMode.AuthVNC Then
strHide.Add("Username;Domain")
End If
@@ -598,6 +704,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -635,6 +742,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -673,6 +781,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
@@ -712,6 +821,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
@@ -751,6 +861,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("Username")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
@@ -789,6 +900,7 @@ Namespace UI
strHide.Add("RedirectSound")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -825,6 +937,7 @@ Namespace UI
strHide.Add("RedirectSmartCards")
strHide.Add("RedirectSound;Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -859,6 +972,7 @@ Namespace UI
strHide.Add("RedirectSound")
strHide.Add("RenderingEngine")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -896,6 +1010,7 @@ Namespace UI
strHide.Add("RenderingEngine")
strHide.Add("Resolution")
strHide.Add("UseConsoleSession")
strHide.Add("UseCredSsp")
strHide.Add("VNCAuthMode")
strHide.Add("VNCColors")
strHide.Add("VNCCompression")
@@ -995,6 +1110,10 @@ Namespace UI
strHide.Add("UseConsoleSession")
End If
If .UseCredSsp Then
strHide.Add("UseCredSsp")
End If
If .RenderingEngine Then
strHide.Add("RenderingEngine")
End If
@@ -1123,7 +1242,7 @@ Namespace UI
Me.pGrid.Refresh()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridHideItemsFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridHideItemsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -1205,7 +1324,7 @@ Namespace UI
Me.cMenIcons.Show(mPos)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridButtonIconClickFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridButtonIconClickFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -1221,7 +1340,7 @@ Namespace UI
App.Runtime.SaveConnectionsBG()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridMenuClickFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridMenuClickFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -1278,14 +1397,14 @@ Namespace UI
Me.btnHostStatus.Tag = "checking"
HostName = TryCast(ConnectionInfo, mRemoteNG.Connection.Info).Hostname
pThread = New Threading.Thread(AddressOf CheckHostAlive)
pThread.SetApartmentState(Threading.ApartmentState.STA)
pThread.IsBackground = True
pThread.Start()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConfigPropertyGridSetHostStatusFailed & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strConfigPropertyGridSetHostStatusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -1,6 +1,7 @@
Imports System
Imports System.Windows
Imports System.Windows.Forms
Imports mRemoteNG.App
Imports Crownwood
Imports WeifenLuo.WinFormsUI.Docking
Imports PSTaskDialog
@@ -67,6 +68,7 @@ Namespace UI
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.TabController.Appearance = Crownwood.Magic.Controls.TabControl.VisualAppearance.MultiDocument
Me.TabController.Cursor = System.Windows.Forms.Cursors.Hand
Me.TabController.DragFromControl = False
Me.TabController.IDEPixelArea = True
Me.TabController.IDEPixelBorder = False
Me.TabController.Location = New System.Drawing.Point(0, -1)
@@ -219,7 +221,7 @@ Namespace UI
Public Sub New(ByVal Panel As DockContent, Optional ByVal FormText As String = "")
If FormText = "" Then
FormText = My.Resources.strNewPanel
FormText = My.Language.strNewPanel
End If
Me.WindowType = Type.Connection
@@ -260,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
@@ -272,10 +276,11 @@ Namespace UI
End If
nTab.Selected = True
_ignoreChangeSelectedTabClick = False
Return nTab
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -288,27 +293,27 @@ Namespace UI
End Sub
Private Sub ApplyLanguage()
cmenTabFullscreen.Text = My.Resources.strMenuFullScreenRDP
cmenTabSmartSize.Text = My.Resources.strMenuSmartSize
cmenTabViewOnly.Text = My.Resources.strMenuViewOnly
cmenTabScreenshot.Text = My.Resources.strMenuScreenshot
cmenTabStartChat.Text = My.Resources.strMenuStartChat
cmenTabTransferFile.Text = My.Resources.strMenuTransferFile
cmenTabRefreshScreen.Text = My.Resources.strMenuRefreshScreen
cmenTabSendSpecialKeys.Text = My.Resources.strMenuSendSpecialKeys
cmenTabSendSpecialKeysCtrlAltDel.Text = My.Resources.strMenuCtrlAltDel
cmenTabSendSpecialKeysCtrlEsc.Text = My.Resources.strMenuCtrlEsc
cmenTabExternalApps.Text = My.Resources.strMenuExternalTools
cmenTabRenameTab.Text = My.Resources.strMenuRenameTab
cmenTabDuplicateTab.Text = My.Resources.strMenuDuplicateTab
cmenTabReconnect.Text = My.Resources.strMenuReconnect
cmenTabDisconnect.Text = My.Resources.strMenuDisconnect
cmenTabPuttySettings.Text = My.Resources.strPuttySettings
cmenTabFullscreen.Text = My.Language.strMenuFullScreenRDP
cmenTabSmartSize.Text = My.Language.strMenuSmartSize
cmenTabViewOnly.Text = My.Language.strMenuViewOnly
cmenTabScreenshot.Text = My.Language.strMenuScreenshot
cmenTabStartChat.Text = My.Language.strMenuStartChat
cmenTabTransferFile.Text = My.Language.strMenuTransferFile
cmenTabRefreshScreen.Text = My.Language.strMenuRefreshScreen
cmenTabSendSpecialKeys.Text = My.Language.strMenuSendSpecialKeys
cmenTabSendSpecialKeysCtrlAltDel.Text = My.Language.strMenuCtrlAltDel
cmenTabSendSpecialKeysCtrlEsc.Text = My.Language.strMenuCtrlEsc
cmenTabExternalApps.Text = My.Language.strMenuExternalTools
cmenTabRenameTab.Text = My.Language.strMenuRenameTab
cmenTabDuplicateTab.Text = My.Language.strMenuDuplicateTab
cmenTabReconnect.Text = My.Language.strMenuReconnect
cmenTabDisconnect.Text = My.Language.strMenuDisconnect
cmenTabPuttySettings.Text = My.Language.strPuttySettings
End Sub
Private Sub Connection_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not frmMain.IsClosing And My.Settings.ConfirmCloseConnection And TabController.TabPages.Count > 0 Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionPanelMainInstruction, Me.Text), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Language.strConfirmCloseConnectionPanelMainInstruction, Me.Text), "", "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
@@ -326,7 +331,7 @@ Namespace UI
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Connection_FormClosing (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Connection_FormClosing (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -341,7 +346,7 @@ Namespace UI
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Connection_Resize (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Connection_Resize (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -358,7 +363,7 @@ Namespace UI
Private Sub CloseConnectionTab()
Dim SelectedTab As Crownwood.Magic.Controls.TabPage = Me.TabController.SelectedTab
If My.Settings.ConfirmCloseConnection Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionMainInstruction, SelectedTab.Title), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Language.strConfirmCloseConnectionMainInstruction, SelectedTab.Title), "", "", "", My.Language.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
@@ -375,11 +380,12 @@ Namespace UI
Me.CloseTab(SelectedTab)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
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
@@ -461,7 +467,7 @@ Namespace UI
AddExternalApps()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ShowHideMenuButtons (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ShowHideMenuButtons (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -545,7 +551,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleSmartSize (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleSmartSize (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -563,7 +569,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "TransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "TransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -581,7 +587,7 @@ Namespace UI
Windows.sshtransferForm.Password = conI.Password
Windows.sshtransferForm.Port = conI.Port
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SSHTransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SSHTransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -591,7 +597,7 @@ Namespace UI
Dim vnc As mRemoteNG.Connection.Protocol.VNC = IC.Protocol
vnc.StartFileTransfer()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNCTransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "VNCTransferFile (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -610,7 +616,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleViewOnly (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleViewOnly (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -627,7 +633,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "StartChat (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "StartChat (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -644,7 +650,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RefreshScreen (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "RefreshScreen (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -661,7 +667,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SendSpecialKeys (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SendSpecialKeys (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -678,7 +684,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleFullscreen (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ToggleFullscreen (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -696,7 +702,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ShowPuttySettingsDialog (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ShowPuttySettingsDialog (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -706,7 +712,7 @@ Namespace UI
cmenTabExternalApps.DropDownItems.Clear()
'add ext apps
For Each extA As Tools.ExternalApp In ExtApps
For Each extA As Tools.ExternalTool In ExternalTools
Dim nItem As New ToolStripMenuItem
nItem.Text = extA.DisplayName
nItem.Tag = extA
@@ -718,11 +724,11 @@ Namespace UI
cmenTabExternalApps.DropDownItems.Add(nItem)
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "cMenTreeTools_DropDownOpening failed (UI.Window.Tree)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "cMenTreeTools_DropDownOpening failed (UI.Window.Tree)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub StartExternalApp(ByVal ExtA As Tools.ExternalApp)
Private Sub StartExternalApp(ByVal ExtA As Tools.ExternalTool)
Try
If Me.TabController.SelectedTab IsNot Nothing Then
If TypeOf Me.TabController.SelectedTab.Tag Is mRemoteNG.Connection.InterfaceControl Then
@@ -733,7 +739,7 @@ Namespace UI
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "cmenTabExternalAppsEntry_Click failed (UI.Window.Tree)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "cmenTabExternalAppsEntry_Click failed (UI.Window.Tree)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -747,7 +753,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseTabMenu (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CloseTabMenu (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -758,10 +764,11 @@ 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
mC.AddMessage(Messages.MessageClass.ErrorMsg, "DuplicateTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "DuplicateTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -778,19 +785,19 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Reconnect (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Reconnect (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub RenameTab()
Try
Dim nTitle As String = InputBox(My.Resources.strNewTitle & ":", , Me.TabController.SelectedTab.Title.Replace("&&", "&"))
Dim nTitle As String = InputBox(My.Language.strNewTitle & ":", , Me.TabController.SelectedTab.Title.Replace("&&", "&"))
If nTitle <> "" Then
Me.TabController.SelectedTab.Title = nTitle.Replace("&", "&&")
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RenameTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "RenameTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -813,15 +820,16 @@ Namespace UI
Catch comEx As System.Runtime.InteropServices.COMException
Me.TabController.Invoke(s, TabToBeClosed)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't close tab" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't close tab" & vbNewLine & ex.Message, True)
End Try
Else
Try
Me.TabController.TabPages.Remove(TabToBeClosed)
_ignoreChangeSelectedTabClick = False
Catch comEx As System.Runtime.InteropServices.COMException
CloseTab(TabToBeClosed)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't close tab" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't close tab" & vbNewLine & ex.Message, True)
End Try
If Me.TabController.TabPages.Count = 0 Then
@@ -830,9 +838,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()
@@ -844,7 +890,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "FocusIC (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "FocusIC (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -860,7 +906,7 @@ Namespace UI
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RefreshIC (UI.Window.Connection) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "RefreshIC (UI.Window.Connection) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -868,7 +914,8 @@ Namespace UI
#Region "Window Overrides"
Protected Overloads Overrides Sub WndProc(ByRef WndMsg As Message)
Try
If WndMsg.Msg = 33 Then
If WndMsg.Msg = Native.WM_MOUSEACTIVATE Then
Dim curTab As Magic.Controls.TabPage = Me.TabController.SelectedTab
Dim curRect As Rectangle = curTab.RectangleToScreen(curTab.ClientRectangle)
@@ -881,6 +928,7 @@ Namespace UI
End If
End If
End If
Return ' Do not pass to base class
End If
Catch ex As Exception
End Try
@@ -890,71 +938,27 @@ Namespace UI
#End Region
#Region "Tab drag and drop"
Dim TabDragging As Boolean
Private Sub TabController_MouseLeave(ByVal sender As Object, ByVal e As System.EventArgs) Handles TabController.MouseLeave
Try
If TabDragging = True Then
TabDragging = False
Me.Cursor = Cursors.Default
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "TabController_MouseLeave (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
Private Sub TabController_PageDragStart(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TabController.PageDragEnd, TabController.PageDragStart
Cursor = Cursors.SizeWE
End Sub
Private Sub TabController_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabController.MouseMove
Try
If e.Button = Forms.MouseButtons.Left Then
TabDragging = True
Me.Cursor = Cursors.SizeWE
ElseIf e.Button = Forms.MouseButtons.None Then
If TabDragging = True Then
TabDragging = False
Me.Cursor = Cursors.Default
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "TabController_MouseMove (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
Private Sub TabController_PageDragEnd(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TabController.PageDragEnd, TabController.PageDragQuit
Cursor = Cursors.Default
End Sub
Private Sub TabController_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles TabController.MouseUp
Try
If e.Button = Forms.MouseButtons.Left Then
If TabDragging = True Then
Dim sourceTab As Crownwood.Magic.Controls.TabPage = TabController.SelectedTab
Dim targetTab As Crownwood.Magic.Controls.TabPage = TabController.TabPageFromPoint(e.Location)
Dim targetIndex As Integer = -1
Private Sub TabController_PageDragMove(ByVal sender As Object, ByVal e As MouseEventArgs) Handles TabController.PageDragMove
Dim sourceTab As Magic.Controls.TabPage = TabController.SelectedTab
Dim destinationTab As Magic.Controls.TabPage = TabController.TabPageFromPoint(e.Location)
For i As Integer = 0 To TabController.TabPages.Count - 1
If TabController.TabPages(i) Is targetTab Then
targetIndex = i
End If
Next
If Not TabController.TabPages.Contains(destinationTab) Or sourceTab Is destinationTab Then Return
If sourceTab IsNot targetTab And targetIndex > -1 Then
TabController.TabPages.Remove(sourceTab)
TabController.TabPages.Insert(targetIndex, sourceTab)
TabController.SelectedTab = sourceTab
End If
Else
Me.FocusIC()
End If
ElseIf e.Button = Forms.MouseButtons.Middle Then
If TabDragging = False Then
Me.TabController.SelectedTab = Me.TabController.TabPageFromPoint(e.Location)
Me.CloseConnectionTab()
End If
ElseIf e.Button = Forms.MouseButtons.Right Then
If TabDragging = False Then
Me.ShowHideMenuButtons()
Me.cmenTab.Show(Me.TabController, e.Location)
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "TabController_MouseUp (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)
End Try
Dim targetIndex As Integer = TabController.TabPages.IndexOf(destinationTab)
TabController.TabPages.SuspendEvents()
TabController.TabPages.Remove(sourceTab)
TabController.TabPages.Insert(targetIndex, sourceTab)
TabController.SelectedTab = sourceTab
TabController.TabPages.ResumeEvents()
End Sub
#End Region
End Class

View File

@@ -103,7 +103,7 @@ Namespace UI
'
'clmMessage
'
Me.clmMessage.Text = My.Resources.strColumnMessage
Me.clmMessage.Text = My.Language.strColumnMessage
Me.clmMessage.Width = 184
'
'cMenMC
@@ -120,7 +120,7 @@ Namespace UI
Me.cMenMCCopy.Name = "cMenMCCopy"
Me.cMenMCCopy.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Me.cMenMCCopy.Size = New System.Drawing.Size(136, 22)
Me.cMenMCCopy.Text = My.Resources.strMenuCopy
Me.cMenMCCopy.Text = My.Language.strMenuCopy
'
'cMenMCDelete
'
@@ -128,7 +128,7 @@ Namespace UI
Me.cMenMCDelete.Name = "cMenMCDelete"
Me.cMenMCDelete.ShortcutKeys = System.Windows.Forms.Keys.Delete
Me.cMenMCDelete.Size = New System.Drawing.Size(136, 22)
Me.cMenMCDelete.Text = My.Resources.strMenuDelete
Me.cMenMCDelete.Text = My.Language.strMenuDelete
'
'imgListMC
'
@@ -144,8 +144,8 @@ Namespace UI
Me.HideOnClose = True
Me.Icon = Global.mRemoteNG.My.Resources.Resources.Info_Icon
Me.Name = "ErrorsAndInfos"
Me.TabText = My.Resources.strMenuNotifications
Me.Text = My.Resources.strMenuNotifications
Me.TabText = My.Language.strMenuNotifications
Me.Text = My.Language.strMenuNotifications
Me.pnlErrorMsg.ResumeLayout(False)
Me.pnlErrorMsg.PerformLayout()
CType(Me.pbError, System.ComponentModel.ISupportInitialize).EndInit()
@@ -173,11 +173,11 @@ Namespace UI
End Sub
Private Sub ApplyLanguage()
clmMessage.Text = My.Resources.strColumnMessage
cMenMCCopy.Text = My.Resources.strMenuCopy
cMenMCDelete.Text = My.Resources.strMenuDelete
TabText = My.Resources.strMenuNotifications
Text = My.Resources.strMenuNotifications
clmMessage.Text = My.Language.strColumnMessage
cMenMCCopy.Text = My.Language.strMenuCopy
cMenMCDelete.Text = My.Language.strMenuDelete
TabText = My.Language.strMenuNotifications
Text = My.Language.strMenuNotifications
End Sub
#End Region
@@ -213,7 +213,7 @@ Namespace UI
Me._Layout = ControlLayout.Vertical
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "LayoutVertical (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "LayoutVertical (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -229,7 +229,7 @@ Namespace UI
Me._Layout = ControlLayout.Horizontal
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "LayoutHorizontal (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "LayoutHorizontal (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -247,7 +247,7 @@ Namespace UI
Me.lvErrorCollector.Columns(0).Width = Me.lvErrorCollector.Width - 20
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ErrorsAndInfos_Resize (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "ErrorsAndInfos_Resize (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -259,7 +259,7 @@ Namespace UI
Me.txtMsgText.BackColor = Color.FromKnownColor(KnownColor.Control)
Me.lblMsgDate.Text = ""
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "pnlErrorMsg_ResetDefaultStyle (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "pnlErrorMsg_ResetDefaultStyle (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -276,7 +276,7 @@ Namespace UI
End Try
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "MC_KeyDown (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "MC_KeyDown (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -307,7 +307,7 @@ Namespace UI
Me.lblMsgDate.Text = eMsg.MsgDate
Me.txtMsgText.Text = eMsg.MsgText
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "lvErrorCollector_SelectedIndexChanged (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "lvErrorCollector_SelectedIndexChanged (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -331,7 +331,7 @@ Namespace UI
Clipboard.SetText(strCopyText)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CopyMessageToClipboard (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "CopyMessageToClipboard (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -347,7 +347,7 @@ Namespace UI
Next
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "DeleteMessages (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "DeleteMessages (UI.Window.ErrorsAndInfos) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

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,64 +135,47 @@ 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.Resources.strExport)
Else
Me.SetFormText(My.Resources.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
Private Sub ApplyLanguage()
lvSecurity.Items(0).Text = My.Resources.strCheckboxUsername
lvSecurity.Items(1).Text = My.Resources.strCheckboxPassword
lvSecurity.Items(2).Text = My.Resources.strCheckboxDomain
lvSecurity.Items(3).Text = My.Resources.strCheckboxInheritance
btnCancel.Text = My.Resources.strButtonCancel
btnOK.Text = My.Resources.strButtonOK
Label1.Text = My.Resources.strUncheckProperties
lblMremoteXMLOnly.Text = My.Resources.strPropertiesWillOnlyBeSavedMRemoteXML
TabText = My.Resources.strMenuSaveConnectionFileAs
Text = My.Resources.strMenuSaveConnectionFileAs
lvSecurity.Items(0).Text = My.Language.strCheckboxUsername
lvSecurity.Items(1).Text = My.Language.strCheckboxPassword
lvSecurity.Items(2).Text = My.Language.strCheckboxDomain
lvSecurity.Items(3).Text = My.Language.strCheckboxInheritance
btnCancel.Text = My.Language.strButtonCancel
btnOK.Text = My.Language.strButtonOK
Label1.Text = My.Language.strUncheckProperties
lblMremoteXMLOnly.Text = My.Language.strPropertiesWillOnlyBeSavedMRemoteXML
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
mC.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

@@ -294,7 +294,7 @@ Namespace UI
#End Region
#Region "Private Properties"
Private _SelApp As Tools.ExternalApp
Private _SelApp As Tools.ExternalTool
#End Region
#Region "Private Methods"
@@ -302,7 +302,7 @@ Namespace UI
Try
lvApps.Items.Clear()
For Each extA As Tools.ExternalApp In ExtApps
For Each extA As Tools.ExternalTool In ExternalTools
Dim lvItem As New ListViewItem
lvItem.Text = extA.DisplayName
lvItem.SubItems.Add(extA.FileName)
@@ -322,11 +322,11 @@ Namespace UI
RefreshToolbar()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "LoadApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub GetAppProperties(ByVal SelApp As Tools.ExternalApp)
Private Sub GetAppProperties(ByVal SelApp As Tools.ExternalTool)
Try
If SelApp IsNot Nothing Then
txtDisplayName.Text = SelApp.DisplayName
@@ -337,11 +337,11 @@ Namespace UI
_SelApp = SelApp
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "GetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub SetAppProperties(ByVal SelApp As Tools.ExternalApp)
Private Sub SetAppProperties(ByVal SelApp As Tools.ExternalTool)
Try
If SelApp IsNot Nothing Then
SelApp.DisplayName = txtDisplayName.Text
@@ -353,14 +353,14 @@ Namespace UI
LoadApps()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "SetAppProperties failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub AddNewApp()
Try
Dim nExtA As New Tools.ExternalApp("New Application")
ExtApps.Add(nExtA)
Dim nExtA As New Tools.ExternalTool("New Application")
ExternalTools.Add(nExtA)
LoadApps()
lvApps.SelectedItems.Clear()
@@ -372,7 +372,7 @@ Namespace UI
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNewApp failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "AddNewApp failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -383,14 +383,14 @@ Namespace UI
Case Is < 1
Exit Sub
Case Is = 1
Prompt = String.Format(My.Resources.strConfirmDeleteExternalTool, lvApps.SelectedItems(0).Text)
Prompt = String.Format(My.Language.strConfirmDeleteExternalTool, lvApps.SelectedItems(0).Text)
Case Is > 1
Prompt = String.Format(My.Resources.strConfirmDeleteExternalToolMultiple, lvApps.SelectedItems.Count)
Prompt = String.Format(My.Language.strConfirmDeleteExternalToolMultiple, lvApps.SelectedItems.Count)
End Select
If MsgBox(Prompt, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
For Each lvItem As ListViewItem In lvApps.SelectedItems
ExtApps.Remove(lvItem.Tag)
ExternalTools.Remove(lvItem.Tag)
lvItem.Tag = Nothing
lvItem.Remove()
Next
@@ -398,22 +398,22 @@ Namespace UI
RefreshToolbar()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RemoveApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "RemoveApps failed (UI.Window.ExternalApps)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub StartApp()
Try
For Each lvItem As ListViewItem In lvApps.SelectedItems
TryCast(lvItem.Tag, mRemoteNG.Tools.ExternalApp).Start()
TryCast(lvItem.Tag, mRemoteNG.Tools.ExternalTool).Start()
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "StartApp failed (UI.Window.ExternalApps" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, "StartApp failed (UI.Window.ExternalApps" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub RefreshToolbar()
frmMain.AddExtAppsToToolbar()
frmMain.AddExternalToolsToToolBar()
App.Runtime.GetExtApps()
End Sub
#End Region
@@ -425,24 +425,24 @@ Namespace UI
End Sub
Private Sub ApplyLanguage()
clmDisplayName.Text = My.Resources.strColumnDisplayName
clmFilename.Text = My.Resources.strColumnFilename
clmArguments.Text = My.Resources.strColumnArguments
clmWaitForExit.Text = My.Resources.strColumnWaitForExit
cMenAppsAdd.Text = My.Resources.strMenuNewExternalTool
cMenAppsRemove.Text = My.Resources.strMenuDeleteExternalTool
cMenAppsStart.Text = My.Resources.strMenuLaunchExternalTool
grpEditor.Text = My.Resources.strGroupboxExternalToolProperties
Label4.Text = My.Resources.strLabelOptions
chkWaitForExit.Text = My.Resources.strCheckboxWaitForExit
chkTryIntegrate.Text = My.Resources.strTryIntegrate
btnBrowse.Text = My.Resources.strButtonBrowse
Label3.Text = My.Resources.strLabelArguments
Label2.Text = My.Resources.strLabelFilename
Label1.Text = My.Resources.strLabelDisplayName
dlgOpenFile.Filter = My.Resources.strFilterApplication & "|*.exe|" & My.Resources.strFilterAll & "|*.*"
TabText = My.Resources.strMenuExternalTools
Text = My.Resources.strMenuExternalTools
clmDisplayName.Text = My.Language.strColumnDisplayName
clmFilename.Text = My.Language.strColumnFilename
clmArguments.Text = My.Language.strColumnArguments
clmWaitForExit.Text = My.Language.strColumnWaitForExit
cMenAppsAdd.Text = My.Language.strMenuNewExternalTool
cMenAppsRemove.Text = My.Language.strMenuDeleteExternalTool
cMenAppsStart.Text = My.Language.strMenuLaunchExternalTool
grpEditor.Text = My.Language.strGroupboxExternalToolProperties
Label4.Text = My.Language.strLabelOptions
chkWaitForExit.Text = My.Language.strCheckboxWaitForExit
chkTryIntegrate.Text = My.Language.strTryIntegrate
btnBrowse.Text = My.Language.strButtonBrowse
Label3.Text = My.Language.strLabelArguments
Label2.Text = My.Language.strLabelFilename
Label1.Text = My.Language.strLabelDisplayName
dlgOpenFile.Filter = My.Language.strFilterApplication & "|*.exe|" & My.Language.strFilterAll & "|*.*"
TabText = My.Language.strMenuExternalTools
Text = My.Language.strMenuExternalTools
End Sub
Private Sub lvApps_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lvApps.DoubleClick

View File

@@ -385,24 +385,24 @@ Namespace UI
cbProtocol.SelectedIndex = 0
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPortScanCouldNotLoadPanel & vbNewLine & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPortScanCouldNotLoadPanel & vbNewLine & vbNewLine & ex.Message)
End Try
End Sub
Private Sub ApplyLanguage()
lblStartIP.Text = My.Resources.strStartIP & ":"
lblEndIP.Text = My.Resources.strEndIP & ":"
btnScan.Text = My.Resources.strButtonScan
btnCancel.Text = My.Resources.strButtonCancel
btnImport.Text = My.Resources.strButtonImport
lblOnlyImport.Text = My.Resources.strProtocolToImport & ":"
clmHost.Text = My.Resources.strColumnHostnameIP
clmOpenPorts.Text = My.Resources.strOpenPorts
clmClosedPorts.Text = My.Resources.strClosedPorts
Label2.Text = My.Resources.strEndPort & ":"
Label1.Text = My.Resources.strStartPort & ":"
TabText = My.Resources.strMenuPortScan
Text = My.Resources.strMenuPortScan
lblStartIP.Text = My.Language.strStartIP & ":"
lblEndIP.Text = My.Language.strEndIP & ":"
btnScan.Text = My.Language.strButtonScan
btnCancel.Text = My.Language.strButtonCancel
btnImport.Text = My.Language.strButtonImport
lblOnlyImport.Text = My.Language.strProtocolToImport & ":"
clmHost.Text = My.Language.strColumnHostnameIP
clmOpenPorts.Text = My.Language.strOpenPorts
clmClosedPorts.Text = My.Language.strClosedPorts
Label2.Text = My.Language.strEndPort & ":"
Label1.Text = My.Language.strStartPort & ":"
TabText = My.Language.strMenuPortScan
Text = My.Language.strMenuPortScan
End Sub
Private Sub btnScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnScan.Click
@@ -412,7 +412,7 @@ Namespace UI
If ipOK() Then
StartScan()
Else
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strCannotStartPortScan)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strCannotStartPortScan)
End If
End If
End Sub
@@ -456,9 +456,9 @@ Namespace UI
Me.Invoke(d)
Else
If scanning = True Then
btnScan.Text = My.Resources.strButtonStop
btnScan.Text = My.Language.strButtonStop
Else
btnScan.Text = My.Resources.strButtonScan
btnScan.Text = My.Language.strButtonScan
End If
End If
End Sub
@@ -495,7 +495,7 @@ Namespace UI
pScanner.StartScan()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "StartScan failed (UI.Window.PortScan)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, "StartScan failed (UI.Window.PortScan)" & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -522,11 +522,11 @@ Namespace UI
#Region "Event Handlers"
Private Sub Event_BeginHostScan(ByVal Host As String)
mC.AddMessage(Messages.MessageClass.InformationMsg, "Scanning " & Host, True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, "Scanning " & Host, True)
End Sub
Private Sub Event_HostScanned(ByVal Host As Tools.PortScan.ScanHost, ByVal AlreadyScanned As Integer, ByVal ToBeScanned As Integer)
mC.AddMessage(Messages.MessageClass.InformationMsg, "Host scanned " & Host.HostIP, True)
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, "Host scanned " & Host.HostIP, True)
Dim lvI As ListViewItem = Host.ToListViewItem(psMode)
AddListViewItem(lvI)
@@ -537,7 +537,7 @@ Namespace UI
Private Sub Event_ScanComplete(ByVal Hosts As ArrayList)
scanning = False
SwitchButtonText()
mC.AddMessage(Messages.MessageClass.InformationMsg, "Scan complete!")
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, "Scan complete!")
End Sub
#End Region
End Class

Some files were not shown because too many files have changed in this diff Show More