Compare commits

...

503 Commits
1.63 ... 1.72

Author SHA1 Message Date
Riley McArdle
da39c03a6f Fix issue MR-592 - Unable to run VBS script as an external tool
Fix issue MR-596 - Incorrect escaping of quotation marks in external tool arguments
2013-11-13 18:20:52 -06:00
Riley McArdle
3d64fbef49 Update CHANGELOG.TXT for 1.71 RC3. 2013-10-29 02:35:33 -05:00
Riley McArdle
869c2726bb Fix checking for updates even when disabled. 2013-10-27 06:04:54 -05:00
Riley McArdle
2e663df42a Fix issue MR-578 - Connections file is reset
Fix the wrong connections file opening on startup under certain conditions.
Improve error reporting when loading connections files.
Remove warning message when mRemoteNG is started for the first time about new connections file being created.
2013-10-27 05:46:11 -05:00
Riley McArdle
0a82828d2e Fix log file not showing operating system version on Windows XP and Windows Server 2003. 2013-10-25 00:57:21 -05:00
Riley McArdle
13c1d049fc Fix issue MR-574 - Crash when retrieving RDP session list if eolwtscom.dll is not registered 2013-10-25 00:56:28 -05:00
Riley McArdle
62feba1691 Update CHANGELOG.TXT for 1.71 RC2. 2013-10-16 17:08:10 -05:00
Riley McArdle
3cb8784996 Minor code cleanup. 2013-10-14 22:48:10 -05:00
Riley McArdle
81d150f80a Fix duplicated folders possibly being named "New Connection" instead of the original folder's name 2013-10-14 22:47:48 -05:00
Riley McArdle
9ebce266ec Fix issue MR-565 - Double Folder keep heritage on the initial Folder 2013-10-14 22:42:34 -05:00
Riley McArdle
42bcf8db31 Fix typo in Portuguese translation. 2013-10-14 18:31:31 -05:00
Riley McArdle
ff2bbcf650 Fix issue MR-566 - Typo in German UI Automatic Update Settings 2013-10-14 18:30:55 -05:00
Riley McArdle
ba55958327 Fix issue MR-560 - Cannot Auto-Update With Open Connections: Unable to find an entry point named 'TaskDialogIndirect' in DLL 'ComCtl32' 2013-10-02 14:38:58 -05:00
Riley McArdle
2a67f493f6 Always use debug update channel for debug builds. 2013-10-02 13:56:04 -05:00
Riley McArdle
06892deedf Update CHANGELOG.TXT for release. 2013-10-01 19:58:36 -05:00
Riley McArdle
d12ea40845 Add missing variable type. 2013-10-01 19:57:34 -05:00
Riley McArdle
3f21151331 Add new translations to project file. Add code signing of DLLs for new translations to BUILD.CMD. 2013-10-01 19:56:53 -05:00
Riley McArdle
c91f5e5cba Remove Beta VERSIONTAG from BUILD.CMD. Fix encoding of CHANGELOG.TXT. 2013-10-01 19:45:54 -05:00
Riley McArdle
9e90d17d80 Fix AnnouncementAddress for release version. 2013-10-01 19:41:16 -05:00
Riley McArdle
2e67bbf6a1 Add Chinese (Traditional) translation. Add partial Greek and Hungarian translations. 2013-10-01 19:17:21 -05:00
Riley McArdle
ceec9749b9 Update translations from Crowdin. 2013-10-01 19:16:31 -05:00
Riley McArdle
f674b5bfeb Fix issue MR-542 - Wrapped putty has security flaw
Update PuTTY to version 0.63.
2013-10-01 17:23:12 -05:00
Riley McArdle
b3e541c627 Add missing punctuation in CHANGELOG.TXT. 2013-09-30 22:09:43 -05:00
Riley McArdle
3389a152be Fix PuTTY Saved Sessions not showing after loading a new connections file 2013-09-30 22:09:04 -05:00
Riley McArdle
662fcfa318 Fix possible cross-thread operation exception when loading connections from SQL 2013-09-30 22:08:05 -05:00
Riley McArdle
06baec9c55 Fix issue MR-535 - SQL error saving Connections 2013-09-30 22:07:39 -05:00
Riley McArdle
270699c26b Fix issue MR-538 - RDP loses connection when hiding config or connections pane 2013-09-27 23:01:14 -05:00
Riley McArdle
bc699a04ec Fix issue MR-525 - Could not start on windows 7 64bit 2013-09-27 22:15:40 -05:00
Riley McArdle
3639e75f5b Fix issue MR-514 - Window Proxy test failed without close button 2013-09-27 21:04:26 -05:00
Riley McArdle
eef14ebc29 Fix issue MR-521 - Right-Clicking in "Sessions" panel crashes mRemoteNG 2013-09-27 01:39:43 -05:00
Riley McArdle
2568d2b750 Fix issue MR-495 - Having a negative range in port scan creates memory exhaustion.
Make minor improvements to the port scan functionality.
2013-09-27 01:29:35 -05:00
Riley McArdle
58a57d7a7d Improve reliability of BUILD.CMD. 2013-07-03 02:07:51 -05:00
Riley McArdle
8ddb71758e Update CHANGELOG.TXT for 1.71 Beta 5. 2013-06-09 15:48:22 -05:00
Riley McArdle
54f19eaeb6 Fix typo in SQL queries. 2013-06-08 00:00:10 -05:00
Riley McArdle
960096273b Fix issue MR-499 - TS Gateway is not working in latest release 1.71 2013-06-07 23:30:07 -05:00
Riley McArdle
b360902bd9 Improve SetRdGateway(). 2013-06-03 15:40:52 -05:00
Riley McArdle
8006bb49ca Fix issue MR-491 - Could not start RDP Connection 2013-06-03 14:20:34 -05:00
Riley McArdle
ac65468233 Update CHANGELOG.TXT for release of 1.71 Beta 4. 2013-05-28 15:37:34 -05:00
Riley McArdle
8992cb29da Add nb-NO and pt-BR language DLLs to list to be signed in BUILD.CMD. 2013-05-28 15:31:13 -05:00
Riley McArdle
b5f5f43b4c Sign PuTTYNG.exe. 2013-05-28 15:20:38 -05:00
Riley McArdle
8a814d9016 Update VncSharpNG to 1.3.4896.25007. 2013-05-28 14:56:02 -05:00
Riley McArdle
4ff4a365e1 Fix issue MR-487 - Initiate connections on MouseUp event 2013-05-28 13:48:07 -05:00
Riley McArdle
905b6bb92a Update translations. Add Norwegian (Bokmål) and Portuguese (Brazil) translations. 2013-05-22 13:38:05 -05:00
Riley McArdle
88d06c8ef2 Add Spanish installer translation from Marlon Montoya Torres. 2013-05-22 12:55:36 -05:00
Riley McArdle
102987dac7 Fix list of files to sign with code signing certificate. 2013-05-22 12:53:39 -05:00
Riley McArdle
54cf76444e Update BUILD.CMD with new code signing certificate information. 2013-05-22 12:53:07 -05:00
Riley McArdle
f595c1d446 Fix issue MR-470 - Quick Connect to Linux server uses invalid credentials 2013-05-13 13:04:39 -05:00
Riley McArdle
9cf06c44e8 Improve loading time of large connection files. 2013-05-08 21:08:29 -05:00
Riley McArdle
5d63ec6d2a Fix issue MR-459 - Maximized -> Minimized -> Restored results in mangled active display
Fix issue MR-463 - Add support for LoadBalanceInfo to RDP
2013-05-08 19:17:51 -05:00
Riley McArdle
0544b61138 Code cleanup. 2013-05-08 17:52:52 -05:00
Riley McArdle
ceb6f70b4d Improve the PuTTY Saved Sessions list to update automatically when any changes are made. 2013-05-06 00:28:23 -05:00
Riley McArdle
f3075f4c51 Hide PuTTY sessions from PuTTY Saved Sessions if no host is set. Show "Default Settings" if host is set. Default to SSH2 if "Protocol" or "SshProt" are not set (matching behavior of PuTTY). 2013-05-05 19:55:52 -05:00
Riley McArdle
7b850892ae Improve changes made in commit 5737d78. Improve RDP components check and failure text. 2013-05-05 00:24:17 -05:00
Riley McArdle
6a3ca9c9de Fix issue MR-443 - Instructions for eolwtscom.dll registration for Portable version are inaccurate 2013-05-04 23:54:41 -05:00
Riley McArdle
d69d948963 Fix issue MR-446 - Putty saved sessions show in connection panel 2013-05-04 23:08:38 -05:00
Riley McArdle
aa6061d7b6 Fix issue MR-471 - PuTTY Saved Sessions disappears from connection list 2013-05-04 22:56:40 -05:00
Riley McArdle
ba667475bf Fix issue MR-440 - RDP import with non-standard port 2013-05-04 22:43:14 -05:00
Riley McArdle
5737d78f78 Fix issue MR-255 - The version of the RDP AX client should be updated to 7 2013-05-04 19:53:33 -05:00
Riley McArdle
079fe000bb Fix issue MR-439 - MRemoteNG 1.70 does not start 2013-05-02 18:21:17 -05:00
Riley McArdle
29865c69ab Sort language files. 2013-04-30 22:06:30 -05:00
Riley McArdle
f2e9cce248 Make "Sort Language Files.cmd" actually do something. 2013-04-30 22:06:08 -05:00
Riley McArdle
6a16656f03 Code cleanup. 2013-04-30 22:05:09 -05:00
Riley McArdle
7f4d3605c0 Added feature MR-435 - Add digital signature check to updater
Refactor update and announcement handling.
2013-04-30 22:04:07 -05:00
Riley McArdle
d97ad31cc3 Change PuTTY saved sessions to only send session name command line parameter. 2013-03-25 19:34:41 -05:00
Riley McArdle
a49ebf17bf Add PuTTY Session Settings command to the Config panel for PuTTY Saved Sessions.
Fix handling of the plus (+) character in PuTTY session names.
2013-03-25 19:29:20 -05:00
Riley McArdle
903a9dd5cc Start adding "Edit in PuTTY" command to property grid for PuTTY Saved Sessions. 2013-03-25 00:52:27 -05:00
Riley McArdle
5d8db1ade6 Change the "Launch PuTTY" button in the "Options" dialog to open PuTTY from the path the user has currently set, instead of what was previously saved. 2013-03-24 23:29:16 -05:00
Riley McArdle
423a89fdaa Change Internet Explorer to no longer force IE7 compatibility mode. 2013-03-23 19:21:11 -05:00
Riley McArdle
85d78fd4ae Remove unused BorderSize property from Connection.Protocol.PuttyBase. 2013-03-23 18:21:16 -05:00
Riley McArdle
725269e914 Fix issue MR-424 - Import of a few Linux SSH2 hosts discovered via the port scan tool results in a UE 2013-03-23 15:03:54 -05:00
Riley McArdle
9d3beaffbb Additional fix for MR-392. 2013-03-23 14:08:56 -05:00
Riley McArdle
7f36b7926b Fix issue MR-392 - Sessions Panel - context menu entries need to be context aware
Refactor UI.Window.Sessions.
2013-03-23 13:58:39 -05:00
Riley McArdle
f4bb268e27 Fix issue MR-422 - Gives error Object reference not set to an instance of an object. 2013-03-22 22:03:41 -05:00
Riley McArdle
e1329348d1 Remove intermediate debugging variables from Themes.ThemeSerializer.EncodeColorName(). 2013-03-20 22:26:10 -05:00
Riley McArdle
4f06a48d16 Fix an exception or crash when choosing unnamed colors for themes.
Fix possible error "Control does not support transparent background colors" when modifying themes.
Fix changes to the active theme not being saved reliably.
2013-03-20 22:20:58 -05:00
Riley McArdle
1dea64d2eb Improve SSH transfer error message. 2013-03-20 16:54:51 -05:00
Riley McArdle
375e737f02 Fix PuTTY saved sessions with spaces or special characters not being listed. 2013-03-20 16:25:51 -05:00
Riley McArdle
1032801f12 Fix the category names in the themes tab of the options dialog on Windows XP not showing correctly. 2013-03-20 16:09:32 -05:00
Riley McArdle
1002b8d32f Fix namespace problem in App.Runtime.vb. 2013-03-20 15:51:32 -05:00
Riley McArdle
36a72da71f Update CHANGELOG.TXT for 1.71 Beta 3 release. 2013-03-20 15:45:19 -05:00
Riley McArdle
a2b3a815e7 Fix issue MR-397 - Putty disappears from the screen
Fix issue MR-402 - scrollbar touch moves putty window
2013-03-20 15:36:30 -05:00
Riley McArdle
7820707e46 Fix issue MR-413 - Can't use aplication 2013-03-20 11:09:01 -05:00
Riley McArdle
c3f960cfe8 More small changes to fullscreen mode. 2013-03-20 00:17:06 -05:00
Riley McArdle
965f43a4c3 Fix issue MR-398 - Full Screen mode doesn't correctly make use of available space 2013-03-19 23:20:49 -05:00
Riley McArdle
317175bb03 Minor code cleanup. 2013-03-19 22:28:55 -05:00
Riley McArdle
1608d48495 Fix new connections having a globe icon. 2013-03-19 22:24:42 -05:00
Riley McArdle
08ddee1bda Fix issue MR-406 - Items disappear from External Tools toolbar when accessing External Tools panel 2013-03-19 22:22:49 -05:00
Riley McArdle
72756a2bb8 Fix issue MR-410 - Unhandled exception when clicking New button under Theme 2013-03-19 21:11:00 -05:00
Riley McArdle
38011a3546 Add missing line to CHANGELOG.TXT. 2013-03-19 13:15:18 -05:00
Riley McArdle
d72dbdace0 Update CHANGELOG.TXT for release of 1.71 Beta 2. 2013-03-19 13:14:34 -05:00
Riley McArdle
5c887b648f Update translations from Crowdin. 2013-03-18 23:38:08 -05:00
Riley McArdle
4de7167352 Add additional translators to CREDITS.TXT. 2013-03-18 22:58:43 -05:00
Riley McArdle
54825b353f Fix issue MR-401 - Checkbox misaligned 2013-03-17 17:51:13 -05:00
Riley McArdle
b23fb58977 RDP connections can now be switched to full screen mode when redirect key combinations is enabled. 2013-03-17 15:36:59 -05:00
Riley McArdle
7b831c6ab8 Add feature MR-351 - Import connections from PuTTY 2013-03-16 22:37:34 -05:00
Riley McArdle
167344bd14 Add translator Emanuel Silva to CREDITS.TXT. 2013-03-16 13:46:21 -05:00
Riley McArdle
14f31ba461 Fix COMException on WebBrowser controls. 2013-03-15 23:56:48 -05:00
Riley McArdle
13a82799b2 Correct a typo. 2013-03-15 22:14:09 -05:00
Riley McArdle
66fe33683e Fix issue MR-375 - Changing a connection's icon using the picture button should immediately update Icon field 2013-03-15 18:03:41 -05:00
Riley McArdle
8030c9a63d Add feature MR-346 - Option to show/hide the description box at the bottom of the Config panel 2013-03-15 17:50:17 -05:00
Riley McArdle
60630a5cab Remove debug message from Connection.Protocol.PuttyBase.vb. 2013-03-15 16:51:02 -05:00
Riley McArdle
d9ba8f81e2 Create Sort Language Files.cmd. 2013-03-14 22:01:14 -05:00
Riley McArdle
7fe56402fd Fix spelling of colour for English and add color to en-US. 2013-03-14 22:00:05 -05:00
Riley McArdle
634bce25cd Move theme related strings into Language.resx. 2013-03-14 21:41:12 -05:00
Riley McArdle
437ff003b0 More theme improvements. 2013-03-14 20:18:56 -05:00
Riley McArdle
9f09798da5 More theme improvements. 2013-03-14 19:46:06 -05:00
Riley McArdle
5da85b6a88 More additions to theming. 2013-03-12 22:41:59 -05:00
Riley McArdle
bb42a31486 Change theme settings file name to Themes.xml and moved it to a Const in App.Info.Settings. 2013-03-12 20:18:13 -05:00
Riley McArdle
7e5e1e6342 Hide theme properties that don't look good. Additional improvements to theming. 2013-03-12 20:01:35 -05:00
Riley McArdle
6f43bbf96e Start adding theme support. 2013-03-09 22:13:40 -06:00
Riley McArdle
8ea514643d Additional fix for MR-345. 2013-03-09 15:14:42 -06:00
Riley McArdle
f7e12c6e92 Fix issue MR-354 - Re-ordering tabs doesn't give good, reliable visual feedback 2013-03-08 20:32:54 -06:00
Riley McArdle
30f2cc9e28 Fix ArgumentNullException in Tools.CommandLineArguments. 2013-03-08 19:35:31 -06:00
Riley McArdle
45b9dddb4b Add feature MR-345 - Two separate options for confirming closure of Tabs and Connection Panels 2013-03-08 18:33:37 -06:00
Riley McArdle
650dc487db Fix issue MR-381 - Notifications panel - whitespace context menu allows Copy and Delete on nothing 2013-03-07 22:34:49 -06:00
Riley McArdle
5bc443707f Fix issue MR-377 - Several redundant panels can be opened 2013-03-07 21:14:00 -06:00
Riley McArdle
4510219300 Fix issue MR-379 - Connection variables not working with external tools 2013-03-07 20:26:02 -06:00
Riley McArdle
cd8601c7ff Correct CHANGELOG.TXT. 2013-03-07 20:25:41 -06:00
Riley McArdle
73c27069ee Change "Automatically get session information" to be disabled by default. 2013-03-07 19:50:35 -06:00
Riley McArdle
7dcad234f5 Hide the username and domain settings for VNC connections. 2013-03-07 18:52:15 -06:00
Riley McArdle
66281639b4 Merge branch 'release/1.70' into develop
Conflicts:
	CHANGELOG.TXT
2013-03-07 12:11:20 -06:00
Riley McArdle
1af6fde986 Prepare CHANGELOG.TXT for release of 1.70 RC3. 2013-03-07 12:07:01 -06:00
Riley McArdle
83ec9e50b8 Merge branch 'release/1.70' into develop 2013-03-06 23:04:55 -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
0ff00e59ba Add setting for update channel. 2013-03-04 21:52:28 -06:00
Riley McArdle
850a342e38 Prepare CHANGELOG.TXT for release of 1.71 Beta 1. 2013-03-04 15:54:49 -06:00
Riley McArdle
1caba06aca Fix issue MR-362 - Rename 'Screenshot Manager' to 'Screenshots' on the View menu to match Panel name 2013-03-04 13:20:49 -06:00
Riley McArdle
a115196cee Disable Fullscreen item on tab context menu if redirect keys is enabled for RDP connection. Fix automatic RDP resize when redirect keys is enabled. Fix automatic RDP resize when SmartSize setting is changed. 2013-03-04 12:55:46 -06:00
Riley McArdle
5f451de94e Fix issue MR-352 - Passwords with " (quotation mark) and # (hash key) characters make mRemoteNG to open PuttyNG dialog 2013-03-02 01:41:00 -06:00
Riley McArdle
a4921fc564 Add automatic resizing of RDP connections when the window is resized or when toggling full screen mode. 2013-03-01 17:04:28 -06:00
Riley McArdle
7d1d03e8cd Fix connection bar being shown when connecting to an RDP connection with redirect key combinations enabled. 2013-02-28 22:46:07 -06:00
Riley McArdle
92c18a45ba Merge branch 'release/1.70' into develop 2013-02-28 14:57:41 -06:00
Riley McArdle
a61fb5c6d6 Fix issue MR-350 - VerifyDatabaseVersion (Config.Connections.Save) failed. Version string portion was too short or too long. 2013-02-28 14:56:51 -06:00
Riley McArdle
e1deaf73ea Fix issue MR-117 - Remote Session Info Window / Tab does not populate 2013-02-27 19:20:49 -06:00
Riley McArdle
7d6d602477 Merge branch 'release/1.70' into develop
Conflicts:
	CHANGELOG.TXT
2013-02-27 14:44:17 -06:00
Riley McArdle
b0439adee4 Fix issue MR-339 - Connection group collapses with just one click
(cherry picked from commit 0a7c88a853)

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

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

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

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

Conflicts:
	mRemoteV1/Config/Config.Connections.Save.vb
2013-02-12 15:22:26 -06:00
Riley McArdle
818708dfb4 Fix issue MR-181 - Sessions on startup
Thanks to tbstudee
fa18d10f4a
2013-02-12 15:09:03 -06:00
Riley McArdle
3d26a1a028 Update copyright year. 2013-02-12 14:57:00 -06:00
Riley McArdle
5dcfb272d9 Remove default domain from UI.Window.ADImport.vb. 2013-02-12 12:39:26 -06:00
Riley McArdle
c634b0ccbc Remove line from CHANGELOG.TXT as it is a fix for a bug introduced in 1.70 Beta 1 and is not a change from 1.69. 2013-02-07 21:55:09 -06:00
Riley McArdle
c957be8774 Improve readability of new error checking in App.Runtime.Startup.CheckCompatibility(). 2013-02-07 21:53:40 -06:00
Riley McArdle
513356506b Improve error handling in UI.Window.Config.AddToolStripItems(). 2013-02-07 21:47:14 -06:00
Riley McArdle
f7754d2371 Fix issue MR-68 - Config Window Loses Options
Fix issue MR-277 - Inheritance configuration button not appear in configuration tab
2013-02-07 21:24:26 -06:00
Riley McArdle
aa9a642ade Fix issue MR-264 - Windows 8 support 2013-02-07 16:55:32 -06:00
Riley McArdle
7868b7e76b Add error checking to App.Runtime.Startup.CheckCompatibility() to fix issue MR-306 - Fatal .NET exception on program start. 2013-02-07 16:37:37 -06:00
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
68cee49830 Upgrade solution to Visual Studio 2010 format. 2011-12-09 01:47:11 -06:00
rmcardle
5892c0cda8 Update EstimatedSize in installer. 2011-12-09 01:45:24 -06:00
rmcardle
59e09e3762 Update BUILD.CMD for VS2010. Clean up code in BUILD.CMD. Replace GetVersion.nsi with Sigcheck. 2011-12-09 01:44:57 -06:00
rmcardle
79dad7e319 Add Visual Studio solution upgrade files to .gitignore. 2011-12-09 01:36:48 -06:00
rmcardle
4455f9c71d Update CHANGELOG.TXT. 2011-12-09 01:35:21 -06:00
Riley McArdle
ed8e4e0303 Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable. 2011-12-08 23:07:15 -06:00
Riley McArdle
56993c0785 Fixed missing link between chkUseOnlyErrorsAndInfosPanel and CheckedChanged event handler. 2011-12-08 23:01:10 -06:00
rmcardle
ec830a3fc4 Add issue #72 to CHANGELOG.TXT. 2011-12-08 01:18:35 -06:00
rmcardle
cb224a352a Add support for PuTTYNG. 2011-12-08 01:15:21 -06:00
rmcardle
99b981b988 Merge remote-tracking branch 'origin/release/1.69' into release/1.69 2011-12-08 01:12:42 -06:00
rmcardle
e88cf2be5e Fixed issue #72 - scrollbars added to RDP window after minimize/restore of mRemoteNG 2011-12-07 23:19:51 -06:00
rmcardle
91262db838 Fixed file name in window title changing when exporting an XML file. Removed redundant code. 2011-12-06 23:05:42 -06:00
rmcardle
e339fb1390 Revert AssemblyCompany change from 72e2d9c2ab to fix settings migration. 2011-12-06 22:59:39 -06:00
rmcardle
4644741849 Fixed issue #67 - Connection file gets erased 2011-12-06 03:21:28 -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
87b0f317d1 Updated AssemblyVersion to 1.69. 2011-07-29 02:12:11 -05:00
Riley McArdle
2778f8d1c3 Disabled automatic updates in the portable edition 2011-07-29 02:10:15 -05:00
Riley McArdle
b67a68b100 Added code to BUILD.CMD to digitally sign binaries 2011-07-29 01:22:01 -05:00
Riley McArdle
72e2d9c2ab Changed company name to Next Generation Software 2011-07-29 01:21:56 -05:00
Riley McArdle
2af9e02029 Updated PuTTY to version 0.61 2011-07-29 01:21:47 -05:00
Riley McArdle
7b6d01a965 Fixed issue #66 - Fresh Install Fails to Create Config 2011-07-29 01:21:37 -05:00
Riley McArdle
d9cfda43b6 Updated BUILD.CMD, CHANGELOG.TXT, and AssemblyInfo.vb for version 1.68. 2011-07-07 16:22:07 -05:00
Riley McArdle
d15aa639f5 Fixed issue #48 - VerifyDatabaseVersion fails with new (empty) database tables. 2011-07-07 16:11:30 -05:00
Riley McArdle
8a70a3e64b Fixed issue #60 - Can't save connections file and issue #62 - Connection file error upon launch. 2011-07-07 16:10:55 -05: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
fb826c7fac Hide unimplemented File->Import/Export Folder menu item. 2011-06-05 12:40:20 -05:00
Riley McArdle
5b57f46d99 Hide unimplemented File->Import/Export Folder menu item. 2011-06-05 12:30:34 -05:00
Riley McArdle
d5822094c1 Updated BUILD.CMD and CHANGELOG.TXT for 1.67 RC5. 2011-06-05 12:14:18 -05:00
Riley McArdle
87f7fbdf45 Changed header, removed footer, and added command line to the log file. 2011-06-05 12:06:36 -05:00
Riley McArdle
0bed923a4d Added code to verify database version and upgrade database from 2.2 (mRemoteNG 1.66 or earlier) to 2.3 (mRemoteNG 1.67). 2011-06-05 12:06:07 -05:00
Riley McArdle
69ab11eb5f Enable creation of PDB debug symbol files for release builds. 2011-06-05 12:04:53 -05:00
Riley McArdle
217a03b191 Fixed bug 45 - Changing some settings in the config file may not save. 2011-06-05 12:04:44 -05:00
Riley McArdle
cab2163d01 Fixed Inherit All not affecting Enable Font Smoothing and Enable Desktop Composition. 2011-06-05 12:00:56 -05:00
Riley McArdle
2346aaa1c3 Only try to load 2.3 settings from SQL if the database is version 2.3. 2011-06-05 12:00:45 -05:00
Riley McArdle
7e45928297 Fixed ShowUpdatesTab to show the correct tab. 2011-06-05 12:00:29 -05:00
Riley McArdle
76543a440b Added version and culture information to log on startup. 2011-06-05 12:00:10 -05:00
Riley McArdle
5cb98e0543 Fixed tab order of controls in Options dialog. 2011-06-05 11:59:51 -05:00
Riley McArdle
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
Riley McArdle
114db6c90d Fix typo in previous commit. 2011-06-01 18:12:48 -05:00
Riley McArdle
53c5da7e0e Missing changes from commit 17a5853041. 2011-06-01 18:09:12 -05:00
Riley McArdle
888e55aaee Updated BUILD.CMD and CHANGELOG.TXT for 1.67 RC4. 2011-06-01 17:42:54 -05:00
Riley McArdle
2234770dac Changed installer to not show the version tag so that release candidates can be used for release without rebuilding. 2011-06-01 17:42:03 -05:00
Riley McArdle
17a5853041 Changed hard coded SQL database name into a user configurable setting. 2011-06-01 17:32:31 -05:00
Riley McArdle
d80f3d757e Moved default credentials back to the correct page in the Options dialog. 2011-06-01 17:07:40 -05:00
Riley McArdle
85a5d027dc Improved Reset Layout function. 2011-06-01 16:36:33 -05:00
Riley McArdle
006c76b11d Add database icon to project. 2011-06-01 15:47:02 -05:00
Riley McArdle
61a76908ea Moved SQL Server configuration to its own tab in the Options dialog. 2011-06-01 12:45:02 -05:00
Riley McArdle
b729cab9c9 Changed Options dialog to use standard tab control instead of Crownwood tab control. 2011-06-01 12:39:41 -05:00
Riley McArdle
654e3cae1f Refactored UI.Window.Options to frmOptions. 2011-05-31 17:46:14 -05:00
Riley McArdle
bcc681f623 Missing file for previous commit. 2011-05-31 17:28:45 -05:00
Riley McArdle
77716fc058 Fixed showing the updates tab on first startup. 2011-05-31 17:26:49 -05:00
Riley McArdle
103c34853e Changed the Options page into a normal dialog. 2011-05-31 17:12:21 -05:00
Riley McArdle
3ec52987eb Fixed NullReferenceException in App.Runtime. 2011-05-31 16:57:25 -05:00
Riley McArdle
d3130f91d1 Minor code cleanup. 2011-05-31 12:33:56 -05:00
Riley McArdle
aae96c112a Fixed confirm closing connection tabs to also ask when closing a panel. 2011-05-31 12:13:30 -05:00
Riley McArdle
635ae405bd Moved the language override code from frmMain_Load to Config.Settings.Load to make sure that the correct language is applied to everything. 2011-05-31 00:39:40 -05:00
Riley McArdle
66c315f629 Update BUILD.CMD and CHANGELOG.TXT for 1.67 RC3. 2011-05-28 17:20:55 -05:00
Riley McArdle
89c7baf7fa Fixed bug 42 - Maximized location not remembered with multiple monitors. Improved loading and saving of window location. Removed flickering on start up. 2011-05-28 17:10:13 -05:00
Riley McArdle
90eedc689e Fix bug 43 - Creating a duplicate connection causes connection list to no longer be sorted ascending. 2011-05-28 13:27:03 -05:00
Riley McArdle
b262f00491 Added confirmation before closing connection tabs. 2011-05-28 13:10:50 -05:00
Riley McArdle
d0d81e382d Merge branch 'master' of github.com:rmcardle/mRemoteNG 2011-05-28 12:44:08 -05:00
Riley McArdle
5615dc18a6 Fixed inconsistent capitalization of language names. 2011-05-27 16:58:36 -05:00
Riley McArdle
ce08728652 Changed the order of the startup code to ensure that the correct language is shown on the first run after an upgrade. 2011-05-27 16:56:51 -05:00
Riley McArdle
fbc613efe5 Added Holger Henke to CREDITS.TXT for submitting change made in commit 2b1732d061. 2011-05-27 16:38:35 -05:00
Riley McArdle
d3560eb893 Merge from commit a3165ba25a89f6e6b155 by sirrus. New translations and some renamed entries. 2011-05-27 16:36:15 -05:00
Riley McArdle
e53be11383 Merge from commit 410f0173616609caf47c by sirrus. New translations and some renamed entries. 2011-05-27 16:33:28 -05:00
Riley McArdle
17c25d6481 Update BUILD.CMD and CHANGELOG.TXT for 1.67 RC2. 2011-05-25 22:25:54 -05:00
Riley McArdle
e07fbe913f Fixed adding a connection entry if nothing is selected in the tree. 2011-05-25 22:05:20 -05:00
Riley McArdle
c91f406346 Added the mRemoteNG icon to the list of selectable icons for connection entries. 2011-05-25 21:59:44 -05:00
Riley McArdle
46afd47ba0 Improved error handling when loading XML connection files. 2011-05-25 21:57:35 -05:00
Riley McArdle
5f1e9ae0b7 Updated CHANGELOG.TXT. 2011-05-25 21:10:57 -05:00
Riley McArdle
62c9d6f474 Added desktop composition setting for RDP connections. 2011-05-25 21:10:38 -05:00
Riley McArdle
935df3d4fa Added font smoothing setting for RDP connections. 2011-05-25 19:59:03 -05:00
Riley McArdle
ec850f6c15 Added 15-bit color option for RDP. Fixed the description for 32-bit color (8 bits are not used so it's the same number of colors as 24-bit). 2011-05-25 19:06:16 -05:00
Riley McArdle
2b1732d061 Fixed loading of RDP Colors setting from SQL. 2011-05-25 18:33:30 -05:00
Riley McArdle
cec787fd63 Added buttons for Add Connection, Add Folder, and Sort Ascending (A-Z) to the Connections panel toolbar. Fixed rename edit control staying open when collapsing all folders. Changed sorting to sort all subfolders below the selected folder. 2011-05-25 18:18:18 -05:00
Riley McArdle
97e43d9238 Allow sorting of connections if a connection entry is selected. 2011-05-25 18:17:33 -05:00
Riley McArdle
1ec28e0bfd Corrections to the English text. 2011-05-18 10:16:41 -05:00
Riley McArdle
22e9c36365 Replaced a few instances of mRemote with mRemoteNG in German translation. 2011-05-18 10:09:23 -05:00
Riley McArdle
757dd4c8ca Added partial French translation by Lionel Caignec. 2011-05-18 10:01:37 -05:00
Riley McArdle
3de4153c1a Added some missing stuff to CHANGELOG.TXT. 2011-05-17 17:46:39 -05:00
Riley McArdle
cfbdd94ed3 Moved the items under Tools in the Connections panel context menu up to the top level. 2011-05-17 17:22:47 -05:00
Riley McArdle
eab49ef3bd Added a task dialog to ask the user about automatic updates on first run instead of just showing the update options page without any explanation. 2011-05-17 16:58:30 -05:00
Riley McArdle
5027f534e3 Fixed bug 33 - IPv6 doesn't work in quick Connect box. 2011-05-17 15:52:00 -05:00
Riley McArdle
85e1402cc0 Fixed log4net logging and disabled Debug.Print of message IDs in WndProc. 2011-05-17 12:31:25 -05:00
Riley McArdle
f048b2d04d Fixed ignored NullReferenceException in SetHostStatus. 2011-05-17 12:18:48 -05:00
Riley McArdle
19218f20bb Fixed RD Gateway default properties and RDP reconnection count setting not being saved. 2011-05-17 11:37:54 -05:00
Riley McArdle
3f2ffea1f4 Added a language selection option so users can override the language if they don't want it automatically detected. 2011-05-17 03:27:39 -05:00
Riley McArdle
6fa8923f90 Add support for build number and revision to version numbers. 2011-05-13 00:55:22 -05:00
Riley McArdle
9a63b8c316 Updated installer logos to mRemoteNG. Added install and uninstall icons from the Visual Studio 2008 image library. 2011-05-12 22:40:25 -05:00
Riley McArdle
d3311497f2 Added configuration file migration fix to CHANGELOG.TXT. 2011-05-12 21:38:10 -05:00
Riley McArdle
79bdc4f734 Bug Fix: Disable ICA Hotkeys for Citrix connections. Fixes issue with international users. 2011-05-12 21:21:35 -05:00
Riley McArdle
b5b9388d58 Reorganized languages.nsi so everything for each language is in the same place. Added native language names. Sorted alphabetically by native name. 2011-05-12 20:47:31 -05:00
Riley McArdle
d168516859 Added Thai installer translation. Compiling the installer now requires NSIS Unicode (unsis). 2011-05-12 20:36:23 -05:00
Riley McArdle
c219d34fa3 Revert Ctrl+Tab and Ctrl+Shift+Tab related commits. 2011-05-12 20:17:23 -05:00
Riley McArdle
99f3638fbf Do not migrate files from Local to Roaming folder in portable version. 2011-05-12 19:15:59 -05:00
Riley McArdle
944906a594 Safely migrate panel layout file from Local to Roaming folder. 2011-05-12 17:50:45 -05:00
Riley McArdle
4f9e6ebbd4 Safely migrate external tools configuration file from Local to Roaming folder. 2011-05-12 17:45:35 -05:00
Riley McArdle
fae284ca86 Safer migration of connections file from Local to Roaming folder. 2011-05-12 17:31:55 -05:00
Riley McArdle
4a1ac9eded Revert "Autmatically move to Roaming profile"
This reverts commit 3592fbc418.
2011-05-12 17:17:26 -05:00
Riley McArdle
58757ff85f Updated version number to 1.66 for release. 2011-05-02 14:48:07 -05:00
Riley McArdle
31b9b21f61 Fixed connection tabs not opening. 2011-05-02 14:41:27 -05:00
Riley McArdle
49273a95bc Updated version number to 1.65. Updated LegalCopyright date in installer. Updated CHANGELOG.TXT. 2011-05-02 11:40:57 -05:00
Riley McArdle
50489ddcf1 Changed the installer to quit if the user is not an Administrator or Power User. 2011-05-02 11:37:44 -05:00
Riley McArdle
e0a46b7882 Disabled Ctrl-Tab and Ctrl-Shift-Tab hotkeys. 2011-05-02 11:36:55 -05:00
Riley McArdle
b7eac745fa Merge remote branch 'remotes/sirrus/master' 2011-05-02 11:09:11 -05:00
Andreas Rehm
9cff221acb Some more Fixes for NSIS Installer.
Signed-off-by: Andreas Rehm <rehm@itsolution2.de>
2011-04-30 20:45:41 +02:00
Andreas Rehm
3592fbc418 Autmatically move to Roaming profile 2011-04-30 19:33:45 +02:00
Andreas Rehm
605cb4048b Fixed issue 38 - config should be stored in Roaming AppData.
Fixed two settings - should be user settings.
2011-04-30 18:55:18 +02:00
Andreas Rehm
9cb33c4fde Fixed Instlaller - Links for all users. 2011-04-30 18:43:17 +02:00
Riley McArdle
1cbcffdd34 Merge commit '19f2d6c6aa608c7ffa9dc813c3798fd7835d83e3' and reworded CHANGELOG.TXT 2011-04-27 12:28:34 -05:00
thrilleratplay
19f2d6c6aa *Clipboard call not passing WINPROC message when VNC connection existed. Changed order of raise event and resending WM_DRAWCLIPBOARD.
*Updated Changelog
2011-04-27 02:41:50 -04:00
Riley McArdle
e0b8d8fc9d Fixed missing text in en-US locale. Hid unfinished toolbar. 2011-04-25 10:54:58 -05:00
Riley McArdle
ee3f0bfa3a Fixed build configuration for portable release. 2011-04-25 00:14:46 -05:00
Riley McArdle
e54097cea6 Updated copyright date. 2011-04-25 00:00:59 -05:00
Riley McArdle
0db6ea0c46 Merge commit '55968e5e8530b9bbcf613c51dd25f2f80e9db99a' 2011-04-24 23:42:37 -05:00
thrilleratplay
55968e5e85 Bug Fix: Additional Keypress correction for VNCSharpNG
Bug Fix: Added proper hook to update clipboard for VNC connections
Feature Request: CTRL-Shift-Tab changes to previous connection tab
2011-04-06 14:08:12 -04:00
Andreas Rehm
83b7f111b2 Edited changelog.txt 2011-04-02 00:42:17 +02:00
Andreas Rehm
af8b6c9f07 Merge remote branch 'RileyMcArdle/master'
Conflicts:
	BUILD.CMD
	mRemoteV1/App/App.Runtime.vb
	mRemoteV1/CHANGELOG.TXT
	mRemoteV1/Connection/Connection.Protocol.VNC.vb
	mRemoteV1/Forms/frmMain.vb
	mRemoteV1/UI/UI.Window.Connection.vb
2011-04-02 00:30:09 +02:00
Riley McArdle
48ec5cdb01 Fixed encoding and added dates to CHANGELOG.TXT. 2011-03-31 20:51:40 -05:00
Riley McArdle
7923991fbf Added Tom Hiller and Andreas Rehm to CREDITS.TXT. Contributors are listed in alphabetical order. 2011-03-31 20:24:47 -05:00
Riley McArdle
e11b25f22b Revert changes to mRemoteV1/mRemoteV1.vbproj from commit 2eb2dc56bd. 2011-03-31 20:04:43 -05:00
Andreas Rehm
e1274cb69a Bugfix Weifen Luo should not show up with crownwood link 2011-03-31 19:45:58 -05:00
Andreas Rehm
6ea439e08b Weifen Luo should be mentioned on the about page
Default Panel is now translated and no longer set in app.config
2011-03-31 19:45:57 -05:00
Andreas Rehm
e06d914d0a Allow pre and post extApp for integrated Apps 2011-03-31 19:45:57 -05:00
Andreas Rehm
1a1e2452f3 Code optimization and bugfix #22 2011-03-31 19:45:57 -05:00
Andreas Rehm
611d352103 Debug infos only for Debug Config 2011-03-31 19:45:57 -05:00
Andreas Rehm
bfe68ad3eb Enabled and fixed Tab and Shift-Tab key combination in PropertyGrid 2011-03-31 19:45:57 -05:00
Andreas Rehm
6f1446fec7 Tab and Shift-Tab to cycle through property grid entries 2011-03-31 19:45:57 -05:00
Andreas Rehm
3c449f9f3d Bugfix: RDP protocol string missing 2011-03-31 19:45:56 -05:00
Andreas Rehm
25ef36d8a3 Update WeifenLuo WinFormsUI Docking library to version 2.5 RC1 2011-03-31 19:45:56 -05:00
Andreas Rehm
101ec68f76 Some fixes on german resources and notes. 2011-03-31 19:45:56 -05:00
Riley McArdle
a798785083 Merge remote branch 'remotes/thrilleratplay/master' 2011-03-31 17:33:28 -05:00
Riley McArdle
07ea389464 Added VNC clipboard fix from thrilleratplay commit 2eb2dc56bd. 2011-03-31 17:23:13 -05:00
Riley McArdle
6509de486e Fix incomplete merge of BUILD.CMD. 2011-03-31 17:12:52 -05:00
thrilleratplay
2f60379f3c Feature Request:
*Added class to create,catch and destroy system hot keys
*Added event handle for hot key CTRL-TAB to change advance to the next tab for the visible panel if mRemoteNG, internal instance of Putty or internal instance of an external application is active.  On last tab, the hot key will set focus to the first tab in the panel

Signed-off-by: thrilleratplay <thilleratplay@gmail.com>
2011-03-25 02:39:29 -04:00
thrilleratplay
5edbe78672 Bug Fix:
*VNC client missing delegate to populate remote clipboard
*Updating version of VncSharpNG.dll with corrected modifier key handling.  Corrects Windows style Copy\Cut\Paste

Signed-off-by: thrilleratplay <thilleratplay@gmail.com>
2011-03-19 14:50:29 -04:00
Andreas Rehm
94aa5357ed Bugfix Weifen Luo should not show up with crownwood link 2011-02-20 14:40:04 +01:00
Andreas Rehm
0477af479d Weifen Luo should be mentioned on the about page
Default Panel is now translated and no longer set in app.config
2011-02-20 14:28:40 +01:00
Andreas Rehm
2f296d691c Allow pre and post extApp for integrated Apps 2011-02-20 12:50:18 +01:00
Andreas Rehm
5b0ba26ecd Code optimization and bugfix #22 2011-02-20 12:19:05 +01:00
thrilleratplay
844b2e9575 Merge branch 'master' of github.com:Thrilleratplay/mRemoteNG 2011-02-19 13:03:50 -05:00
Andreas Rehm
69b4633e9e Debug infos only for Debug Config 2011-02-19 18:17:40 +01:00
Andreas Rehm
00f14684bb Enabled and fixed Tab and Shift-Tab key combination in PropertyGrid 2011-02-19 18:10:10 +01:00
Riley McArdle
2eb2dc56bd Fixed build script to properly create ZIP files. Added progress messages to build script.
Signed-off-by: thrilleratplay <thilleratplay@gmail.com>
2011-02-19 01:32:38 -05:00
Andreas Rehm
661c930d51 Tab and Shift-Tab to cycle through property grid entries 2011-02-19 00:53:30 +01:00
Andreas Rehm
9cf6086518 Bugfix build script merge 2011-02-18 00:09:09 +01:00
Andreas Rehm
7353852429 Bugfix: RDP protocol string missing 2011-02-17 23:43:30 +01:00
Andreas Rehm
2a112d1cc3 Update WeifenLuo WinFormsUI Docking library to version 2.5 RC1 2011-02-17 23:43:30 +01:00
Andreas Rehm
526412b40d Some fixes on german resources and notes. 2011-02-17 23:43:29 +01:00
Riley McArdle
3def5f2a37 Fixed build script to properly create ZIP files. Added progress messages to build script. 2011-01-22 08:13:58 +08:00
Riley McArdle
43d6a64576 Fixed build script to properly create ZIP files. Added progress messages to build script. 2010-12-02 14:36:54 -06:00
Andreas Rehm
f24b1b5cec Added RDP Reconnection Count Setting and fixed TabIndexes of Connection options page 2010-08-01 01:12:44 +08:00
Andreas Rehm
e7abe6b4cf Bufix Gecko Translation 2010-08-01 01:12:44 +08:00
Andreas Rehm
18be51ec88 Translation of PuTTY Settings 2010-08-01 01:12:44 +08:00
Andreas Rehm
32ae93b760 Bugfix - Inheritance for InheritRDGatewayUseConnectionCredentials was not loaded with conf.Load 2010-08-01 01:12:44 +08:00
Andreas Rehm
9520fbf019 Removed some strings for inheritance - rewritten to use string.format 2010-08-01 01:12:43 +08:00
Andreas Rehm
7d2a4f05f1 Rewrite of new configuration creation to vb code
* Translation of Connections and New Connections
2010-08-01 01:12:43 +08:00
Andreas Rehm
4ec984d22e Bugfixes in rdgateway inheritance, new translations, rewrite of inheritance / exclusion
* some more translations
* rdgateway inheritance implemented and fixed
* inheritance / exclusion of properties rewritten to use a list instead of string to array
  * this fixes some bugs that occured due to missing semicolons
2010-08-01 01:12:43 +08:00
Andreas Rehm
0eedd9f6ae Reorganized installer script
All language based settings reside inside of Installer\Language folder and will be included by Installer\Language\languages.nsi
2010-08-01 01:12:42 +08:00
Andreas Rehm
93f77e33c2 Prepared installer translations 2010-08-01 01:12:41 +08:00
Andreas Rehm
ea203ed539 Changed some spelling errors, modified some translations 2010-08-01 01:12:41 +08:00
Andreas Rehm
6d5d6f0247 Translation of quick connect added / and used consequently 2010-08-01 01:12:41 +08:00
Andreas Rehm
57c0236c66 More translations in App.Runtime, changed logfile syntax 2010-08-01 01:12:40 +08:00
Andreas Rehm
e1623a8157 NSIS script translations 2010-08-01 01:12:40 +08:00
Andreas Rehm
f06c4f7e6b Removed scary CultureInfo switching and added a quickfix for mRemoteNG namespace refactoring
ConfVersion was converted to an en-US numberformat by switching the CurrentCulture - this is not the best practice - replaced by ToString(new CultureInfo("en-US").

The refactoring done in commit e08c88db5f resulted in an unusable pnlLayout.xml (panel persistence) file. Added a quickfix to convert that file.
2010-08-01 01:12:40 +08:00
Andreas Rehm
be3c8de3a2 Removed hardcoded switch to de-DE 2010-08-01 01:12:37 +08:00
Andreas Rehm
f8fb72f455 Fixed en-US resx Fallback to en-GB (default) 2010-08-01 01:12:37 +08:00
Andreas Rehm
1700f1a940 And even more translations 2010-08-01 01:12:37 +08:00
Andreas Rehm
b32617b114 More translations for Connections.Protocol.RDP.vb 2010-08-01 01:12:36 +08:00
Andreas Rehm
7a25e3cc2e Refactoring and even more translations
* removed unneeded Imports
* renamed namespace to mRemoteNG
* changed Logfile path to %USERPROFILE%\AppData\Local\mRemoteNG\mRemoteNG.log
* fixed mRemoteNG.exe.config
* added more ignores to .gitignore
2010-08-01 01:12:36 +08:00
Andreas Rehm
29b1b90ae6 Even more localization
Changed button size in options/update check
2010-08-01 01:12:31 +08:00
Andreas Rehm
9852293d98 More localization
* translated/moved more strings to resx
* resized Port Scan TextFields
2010-08-01 01:12:30 +08:00
Andreas Rehm
49c758a8a6 Language fixes
* fixed all enum translations
* replaced hardcoded strings with resx Resources
2010-08-01 01:12:30 +08:00
Andreas Rehm
89fee5b579 Added still missing translations
Modified NSIS Installer and BUILD Script Versions to 1.64
2010-08-01 01:12:29 +08:00
Andreas Rehm
ccebf41645 Changed/Fixed language based data
* Fixed some german grammer mistakes
* Changed some weird translations
* moved all language strings to resx files
* added missing translations
* removed old language classes
2010-08-01 01:12:29 +08:00
Andreas Rehm
4d1003cfec Added RDP Reconnection Count Setting and fixed TabIndexes of Connection options page 2010-06-22 12:58:11 +02:00
Andreas Rehm
bd6c07e9d0 Bufix Gecko Translation 2010-06-22 01:22:24 +02:00
Andreas Rehm
45b8e5c10f Translation of PuTTY Settings 2010-05-28 19:36:45 +02:00
Andreas Rehm
176bc52f62 Bugfix - Inheritance for InheritRDGatewayUseConnectionCredentials was not loaded with conf.Load 2010-05-25 22:01:59 +02:00
Andreas Rehm
98293c99aa Removed some strings for inheritance - rewritten to use string.format 2010-05-25 20:01:16 +02:00
Andreas Rehm
9878acff9a Rewrite of new configuration creation to vb code
* Translation of Connections and New Connections
2010-05-25 18:56:49 +02:00
Andreas Rehm
e874292016 Bugfixes in rdgateway inheritance, new translations, rewrite of inheritance / exclusion
* some more translations
* rdgateway inheritance implemented and fixed
* inheritance / exclusion of properties rewritten to use a list instead of string to array
  * this fixes some bugs that occured due to missing semicolons
2010-05-25 18:21:48 +02:00
Andreas Rehm
280c6678cb Reorganized installer script
All language based settings reside inside of Installer\Language folder and will be included by Installer\Language\languages.nsi
2010-05-20 19:23:58 +02:00
Andreas Rehm
dc7460cbaa Prepared installer translations 2010-05-20 19:18:25 +02:00
Andreas Rehm
4bd4a604e7 Changed some spelling errors, modified some translations 2010-05-20 16:04:32 +02:00
Andreas Rehm
16e2c927bb Translation of quick connect added / and used consequently 2010-05-20 15:50:09 +02:00
Andreas Rehm
687fe28820 More translations in App.Runtime, changed logfile syntax 2010-05-18 18:15:52 +02:00
Andreas Rehm
ee70bea036 NSIS script translations 2010-05-18 01:12:51 +02:00
Andreas Rehm
c917193575 Removed scary CultureInfo switching and added a quickfix for mRemoteNG namespace refactoring
ConfVersion was converted to an en-US numberformat by switching the CurrentCulture - this is not the best practice - replaced by ToString(new CultureInfo("en-US").

The refactoring done in commit e08c88db5f resulted in an unusable pnlLayout.xml (panel persistence) file. Added a quickfix to convert that file.
2010-05-18 00:13:38 +02:00
Andreas Rehm
b1d40f2c74 Removed hardcoded switch to de-DE 2010-05-17 19:11:17 +02:00
Andreas Rehm
a255d24867 Fixed en-US resx Fallback to en-GB (default) 2010-05-17 19:10:25 +02:00
Andreas Rehm
5e726472bc And even more translations 2010-05-17 18:55:05 +02:00
Andreas Rehm
6ab8bb4a58 More translations for Connections.Protocol.RDP.vb 2010-05-17 17:31:12 +02:00
Andreas Rehm
e08c88db5f Refactoring and even more translations
* removed unneeded Imports
* renamed namespace to mRemoteNG
* changed Logfile path to %USERPROFILE%\AppData\Local\mRemoteNG\mRemoteNG.log
* fixed mRemoteNG.exe.config
* added more ignores to .gitignore
2010-05-16 19:30:27 +02:00
Andreas Rehm
96e6752af3 Even more localization
Changed button size in options/update check
2010-05-16 05:45:20 +02:00
Andreas Rehm
e71bf93052 More localization
* translated/moved more strings to resx
* resized Port Scan TextFields
2010-05-16 05:07:06 +02:00
Andreas Rehm
8232f10e14 Language fixes
* fixed all enum translations
* replaced hardcoded strings with resx Resources
2010-05-14 16:43:30 +02:00
Andreas Rehm
cb13433102 Added still missing translations
Modified NSIS Installer and BUILD Script Versions to 1.64
2010-05-14 16:01:24 +02:00
Andreas Rehm
3ead76ab77 Changed/Fixed language based data
* Fixed some german grammer mistakes
* Changed some weird translations
* moved all language strings to resx files
* added missing translations
* removed old language classes
2010-05-14 04:41:33 +02:00
Riley McArdle
ecf3ecbcf0 More localization work. 2010-03-16 17:28:53 -05:00
Riley McArdle
26afcaeef2 Added LocalizedCategory attribute. More localization. 2010-02-20 21:15:25 -06:00
Riley McArdle
0c1d69946d Derived attributes for DisplayName and Description to enable localization of property grids. 2010-02-20 19:52:08 -06:00
Riley McArdle
5e584cf4c7 More localization. 2010-02-20 18:54:03 -06:00
Riley McArdle
6301fcc320 More localization improvements. 2010-02-20 13:49:09 -06:00
Riley McArdle
a1fc6c0a0d Moved additional localization strings to satellite assemblies. 2010-02-18 00:06:17 -06:00
Riley McArdle
98460eea2b Started work on moving localization to satellite assemblies. 2010-02-11 21:17:44 -06:00
Riley McArdle
de0142dd37 Started working on UI improvements. 2010-02-11 18:26:29 -06:00
171 changed files with 51397 additions and 9736 deletions

26
.gitignore vendored
View File

@@ -1,10 +1,26 @@
Release
mRemoteV1/bin
mRemoteV1/obj
mRemoteV1/publish
Release/
mRemoteV1/bin/
mRemoteV1/obj/
mRemoteV1/publish/
*.pfx
*.suo
*.vbproj.user
Thumbs.db
_ReSharper.*
[Dd]ebug/
_Re[Ss]harper.*
*.resharper
*.resharper.user
*.suo
*.cache
*~
*.swp
*.user*
*.pidb
*.gpState
_UpgradeReport_Files/
Backup/
UpgradeLog.XML
*.orig
*.sdf
*.opensdf
*.ipch

153
BUILD.CMD
View File

@@ -1,32 +1,149 @@
@echo off
SET VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
SET DEVENV="devenv.exe"
SET MAKENSIS="%ProgramFiles(x86)%\NSIS\makensis.exe"
SET RAR="%ProgramFiles%\WinRAR\Rar.exe"
SET BINARYZIP="%~dp0\Release\mRemoteNG-1.63.zip"
SET PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-1.63.zip"
setlocal enabledelayedexpansion
set VERSIONTAG=
set VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
set DEVENV="devenv.exe"
set MAKENSIS="%ProgramFiles(x86)%\NSIS\Unicode\makensis.exe"
set RAR="%ProgramFiles%\WinRAR\WinRAR.exe"
set SIGNCMD=signtool.exe sign /n "Astrospark Technologies, LLC" /sha1 "1cbd910dbd6e77f26506e7f600736972f700673f" /tr http://timestamp.comodoca.com/rfc3161
rem Windows Sysinternals Sigcheck from http://technet.microsoft.com/en-us/sysinternals/bb897441
set SIGCHECK="%ProgramFiles(x86)%\Sigcheck\sigcheck.exe"
call %VCVARSALL% x86
rmdir /s /q "%~dp0\mRemoteV1\bin"
rmdir /s /q "%~dp0\mRemoteV1\obj"
rmdir /s /q "%~dp0\mRemoteV1\bin" > nul 2>&1
rmdir /s /q "%~dp0\mRemoteV1\obj" > nul 2>&1
if exist "%~dp0\mRemoteV1\bin" goto ERROR_RMDIR
if exist "%~dp0\mRemoteV1\obj" goto ERROR_RMDIR
goto NOERROR_RMDIR
:ERROR_RMDIR
echo.
echo Could not clean output directories.
echo.
echo Build process failed.
echo.
goto END
:NOERROR_RMDIR
echo Building release version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release"
echo Building portable version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release Portable"
mkdir "%~dp0\Release"
echo Signing binaries...
%SIGNCMD% ^
"%~dp0\mRemoteV1\bin\Release\de\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\el\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\en-US\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\es\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\es-AR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\fr\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\hu\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\it\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\nb-NO\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\nl\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\pl\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\pt\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\pt-BR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\ru\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\uk\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\zh-CN\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\zh-TW\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release\AxInterop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release\AxInterop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release\Interop.EOLWTSCOM.dll" ^
"%~dp0\mRemoteV1\bin\Release\Interop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release\Interop.ShDocVw.dll" ^
"%~dp0\mRemoteV1\bin\Release\Interop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release\mRemoteNG.exe" ^
"%~dp0\mRemoteV1\bin\Release Portable\de\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\el\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\en-US\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\es\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\es-AR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\fr\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\hu\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\it\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\nb-NO\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\nl\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\pl\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\pt\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\pt-BR\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\ru\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\uk\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\zh-CN\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\zh-TW\mRemoteNG.resources.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\AxInterop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\AxInterop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\Interop.EOLWTSCOM.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\Interop.MSTSCLib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\Interop.ShDocVw.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\Interop.WFICALib.dll" ^
"%~dp0\mRemoteV1\bin\Release Portable\mRemoteNG.exe" ^
%MAKENSIS% "%~dp0\Installer\mRemote.nsi"
del /f /q %BINARYZIP%
rem Do not remove the two blank lines above this line.
%RAR% a -m5 -r -ep1 %BINARYZIP% "%~dp0\mRemoteV1\bin\Release\*.*"
%RAR% a -m5 -r -ep1 %BINARYZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep %BINARYZIP% "%~dp0\*.TXT"
mkdir "%~dp0\Release" > nul 2>&1
del /f /q %PORTABLEZIP%
echo Getting product version...
set VERSIONNSH="%~dp0\Release\Version.nsh"
set SIGCHECK=!SIGCHECK:"=^"!
set SIGCHECK=!SIGCHECK: =^^ !
set SIGCHECK=!SIGCHECK:(=^^(!
set SIGCHECK=!SIGCHECK:)=^^)!
for /F "usebackq delims=. tokens=1-4" %%i in (`!SIGCHECK! /accepteula -q -n "%~dp0\mRemoteV1\bin\Release\mRemoteNG.exe"`) do (
set PRODUCT_VERSION_SHORT=%%i.%%j
echo ^^!define PRODUCT_VERSION "%%i.%%j.%%k.%%l" > %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_SHORT "%%i.%%j" >> %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_MAJOR "%%i" >> %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_MINOR "%%j" >> %VERSIONNSH%
)
echo Version is %PRODUCT_VERSION_SHORT%
%RAR% a -m5 -r -ep1 %PORTABLEZIP% "%~dp0\mRemoteV1\bin\Release Portable\*.*"
%RAR% a -m5 -r -ep1 %PORTABLEZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep %PORTABLEZIP% "%~dp0\*.TXT"
echo Creating installer package...
if defined VERSIONTAG (
%MAKENSIS% /DPRODUCT_VERSION_TAG=%VERSIONTAG% "%~dp0\Installer\mRemote.nsi"
set INSTALLEREXE="%~dp0\Release\mRemoteNG-Installer-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.exe"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
) else (
%MAKENSIS% "%~dp0\Installer\mRemote.nsi"
set INSTALLEREXE="%~dp0\Release\mRemoteNG-Installer-%PRODUCT_VERSION_SHORT%.exe"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%.zip"
)
del %VERSIONNSH%
echo Signing installer package...
%SIGNCMD% %INSTALLEREXE%
echo Creating release ZIP file...
del /f /q %BINARYZIP% > nul 2>&1
%RAR% a -m5 -r -ep1 -afzip -inul %BINARYZIP% "%~dp0\mRemoteV1\bin\Release\*.*"
%RAR% a -m5 -r -ep1 -afzip -inul %BINARYZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep -afzip -inul %BINARYZIP% "%~dp0\*.TXT"
echo Creating portable ZIP file...
del /f /q %PORTABLEZIP% > nul 2>&1
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\mRemoteV1\bin\Release Portable\*.*"
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep -afzip -inul %PORTABLEZIP% "%~dp0\*.TXT"
echo.
echo Build process complete.
echo.
:END
pause

View File

@@ -1,4 +1,287 @@
1.63:
1.72 (2013-11-13):
Fixed issue MR-592 - Unable to run VBS script as an external tool
Fixed issue MR-596 - Incorrect escaping of quotation marks in external tool arguments
1.71 (2013-10-29):
Fixed issue MR-574 - Crash when retrieving RDP session list if eolwtscom.dll is not registered
Fixed issue MR-578 - Connections file is reset
Fixed log file not showing operating system version on Windows XP and Windows Server 2003.
Fixed the wrong connections file opening on startup under certain conditions.
Fixed checking for updates even when disabled.
Improved error reporting when loading connections files.
Removed warning message when mRemoteNG is started for the first time about new connections file being created.
1.71 Release Candidate 2 (2013-10-16):
Fixed issue MR-560 - Cannot Auto-Update With Open Connections: Unable to find an entry point named 'TaskDialogIndirect' in DLL 'ComCtl32'
Fixed issue MR-565 - Double Folder keep heritage on the initial Folder
Fixed issue MR-566 - Typo in German UI Automatic Update Settings
Fixed duplicated folders possibly being named "New Connection" instead of the original folder's name.
1.71 Release Candidate 1 (2013-10-01):
Fixed issue MR-495 - Having a negative range in port scan creates memory exhaustion.
Fixed issue MR-514 - Window Proxy test failed without close button
Fixed issue MR-521 - Right-Clicking in "Sessions" panel crashes mRemoteNG
Fixed issue MR-525 - Could not start on windows 7 64bit
Fixed issue MR-535 - SQL error saving Connections
Fixed issue MR-538 - RDP loses connection when hiding config or connections pane
Fixed issue MR-542 - Wrapped putty has security flaw
Made minor improvements to the port scan functionality.
Fixed possible cross-thread operation exception when loading connections from SQL.
Fixed PuTTY Saved Sessions not showing after loading a new connections file.
Updated PuTTY to version 0.63.
Updated translations.
Added Chinese (Traditional) translation.
Added partial Greek and Hungarian translations.
1.71 Beta 5 (2013-06-09):
Fixed issue MR-491 - Could not start RDP Connection
Fixed issue MR-499 - TS Gateway is not working in latest release 1.71
Fixed typo in SQL queries.
1.71 Beta 4 (2013-05-28):
Added feature MR-435 - Add digital signature check to updater
Fixed issue MR-255 - The version of the RDP AX client should be updated to 7
Fixed issue MR-392 - Sessions Panel - context menu entries need to be context aware
Fixed issue MR-422 - Gives error Object reference not set to an instance of an object.
Fixed issue MR-424 - Import of a few Linux SSH2 hosts discovered via the port scan tool results in a UE
Fixed issue MR-439 - MRemoteNG 1.70 does not start
Fixed issue MR-440 - RDP import with non-standard port
Fixed issue MR-443 - Instructions for eolwtscom.dll registration for Portable version are inaccurate
Fixed issue MR-446 - Putty saved sessions show in connection panel
Fixed issue MR-459 - Maximized -> Minimized -> Restored results in mangled active display
Fixed issue MR-463 - Add support for LoadBalanceInfo to RDP
Fixed issue MR-470 - Quick Connect to Linux server uses invalid credentials
Fixed issue MR-471 - PuTTY Saved Sessions disappears from connection list
Fixed issue MR-487 - Initiate connections on MouseUp event
Added PuTTY Session Settings command to the Config panel for PuTTY Saved Sessions.
Updated translations.
Added Norwegian (Bokmal) and Portuguese (Brazil) translations.
Added Spanish translation to the installer.
Fixed an exception or crash when choosing unnamed colors for themes.
Fixed possible error "Control does not support transparent background colors" when modifying themes.
Fixed changes to the active theme not being saved reliably.
Fixed handling of the plus (+) character in PuTTY session names.
Changed Internet Explorer to no longer force IE7 compatibility mode.
Changed the "Launch PuTTY" button in the "Options" dialog to open PuTTY from the path the user has currently set, instead of what was previously saved.
Improved update and announcement checking.
Improved the PuTTY Saved Sessions list to update automatically when any changes are made.
Improved loading time of large connection files.
Lowered required version of RDC from 6.1 to 6.0.
Updated VncSharpNG to 1.3.4896.25007.
1.71 Beta 3 (2013-03-20):
Fixed issue MR-397 - Putty disappears from the screen
Fixed issue MR-398 - Full Screen mode doesn't correctly make use of available space
Fixed issue MR-402 - scrollbar touch moves putty window
Fixed issue MR-406 - Items disappear from External Tools toolbar when accessing External Tools panel
Fixed issue MR-410 - Unhandled exception when clicking New button under Theme
Fixed issue MR-413 - Can't use aplication
Fixed new connections having a globe icon.
Fixed the category names in the themes tab of the options dialog on Windows XP not showing correctly.
Fixed PuTTY saved sessions with spaces or special characters not being listed.
1.71 Beta 2 (2013-03-19):
Added feature MR-336 - Customizable background color for the windows/panels
Added feature MR-345 - Two separate options for confirming closure of Tabs and Connection Panels
Added feature MR-346 - Option to show/hide the description box at the bottom of the Config panel
Added feature MR-351 - Import connections from PuTTY
Fixed issue MR-354 - Re-ordering tabs doesn't give good, reliable visual feedback
Fixed issue MR-375 - Changing a connection's icon using the picture button should immediately update Icon field
Fixed issue MR-377 - Several redundant panels can be opened
Fixed issue MR-379 - Connection variables not working with external tools
Fixed issue MR-381 - Notifications panel - whitespace context menu allows Copy and Delete on nothing
Fixed issue MR-401 - Checkbox misaligned
The username and domain settings are now hidden for VNC connections since they are not supported.
Changed "Automatically get session information" to be disabled by default.
RDP connections can now be switched to full screen mode when redirect key combinations is enabled.
1.71 Beta 1 (2013-03-04):
Added feature MR-329 - Create Option to disable the "Quick: " prefix
Fixed issue MR-67 - Sort does not recursively sort
Fixed issue MR-117 - Remote Session Info Window / Tab does not populate
Fixed issue MR-121 - Config pane not sorting properties correctly when switching between alphabetical and categorized view
Fixed issue MR-130 - Issues duplicating folders
Fixed issue MR-142 - Start of mRemoteNG takes about one minute and consumes excessive CPU
Fixed issue MR-158 - Password field not accepting Pipe
Fixed issue MR-330 - Portable version saves log to user's profile folder
Fixed issue MR-333 - Unnecessary prompt for 'close all open connections?'
Fixed issue MR-342 - Incorrect view in config pane of new connection after viewing default inheritance
Fixed issue MR-352 - Passwords with " (quotation mark) and # (hash key) characters make mRemoteNG to open PuttyNG dialog
Fixed issue MR-362 - Rename 'Screenshot Manager' to 'Screenshots' on the View menu to match Panel name
Added detection of newer versions of connection files and database schemata. mRemoteNG will now refuse to open them to avoid data loss.
Improved appearance and discoverability of the connection search box.
If RDC 7.0 or higher is installed, the connection bar is no longer briefly shown when connecting to an RDP connection with redirect key combinations enabled.
If RDC 8.0 or higher is installed, RDP connections automatically adjust their size when the window is resized or when toggling full screen mode.
1.70 (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 #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.
Fixed Use only Notifications panel checkbox.
Updated PuTTY to version 0.61
Binaries are now digitally signed
Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable.
1.68 (2011-07-07):
Fixed issue #48 - VerifyDatabaseVersion fails with new (empty) database tables.
Fixed issue #60 - Can't save connections file
Fixed issue #62 - Connection file error upon launch.
1.67 (2011-06-05):
Fixed migration of external tools configuration and panel layout from Local to Roaming folder.
Disable ICA Hotkeys for Citrix connections. Fixes issue with international users.
Added a language selection option so users can override the language if they don't want it automatically detected.
Added partial French translation to the application.
Addded Thai translation to the installer.
Updated graphics in the installer to mRemoteNG logo.
Fixed RD Gateway default properties and RDP reconnection count setting not being saved.
Fixed bug 33 - IPv6 doesn't work in quick Connect box.
Moved the items under Tools in the Connections panel context menu up to the top level.
Added buttons for Add Connection, Add Folder, and Sort Ascending (A-Z) to the Connections panel toolbar.
Fixed rename edit control staying open when collapsing all folders.
Changed sorting to sort all subfolders below the selected folder.
Allow sorting of connections if a connection entry is selected.
Fixed adding a connection entry if nothing is selected in the tree.
Added 15-bit Color RDP setting.
Fixed loading of RDP Colors setting from SQL.
Added Font Smoothing and Desktop Composition RDP settings.
Improved error handling when loading XML connection files.
Added the mRemoteNG icon to the list of selectable icons for connection entries.
Added confirmation before closing connection tabs.
Fixed bug 42 - Maximized location not remembered with multiple monitors.
Improved loading and saving of window location.
Removed flickering on start up.
Changed the Options page into a normal dialog.
Improved Reset Layout function.
Changed to use full four part version numbers with major, minor, build, and revision.
Changed hard coded SQL database name into a user configurable setting.
Fixed tab order of controls in Options dialog.
Fixed bug 45 - Changing some settings in the config file may not save.
1.66 (2011-05-02):
Fixed connections not working
1.65 (2011-05-02):
Fixed Ctrl-Tab and Ctrl-Shift-Tab not working in any other applications while mRemoteNG is running
Ctrl-Tab and Ctrl-Shift-Tab no longer work to switch tabs within mRemoteNG
Fixed bug 36 - Install creates shortcuts only for the installing user
Fixed bug 38 - Application uses the wrong Application Data settings folder (in Local Settings)
Added code to the installer to check that the user is in the 'Power Users' or 'Administrators' group
1.64 (2011-04-27):
Fixed bug 6 - VNC CTRL+key & keyboard combo mappings are broken
Fixed bug 12 - Tab switch is not working in config panel
Fixed bug 14 - RDP Connection authentication problem
Fixed bug 22 - External App parameter macro expansion doesn't work with "try to integrate"
Fixed bug 25 - Unhandled exception when mRemoteNG opens
Added multilanguage support and German translation to the application
Added Czech, Dutch, French, German, Polish, and Spanish translations to the installer
Added Ctrl-Tab hotkey to switch to the next tab and Ctrl-Shift-Tab to switch to the previous tab
Added Tab key to cycle through entries in the Config grid and Shift-Tab to cycle in reverse
Added ability to configure external tools to run before or after a connection is established
Fixed missing parameters in macro expansion for external tools
Fixed RD Gateway and other inheritance bugs
Changed how new connection files are created
Changed the internal namespace of the application to mRemoteNG instead of mRemote
Added credit for the DockPanel Suite to the About page
Updated DockPanel Suite to version 2.5 RC1
Updated VNCSharpNG to correct Ctrl and Alt key pass-through behavior
1.63 (2010-02-02):
New icon and logo
Fixed problems moving or resizing the main window while PuTTY (SSH/telnet/rlogin/raw) connections are open
Fixed PuTTY processes not closing on Vista and 7 with UAC enabled
@@ -13,7 +296,7 @@
Popups can now be allowed in Internet Explorer by holding Ctrl+Alt when clicking a link
Added PuTTY Settings item to tab context menu
1.62:
1.62 (2010-01-19):
Switched to VncSharp, an open source VNC component
VNC is supported again except for the following features:
Windows authentication
@@ -29,11 +312,11 @@
Added RDP, VNC and ICA version numbers to Components Check page
Fixed a bug with the inheritance buttons on the Config panel disappearing after awhile
1.61:
1.61 (2010-01-14):
Removed unlicensed SmartCode Solutions ViewerX VNC Viewer ActiveX
This version of mRemoteNG does not support VNC
1.60:
1.60 (2010-01-09):
Changed name to mRemoteNG
Fixed menu bar not staying docked to left side
Removed snakes game Easter egg
@@ -502,7 +785,7 @@ V0.0.3.2:
V0.0.3.0:
Added Options Tab
Load connections file from different location
Save/Dont Save connections file on exit
Save/Don't Save connections file on exit
Show current tab name in window title
Added drag and drop functionality to the connections tree
Added feature to hide top bar
@@ -512,7 +795,7 @@ V0.0.3.0:
V0.0.2.7:
Added feature to save connection settings to all connections in the selected container
Icon choosing bug fixed
Taskbar button had no text when in fullscreen fixed
Taskbar button had no text when in fullscreen - fixed
Fixed bug in Quick Connect GUI
Disabled "Display Wallpaper" and "Display Themes" checkboxes as these features are not implemented

View File

@@ -1,11 +1,27 @@
Contributors
============
Jason Barbier
Wiktor Beryt
Lionel Caignec
Felix Deimel
Holger Henke
Tom Hiller
Riley McArdle
Apisitt Rattana
Andreas Rehm
David Vidmar
Translators
===========
Eugenio "Ryo567" Mart<72>nez
Mathieu Pape
Emanuel Silva
Robert Siwiec
Included Source Code
====================
@@ -14,6 +30,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
===================
@@ -74,8 +95,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

@@ -0,0 +1,22 @@
; Czech installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_CZECH} "mRemoteNG run CZECH message"
; Installer Language
LangString InstallerLanguage ${LANG_CZECH} "Installer Language"
; Select 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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_CZECH} "Credits"
LangString CopyingLinkName ${LANG_CZECH} "License"
LangString UninstallLinkName ${LANG_CZECH} "Uninstall"
LangString ChangeLogLinkName ${LANG_CZECH} "Version History"

View File

@@ -0,0 +1,22 @@
; Dutch installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_DUTCH} "mRemoteNG run DUTCH message"
; Installer Language
LangString InstallerLanguage ${LANG_DUTCH} "Installer Language"
; Select 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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_DUTCH} "Credits"
LangString CopyingLinkName ${LANG_DUTCH} "License"
LangString UninstallLinkName ${LANG_DUTCH} "Uninstall"
LangString ChangeLogLinkName ${LANG_DUTCH} "Version History"

View File

@@ -0,0 +1,22 @@
; English installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_ENGLISH} "Launch mRemoteNG Now"
; Installer Language
LangString InstallerLanguage ${LANG_ENGLISH} "Installer Language"
; Select 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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_ENGLISH} "Credits"
LangString CopyingLinkName ${LANG_ENGLISH} "License"
LangString UninstallLinkName ${LANG_ENGLISH} "Uninstall"
LangString ChangeLogLinkName ${LANG_ENGLISH} "Version History"

View File

@@ -0,0 +1,22 @@
; French installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_FRENCH} "mRemoteNG run FRENCH message"
; Installer Language
LangString InstallerLanguage ${LANG_FRENCH} "Installer Language"
; Select 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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_FRENCH} "Credits"
LangString CopyingLinkName ${LANG_FRENCH} "License"
LangString UninstallLinkName ${LANG_FRENCH} "Uninstall"
LangString ChangeLogLinkName ${LANG_FRENCH} "Version History"

View File

@@ -0,0 +1,22 @@
; German installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_GERMAN} "mRemoteNG jetzt Starten"
; Installer Language
LangString InstallerLanguage ${LANG_GERMAN} "Installationsprogamm Sprache"
; Select installer Language
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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_GERMAN} "Credits"
LangString CopyingLinkName ${LANG_GERMAN} "License"
LangString UninstallLinkName ${LANG_GERMAN} "Uninstall"
LangString ChangeLogLinkName ${LANG_GERMAN} "Version History"

View File

@@ -0,0 +1,31 @@
!define LanguageNameEnglish "English"
!insertmacro MUI_LANGUAGE "English"
!include "Language\english.nsi"
!define LanguageNameCzech "Čeština"
!insertmacro MUI_LANGUAGE "Czech"
!include "Language\czech.nsi"
!define LanguageNameGerman "Deutsch"
!insertmacro MUI_LANGUAGE "German"
!include "Language\german.nsi"
!define LanguageNameSpanish "Español"
!insertmacro MUI_LANGUAGE "Spanish"
!include "Language\spanish.nsi"
!define LanguageNameFrench "Français"
!insertmacro MUI_LANGUAGE "French"
!include "Language\french.nsi"
!define LanguageNameDutch "Nederlands"
!insertmacro MUI_LANGUAGE "Dutch"
!include "Language\dutch.nsi"
!define LanguageNamePolish "Polski"
!insertmacro MUI_LANGUAGE "Polish"
!include "Language\polish.nsi"
!define LanguageNameThai "ภาษาไทย"
!insertmacro MUI_LANGUAGE "Thai"
!include "Language\thai.nsi"

View File

@@ -0,0 +1,22 @@
; Polish installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_POLISH} "mRemoteNG run POLISH message"
; Installer Language
LangString InstallerLanguage ${LANG_POLISH} "Installer Language"
; Select 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 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."
; Start Menu items
LangString CreditsLinkName ${LANG_POLISH} "Credits"
LangString CopyingLinkName ${LANG_POLISH} "License"
LangString UninstallLinkName ${LANG_POLISH} "Uninstall"
LangString ChangeLogLinkName ${LANG_POLISH} "Version History"

View File

@@ -0,0 +1,22 @@
; Spanish installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_SPANISH} "Iniciando de mRemoteNG"
; Installer Language
LangString InstallerLanguage ${LANG_SPANISH} "Lenguaje de Instalación"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_SPANISH} "Seleccione el lenguaje de instalación"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_SPANISH} "mRemoteNG requiere Microsoft .NET Framework 3.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_SPANISH} "Debe ser miembro del grupo 'Administradores' para poder instalar mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_SPANISH} "Créditos"
LangString CopyingLinkName ${LANG_SPANISH} "Licencia"
LangString UninstallLinkName ${LANG_SPANISH} "Desinstalar"
LangString ChangeLogLinkName ${LANG_SPANISH} "Historial de Versiones"

View File

@@ -0,0 +1,23 @@
; Thai installer translation
; Contributed by Apisitt Rattana
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_THAI} "ขณะนี้กำลังติดตั้ง mRemoteNG"
; Installer Language
LangString InstallerLanguage ${LANG_THAI} "ภาษาสำหรับการติดตั้ง"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_THAI} "กรุณาเลือกภาษาสำหรับการติดตั้ง"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_THAI} "mRemoteNG มีความต้องการ Microsoft .NET Framework 3.0. เป็นพื้นฐาน"
; User needs to be Admin
LangString RequiresAdminUser ${LANG_THAI} "คุณต้องเป็นสมาชิกในกลุ่มของ 'Power Users' หรือ 'Administrators' เพื่อการติดตั้ง mRemoteNG"
; Start Menu items
LangString CreditsLinkName ${LANG_THAI} "Credits"
LangString CopyingLinkName ${LANG_THAI} "License"
LangString UninstallLinkName ${LANG_THAI} "Uninstall"
LangString ChangeLogLinkName ${LANG_THAI} "Version History"

BIN
Installer/RecycleBin.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
Installer/Setup_Install.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

After

Width:  |  Height:  |  Size: 83 KiB

View File

@@ -2,33 +2,38 @@
!include "WordFunc.nsh"
!insertmacro VersionCompare
!DEFINE PRODUCT_VERSION_MAJOR 1
!DEFINE PRODUCT_VERSION_MINOR 63
!include "DotNetVer.nsh"
!include "..\Release\Version.nsh"
!DEFINE PRODUCT_VERSION "${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}"
!DEFINE PRODUCT_VERSION_LONG "${PRODUCT_VERSION_MAJOR}.${PRODUCT_VERSION_MINOR}.0.0"
; Global Variables
Var InstallDotNET
; This will be passed in using the /D switch by BUILD.CMD
!ifdef PRODUCT_VERSION_TAG
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}-${PRODUCT_VERSION_TAG}"
!else
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}"
!endif
; Basic Config
Name "mRemoteNG ${PRODUCT_VERSION}"
OutFile "..\Release\mRemoteNG-Installer-${PRODUCT_VERSION}.exe"
Name "mRemoteNG ${PRODUCT_VERSION_FRIENDLY}"
OutFile "..\Release\mRemoteNG-Installer-${PRODUCT_VERSION_TAGGED}.exe"
SetCompressor /SOLID lzma
InstallDir "$PROGRAMFILES\mRemoteNG"
InstallDirRegKey HKLM "Software\mRemoteNG" "InstallPath"
RequestExecutionLevel admin
; Version Information
VIProductVersion ${PRODUCT_VERSION_LONG}
!DEFINE LANG_ENGLISH "1033-English"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductName" "mRemoteNG"
VIAddVersionKey /LANG=${LANG_ENGLISH} "ProductVersion" ${PRODUCT_VERSION_LONG}
VIAddVersionKey /LANG=${LANG_ENGLISH} "LegalCopyright" "Copyright <EFBFBD> 2007-2010 Felix Deimel, Riley McArdle"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileDescription" "mRemoteNG ${PRODUCT_VERSION} Installer"
VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" ${PRODUCT_VERSION_LONG}
VIProductVersion ${PRODUCT_VERSION}
VIAddVersionKey "CompanyName" "Next Generation Software"
VIAddVersionKey "ProductName" "mRemoteNG"
VIAddVersionKey "ProductVersion" ${PRODUCT_VERSION}
VIAddVersionKey "LegalCopyright" "Copyright © 2007-2009 Felix Deimel, 2010-2013 Riley McArdle"
VIAddVersionKey "FileDescription" "mRemoteNG ${PRODUCT_VERSION_FRIENDLY} Installer"
VIAddVersionKey "FileVersion" ${PRODUCT_VERSION}
; Design
!define MUI_ICON "Setup_Install.ico"
!define MUI_UNICON "RecycleBin.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "header.bmp" ; optional
!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
@@ -48,7 +53,6 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" ${PRODUCT_VERSION_LONG}
; Finish Page
!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_RUN_Text "Launch mRemoteNG Now"
!define MUI_FINISHPAGE_RUN "$INSTDIR\mRemoteNG.exe"
!insertmacro MUI_PAGE_FINISH
@@ -56,35 +60,87 @@ VIAddVersionKey /LANG=${LANG_ENGLISH} "FileVersion" ${PRODUCT_VERSION_LONG}
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
; Set Language
!insertmacro MUI_LANGUAGE "English"
; Get Languages
!include "Language\languages.nsi"
; Set finish page text
!define MUI_FINISHPAGE_RUN_Text "$(LaunchMremoteNow)"
Function .onInit
; Check .NET version
StrCpy $InstallDotNET "No"
Call GetDotNETVersion
ClearErrors
UserInfo::GetName
IfErrors Win9x
Pop $0
UserInfo::GetAccountType
Pop $1
# GetOriginalAccountType will check the tokens of the original user of the
# current thread/process. If the user tokens were elevated or limited for
# this process, GetOriginalAccountType will return the non-restricted
# account type.
# On Vista with UAC, for example, this is not the same value when running
# with `RequestExecutionLevel user`. GetOriginalAccountType will return
# "admin" while GetAccountType will return "user".
StrCmp $1 "Admin" 0 +3
Goto doit
StrCmp $1 "Power" 0 +3
Goto doit
StrCmp $1 "User" 0 +3
Goto noop
StrCmp $1 "Guest" 0 +3
Goto noop
MessageBox MB_OK "Unknown error"
Goto doit
${If} $0 == "not found"
StrCpy $InstallDotNET "Yes"
${EndIf}
Win9x:
doit:
# We can install
IfSilent +2
Call SelectLanguage
Goto end
noop:
MessageBox MB_OK "$(RequiresAdminUser)"
Quit
end:
FunctionEnd
StrCpy $0 $0 "" 1 # skip "v"
Function SelectLanguage
;Language selection dialog
Push ""
Push ${LANG_ENGLISH}
Push ${LanguageNameEnglish}
Push ${LANG_GERMAN}
Push ${LanguageNameGerman}
Push ${LANG_DUTCH}
Push ${LanguageNameDutch}
Push ${LANG_FRENCH}
Push ${LanguageNameFrench}
Push ${LANG_POLISH}
Push ${LanguageNamePolish}
Push ${LANG_SPANISH}
Push ${LanguageNameSpanish}
Push ${LANG_CZECH}
Push ${LanguageNameCzech}
Push ${LANG_THAI}
Push ${LanguageNameThai}
Push A ; A means auto count languages
; for the auto count to work the first empty push (Push "") must remain
LangDLL::LangDialog "$(InstallerLanguage)" "$(SelectInstallerLanguage)"
${VersionCompare} $0 "2.0" $1
${If} $1 == 2
StrCpy $InstallDotNET "Yes"
${EndIf}
Pop $LANGUAGE
StrCmp $LANGUAGE "cancel" 0 +2
Abort
${If} $InstallDotNET == "Yes"
MessageBox MB_OK|MB_ICONEXCLAMATION "mRemoteNG requires Microsoft .NET Framework 2.0."
; Check .NET version
${IfNot} ${HasDotNet3.0}
MessageBox MB_OK|MB_ICONEXCLAMATION "$(RequiresNetFramework)"
Quit
${EndIf}
FunctionEnd
Section "" ; Install
SetOutPath $INSTDIR
SetShellVarContext all
; AddFiles
File /r /x "mRemoteNG.vshost.*" "..\mRemoteV1\bin\Release\*.*"
File /r "Dependencies\*.*"
@@ -98,15 +154,18 @@ Section "" ; Install
; Start Menu
CreateDirectory "$SMPROGRAMS\mRemoteNG"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(CreditsLinkName).lnk" "$INSTDIR\CREDITS.TXT"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(CopyingLinkName).lnk" "$INSTDIR\COPYING.TXT"
CreateShortCut "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk" "$INSTDIR\mRemoteNG.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(UninstallLinkName).lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(ChangeLogLinkName).lnk" "$INSTDIR\CHANGELOG.TXT"
; Registry
WriteRegStr HKLM "Software\mRemoteNG" "InstallPath" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayName" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "Publisher" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "Publisher" "Next Generation Software"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayIcon" "$INSTDIR\mRemoteNG.exe"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "EstimatedSize" 6464
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "EstimatedSize" 7080
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayVersion" ${PRODUCT_VERSION}
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "VersionMajor" ${PRODUCT_VERSION_MAJOR}
@@ -125,9 +184,10 @@ Section "un.Uninstall"
RMDIR /r $INSTDIR
; Start Menu
Delete "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk"
Delete "$SMPROGRAMS\mRemoteNG\Uninstall.lnk"
RMDir "$SMPROGRAMS\mRemoteNG"
SetShellVarContext all
RMDir /r "$SMPROGRAMS\mRemoteNG"
SetShellVarContext current
RMDir /r "$SMPROGRAMS\mRemoteNG"
; Registry
DeleteRegValue HKLM "Software\mRemoteNG" "InstallPath"
@@ -135,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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 151 KiB

After

Width:  |  Height:  |  Size: 151 KiB

26
Sort Language Files.cmd Normal file
View File

@@ -0,0 +1,26 @@
@echo off
set TEMP_FOLDER="%TEMP%\Translations.tmp"
set SORTRESX="%~dp0\Tools\SortRESX.exe"
echo.
echo This script sorts the language files
echo.
choice /m "Would you like to continue?"
echo.
rmdir /s /q %TEMP_FOLDER%
mkdir %TEMP_FOLDER%
copy "%~dp0\mRemoteV1\Language\*.resx" %TEMP_FOLDER%
pushd %TEMP_FOLDER%
for %%f in (*) do %SORTRESX% %TEMP_FOLDER%\%%f "%~dp0\mRemoteV1\Language\%%f"
popd
rmdir /s /q %TEMP_FOLDER%
echo Done.
echo.
pause

BIN
Tools/SortRESX.exe Normal file

Binary file not shown.

55
Update Languages.cmd Normal file
View File

@@ -0,0 +1,55 @@
@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%\bg\Language.bg.resx "%~dp0\mRemoteV1\Language\Language.bg.resx"
%SORTRESX% %TEMP_FOLDER%\de\Language.de.resx "%~dp0\mRemoteV1\Language\Language.de.resx"
%SORTRESX% %TEMP_FOLDER%\el\Language.el.resx "%~dp0\mRemoteV1\Language\Language.el.resx"
%SORTRESX% %TEMP_FOLDER%\en-US\Language.en.resx "%~dp0\mRemoteV1\Language\Language.en-US.resx"
%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%\he\Language.he.resx "%~dp0\mRemoteV1\Language\Language.he.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%\nb\Language.nb.resx "%~dp0\mRemoteV1\Language\Language.nb-NO.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"
%SORTRESX% %TEMP_FOLDER%\zh-TW\Language.zh.resx "%~dp0\mRemoteV1\Language\Language.zh-TW.resx"
rmdir /s /q %TEMP_FOLDER%
echo Done.
echo.
pause

View File

@@ -1,6 +1,6 @@

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual Studio 2010
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "mRemoteV1", "mRemoteV1\mRemoteV1.vbproj", "{4934A491-40BC-4E5B-9166-EA1169A220F6}"
EndProject
Global

View File

@@ -1,149 +0,0 @@
Imports System.IO
Imports System.Net
Imports mRemote.App.Runtime
Namespace App
Public Class Announcement
#Region "Private Properties"
Private wCl As WebClient
Private wPr As WebProxy
#End Region
Private _curAI As Info
Public ReadOnly Property curAI() As Info
Get
Return _curAI
End Get
End Property
Public Function IsAnnouncementAvailable() As Boolean
Try
Dim aI As Info = GetAnnouncementInfo()
If aI.InfoOk = False Then
Return False
End If
If aI.Name <> My.Settings.LastAnnouncement Then
Return True
Else
Return False
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsAnnouncementAvailable failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
Public Function GetAnnouncementInfo() As Info
Try
Dim strAnnouncement As String = GetAnnouncementFile()
CreateWebClient()
Dim aI As New Info()
If strAnnouncement <> "" Then
aI.InfoOk = True
Try
'get Name
Dim strName As String = strAnnouncement.Substring(strAnnouncement.IndexOf("Name: ") + 6, strAnnouncement.IndexOf(vbNewLine) - 6)
aI.Name = strName
strAnnouncement = strAnnouncement.Remove(0, strAnnouncement.IndexOf(vbNewLine) + 2)
'get Download URL
Dim strU As String = ""
strU = strAnnouncement.Substring(strAnnouncement.IndexOf("URL: ") + 5, strAnnouncement.IndexOf(vbNewLine) - 5)
aI.URL = strU
Catch ex As Exception
aI.InfoOk = False
End Try
Else
aI.InfoOk = False
End If
_curAI = aI
Return aI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting Announcement info failed" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
Private Function GetAnnouncementFile() As String
Try
CreateWebClient()
Dim strTemp As String
Try
strTemp = wCl.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)
Return ""
End Try
End Function
Private Sub CreateWebClient()
wCl = New WebClient()
If My.Settings.UpdateUseProxy Then
wPr = 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
End If
wCl.Proxy = wPr
End If
End Sub
Public Class Info
Private _Name As String
Public Property Name() As String
Get
Return _Name
End Get
Set(ByVal value As String)
_Name = value
End Set
End Property
Private _URL As String
Public Property URL() As String
Get
Return _URL
End Get
Set(ByVal value As String)
_URL = value
End Set
End Property
Private _InfoOk As Boolean
Public Property InfoOk() As Boolean
Get
Return _InfoOk
End Get
Set(ByVal value As Boolean)
_InfoOk = value
End Set
End Property
End Class
End Class
End Namespace

View File

@@ -1,10 +0,0 @@
Imports System.IO
Namespace App
Namespace Editions
Public Class Spanlink
Public Shared Enabled As Boolean = True
End Class
End Namespace
End Namespace

View File

@@ -1,4 +1,5 @@
Imports System.Environment
Imports System.Threading
Namespace App
Namespace Info
@@ -7,36 +8,63 @@ Namespace App
Public Shared ReadOnly URLDonate As String = "http://donate.mremoteng.org/"
Public Shared ReadOnly URLForum As String = "http://forum.mremoteng.org/"
Public Shared ReadOnly URLBugs As String = "http://bugs.mremoteng.org/"
Public Shared ReadOnly URLAnnouncement As String = "http://update.mremoteng.org/announcement.txt"
Public Shared ReadOnly HomePath As String = My.Application.Info.DirectoryPath
Public Shared EncryptionKey As String = "mR3m"
Public Shared ReportingFilePath As String = ""
Public Shared ReadOnly PuttyPath As String = My.Application.Info.DirectoryPath & "\PuTTYNG.exe"
Public Shared ReadOnly Property UserAgent As String
Get
Dim details As New List(Of String)
details.Add("compatible")
If OSVersion.Platform = PlatformID.Win32NT Then
details.Add(String.Format("Windows NT {0}.{1}", OSVersion.Version.Major, OSVersion.Version.Minor))
Else
details.Add(OSVersion.VersionString)
End If
If Tools.EnvironmentInfo.IsWow64 Then details.Add("WOW64")
details.Add(Thread.CurrentThread.CurrentUICulture.Name)
details.Add(String.Format(".NET CLR {0}", Version.ToString()))
Dim detailsString As String = String.Join("; ", details.ToArray())
Return String.Format("Mozilla/4.0 ({0}) {1}/{2}", detailsString, Application.ProductName, Application.ProductVersion)
End Get
End Property
End Class
Public Class Settings
#If Not PORTABLE Then
Public Shared ReadOnly SettingsPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName
Public Shared ReadOnly SettingsPath As String = GetFolderPath(SpecialFolder.ApplicationData) & "\" & My.Application.Info.ProductName
#Else
Public Shared ReadOnly SettingsPath As String = My.Application.Info.DirectoryPath
#End If
Public Shared ReadOnly LayoutFileName As String = "pnlLayout.xml"
Public Shared ReadOnly ExtAppsFilesName As String = "extApps.xml"
Public Const ThemesFileName As String = "Themes.xml"
End Class
Public Class Update
Public Shared ReadOnly URL As String = "http://update.mremoteng.org/"
Public Shared ReadOnly Property FileName As String
Get
#If DEBUG Then
Public Shared ReadOnly File As String = "update-debug.txt"
#Else
Public Shared ReadOnly File As String = "update.txt"
Return "update-debug.txt"
#End If
Select Case My.Settings.UpdateChannel.ToLowerInvariant()
Case "beta"
Return "update-beta.txt"
Case "debug"
Return "update-debug.txt"
Case Else
Return "update.txt"
End Select
End Get
End Property
End Class
Public Class Connections
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.2
Public Shared ReadOnly ConnectionFileVersion As Double = 2.5
End Class
Public Class Credentials

View File

@@ -2,135 +2,196 @@
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
<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 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 SetForegroundWindow(ByVal hWnd As IntPtr) As Boolean
End Function
<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
#End Region

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,66 @@
Namespace App
Public Class SupportedCultures
Inherits Dictionary(Of String, String)
Private Sub New()
Dim CultureInfo As Globalization.CultureInfo
For Each CultureName As String In My.Settings.SupportedUICultures.Split(",")
Try
CultureInfo = New Globalization.CultureInfo(CultureName.Trim)
Add(CultureInfo.Name, CultureInfo.TextInfo.ToTitleCase(CultureInfo.NativeName))
Catch ex As Exception
Debug.Print(String.Format("An exception occurred while adding the culture '{0}' to the list of supported cultures. {1}", CultureName, ex.ToString))
End Try
Next
End Sub
Private Shared _Instance As SupportedCultures = Nothing
Public Shared Sub InstantiateSingleton()
If _Instance Is Nothing Then
_Instance = New SupportedCultures
End If
End Sub
Public Shared Function IsNameSupported(ByVal CultureName As String) As Boolean
Return _Instance.ContainsKey(CultureName)
End Function
Public Shared Function IsNativeNameSupported(ByVal CultureNativeName As String) As Boolean
Return _Instance.ContainsValue(CultureNativeName)
End Function
Public Shared ReadOnly Property CultureName(ByVal CultureNativeName As String) As String
Get
Dim Names(_Instance.Count) As String
Dim NativeNames(_Instance.Count) As String
_Instance.Keys.CopyTo(Names, 0)
_Instance.Values.CopyTo(NativeNames, 0)
For Index As Integer = 0 To _Instance.Count
If NativeNames(Index) = CultureNativeName Then
Return Names(Index)
End If
Next
Throw New System.Collections.Generic.KeyNotFoundException()
End Get
End Property
Public Shared ReadOnly Property CultureNativeName(ByVal CultureName As String) As String
Get
Return _Instance.Item(CultureName)
End Get
End Property
Public Shared ReadOnly Property CultureNativeNames() As List(Of String)
Get
Dim ValueList As New List(Of String)
For Each Value As String In _Instance.Values
ValueList.Add(Value)
Next
Return ValueList
End Get
End Property
End Class
End Namespace

View File

@@ -1,269 +1,431 @@
Imports System.IO
Imports System.Net
Imports mRemote.App.Runtime
Imports System.ComponentModel
Imports System.Threading
Imports mRemoteNG.Tools
Imports System.Reflection
Namespace App
Public Class Update
Public Event DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
Public Event DownloadCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs, ByVal Success As Boolean)
#Region "Events"
Public Event GetUpdateInfoCompletedEvent As AsyncCompletedEventHandler
Public Event GetChangeLogCompletedEvent As AsyncCompletedEventHandler
Public Event GetAnnouncementInfoCompletedEvent As AsyncCompletedEventHandler
Public Event DownloadUpdateProgressChangedEvent As DownloadProgressChangedEventHandler
Public Event DownloadUpdateCompletedEvent As AsyncCompletedEventHandler
#End Region
#Region "Public Properties"
Private _curUI As Info
Public ReadOnly Property curUI() As Info
Private _currentUpdateInfo As UpdateInfo
Public ReadOnly Property CurrentUpdateInfo() As UpdateInfo
Get
Return _curUI
Return _currentUpdateInfo
End Get
End Property
Private _changeLog As String
Public ReadOnly Property ChangeLog() As String
Get
Return _changeLog
End Get
End Property
Private _currentAnnouncementInfo As AnnouncementInfo
Public ReadOnly Property CurrentAnnouncementInfo() As AnnouncementInfo
Get
Return _currentAnnouncementInfo
End Get
End Property
Public ReadOnly Property IsGetUpdateInfoRunning() As Boolean
Get
If _getUpdateInfoThread IsNot Nothing Then
If _getUpdateInfoThread.IsAlive Then Return True
End If
Return False
End Get
End Property
Public ReadOnly Property IsGetChangeLogRunning() As Boolean
Get
If _getChangeLogThread IsNot Nothing Then
If _getChangeLogThread.IsAlive Then Return True
End If
Return False
End Get
End Property
Public ReadOnly Property IsGetAnnouncementInfoRunning() As Boolean
Get
If _getAnnouncementInfoThread IsNot Nothing Then
If _getAnnouncementInfoThread.IsAlive Then Return True
End If
Return False
End Get
End Property
Public ReadOnly Property IsDownloadUpdateRunning() As Boolean
Get
Return (_downloadUpdateWebClient IsNot Nothing)
End Get
End Property
#End Region
#Region "Private Properties"
Private wCl As WebClient
Private wPr As WebProxy
#End Region
#Region "Public Methods"
Public Function IsProxyOK() As Boolean
Try
Dim uI As Info = GetUpdateInfo()
Public Sub New()
SetProxySettings()
End Sub
Return uI.InfoOk
Public Sub SetProxySettings()
SetProxySettings(My.Settings.UpdateUseProxy, My.Settings.UpdateProxyAddress, My.Settings.UpdateProxyPort, My.Settings.UpdateProxyUseAuthentication, My.Settings.UpdateProxyAuthUser, Security.Crypt.Decrypt(My.Settings.UpdateProxyAuthPass, Info.General.EncryptionKey))
End Sub
uI = Nothing
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsProxyOK (App.Update) failed" & vbNewLine & ex.Message, False)
Return False
End Try
End Function
Public Function IsUpdateAvailable() As Boolean
Try
Dim uI As Info = GetUpdateInfo()
If uI.InfoOk = False Then
Return False
End If
If uI.Version > My.Application.Info.Version Then
Return True
Public Sub SetProxySettings(ByVal useProxy As Boolean, ByVal address As String, ByVal port As Integer, ByVal useAuthentication As Boolean, ByVal username As String, ByVal password As String)
If useProxy And Not String.IsNullOrEmpty(address) Then
If Not port = 0 Then
_webProxy = New WebProxy(address, port)
Else
Return False
_webProxy = New WebProxy(address)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsUpdateAvailable failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
Public Function GetUpdateInfo() As Info
Try
Dim strUpdate As String = GetUpdateFile()
CreateWebClient()
Dim uI As New Info()
If strUpdate <> "" Then
uI.InfoOk = True
Try
'get Version
Dim strV As String = strUpdate.Substring(strUpdate.IndexOf("Version: ") + 9, strUpdate.IndexOf(vbNewLine) - 9)
uI.Version = New Version(strV)
strUpdate = strUpdate.Remove(0, strUpdate.IndexOf(vbNewLine) + 2)
'get Download URL
Dim strU As String = ""
strU = strUpdate.Substring(strUpdate.IndexOf("dURL: ") + 6, strUpdate.IndexOf(vbNewLine) - 6)
uI.DownloadUrl = strU
strUpdate = strUpdate.Remove(0, strUpdate.IndexOf(vbNewLine) + 2)
'get Change Log
Dim strClURL As String = strUpdate.Substring(strUpdate.IndexOf("clURL: ") + 7, strUpdate.IndexOf(vbNewLine) - 7)
Dim strCl As String = wCl.DownloadString(strClURL)
uI.ChangeLog = strCl
strUpdate = strUpdate.Remove(0, strUpdate.IndexOf(vbNewLine) + 2)
Try
'get Image
Dim strImgURL As String = strUpdate.Substring(strUpdate.IndexOf("imgURL: ") + 8, strUpdate.IndexOf(vbNewLine) - 8)
uI.ImageURL = strImgURL
strUpdate = strUpdate.Remove(0, strUpdate.IndexOf(vbNewLine) + 2)
'get Image Link
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)
End Try
Catch ex As Exception
uI.InfoOk = False
End Try
If useAuthentication Then
_webProxy.Credentials = New NetworkCredential(username, password)
Else
uI.InfoOk = False
_webProxy.Credentials = Nothing
End If
_curUI = uI
Return uI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting update info failed" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
Public Function DownloadUpdate(ByVal dURL As String) As Boolean
Try
CreateWebClient()
AddHandler wCl.DownloadProgressChanged, AddressOf DLProgressChanged
AddHandler wCl.DownloadFileCompleted, AddressOf DLCompleted
_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)
Return False
End Try
End Function
#End Region
#Region "Private Methods"
Private Sub CreateWebClient()
wCl = New WebClient()
If My.Settings.UpdateUseProxy Then
wPr = 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
End If
wCl.Proxy = wPr
Else
_webProxy = Nothing
End If
End Sub
Private Function GetUpdateFile() As String
Try
CreateWebClient()
Public Function IsUpdateAvailable() As Boolean
If _currentUpdateInfo Is Nothing OrElse Not _currentUpdateInfo.IsValid Then Return False
Dim strTemp As String
Try
strTemp = wCl.DownloadString(App.Info.Update.URL & App.Info.Update.File)
Catch ex As Exception
strTemp = ""
End Try
Return strTemp
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetUpdateFile failed" & vbNewLine & ex.Message, True)
Return ""
End Try
Return _currentUpdateInfo.Version > My.Application.Info.Version
End Function
Private Sub DLProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs)
RaiseEvent DownloadProgressChanged(sender, e)
Public Function IsAnnouncementAvailable() As Boolean
If _currentAnnouncementInfo Is Nothing OrElse _
(Not _currentAnnouncementInfo.IsValid Or _
String.IsNullOrEmpty(_currentAnnouncementInfo.Name)) Then Return False
Return (Not _currentAnnouncementInfo.Name = My.Settings.LastAnnouncement)
End Function
Public Sub GetUpdateInfoAsync()
If IsGetUpdateInfoRunning Then _getUpdateInfoThread.Abort()
_getUpdateInfoThread = New Thread(AddressOf GetUpdateInfo)
With _getUpdateInfoThread
.SetApartmentState(ApartmentState.STA)
.IsBackground = True
.Start()
End With
End Sub
Private Sub DLCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
Try
Dim fInfo As New FileInfo(_curUI.UpdateLocation)
Public Sub GetChangeLogAsync()
If _currentUpdateInfo Is Nothing OrElse Not _currentUpdateInfo.IsValid Then
Throw New InvalidOperationException("CurrentUpdateInfo is not valid. GetUpdateInfoAsync() must be called before calling GetChangeLogAsync().")
End If
If fInfo.Length > 0 Then
RaiseEvent DownloadCompleted(sender, e, True)
Else
fInfo.Delete()
RaiseEvent DownloadCompleted(sender, e, False)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "DLCompleted failed" & vbNewLine & ex.Message, True)
End Try
If IsGetChangeLogRunning Then _getChangeLogThread.Abort()
_getChangeLogThread = New Thread(AddressOf GetChangeLog)
With _getChangeLogThread
.SetApartmentState(ApartmentState.STA)
.IsBackground = True
.Start()
End With
End Sub
Public Sub GetAnnouncementInfoAsync()
If IsGetAnnouncementInfoRunning Then _getAnnouncementInfoThread.Abort()
_getAnnouncementInfoThread = New Thread(AddressOf GetAnnouncementInfo)
With _getAnnouncementInfoThread
.SetApartmentState(ApartmentState.STA)
.IsBackground = True
.Start()
End With
End Sub
Public Sub DownloadUpdateAsync()
If _downloadUpdateWebClient IsNot Nothing Then
Throw New InvalidOperationException("A previous call to DownloadUpdateAsync() is still in progress.")
End If
If _currentUpdateInfo Is Nothing OrElse Not _currentUpdateInfo.IsValid Then
Throw New InvalidOperationException("CurrentUpdateInfo is not valid. GetUpdateInfoAsync() must be called before calling DownloadUpdateAsync().")
End If
_currentUpdateInfo.UpdateFilePath = Path.Combine(Path.GetTempPath(), Path.ChangeExtension(Path.GetRandomFileName, "exe"))
DownloadUpdateWebClient.DownloadFileAsync(CurrentUpdateInfo.DownloadAddress, _currentUpdateInfo.UpdateFilePath)
End Sub
#End Region
#Region "Private Properties"
Private _downloadUpdateWebClient As WebClient
Private ReadOnly Property DownloadUpdateWebClient() As WebClient
Get
If _downloadUpdateWebClient IsNot Nothing Then Return _downloadUpdateWebClient
_downloadUpdateWebClient = CreateWebClient()
AddHandler _downloadUpdateWebClient.DownloadProgressChanged, AddressOf DownloadUpdateProgressChanged
AddHandler _downloadUpdateWebClient.DownloadFileCompleted, AddressOf DownloadUpdateCompleted
Public Class Info
Private _Version As Version
Public Property Version() As Version
Get
Return _Version
End Get
Set(ByVal value As Version)
_Version = value
End Set
End Property
Return _downloadUpdateWebClient
End Get
End Property
#End Region
Private _DownloadUrl As String
Public Property DownloadUrl() As String
Get
Return _DownloadUrl
End Get
Set(ByVal value As String)
_DownloadUrl = value
End Set
End Property
#Region "Private Fields"
Private _webProxy As WebProxy
Private _getUpdateInfoThread As Thread
Private _getChangeLogThread As Thread
Private _getAnnouncementInfoThread As Thread
#End Region
Private _UpdateLocation As String
Public Property UpdateLocation() As String
Get
Return _UpdateLocation
End Get
Set(ByVal value As String)
_UpdateLocation = value
End Set
End Property
#Region "Private Methods"
Private Function CreateWebClient() As WebClient
Dim webClient As New WebClient
webClient.Headers.Add("user-agent", Info.General.UserAgent)
webClient.Proxy = _webProxy
Return webClient
End Function
Private _ChangeLog As String
Public Property ChangeLog() As String
Get
Return _ChangeLog
End Get
Set(ByVal value As String)
_ChangeLog = value
End Set
End Property
Private Shared Function NewDownloadStringCompletedEventArgs(ByVal result As String, ByVal exception As Exception, ByVal cancelled As Boolean, ByVal userToken As Object) As DownloadStringCompletedEventArgs
Dim type As Type = GetType(DownloadStringCompletedEventArgs)
Const bindingFlags As BindingFlags = bindingFlags.NonPublic Or bindingFlags.Instance
Dim argumentTypes() As Type = {GetType(String), GetType(Exception), GetType(Boolean), GetType(Object)}
Dim constructor As ConstructorInfo = type.GetConstructor(bindingFlags, Nothing, argumentTypes, Nothing)
Dim arguments() As Object = {result, exception, cancelled, userToken}
Private _ImageURL As String
Public Property ImageURL() As String
Get
Return _ImageURL
End Get
Set(ByVal value As String)
_ImageURL = value
End Set
End Property
Return constructor.Invoke(arguments)
End Function
Private _ImageURLLink As String
Public Property ImageURLLink() As String
Get
Return _ImageURLLink
End Get
Set(ByVal value As String)
_ImageURLLink = value
End Set
End Property
Private Function DownloadString(ByVal address As Uri) As DownloadStringCompletedEventArgs
Dim webClient As WebClient = CreateWebClient()
Dim result As String = String.Empty
Dim exception As Exception = Nothing
Dim cancelled As Boolean = False
Private _InfoOk As Boolean
Public Property InfoOk() As Boolean
Get
Return _InfoOk
End Get
Set(ByVal value As Boolean)
_InfoOk = value
End Set
End Property
Try
result = webClient.DownloadString(address)
Catch ex As ThreadAbortException
cancelled = True
Catch ex As Exception
exception = ex
End Try
Return NewDownloadStringCompletedEventArgs(result, exception, cancelled, Nothing)
End Function
Private Sub GetUpdateInfo()
Dim updateFileUri As New Uri(New Uri(My.Settings.UpdateAddress), New Uri(Info.Update.FileName, UriKind.Relative))
Dim e As DownloadStringCompletedEventArgs = DownloadString(updateFileUri)
If Not e.Cancelled And e.Error Is Nothing Then
_currentUpdateInfo = UpdateInfo.FromString(e.Result)
My.Settings.CheckForUpdatesLastCheck = Date.UtcNow
If Not My.Settings.UpdatePending Then
My.Settings.UpdatePending = IsUpdateAvailable()
End If
End If
RaiseEvent GetUpdateInfoCompletedEvent(Me, e)
End Sub
Private Sub GetChangeLog()
Dim e As DownloadStringCompletedEventArgs = DownloadString(_currentUpdateInfo.ChangeLogAddress)
If Not e.Cancelled And e.Error Is Nothing Then _changeLog = e.Result
RaiseEvent GetChangeLogCompletedEvent(Me, e)
End Sub
Private Sub GetAnnouncementInfo()
Dim announcementFileUri As New Uri(My.Settings.AnnouncementAddress)
Dim e As DownloadStringCompletedEventArgs = DownloadString(announcementFileUri)
If Not e.Cancelled And e.Error Is Nothing Then
_currentAnnouncementInfo = AnnouncementInfo.FromString(e.Result)
If Not String.IsNullOrEmpty(_currentAnnouncementInfo.Name) Then
My.Settings.LastAnnouncement = _currentAnnouncementInfo.Name
End If
End If
RaiseEvent GetAnnouncementInfoCompletedEvent(Me, e)
End Sub
Private Sub DownloadUpdateProgressChanged(ByVal sender As Object, ByVal e As DownloadProgressChangedEventArgs)
RaiseEvent DownloadUpdateProgressChangedEvent(sender, e)
End Sub
Private Sub DownloadUpdateCompleted(ByVal sender As Object, ByVal e As System.ComponentModel.AsyncCompletedEventArgs)
Dim raiseEventArgs As AsyncCompletedEventArgs = e
If Not e.Cancelled And e.Error Is Nothing Then
Try
Dim updateAuthenticode As New Authenticode(_currentUpdateInfo.UpdateFilePath)
With updateAuthenticode
.RequireThumbprintMatch = True
.ThumbprintToMatch = _currentUpdateInfo.CertificateThumbprint
If Not .Verify() = Authenticode.StatusValue.Verified Then
If .Status = Authenticode.StatusValue.UnhandledException Then
Throw .Exception
Else
Throw New Exception(.StatusMessage)
End If
End If
End With
Catch ex As Exception
raiseEventArgs = New AsyncCompletedEventArgs(ex, False, Nothing)
End Try
End If
If raiseEventArgs.Cancelled Or raiseEventArgs.Error IsNot Nothing Then
File.Delete(_currentUpdateInfo.UpdateFilePath)
End If
RaiseEvent DownloadUpdateCompletedEvent(Me, raiseEventArgs)
_downloadUpdateWebClient.Dispose()
_downloadUpdateWebClient = Nothing
End Sub
#End Region
#Region "Public Classes"
Public Class UpdateInfo
#Region "Public Properties"
Public Property IsValid As Boolean
Public Property Version As Version
Public Property DownloadAddress As Uri
Public Property UpdateFilePath As String
Public Property ChangeLogAddress As Uri
Public Property ImageAddress As Uri
Public Property ImageLinkAddress As Uri
Public Property CertificateThumbprint As String
#End Region
#Region "Public Methods"
Public Shared Function FromString(ByVal input As String) As UpdateInfo
Dim newInfo As New UpdateInfo
With newInfo
If String.IsNullOrEmpty(input) Then
.IsValid = False
Else
Dim updateFile As New UpdateFile(input)
.Version = updateFile.GetVersion("Version")
.DownloadAddress = updateFile.GetUri("dURL")
.ChangeLogAddress = updateFile.GetUri("clURL")
.ImageAddress = updateFile.GetUri("imgURL")
.ImageLinkAddress = updateFile.GetUri("imgURLLink")
.CertificateThumbprint = updateFile.GetThumbprint("CertificateThumbprint")
.IsValid = True
End If
End With
Return newInfo
End Function
#End Region
End Class
Public Class AnnouncementInfo
#Region "Public Properties"
Public Property IsValid As Boolean
Public Property Name As String
Public Property Address As Uri
#End Region
#Region "Public Methods"
Public Shared Function FromString(ByVal input As String) As AnnouncementInfo
Dim newInfo As New AnnouncementInfo
With newInfo
If String.IsNullOrEmpty(input) Then
.IsValid = False
Else
Dim updateFile As New UpdateFile(input)
.Name = updateFile.GetString("Name")
.Address = updateFile.GetUri("URL")
.IsValid = True
End If
End With
Return newInfo
End Function
#End Region
End Class
#End Region
#Region "Private Classes"
Private Class UpdateFile
#Region "Public Properties"
Private ReadOnly _items As New Dictionary(Of String, String)(StringComparer.InvariantCultureIgnoreCase)
' ReSharper disable MemberCanBePrivate.Local
Public ReadOnly Property Items() As Dictionary(Of String, String)
' ReSharper restore MemberCanBePrivate.Local
Get
Return _items
End Get
End Property
#End Region
#Region "Public Methods"
Public Sub New(ByVal content As String)
FromString(content)
End Sub
' ReSharper disable MemberCanBePrivate.Local
Public Sub FromString(ByVal content As String)
' ReSharper restore MemberCanBePrivate.Local
If String.IsNullOrEmpty(content) Then
Else
Dim lineSeparators() As Char = New Char() {Chr(&HA), Chr(&HD)}
Dim keyValueSeparators() As Char = New Char() {":", "="}
Dim commentCharacters() As Char = New Char() {"#", ";", "'"}
Dim lines() As String = content.Split(lineSeparators, StringSplitOptions.RemoveEmptyEntries)
For Each line As String In lines
line = line.Trim()
If line.Length = 0 Then Continue For
If Not line.Substring(0, 1).IndexOfAny(commentCharacters) = -1 Then Continue For
Dim parts() As String = line.Split(keyValueSeparators, 2)
If Not parts.Length = 2 Then Continue For
Dim key As String = parts(0).Trim()
Dim value As String = parts(1).Trim()
_items.Add(key, value)
Next
End If
End Sub
' ReSharper disable MemberCanBePrivate.Local
Public Function GetString(ByVal key As String) As String
' ReSharper restore MemberCanBePrivate.Local
If Not Items.ContainsKey(key) Then Return String.Empty
Return Items(key)
End Function
Public Function GetVersion(ByVal key As String) As Version
Dim value As String = GetString(key)
If String.IsNullOrEmpty(value) Then Return Nothing
Return New Version(value)
End Function
Public Function GetUri(ByVal key As String) As Uri
Dim value As String = GetString(key)
If String.IsNullOrEmpty(value) Then Return Nothing
Return New Uri(value)
End Function
Public Function GetThumbprint(ByVal key As String) As String
Return GetString(key).Replace(" ", "").ToUpperInvariant()
End Function
#End Region
End Class
#End Region
End Class
End Namespace

View File

@@ -11,7 +11,7 @@
Private Sub MyApplication_Startup(ByVal sender As Object, ByVal e As Microsoft.VisualBasic.ApplicationServices.StartupEventArgs) Handles Me.Startup
If My.Settings.SingleInstance Then
Dim mutexID As String = "mRemote_SingleInstanceMutex"
Dim mutexID As String = "mRemoteNG_SingleInstanceMutex"
mutex = New System.Threading.Mutex(False, mutexID)
@@ -63,6 +63,5 @@
End If
End Sub
End Class
End Namespace

View File

@@ -1,9 +1,11 @@
Imports System.Windows.Forms
Imports System.Xml
Imports mRemote.App.Runtime
Imports System.Globalization
Imports mRemoteNG.App.Runtime
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
Imports PSTaskDialog
Namespace Config
Namespace Connections
@@ -17,8 +19,6 @@ Namespace Config
Private sqlQuery As SqlCommand
Private sqlRd As SqlDataReader
Private sqlDB As String = "mRemote"
Private selNode As TreeNode
#End Region
@@ -43,6 +43,16 @@ Namespace Config
End Set
End Property
Private _SQLDatabaseName As String
Public Property SQLDatabaseName() As String
Get
Return _SQLDatabaseName
End Get
Set(ByVal value As String)
_SQLDatabaseName = value
End Set
End Property
Private _SQLUsername As String
Public Property SQLUsername() As String
Get
@@ -83,10 +93,6 @@ Namespace Config
End Set
End Property
Private _ConnectionFileName As String
Public Property ConnectionFileName() As String
Get
@@ -107,16 +113,6 @@ Namespace Config
End Set
End Property
Private _Import As Boolean
Public Property Import() As Boolean
Get
Return Me._Import
End Get
Set(ByVal value As Boolean)
Me._Import = value
End Set
End Property
Private _ConnectionList As Connection.List
Public Property ConnectionList() As Connection.List
Get
@@ -159,30 +155,38 @@ Namespace Config
#End Region
#Region "Public Methods"
Public Sub Load()
Public Sub Load(ByVal import As Boolean)
If _UseSQL = True Then
LoadFromSQL()
SetMainFormText("SQL Server")
Else
Dim strCons As String = DecryptCompleteFile()
LoadFromXML(strCons)
LoadFromXML(strCons, import)
End If
If Import = False Then
If import = False Then
SetMainFormText(ConnectionFileName)
PuttySessions.AddSessionsToTree()
End If
End Sub
#End Region
#Region "SQL"
Private Delegate Sub LoadFromSqlDelegate()
Private Sub LoadFromSQL()
If Windows.treeForm Is Nothing OrElse Windows.treeForm.tvConnections Is Nothing Then Return
If Windows.treeForm.tvConnections.InvokeRequired Then
Windows.treeForm.tvConnections.Invoke(New LoadFromSqlDelegate(AddressOf LoadFromSQL))
Return
End If
Try
App.Runtime.ConnectionsFileLoaded = False
App.Runtime.IsConnectionsFileLoaded = False
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
Else
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()
@@ -201,10 +205,12 @@ Namespace Config
sqlRd.Read()
End If
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"))
My.Application.ChangeCulture(originalCulture.ToString)
confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), CultureInfo.InvariantCulture)
Const maxSupportedSchemaVersion As Double = 2.5
If confVersion > maxSupportedSchemaVersion Then
cTaskDialog.ShowTaskDialogBox(frmMain, Application.ProductName, "Incompatible database schema", String.Format("The database schema on the server is not supported. Please upgrade to a newer version of {0}.", Application.ProductName), String.Format("Schema Version: {1}{0}Highest Supported Version: {2}", vbNewLine, confVersion.ToString(), maxSupportedSchemaVersion.ToString()), "", "", "", "", eTaskDialogButtons.OK, eSysIcons.Error, Nothing)
Throw New Exception(String.Format("Incompatible database schema (schema version {0}).", confVersion))
End If
Dim rootNode As TreeNode
rootNode = New TreeNode(sqlRd.Item("Name"))
@@ -233,9 +239,11 @@ Namespace Config
sqlRd.Close()
Windows.treeForm.tvConnections.BeginUpdate()
' SECTION 3. Populate the TreeView with the DOM nodes.
AddNodesFromSQL(rootNode)
'AddNodeFromXML(xDom.DocumentElement, Me._RootTreeNode)
'AddNodeFromXml(xDom.DocumentElement, Me._RootTreeNode)
rootNode.Expand()
@@ -246,6 +254,8 @@ Namespace Config
End If
Next
Windows.treeForm.tvConnections.EndUpdate()
'open connections from last mremote session
If My.Settings.OpenConsFromLastSession = True And My.Settings.NoReconnect = False Then
For Each conI As Connection.Info In Me._ConnectionList
@@ -261,12 +271,14 @@ 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, "LoadFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
Throw
Finally
If sqlCon IsNot Nothing Then
sqlCon.Close()
End If
End Try
End Sub
@@ -312,7 +324,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)
@@ -353,7 +365,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")
@@ -391,7 +403,10 @@ Namespace Config
tNode.SelectedImageIndex = Images.Enums.TreeImage.Container
End If
If sqlRd.Item("ParentID") <> 0 Then
Dim parentId As String = sqlRd.Item("ParentID").ToString().Trim()
If String.IsNullOrEmpty(parentId) Or parentId = "0" Then
baseNode.Nodes.Add(tNode)
Else
Dim pNode As TreeNode = Tree.Node.GetNodeFromConstantID(sqlRd.Item("ParentID"))
If pNode IsNot Nothing Then
@@ -405,14 +420,12 @@ Namespace Config
Else
baseNode.Nodes.Add(tNode)
End If
Else
baseNode.Nodes.Add(tNode)
End If
'AddNodesFromSQL(tNode)
End While
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodesFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strAddNodesFromSqlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -537,9 +550,9 @@ Namespace Config
End If
If Me.confVersion >= 2.2 Then
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.RDGatewayUsageMethod), .Item("RDGatewayUsageMethod"))
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod), .Item("RDGatewayUsageMethod"))
conI.RDGatewayHostname = .Item("RDGatewayHostname")
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Item("RDGatewayUseConnectionCredentials"))
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Item("RDGatewayUseConnectionCredentials"))
conI.RDGatewayUsername = .Item("RDGatewayUsername")
conI.RDGatewayPassword = Security.Crypt.Decrypt(.Item("RDGatewayPassword"), pW)
conI.RDGatewayDomain = .Item("RDGatewayDomain")
@@ -550,6 +563,25 @@ Namespace Config
conI.Inherit.RDGatewayDomain = .Item("InheritRDGatewayDomain")
End If
If Me.confVersion >= 2.3 Then
conI.EnableFontSmoothing = .Item("EnableFontSmoothing")
conI.EnableDesktopComposition = .Item("EnableDesktopComposition")
conI.Inherit.EnableFontSmoothing = .Item("InheritEnableFontSmoothing")
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
End If
If confVersion >= 2.4 Then
conI.UseCredSsp = .Item("UseCredSsp")
conI.Inherit.UseCredSsp = .Item("InheritUseCredSsp")
End If
If confVersion >= 2.5 Then
conI.LoadBalanceInfo = .Item("LoadBalanceInfo")
conI.AutomaticResize = .Item("AutomaticResize")
conI.Inherit.LoadBalanceInfo = .Item("InheritLoadBalanceInfo")
conI.Inherit.AutomaticResize = .Item("InheritAutomaticResize")
End If
If SQLUpdate = True Then
conI.PleaseConnect = .Item("Connected")
End If
@@ -557,7 +589,7 @@ Namespace Config
Return conI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetConnectionInfoFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strGetConnectionInfoFromSqlFailed & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -612,9 +644,9 @@ Namespace Config
Return ""
End Function
Private Sub LoadFromXML(Optional ByVal cons As String = "")
Private Sub LoadFromXML(ByVal cons As String, ByVal import As Boolean)
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()
@@ -625,22 +657,27 @@ Namespace Config
End If
If xDom.DocumentElement.HasAttribute("ConfVersion") Then
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value)
My.Application.ChangeCulture(originalCulture.ToString)
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value.Replace(",", "."), CultureInfo.InvariantCulture)
Else
mC.AddMessage(Messages.MessageClass.WarningMsg, "You are trying to load a connection file that was created using an very early version of mRemote, this could result in an runtime error." & vbNewLine & "If you run into such an error, please create a new connection file!")
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strOldConffile)
End If
Const maxSupportedConfVersion As Double = 2.5
If confVersion > maxSupportedConfVersion Then
cTaskDialog.ShowTaskDialogBox(frmMain, Application.ProductName, "Incompatible connection file format", String.Format("The format of this connection file is not supported. Please upgrade to a newer version of {0}.", Application.ProductName), String.Format("{1}{0}File Format Version: {2}{0}Highest Supported Version: {3}", vbNewLine, ConnectionFileName, confVersion.ToString(), maxSupportedConfVersion.ToString()), "", "", "", "", eTaskDialogButtons.OK, eSysIcons.Error, Nothing)
Throw New Exception(String.Format("Incompatible connection file format (file format version {0}).", confVersion))
End If
' SECTION 2. Initialize the treeview control.
Dim rootNode As TreeNode
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
@@ -653,35 +690,35 @@ 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
End If
Dim imp As Boolean = False
If Me.confVersion > 0.9 Then '1.0
Dim isExportFile As Boolean = False
If confVersion >= 1.0 Then
If xDom.DocumentElement.Attributes("Export").Value = True Then
imp = True
isExportFile = True
End If
End If
If Me._Import = True And imp = False Then
mC.AddMessage(Messages.MessageClass.InformationMsg, "You cannot import a normal connection file." & vbNewLine & "Please use File - Load Connections for normal connection files!")
Exit Sub
If import And Not isExportFile Then
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strCannotImportNormalSessionFile)
Return
End If
If imp = False Then
Me._RootTreeNode.Text = rootNode.Text
Me._RootTreeNode.Tag = rootNode.Tag
Me._RootTreeNode.ImageIndex = Images.Enums.TreeImage.Root
Me._RootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Root
If Not isExportFile Then
_RootTreeNode.Text = rootNode.Text
_RootTreeNode.Tag = rootNode.Tag
_RootTreeNode.ImageIndex = Images.Enums.TreeImage.Root
_RootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.Root
End If
Windows.treeForm.tvConnections.BeginUpdate()
' SECTION 3. Populate the TreeView with the DOM nodes.
AddNodeFromXML(xDom.DocumentElement, Me._RootTreeNode)
AddNodeFromXml(xDom.DocumentElement, _RootTreeNode)
Me._RootTreeNode.Expand()
@@ -692,6 +729,8 @@ Namespace Config
End If
Next
Windows.treeForm.tvConnections.EndUpdate()
'open connections from last mremote session
If My.Settings.OpenConsFromLastSession = True And My.Settings.NoReconnect = False Then
For Each conI As Connection.Info In Me._ConnectionList
@@ -703,94 +742,96 @@ 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, "LoadFromXML failed" & 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, "AddNodeFromXML failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strAddNodeFromXmlFailed & vbNewLine & ex.Message & ex.StackTrace, True)
Throw
End Try
End Sub
Private Function GetConnectionInfoFromXml(ByVal xxNode As XmlNode) As Connection.Info
Try
Dim conI As New Connection.Info
Dim conI As New Connection.Info
Try
With xxNode
If Me.confVersion > 0.1 Then '0.2
conI.Name = .Attributes("Name").Value
@@ -886,6 +927,8 @@ Namespace Config
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors24Bit
Case 3
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors32Bit
Case 4
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors15Bit
End Select
conI.RedirectSound = .Attributes("RedirectSound").Value
@@ -921,7 +964,7 @@ Namespace Config
conI.Inherit = New Connection.Info.Inheritance(conI, .Attributes("Inherit").Value)
conI.Icon = .Attributes("Icon").Value.Replace(".ico", "")
conI.Panel = "General"
conI.Panel = My.Language.strGeneral
End If
If Me.confVersion > 1.4 Then '1.5
@@ -929,7 +972,7 @@ Namespace Config
End If
If Me.confVersion > 1.5 Then '1.6
conI.ICAEncryption = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.ICA.EncryptionStrength), .Attributes("ICAEncryptionStrength").Value)
conI.ICAEncryption = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.ICA.EncryptionStrength), .Attributes("ICAEncryptionStrength").Value)
conI.Inherit.ICAEncryption = .Attributes("InheritICAEncryptionStrength").Value
conI.PreExtApp = .Attributes("PreExtApp").Value
@@ -939,16 +982,16 @@ Namespace Config
End If
If Me.confVersion > 1.6 Then '1.7
conI.VNCCompression = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Compression), .Attributes("VNCCompression").Value)
conI.VNCEncoding = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Encoding), .Attributes("VNCEncoding").Value)
conI.VNCAuthMode = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.AuthMode), .Attributes("VNCAuthMode").Value)
conI.VNCProxyType = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.ProxyType), .Attributes("VNCProxyType").Value)
conI.VNCCompression = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Compression), .Attributes("VNCCompression").Value)
conI.VNCEncoding = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Encoding), .Attributes("VNCEncoding").Value)
conI.VNCAuthMode = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.AuthMode), .Attributes("VNCAuthMode").Value)
conI.VNCProxyType = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.ProxyType), .Attributes("VNCProxyType").Value)
conI.VNCProxyIP = .Attributes("VNCProxyIP").Value
conI.VNCProxyPort = .Attributes("VNCProxyPort").Value
conI.VNCProxyUsername = .Attributes("VNCProxyUsername").Value
conI.VNCProxyPassword = Security.Crypt.Decrypt(.Attributes("VNCProxyPassword").Value, pW)
conI.VNCColors = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Colors), .Attributes("VNCColors").Value)
conI.VNCSmartSizeMode = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.SmartSizeMode), .Attributes("VNCSmartSizeMode").Value)
conI.VNCColors = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Colors), .Attributes("VNCColors").Value)
conI.VNCSmartSizeMode = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.SmartSizeMode), .Attributes("VNCSmartSizeMode").Value)
conI.VNCViewOnly = .Attributes("VNCViewOnly").Value
conI.Inherit.VNCCompression = .Attributes("InheritVNCCompression").Value
@@ -965,13 +1008,13 @@ Namespace Config
End If
If Me.confVersion > 1.7 Then '1.8
conI.RDPAuthenticationLevel = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.AuthenticationLevel), .Attributes("RDPAuthenticationLevel").Value)
conI.RDPAuthenticationLevel = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.AuthenticationLevel), .Attributes("RDPAuthenticationLevel").Value)
conI.Inherit.RDPAuthenticationLevel = .Attributes("InheritRDPAuthenticationLevel").Value
End If
If Me.confVersion > 1.8 Then '1.9
conI.RenderingEngine = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.HTTPBase.RenderingEngine), .Attributes("RenderingEngine").Value)
conI.RenderingEngine = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.HTTPBase.RenderingEngine), .Attributes("RenderingEngine").Value)
conI.MacAddress = .Attributes("MacAddress").Value
conI.Inherit.RenderingEngine = .Attributes("InheritRenderingEngine").Value
@@ -989,28 +1032,52 @@ Namespace Config
End If
If Me.confVersion > 2.1 Then '2.2
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.RDGatewayUsageMethod), .Attributes("RDGatewayUsageMethod").Value)
' Get settings
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod), .Attributes("RDGatewayUsageMethod").Value)
conI.RDGatewayHostname = .Attributes("RDGatewayHostname").Value
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Attributes("RDGatewayUseConnectionCredentials").Value)
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Attributes("RDGatewayUseConnectionCredentials").Value)
conI.RDGatewayUsername = .Attributes("RDGatewayUsername").Value
conI.RDGatewayPassword = Security.Crypt.Decrypt(.Attributes("RDGatewayPassword").Value, pW)
conI.RDGatewayDomain = .Attributes("RDGatewayDomain").Value
' Get inheritance settings
conI.Inherit.RDGatewayUsageMethod = .Attributes("InheritRDGatewayUsageMethod").Value
conI.Inherit.RDGatewayHostname = .Attributes("InheritRDGatewayHostname").Value
conI.Inherit.RDGatewayUseConnectionCredentials = .Attributes("InheritRDGatewayUseConnectionCredentials").Value
conI.Inherit.RDGatewayUsername = .Attributes("InheritRDGatewayUsername").Value
conI.Inherit.RDGatewayPassword = .Attributes("InheritRDGatewayPassword").Value
conI.Inherit.RDGatewayDomain = .Attributes("InheritRDGatewayDomain").Value
End If
End With
Return conI
If Me.confVersion > 2.2 Then '2.3
' Get settings
conI.EnableFontSmoothing = .Attributes("EnableFontSmoothing").Value
conI.EnableDesktopComposition = .Attributes("EnableDesktopComposition").Value
' Get inheritance settings
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
If confVersion >= 2.5 Then
conI.LoadBalanceInfo = .Attributes("LoadBalanceInfo").Value
conI.AutomaticResize = .Attributes("AutomaticResize").Value
conI.Inherit.LoadBalanceInfo = .Attributes("InheritLoadBalanceInfo").Value
conI.Inherit.AutomaticResize = .Attributes("InheritAutomaticResize").Value
End If
End With
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetConnectionInfoFromXml failed" & vbNewLine & ex.Message, True)
Return Nothing
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Language.strGetConnectionInfoFromXmlFailed, conI.Name, Me.ConnectionFileName, ex.Message), False)
End Try
Return conI
End Function
Private Function Authenticate(ByVal Value As String, ByVal CompareToOriginalValue As Boolean, Optional ByVal RootInfo As mRemote.Root.Info = Nothing) As Boolean
Private Function Authenticate(ByVal Value As String, ByVal CompareToOriginalValue As Boolean, Optional ByVal RootInfo As mRemoteNG.Root.Info = Nothing) As Boolean
If CompareToOriginalValue Then
Do Until Security.Crypt.Decrypt(Value, pW) <> Value
pW = Tools.Misc.PasswordDialog(False)

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +1,8 @@
Imports System.IO
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.Environment
Namespace Config
Namespace Settings
@@ -28,7 +29,11 @@ Namespace Config
With Me._MainForm
' Migrate settings from previous version
If My.Settings.DoUpgrade Then
My.Settings.Upgrade()
Try
My.Settings.Upgrade()
Catch ex As Exception
Log.Error("My.Settings.Upgrade() failed" & vbNewLine & ex.Message)
End Try
My.Settings.DoUpgrade = False
' Clear pending update flag
@@ -37,41 +42,60 @@ Namespace Config
My.Settings.UpdatePending = False
End If
If My.Settings.MainFormLocation <> New Point(999, 999) Then
.Location = My.Settings.MainFormLocation
App.SupportedCultures.InstantiateSingleton()
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
log.InfoFormat("Override Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End If
If My.Settings.MainFormSize <> Nothing Then
.Size = My.Settings.MainFormSize
End If
Themes.ThemeManager.LoadTheme(My.Settings.ThemeName)
'check if form is visible
Dim curScreen As Screen = Screen.FromHandle(.Handle)
If .Right < curScreen.Bounds.Left Or .Left > curScreen.Bounds.Right _
Or .Top * -1 > curScreen.Bounds.Top * -1 Or .Bottom > curScreen.Bounds.Bottom Then
.Location = curScreen.Bounds.Location
End If
If My.Settings.MainFormState = Nothing Or My.Settings.MainFormState = FormWindowState.Minimized Then
.WindowState = FormWindowState.Normal
.WindowState = FormWindowState.Normal
If My.Settings.MainFormState = FormWindowState.Normal Then
If Not My.Settings.MainFormLocation.IsEmpty Then .Location = My.Settings.MainFormLocation
If Not My.Settings.MainFormSize.IsEmpty Then .Size = My.Settings.MainFormSize
Else
.WindowState = My.Settings.MainFormState
If Not My.Settings.MainFormRestoreLocation.IsEmpty Then .Location = My.Settings.MainFormRestoreLocation
If Not My.Settings.MainFormRestoreSize.IsEmpty Then .Size = My.Settings.MainFormRestoreSize
End If
If My.Settings.MainFormState = FormWindowState.Maximized Then
.WindowState = FormWindowState.Maximized
End If
' Make sure the form is visible on the screen
Const minHorizontal As Integer = 300
Const minVertical As Integer = 150
Dim screenBounds As Drawing.Rectangle = Screen.FromHandle(.Handle).Bounds
Dim newBounds As Drawing.Rectangle = .Bounds
If newBounds.Right < screenBounds.Left + minHorizontal Then
newBounds.X = screenBounds.Left + minHorizontal - newBounds.Width
End If
If newBounds.Left > screenBounds.Right - minHorizontal Then
newBounds.X = screenBounds.Right - minHorizontal
End If
If newBounds.Bottom < screenBounds.Top + minVertical Then
newBounds.Y = screenBounds.Top + minVertical - newBounds.Height
End If
If newBounds.Top > screenBounds.Bottom - minVertical Then
newBounds.Y = screenBounds.Bottom - minVertical
End If
.Location = newBounds.Location
If My.Settings.MainFormKiosk = True Then
Tools.Misc.Fullscreen.EnterFullscreen()
.Fullscreen.Value = True
.mMenViewFullscreen.Checked = True
End If
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 = App.Info.General.PuttyPath
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
@@ -84,6 +108,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
@@ -91,8 +119,7 @@ Namespace Config
End If
End With
Catch ex As Exception
App.Runtime.log.Error("Loading settings failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "Loading settings failed" & vbNewLine & ex.Message, True)
Log.Error("Loading settings failed" & vbNewLine & ex.Message)
End Try
End Sub
@@ -100,8 +127,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
@@ -126,8 +153,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
@@ -159,28 +186,40 @@ Namespace Config
Loop
Startup.CreatePanels()
If File.Exists(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName) And My.Settings.ResetPanels = False Then
.pnlDock.LoadFromXml(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName, AddressOf GetContentFromPersistString)
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Settings.LayoutFileName
Dim newPath As String = App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName
If File.Exists(newPath) Then
.pnlDock.LoadFromXml(newPath, AddressOf GetContentFromPersistString)
#If Not PORTABLE Then
ElseIf File.Exists(oldPath) Then
.pnlDock.LoadFromXml(oldPath, AddressOf GetContentFromPersistString)
#End If
Else
Startup.SetDefaultLayout()
End If
End With
Catch ex As Exception
App.Runtime.log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadPanelsFromXML failed" & vbNewLine & ex.Message, True)
Log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
End Try
End Sub
Public Sub LoadExternalAppsFromXML()
If File.Exists(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName) = False Then
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Settings.ExtAppsFilesName
Dim newPath As String = App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName
Dim xDom As New XmlDocument()
If File.Exists(newPath) Then
xDom.Load(newPath)
#If Not PORTABLE Then
ElseIf File.Exists(oldPath) Then
xDom.Load(oldPath)
#End If
Else
Exit Sub
End If
Dim xDom As New XmlDocument()
xDom.Load(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName)
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
@@ -193,19 +232,24 @@ 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
#Region "Private Methods"
Private Function GetContentFromPersistString(ByVal persistString As String) As IDockContent
' pnlLayout.xml persistence XML fix for refactoring to mRemoteNG
If (persistString.StartsWith("mRemote.")) Then
persistString = persistString.Replace("mRemote.", "mRemoteNG.")
End If
Try
If persistString = GetType(UI.Window.Config).ToString Then
Return Windows.configPanel
@@ -227,8 +271,7 @@ Namespace Config
Return Windows.screenshotPanel
End If
Catch ex As Exception
App.Runtime.log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
'mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetContentFromPersistString failed" & vbNewLine & ex.Message, True)
Log.Error("GetContentFromPersistString failed" & vbNewLine & ex.Message)
End Try
Return Nothing

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,52 +1,42 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.IO
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
If .WindowState = FormWindowState.Normal Then
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
Else
My.Settings.MainFormLocation = .RestoreBounds.Location
My.Settings.MainFormSize = .RestoreBounds.Size
With frmMain
Dim windowPlacement As New Tools.WindowPlacement(frmMain)
If .WindowState = FormWindowState.Minimized And windowPlacement.RestoreToMaximized Then
.Opacity = 0
.WindowState = FormWindowState.Maximized
End If
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
If Not .WindowState = FormWindowState.Normal Then
My.Settings.MainFormRestoreLocation = .RestoreBounds.Location
My.Settings.MainFormRestoreSize = .RestoreBounds.Size
End If
My.Settings.MainFormState = .WindowState
My.Settings.MainFormKiosk = Tools.Misc.Fullscreen.FullscreenActive
My.Settings.MainFormKiosk = .Fullscreen.Value
My.Settings.FirstStart = False
My.Settings.ResetPanels = False
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
@@ -55,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
@@ -68,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
@@ -78,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
@@ -90,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

@@ -0,0 +1,9 @@
Namespace Config
Public Enum ConfirmClose
Unspecified = 0
Never = 1
[Exit] = 2
Multiple = 3
All = 4
End Enum
End Namespace

View File

@@ -0,0 +1,243 @@
Imports System.ComponentModel
Imports System.Management
Imports mRemoteNG.Messages
Imports Microsoft.Win32
Imports mRemoteNG.Connection.Protocol
Imports mRemoteNG.My
Imports mRemoteNG.App.Runtime
Imports System.Security.Principal
Namespace Config
Public Class PuttySessions
Private Const PuttySessionsKey As String = "Software\SimonTatham\PuTTY\Sessions"
Private Shared _rootTreeNode As TreeNode
Private Shared _eventWatcher As ManagementEventWatcher
Private Delegate Sub AddSessionsToTreeDelegate()
Public Shared Sub AddSessionsToTree()
Dim treeView As TreeView = Tree.Node.TreeView
If treeView Is Nothing Then Return
If treeView.InvokeRequired Then
treeView.Invoke(New AddSessionsToTreeDelegate(AddressOf AddSessionsToTree))
Return
End If
Dim savedSessions As New List(Of Connection.Info)(LoadSessions())
If savedSessions Is Nothing OrElse savedSessions.Count = 0 Then Return
Dim puttyRootInfo As New Root.PuttySessions.Info()
If String.IsNullOrEmpty(My.Settings.PuttySavedSessionsName) Then
puttyRootInfo.Name = Language.strPuttySavedSessionsRootName
Else
puttyRootInfo.Name = My.Settings.PuttySavedSessionsName
End If
If String.IsNullOrEmpty(My.Settings.PuttySavedSessionsPanel) Then
puttyRootInfo.Panel = Language.strGeneral
Else
puttyRootInfo.Panel = My.Settings.PuttySavedSessionsPanel
End If
Dim inUpdate As Boolean = False
If _rootTreeNode Is Nothing Then
_rootTreeNode = New TreeNode
_rootTreeNode.Name = puttyRootInfo.Name
_rootTreeNode.Text = puttyRootInfo.Name
_rootTreeNode.Tag = puttyRootInfo
_rootTreeNode.ImageIndex = Images.Enums.TreeImage.PuttySessions
_rootTreeNode.SelectedImageIndex = Images.Enums.TreeImage.PuttySessions
End If
If Not treeView.Nodes.Contains(_rootTreeNode) Then
If Not inUpdate Then
treeView.BeginUpdate()
inUpdate = True
End If
treeView.Nodes.Add(_rootTreeNode)
End If
puttyRootInfo.TreeNode = _rootTreeNode
Dim newTreeNodes As New List(Of TreeNode)
For Each sessionInfo As Connection.PuttySession.Info In savedSessions
Dim treeNode As TreeNode
Dim isNewNode As Boolean
If _rootTreeNode.Nodes.ContainsKey(sessionInfo.Name) Then
treeNode = _rootTreeNode.Nodes.Item(sessionInfo.Name)
isNewNode = False
Else
treeNode = Tree.Node.AddNode(Tree.Node.Type.PuttySession, sessionInfo.Name)
If treeNode Is Nothing Then Continue For
treeNode.Name = treeNode.Text
treeNode.ImageIndex = Images.Enums.TreeImage.ConnectionClosed
treeNode.SelectedImageIndex = Images.Enums.TreeImage.ConnectionClosed
isNewNode = True
End If
sessionInfo.RootPuttySessionsInfo = puttyRootInfo
sessionInfo.TreeNode = treeNode
sessionInfo.Inherit.TurnOffInheritanceCompletely()
treeNode.Tag = sessionInfo
If isNewNode Then newTreeNodes.Add(treeNode)
Next
For Each treeNode As TreeNode In _rootTreeNode.Nodes
If Not savedSessions.Contains(treeNode.Tag) Then
If Not inUpdate Then
treeView.BeginUpdate()
inUpdate = True
End If
_rootTreeNode.Nodes.Remove(treeNode)
End If
Next
If Not newTreeNodes.Count = 0 Then
If Not inUpdate Then
treeView.BeginUpdate()
inUpdate = True
End If
_rootTreeNode.Nodes.AddRange(newTreeNodes.ToArray())
End If
If inUpdate Then
Tree.Node.Sort(_rootTreeNode, SortOrder.Ascending)
_rootTreeNode.Expand()
treeView.EndUpdate()
End If
End Sub
Protected Shared Function GetSessionNames(Optional ByVal raw As Boolean = False) As String()
Dim sessionsKey As RegistryKey = Registry.CurrentUser.OpenSubKey(PuttySessionsKey)
If sessionsKey Is Nothing Then Return New String() {}
Dim sessionNames As New List(Of String)
For Each sessionName As String In sessionsKey.GetSubKeyNames()
If raw Then
sessionNames.Add(sessionName)
Else
sessionNames.Add(Web.HttpUtility.UrlDecode(sessionName.Replace("+", "%2B")))
End If
Next
If raw Then
If Not sessionNames.Contains("Default%20Settings") Then ' Do not localize
sessionNames.Insert(0, "Default%20Settings")
End If
Else
If Not sessionNames.Contains("Default Settings") Then
sessionNames.Insert(0, "Default Settings")
End If
End If
Return sessionNames.ToArray()
End Function
Protected Shared Function LoadSessions() As Connection.PuttySession.Info()
Dim sessionList As New List(Of Connection.PuttySession.Info)
Dim sessionInfo As Connection.Info
For Each sessionName As String In GetSessionNames(True)
sessionInfo = SessionToConnectionInfo(sessionName)
If sessionInfo Is Nothing OrElse String.IsNullOrEmpty(sessionInfo.Hostname) Then Continue For
sessionList.Add(sessionInfo)
Next
Return sessionList.ToArray()
End Function
Protected Shared Function SessionToConnectionInfo(ByVal sessionName As String) As Connection.PuttySession.Info
Dim sessionsKey As RegistryKey = Registry.CurrentUser.OpenSubKey(PuttySessionsKey)
If sessionsKey Is Nothing Then Return Nothing
Dim sessionKey As RegistryKey = sessionsKey.OpenSubKey(sessionName)
If sessionKey Is Nothing Then Return Nothing
sessionName = Web.HttpUtility.UrlDecode(sessionName.Replace("+", "%2B"))
Dim sessionInfo As New Connection.PuttySession.Info
With sessionInfo
.PuttySession = sessionName
.Name = sessionName
.Hostname = sessionKey.GetValue("HostName")
.Username = sessionKey.GetValue("UserName")
Dim protocol As String = sessionKey.GetValue("Protocol")
If protocol Is Nothing Then protocol = "ssh"
Select Case protocol.ToLowerInvariant()
Case "raw"
.Protocol = Protocols.RAW
Case "rlogin"
.Protocol = Protocols.Rlogin
Case "serial"
Return Nothing
Case "ssh"
Dim sshVersionObject As Object = sessionKey.GetValue("SshProt")
If sshVersionObject IsNot Nothing Then
Dim sshVersion As Integer = CType(sshVersionObject, Integer)
If sshVersion >= 2 Then
.Protocol = Protocols.SSH2
Else
.Protocol = Protocols.SSH1
End If
Else
.Protocol = Protocols.SSH2
End If
Case "telnet"
.Protocol = Protocols.Telnet
Case Else
Return Nothing
End Select
.Port = sessionKey.GetValue("PortNumber")
End With
Return sessionInfo
End Function
Public Shared Sub StartWatcher()
If _eventWatcher IsNot Nothing Then Return
Try
Dim currentUserSid As String = WindowsIdentity.GetCurrent().User.Value
Dim key As String = String.Join("\", {currentUserSid, PuttySessionsKey}).Replace("\", "\\")
Dim query As New WqlEventQuery(String.Format("SELECT * FROM RegistryTreeChangeEvent WHERE Hive = 'HKEY_USERS' AND RootPath = '{0}'", key))
_eventWatcher = New ManagementEventWatcher(query)
AddHandler _eventWatcher.EventArrived, AddressOf OnManagementEventArrived
_eventWatcher.Start()
Catch ex As Exception
MessageCollector.AddExceptionMessage("PuttySessions.Watcher.StartWatching() failed.", ex, MessageClass.WarningMsg, True)
End Try
End Sub
Public Shared Sub StopWatcher()
If _eventWatcher Is Nothing Then Return
_eventWatcher.Stop()
_eventWatcher.Dispose()
_eventWatcher = Nothing
End Sub
Private Shared Sub OnManagementEventArrived(ByVal sender As Object, ByVal e As EventArrivedEventArgs)
AddSessionsToTree()
End Sub
Public Class SessionList
Inherits StringConverter
Public Shared ReadOnly Property Names() As String()
Get
Return GetSessionNames()
End Get
End Property
Public Overloads Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
Return New StandardValuesCollection(Names)
End Function
Public Overloads Overrides Function GetStandardValuesExclusive(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
Return True
End Function
Public Overloads Overrides Function GetStandardValuesSupported(ByVal context As ITypeDescriptorContext) As Boolean
Return True
End Function
End Class
End Class
End Namespace

View File

@@ -1,5 +1,5 @@
Imports System.ComponentModel
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class Icon
@@ -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

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
Imports System.Windows.Forms
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class InterfaceControl
@@ -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

@@ -1,5 +1,3 @@
Imports System.Windows.Forms
Namespace Connection
Public Class List
Inherits CollectionBase

View File

@@ -1,6 +1,6 @@
Imports System.Windows.Forms
Imports System.Threading
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Protocol
@@ -17,14 +17,24 @@ Namespace Connection
End Set
End Property
Private _InterfaceControl As Connection.InterfaceControl
Public Property InterfaceControl() As Connection.InterfaceControl
Private WithEvents _connectionWindow As UI.Window.Connection
Public Property ConnectionWindow As UI.Window.Connection
Get
Return Me._InterfaceControl
Return _connectionWindow
End Get
Set(ByVal value As Connection.InterfaceControl)
Me._InterfaceControl = value
Set(value As UI.Window.Connection)
_connectionWindow = value
End Set
End Property
Private _interfaceControl As InterfaceControl
Public Property InterfaceControl() As InterfaceControl
Get
Return _interfaceControl
End Get
Set(ByVal value As InterfaceControl)
_interfaceControl = value
ConnectionWindow = TryCast(_interfaceControl.GetContainerControl(), UI.Window.Connection)
End Set
End Property
@@ -39,12 +49,12 @@ Namespace Connection
End Property
#End Region
Private _Force As mRemote.Connection.Info.Force
Public Property Force() As mRemote.Connection.Info.Force
Private _Force As mRemoteNG.Connection.Info.Force
Public Property Force() As mRemoteNG.Connection.Info.Force
Get
Return Me._Force
End Get
Set(ByVal value As mRemote.Connection.Info.Force)
Set(ByVal value As mRemoteNG.Connection.Info.Force)
Me._Force = value
End Set
End Property
@@ -58,26 +68,38 @@ 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
Public Overridable Sub ResizeBegin(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.ResizeBegin
End Sub
Public Overridable Sub Resize(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.Resize
End Sub
Public Overridable Sub ResizeEnd(ByVal sender As System.Object, ByVal e As EventArgs) Handles _connectionWindow.ResizeEnd
End Sub
Public Overridable Function SetProps() As Boolean
Try
Me._InterfaceControl.Parent.Tag = Me._InterfaceControl
Me._InterfaceControl.Show()
Me._interfaceControl.Parent.Tag = Me._interfaceControl
Me._interfaceControl.Show()
If Me._Control IsNot Nothing Then
Me._Control.Name = Me._Name
Me._Control.Parent = Me._InterfaceControl
Me._Control.Location = Me._InterfaceControl.Location
Me._Control.Parent = Me._interfaceControl
Me._Control.Location = Me._interfaceControl.Location
Me._Control.Size = Me.InterfaceControl.Size
Me._Control.Anchor = Me._InterfaceControl.Anchor
Me._Control.Anchor = Me._interfaceControl.Anchor
End If
Return True
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
@@ -92,12 +114,9 @@ Namespace Connection
Me.Close()
End Sub
Public Overridable Sub Resize()
End Sub
Public Overridable Sub Close()
Dim t As New Thread(AddressOf CloseBG)
t.SetApartmentState(Threading.ApartmentState.STA)
t.IsBackground = True
t.Start()
End Sub
@@ -112,7 +131,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 +145,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,3 @@
Imports System.Windows.Forms
Imports mRemote.App.Runtime
Namespace Connection
Namespace Protocol
Public Class HTTP

View File

@@ -1,6 +1,6 @@
Imports System.Windows.Forms
Imports mRemote.App.Runtime
Imports System.ComponentModel
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -26,7 +26,7 @@ Namespace Connection
NewExtended()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create new Connection.Protocol.HTTPBase" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpConnectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -55,16 +55,16 @@ Namespace Connection
Dim objWebBrowser As WebBrowser = TryCast(wBrowser, WebBrowser)
Dim objAxWebBrowser As SHDocVw.WebBrowser = DirectCast(objWebBrowser.ActiveXInstance, SHDocVw.WebBrowser)
objWebBrowser.AllowWebBrowserDrop = False
objWebBrowser.ScrollBarsEnabled = True
AddHandler objWebBrowser.Navigated, AddressOf wBrowser_Navigated
AddHandler objWebBrowser.DocumentTitleChanged, AddressOf wBrowser_DocumentTitleChanged
AddHandler objAxWebBrowser.NewWindow3, AddressOf wBrowser_NewWindow3
End If
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't SetProps (Connection.Protocol.HTTPBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -107,7 +107,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect (Connection.Protocol.HTTPBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strHttpConnectFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -118,8 +118,14 @@ Namespace Connection
#End Region
#Region "Events"
Private Sub gex_CreateWindow(ByVal sender As Object, ByVal e As Skybound.Gecko.GeckoCreateWindowEventArgs)
e.WebBrowser = Me.wBrowser
Private Sub wBrowser_Navigated(sender As Object, e As System.Windows.Forms.WebBrowserNavigatedEventArgs)
Dim objWebBrowser As WebBrowser = TryCast(wBrowser, WebBrowser)
If objWebBrowser Is Nothing Then Return
' This can only be set once the WebBrowser control is shown, it will throw a COM exception otherwise.
objWebBrowser.AllowWebBrowserDrop = False
RemoveHandler objWebBrowser.Navigated, AddressOf wBrowser_Navigated
End Sub
Private Sub wBrowser_NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, ByVal dwFlags As Long, ByVal bstrUrlContext As String, ByVal bstrUrl As String)
@@ -163,20 +169,21 @@ Namespace Connection
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "wBrowser_DocumentTitleChanged (Connection.Protocol.HTTPBase) failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.WarningMsg, My.Language.strHttpDocumentTileChangeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Enums"
Public Enum RenderingEngine
<Description("Internet Explorer")> _
<LocalizedDescription("strHttpInternetExplorer")> _
IE = 1
<Description("Gecko (Firefox)")> _
<LocalizedDescription("strHttpGecko")> _
Gecko = 2
End Enum
Private Enum NWMF
' ReSharper disable InconsistentNaming
NWMF_UNLOADING = &H1
NWMF_USERINITED = &H2
NWMF_FIRST = &H4
@@ -191,6 +198,7 @@ Namespace Connection
NWMF_SUGGESTWINDOW = &H40000
NWMF_SUGGESTTAB = &H80000
NWMF_INACTIVETAB = &H100000
' ReSharper restore InconsistentNaming
End Enum
#End Region
End Class

View File

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

View File

@@ -1,7 +1,7 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Threading
Imports AxWFICALib
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -18,7 +18,7 @@ Namespace Connection
Try
Me.Control = New AxICAClient
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create new Connection.Protocol.ICA" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaControlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -45,13 +45,37 @@ Namespace Connection
Me.SetSecurity()
'Disable hotkeys for international users
ICA.Hotkey1Shift = Nothing
ICA.Hotkey1Char = Nothing
ICA.Hotkey2Shift = Nothing
ICA.Hotkey2Char = Nothing
ICA.Hotkey3Shift = Nothing
ICA.Hotkey3Char = Nothing
ICA.Hotkey4Shift = Nothing
ICA.Hotkey4Char = Nothing
ICA.Hotkey5Shift = Nothing
ICA.Hotkey5Char = Nothing
ICA.Hotkey6Shift = Nothing
ICA.Hotkey6Char = Nothing
ICA.Hotkey7Shift = Nothing
ICA.Hotkey7Char = Nothing
ICA.Hotkey8Shift = Nothing
ICA.Hotkey8Char = Nothing
ICA.Hotkey9Shift = Nothing
ICA.Hotkey9Char = Nothing
ICA.Hotkey10Shift = Nothing
ICA.Hotkey10Char = Nothing
ICA.Hotkey11Shift = Nothing
ICA.Hotkey11Char = Nothing
ICA.PersistentCacheEnabled = Info.CacheBitmaps
ICA.Title = Info.Name
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't SetProps (Connection.Protocol.ICA)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -64,7 +88,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Opening connection failed!" & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -110,7 +134,7 @@ Namespace Connection
ICA.Domain = _dom
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ICA SetCredentials failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetCredentialsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -132,10 +156,11 @@ Namespace Connection
ICA.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, Screen.FromControl(frmMain).Bounds.Width, Screen.FromControl(frmMain).Bounds.Height, 0)
ICA.FullScreenWindow()
Case Else
ICA.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, RDP.Resolutions.Items(Int(Info.Resolution)).Width, RDP.Resolutions.Items(Int(Info.Resolution)).Height, 0)
Dim resolution As Rectangle = RDP.GetResolutionRectangle(Info.Resolution)
ICA.SetWindowSize(WFICALib.ICAWindowType.WindowTypeClient, resolution.Width, resolution.Height, 0)
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ICA SetResolution failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetResolutionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -143,6 +168,8 @@ Namespace Connection
Select Case Info.Colors
Case RDP.RDPColors.Colors256
ICA.SetProp("DesiredColor", 2)
Case RDP.RDPColors.Colors15Bit
ICA.SetProp("DesiredColor", 4)
Case RDP.RDPColors.Colors16Bit
ICA.SetProp("DesiredColor", 4)
Case Else
@@ -174,7 +201,7 @@ Namespace Connection
AddHandler ICA.OnConnectFailed, AddressOf ICAEvent_OnConnectFailed
AddHandler ICA.OnDisconnect, AddressOf ICAEvent_OnDisconnect
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ICA SetEventHandlers failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIcaSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -229,15 +256,15 @@ Namespace Connection
End Enum
Public Enum EncryptionStrength
<Description("Basic")> _
<LocalizedDescription("strEncBasic")> _
EncrBasic = 1
<Description("128 Bit (logon only)")> _
<LocalizedDescription("strEnc128BitLogonOnly")> _
Encr128BitLogonOnly = 127
<Description("40 Bit")> _
<LocalizedDescription("strEnc40Bit")> _
Encr40Bit = 40
<Description("56 Bit")> _
<LocalizedDescription("strEnc56Bit")> _
Encr56Bit = 56
<Description("128 Bit")> _
<LocalizedDescription("strEnc128Bit")> _
Encr128Bit = 128
End Enum
#End Region

View File

@@ -1,8 +1,7 @@
Imports mRemote.App.Native
Imports mRemoteNG.App.Native
Imports System.Threading
Imports Microsoft.Win32
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools
Namespace Connection
Namespace Protocol
@@ -12,7 +11,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"
@@ -88,6 +87,7 @@ Namespace Connection
Return Nothing
End If
IntAppProcessStartInfo.UseShellExecute = True
IntAppProcessStartInfo.FileName = _IntAppPath
IntAppProcessStartInfo.Arguments = Arguments
@@ -112,23 +112,22 @@ Namespace Connection
IntAppHandle = IntAppProcess.MainWindowHandle
MessageCollector.AddMessage(Messages.MessageClass.InformationMsg, My.Language.strIntAppStuff, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "--- IntApp Stuff ---", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Handle: " & IntAppHandle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Title: " & IntAppProcess.MainWindowTitle, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Handle: " & 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)
ShowWindow(Me.IntAppHandle, SW_SHOWMAXIMIZED)
Resize()
Resize(Me, New EventArgs)
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect" & vbNewLine & ex.Message)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -138,15 +137,16 @@ Namespace Connection
Try
SetForegroundWindow(IntAppHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Focus (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Overrides Sub Resize()
Public Overrides Sub Resize(ByVal sender As Object, ByVal e As EventArgs)
Try
If InterfaceControl.Size = Size.Empty Then Return
MoveWindow(IntAppHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), Me.InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), Me.InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Resize (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -156,7 +156,7 @@ Namespace Connection
IntAppProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Killing IntApp Process failed (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppKillFailed & vbNewLine & ex.Message, True)
End Try
Try
@@ -164,7 +164,7 @@ Namespace Connection
IntAppProcess.Dispose()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Dispose of IntApp process failed (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strIntAppDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()

View File

@@ -1,29 +1,30 @@
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
Public Enum Protocols
<Description("RDP")> _
<LocalizedDescription("strRDP")> _
RDP = 0
<Description("VNC")> _
<LocalizedDescription("strVnc")> _
VNC = 1
<Description("SSH1")> _
<LocalizedDescription("strSsh1")> _
SSH1 = 2
<Description("SSH2")> _
<LocalizedDescription("strSsh2")> _
SSH2 = 3
<Description("Telnet")> _
<LocalizedDescription("strTelnet")> _
Telnet = 4
<Description("Rlogin")> _
<LocalizedDescription("strRlogin")> _
Rlogin = 5
<Description("RAW")> _
<LocalizedDescription("strRAW")> _
RAW = 6
<Description("HTTP")> _
<LocalizedDescription("strHttp")> _
HTTP = 7
<Description("HTTPS")> _
<LocalizedDescription("strHttps")> _
HTTPS = 8
<Description("ICA")> _
<LocalizedDescription("strICA")> _
ICA = 9
<Description("Ext. App")> _
<LocalizedDescription("strExtApp")> _
IntApp = 20
<Browsable(False)> _
NONE = 999

View File

@@ -1,8 +1,13 @@
Imports mRemote.App.Native
Imports System.Runtime.InteropServices
Imports System.ComponentModel
Imports mRemoteNG.Messages
Imports mRemoteNG.App.Native
Imports System.Threading
Imports Microsoft.Win32
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Text.RegularExpressions
Imports mRemoteNG.Tools
Namespace Connection
Namespace Protocol
@@ -14,6 +19,7 @@ Namespace Connection
#End Region
#Region "Private Properties"
Dim _isPuttyNg As Boolean
#End Region
#Region "Public Properties"
@@ -67,18 +73,6 @@ Namespace Connection
End Set
End Property
'Private borderWidth As Integer = frmMain.Size.Width - frmMain.ClientSize.Width
'Private borderHeight As Integer = frmMain.Size.Height - frmMain.ClientSize.Height
Private Shared _BorderSize As Size
Public Shared Property BorderSize() As Size
Get
Return _BorderSize
End Get
Set(ByVal value As Size)
_BorderSize = value
End Set
End Property
Public ReadOnly Property Focused() As Boolean
Get
If GetForegroundWindow() = PuttyHandle Then
@@ -103,99 +97,115 @@ Namespace Connection
Public Overrides Function Connect() As Boolean
Try
PuttyProcess = New Process
_isPuttyNg = IsFilePuttyNg(PuttyPath)
PuttyProcess = New Process
With PuttyProcess.StartInfo
.UseShellExecute = False
.FileName = _PuttyPath
Select Case Me._PuttyProtocol
Case Putty_Protocol.raw
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.rlogin
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.ssh
Dim UserArg As String = ""
Dim PassArg As String = ""
Dim arguments As New CommandLineArguments
arguments.EscapeForShell = False
If My.Settings.EmptyCredentials = "windows" Then
UserArg = " -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) & """"
arguments.Add("-load", InterfaceControl.Info.PuttySession)
If Not TypeOf InterfaceControl.Info Is PuttySession.Info Then
arguments.Add("-" & _PuttyProtocol.ToString)
If _PuttyProtocol = Putty_Protocol.ssh Then
Dim username As String = ""
Dim password As String = ""
If Not String.IsNullOrEmpty(InterfaceControl.Info.Username) Then
username = InterfaceControl.Info.Username
Else
If My.Settings.EmptyCredentials = "windows" Then
username = Environment.UserName
ElseIf My.Settings.EmptyCredentials = "custom" Then
username = My.Settings.DefaultUsername
End If
End If
If Me.InterfaceControl.Info.Username <> "" Then
UserArg = " -l """ & Me.InterfaceControl.Info.Username & """"
If Not String.IsNullOrEmpty(InterfaceControl.Info.Password) Then
password = InterfaceControl.Info.Password
Else
If My.Settings.EmptyCredentials = "custom" Then
password = Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey)
End If
End If
If Me.InterfaceControl.Info.Password <> "" Then
PassArg = " -pw """ & Me.InterfaceControl.Info.Password & """"
arguments.Add("-" & _PuttySSHVersion)
If Not String.IsNullOrEmpty(username) Then
arguments.Add("-l", username)
End If
If Not String.IsNullOrEmpty(password) Then
arguments.Add("-pw", password)
End If
End If
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -" & Me._PuttySSHVersion & UserArg & PassArg & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.telnet
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.serial
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
End Select
arguments.Add("-P", InterfaceControl.Info.Port.ToString)
arguments.Add(InterfaceControl.Info.Hostname)
End If
'REMOVE IN RELEASE!
'mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Arguments: " & .Arguments, True)
If _isPuttyNg Then
arguments.Add("-hwndparent", InterfaceControl.Handle.ToString())
End If
.Arguments = arguments.ToString
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, "--- PuTTY Stuff ---", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Handle: " & PuttyHandle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Title: " & PuttyProcess.MainWindowTitle, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "Panel Handle: " & Me.InterfaceControl.Parent.Handle.ToString, True)
SetParent(PuttyHandle, InterfaceControl.Parent.Handle)
ShowWindow(PuttyHandle, SW_SHOWMAXIMIZED)
Resize()
Resize(Me, New EventArgs)
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect" & vbNewLine & ex.Message)
MessageCollector.AddMessage(MessageClass.ErrorMsg, My.Language.strPuttyConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
Public Overrides Sub Focus()
Try
'SetForegroundWindow(PuttyHandle)
If ConnectionWindow.InTabDrag Then Return
SetForegroundWindow(PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Focus (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Overrides Sub Resize()
Public Overrides Sub Resize(ByVal sender As Object, ByVal e As EventArgs)
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 InterfaceControl.Size = Size.Empty Then Return
MoveWindow(PuttyHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Resize (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -205,13 +215,13 @@ Namespace Connection
PuttyProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Killing Putty Process failed (Connection.Protocol.PuttyBase)" & 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, "Dispose of Putty process failed (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()
@@ -222,47 +232,21 @@ Namespace Connection
PostMessage(Me.PuttyHandle, WM_SYSCOMMAND, IDM_RECONF, 0)
SetForegroundWindow(Me.PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "ShowSettingsDialog failed (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strPuttyShowSettingsDialogFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Public Shared Methods"
Public Shared Function GetSessions() As Array
Public Shared Function IsFilePuttyNg(file As String) As Boolean
Dim isPuttyNg As Boolean
Try
Dim regKey As RegistryKey
regKey = Registry.CurrentUser.OpenSubKey("Software\SimonTatham\PuTTY\Sessions")
Dim arrKeys() As String
arrKeys = regKey.GetSubKeyNames()
Array.Resize(arrKeys, arrKeys.Length + 1)
arrKeys(arrKeys.Length - 1) = "Default Settings"
For i As Integer = 0 To arrKeys.Length - 1
arrKeys(i) = System.Web.HttpUtility.UrlDecode(arrKeys(i))
Next
Return arrKeys
Catch ex As Exception
App.Runtime.mC.AddMessage(Messages.MessageClass.WarningMsg, "Couldn't get Putty sessions" & vbNewLine & ex.Message, True)
Return Nothing
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
Dim pSI As New ProcessStartInfo
pSI.FileName = PuttyPath
p = Process.Start(pSI)
p.WaitForExit()
mRemote.Connection.PuttySession.PuttySessions = GetSessions()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Start Putty (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Enums"
@@ -279,7 +263,6 @@ Namespace Connection
ssh2 = 2
End Enum
#End Region
End Class
End Namespace
End Namespace

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
Imports mRemote.App.Runtime
Imports VncSharp
Imports mRemoteNG.App.Runtime
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -105,14 +105,14 @@ Namespace Connection
' VNC.RestrictPixel = False
'End If
'VNC.ConnectingText = Language.Base.Connecting & " (SmartCode VNC viewer)"
'VNC.DisconnectedText = Language.Base.Disconnected
'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, "VNC SetProps failed" & 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, "Opening connection failed" & 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, "VNC Disconnect failed" & 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, "VNC SendSpecialKeys failed" & 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, "VNC ToggleSmartSize failed" & 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, "VNC ToggleViewOnly failed" & 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, "VNC StartChat failed" & 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, "VNC RefreshScreen failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncRefreshFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -207,11 +207,12 @@ Namespace Connection
Try
AddHandler VNC.ConnectComplete, AddressOf VNCEvent_Connected
AddHandler VNC.ConnectionLost, AddressOf VNCEvent_Disconnected
AddHandler mRemoteNG.frmMain.clipboardchange, AddressOf VNCEvent_ClipboardChanged
If Not String.IsNullOrEmpty(Info.Password) Then
VNC.GetPassword = AddressOf VNCEvent_Authenticate
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC SetEventHandlers failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strVncSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -227,6 +228,10 @@ Namespace Connection
MyBase.Close()
End Sub
Private Sub VNCEvent_ClipboardChanged()
Me.VNC.FillServerClipboard()
End Sub
Private Function VNCEvent_Authenticate() As String
Return Info.Password
End Function
@@ -243,7 +248,7 @@ Namespace Connection
End Enum
Public Enum Compression
<Description(Language.Base.NoCompression)> _
<LocalizedDescription("strNoCompression")> _
CompNone = 99
<Description("0")> _
Comp0 = 0
@@ -287,36 +292,36 @@ Namespace Connection
End Enum
Public Enum AuthMode
<Description("VNC")> _
<LocalizedDescription("VNC")> _
AuthVNC
<Description("Windows")> _
<LocalizedDescription("Windows")> _
AuthWin
End Enum
Public Enum ProxyType
<Description(Language.Base.None)> _
<LocalizedDescription("strNone")> _
ProxyNone
<Description("HTTP")> _
<LocalizedDescription("strHttp")> _
ProxyHTTP
<Description("Socks 5")> _
<LocalizedDescription("strSocks5")> _
ProxySocks5
<Description("Ultra VNC Repeater")> _
<LocalizedDescription("strUltraVncRepeater")> _
ProxyUltra
End Enum
Public Enum Colors
<Description(Language.Base.Normal)> _
<LocalizedDescription("strNormal")> _
ColNormal
<Description("8-bit")> _
Col8Bit
End Enum
Public Enum SmartSizeMode
<Description(Language.Base.NoSmartSize)> _
<LocalizedDescription("strNoSmartSize")> _
SmartSNo
<Description(Language.Base.Free)> _
<LocalizedDescription("strFree")> _
SmartSFree
<Description(Language.Base.Aspect)> _
<LocalizedDescription("strAspect")> _
SmartSAspect
End Enum
#End Region

View File

@@ -1,21 +0,0 @@
Imports System.ComponentModel
Namespace Connection
Public Class PuttySession
Inherits StringConverter
Public Shared PuttySessions As String() = New String() {}
Public Overloads Overrides Function GetStandardValues(ByVal context As System.ComponentModel.ITypeDescriptorContext) As System.ComponentModel.TypeConverter.StandardValuesCollection
Return New StandardValuesCollection(PuttySessions)
End Function
Public Overloads Overrides Function GetStandardValuesExclusive(ByVal context As System.ComponentModel.ITypeDescriptorContext) As Boolean
Return True
End Function
Public Overloads Overrides Function GetStandardValuesSupported(ByVal context As ITypeDescriptorContext) As Boolean
Return True
End Function
End Class
End Namespace

View File

@@ -1,4 +1,4 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class QuickConnect
@@ -13,7 +13,7 @@ Namespace Connection
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickConnect History Exists failed" & 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, "QuickConnect History Add failed" & vbNewLine & ex.Message, True)
MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, My.Language.strQuickConnectAddFailed & vbNewLine & ex.Message, True)
End Try
End Sub
End Class

View File

@@ -0,0 +1,121 @@
Imports System.ComponentModel
Imports mRemoteNG.Messages
Imports mRemoteNG.Tools.LocalizedAttributes
Imports mRemoteNG.My
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools
Namespace Connection
Namespace PuttySession
Public Class Info
Inherits Connection.Info
Implements IComponent
#Region "Commands"
<Command(),
LocalizedDisplayName("strPuttySessionSettings")> _
Public Sub SessionSettings()
Try
Dim puttyProcess As New PuttyProcessController
If Not puttyProcess.Start() Then Return
If puttyProcess.SelectListBoxItem(PuttySession) Then
puttyProcess.ClickButton("&Load")
End If
puttyProcess.SetControlText("Button", "&Cancel", "&Close")
puttyProcess.SetControlVisible("Button", "&Open", False)
puttyProcess.WaitForExit()
Catch ex As Exception
MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.strErrorCouldNotLaunchPutty & vbNewLine & ex.Message, False)
End Try
End Sub
#End Region
#Region "Properties"
<Browsable(False)> _
Public Property RootPuttySessionsInfo() As Root.PuttySessions.Info
<[ReadOnly](True)> _
Public Overrides Property PuttySession() As String
<[ReadOnly](True)> _
Public Overrides Property Name() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property Description() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property Icon() As String
Get
Return "PuTTY"
End Get
Set(value As String)
End Set
End Property
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property Panel() As String
Get
Return RootPuttySessionsInfo.Panel
End Get
Set(value As String)
End Set
End Property
<[ReadOnly](True)> _
Public Overrides Property Hostname() As String
<[ReadOnly](True)> _
Public Overrides Property Username() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property Password() As String
<[ReadOnly](True)> _
Public Overrides Property Protocol() As Protocol.Protocols
<[ReadOnly](True)> _
Public Overrides Property Port() As Integer
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property PreExtApp() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property PostExtApp() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property MacAddress() As String
<[ReadOnly](True), _
Browsable(False)> _
Public Overrides Property UserField() As String
#End Region
#Region "IComponent"
Public Property Site() As ISite Implements IComponent.Site
Get
Return New PropertyGridCommandSite(Me)
End Get
Set(value As ISite)
Throw New NotImplementedException()
End Set
End Property
Public Sub Dispose() Implements IDisposable.Dispose
RaiseEvent Disposed(Me, EventArgs.Empty)
End Sub
Public Event Disposed As EventHandler Implements IComponent.Disposed
#End Region
End Class
End Namespace
End Namespace

View File

@@ -1,27 +1,26 @@
Imports System.Windows.Forms
Imports System.ComponentModel
Imports mRemote.Tools.Misc.PropertyGridCategory
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Container
<DefaultProperty("Name")> _
Public Class Info
#Region "Properties"
Private _Name As String = "New Container"
<Category(Category1 & "Display"), _
Browsable(True), _
[ReadOnly](False), _
Bindable(False), _
DefaultValue(""), _
DesignOnly(False), _
DisplayName(Language.Base.Props_Name), _
Description("Enter a name"), _
Attributes.Container()> _
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
[ReadOnly](False), _
Bindable(False), _
DefaultValue(""), _
DesignOnly(False), _
LocalizedDisplayName("strPropertyNameName"), _
LocalizedDescription("strPropertyDescriptionName"), _
Attributes.Container()> _
Public Property Name() As String
Get
Return Me._ConnectionInfo.Name
Return ConnectionInfo.Name
End Get
Set(ByVal value As String)
Me._ConnectionInfo.Name = value
ConnectionInfo.Name = value
End Set
End Property
@@ -81,7 +80,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

@@ -1,5 +1,3 @@
Imports System.Windows.Forms
Namespace Container
Public Class List
Inherits CollectionBase

View File

@@ -1,15 +1,14 @@
Imports System.ComponentModel
Imports mRemote.Tools.Misc.PropertyGridCategory
Imports mRemote.Tools.Misc.PropertyGridValue
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Credential
Public Class Info
#Region "1 Display"
Private _Name As String
<Category(Category1 & "Display"), _
Browsable(True), _
DisplayName(Language.Base.Props_Name), _
Description("Enter a name")> _
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameName"), _
LocalizedDescription("strPropertyDescriptionName")> _
Public Property Name() As String
Get
Return _Name
@@ -20,10 +19,10 @@ Namespace Credential
End Property
Private _Description As String
<Category(Category1 & "Description"), _
Browsable(True), _
DisplayName(Language.Base.Props_Description), _
Description("Enter a description")> _
<LocalizedCategory("strCategoryDisplay", 1), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameDescription"), _
LocalizedDescription("strPropertyDescriptionDescription")> _
Public Property Description() As String
Get
Return _Description
@@ -35,10 +34,10 @@ Namespace Credential
#End Region
#Region "2 Credentials"
Private _Username As String
<Category(Category2 & "Credentials"), _
<LocalizedCategory("strCategoryCredentials", 2), _
Browsable(True), _
DisplayName(Language.Base.Props_Username), _
Description("Enter a username")> _
LocalizedDisplayName("strPropertyNameUsername"), _
LocalizedDescription("strPropertyDescriptionUsername")> _
Public Property Username() As String
Get
Return _Username
@@ -49,10 +48,10 @@ Namespace Credential
End Property
Private _Password As String
<Category(Category2 & "Credentials"), _
<LocalizedCategory("strCategoryCredentials", 2), _
Browsable(True), _
DisplayName(Language.Base.Props_Password), _
Description("Enter a password"), _
LocalizedDisplayName("strPropertyNamePassword"), _
LocalizedDescription("strPropertyDescriptionPassword"), _
PasswordPropertyText(True)> _
Public Property Password() As String
Get
@@ -64,10 +63,10 @@ Namespace Credential
End Property
Private _Domain As String
<Category(Category2 & "Credentials"), _
<LocalizedCategory("strCategoryCredentials", 2), _
Browsable(True), _
DisplayName(Language.Base.Props_Domain), _
Description("Enter a domain")> _
LocalizedDisplayName("strPropertyNameDomain"), _
LocalizedDescription("strPropertyDescriptionDomain")> _
Public Property Domain() As String
Get
Return _Domain

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 = Language.Base.Button_OK
Me.btnOK.Text = My.Language.strButtonOK
Me.btnOK.UseVisualStyleBackColor = True
'
'lblDescription
@@ -55,18 +55,18 @@ Partial Class frmChoosePanel
Me.lblDescription.Name = "lblDescription"
Me.lblDescription.Size = New System.Drawing.Size(229, 29)
Me.lblDescription.TabIndex = 0
Me.lblDescription.Text = Language.Base.SelectAPanel
Me.lblDescription.Text = My.Language.strLabelSelectPanel
'
'btnNew
'
Me.btnNew.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnNew.Image = Global.mRemote.My.Resources.Resources.Panel_Add
Me.btnNew.Image = Global.mRemoteNG.My.Resources.Resources.Panel_Add
Me.btnNew.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnNew.Location = New System.Drawing.Point(10, 44)
Me.btnNew.Name = "btnNew"
Me.btnNew.Size = New System.Drawing.Size(57, 23)
Me.btnNew.TabIndex = 40
Me.btnNew.Text = Language.Base.Button_New
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 = Language.Base.Button_Cancel
Me.btnCancel.Text = My.Language.strButtonCancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'frmChoosePanel
@@ -94,13 +94,13 @@ Partial Class frmChoosePanel
Me.Controls.Add(Me.btnOK)
Me.Controls.Add(Me.cbPanels)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.Icon = Global.mRemote.My.Resources.Resources.Panels_Icon
Me.Icon = Global.mRemoteNG.My.Resources.Resources.Panels_Icon
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmChoosePanel"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = Language.Base.SelectPanel
Me.Text = My.Language.strTitleSelectPanel
Me.ResumeLayout(False)
End Sub

View File

@@ -1,4 +1,4 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Public Class frmChoosePanel
Public Property Panel() As String
@@ -17,18 +17,18 @@ Public Class frmChoosePanel
End Sub
Private Sub ApplyLanguage()
btnOK.Text = Language.Base.Button_OK
lblDescription.Text = Language.Base.SelectAPanel
btnNew.Text = Language.Base.Button_New
btnCancel.Text = Language.Base.Button_Cancel
Text = Language.Base.SelectPanel
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(Language.Base.PanelName & ":", Language.Base.NewPanel, Language.Base.NewPanel)
Dim pnlName As String = InputBox(My.Language.strPanelName & ":", My.Language.strNewPanel, My.Language.strNewPanel)
If pnlName <> "" Then
AddPanel(pnlName)

View File

@@ -23,31 +23,45 @@ Partial Class frmMain
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Dim DockPanelSkin3 As WeifenLuo.WinFormsUI.Docking.DockPanelSkin = New WeifenLuo.WinFormsUI.Docking.DockPanelSkin
Dim AutoHideStripSkin3 As WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin = New WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin
Dim DockPanelGradient7 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient15 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripSkin3 As WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin = New WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin
Dim DockPaneStripGradient3 As WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient
Dim TabGradient16 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient8 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient17 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripToolWindowGradient3 As WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient
Dim TabGradient18 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient19 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient9 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient20 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient21 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelSkin1 As WeifenLuo.WinFormsUI.Docking.DockPanelSkin = New WeifenLuo.WinFormsUI.Docking.DockPanelSkin
Dim AutoHideStripSkin1 As WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin = New WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin
Dim DockPanelGradient1 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient1 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripSkin1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin = New WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin
Dim DockPaneStripGradient1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient
Dim TabGradient2 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient2 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient3 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripToolWindowGradient1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient
Dim TabGradient4 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient5 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient3 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient6 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient7 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.pnlDock = New WeifenLuo.WinFormsUI.Docking.DockPanel
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenFile = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNewConnection = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNewFolder = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileNew = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileLoad = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileSave = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSaveAs = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileImportExport = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromXMLFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromRDPFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromActiveDirectoryToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromPortScanToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator
Me.ExportToXMLFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep3 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileDelete = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileRename = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileDuplicate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep4 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileExit = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewAddConnectionPanel = New System.Windows.Forms.ToolStripMenuItem
@@ -63,6 +77,7 @@ Partial Class frmMain
Me.mMenViewJumpToConnectionsConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToSessionsScreenshots = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToErrorsInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewResetLayout = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewQuickConnectToolbar = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewExtAppsToolbar = New System.Windows.Forms.ToolStripMenuItem
@@ -92,21 +107,27 @@ 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.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
Me.btnQuickyPlay = New System.Windows.Forms.ToolStripSplitButton
Me.mMenQuickyCon = New System.Windows.Forms.ToolStripMenuItem
Me.tsExtAppsToolbar = New System.Windows.Forms.ToolStrip
Me.cMenExtAppsToolbar = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenToolbarShowText = New System.Windows.Forms.ToolStripMenuItem
Me.tmrShowUpdate = New System.Windows.Forms.Timer(Me.components)
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton
Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton
Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton
Me.ToolStripSplitButton1 = New System.Windows.Forms.ToolStripDropDownButton
Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem
Me.tmrAutoSave = New System.Windows.Forms.Timer(Me.components)
Me.mMenViewResetLayout = New System.Windows.Forms.ToolStripMenuItem
Me.msMain.SuspendLayout()
Me.tsContainer.ContentPanel.SuspendLayout()
Me.tsContainer.TopToolStripPanel.SuspendLayout()
Me.tsContainer.SuspendLayout()
Me.tsQuickConnect.SuspendLayout()
Me.cMenExtAppsToolbar.SuspendLayout()
Me.tsQuickConnect.SuspendLayout()
Me.ToolStrip1.SuspendLayout()
Me.SuspendLayout()
'
'pnlDock
@@ -116,54 +137,54 @@ 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, 449)
DockPanelGradient7.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient7.StartColor = System.Drawing.SystemColors.ControlLight
AutoHideStripSkin3.DockStripGradient = DockPanelGradient7
TabGradient15.EndColor = System.Drawing.SystemColors.Control
TabGradient15.StartColor = System.Drawing.SystemColors.Control
TabGradient15.TextColor = System.Drawing.SystemColors.ControlDarkDark
AutoHideStripSkin3.TabGradient = TabGradient15
DockPanelSkin3.AutoHideStripSkin = AutoHideStripSkin3
TabGradient16.EndColor = System.Drawing.SystemColors.ControlLightLight
TabGradient16.StartColor = System.Drawing.SystemColors.ControlLightLight
TabGradient16.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient3.ActiveTabGradient = TabGradient16
DockPanelGradient8.EndColor = System.Drawing.SystemColors.Control
DockPanelGradient8.StartColor = System.Drawing.SystemColors.Control
DockPaneStripGradient3.DockStripGradient = DockPanelGradient8
TabGradient17.EndColor = System.Drawing.SystemColors.ControlLight
TabGradient17.StartColor = System.Drawing.SystemColors.ControlLight
TabGradient17.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient3.InactiveTabGradient = TabGradient17
DockPaneStripSkin3.DocumentGradient = DockPaneStripGradient3
TabGradient18.EndColor = System.Drawing.SystemColors.ActiveCaption
TabGradient18.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient18.StartColor = System.Drawing.SystemColors.GradientActiveCaption
TabGradient18.TextColor = System.Drawing.SystemColors.ActiveCaptionText
DockPaneStripToolWindowGradient3.ActiveCaptionGradient = TabGradient18
TabGradient19.EndColor = System.Drawing.SystemColors.Control
TabGradient19.StartColor = System.Drawing.SystemColors.Control
TabGradient19.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient3.ActiveTabGradient = TabGradient19
DockPanelGradient9.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient9.StartColor = System.Drawing.SystemColors.ControlLight
DockPaneStripToolWindowGradient3.DockStripGradient = DockPanelGradient9
TabGradient20.EndColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient20.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient20.StartColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient20.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient3.InactiveCaptionGradient = TabGradient20
TabGradient21.EndColor = System.Drawing.Color.Transparent
TabGradient21.StartColor = System.Drawing.Color.Transparent
TabGradient21.TextColor = System.Drawing.SystemColors.ControlDarkDark
DockPaneStripToolWindowGradient3.InactiveTabGradient = TabGradient21
DockPaneStripSkin3.ToolWindowGradient = DockPaneStripToolWindowGradient3
DockPanelSkin3.DockPaneStripSkin = DockPaneStripSkin3
Me.pnlDock.Skin = DockPanelSkin3
Me.pnlDock.Size = New System.Drawing.Size(842, 424)
DockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight
AutoHideStripSkin1.DockStripGradient = DockPanelGradient1
TabGradient1.EndColor = System.Drawing.SystemColors.Control
TabGradient1.StartColor = System.Drawing.SystemColors.Control
TabGradient1.TextColor = System.Drawing.SystemColors.ControlDarkDark
AutoHideStripSkin1.TabGradient = TabGradient1
DockPanelSkin1.AutoHideStripSkin = AutoHideStripSkin1
TabGradient2.EndColor = System.Drawing.SystemColors.ControlLightLight
TabGradient2.StartColor = System.Drawing.SystemColors.ControlLightLight
TabGradient2.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient1.ActiveTabGradient = TabGradient2
DockPanelGradient2.EndColor = System.Drawing.SystemColors.Control
DockPanelGradient2.StartColor = System.Drawing.SystemColors.Control
DockPaneStripGradient1.DockStripGradient = DockPanelGradient2
TabGradient3.EndColor = System.Drawing.SystemColors.ControlLight
TabGradient3.StartColor = System.Drawing.SystemColors.ControlLight
TabGradient3.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient1.InactiveTabGradient = TabGradient3
DockPaneStripSkin1.DocumentGradient = DockPaneStripGradient1
TabGradient4.EndColor = System.Drawing.SystemColors.ActiveCaption
TabGradient4.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient4.StartColor = System.Drawing.SystemColors.GradientActiveCaption
TabGradient4.TextColor = System.Drawing.SystemColors.ActiveCaptionText
DockPaneStripToolWindowGradient1.ActiveCaptionGradient = TabGradient4
TabGradient5.EndColor = System.Drawing.SystemColors.Control
TabGradient5.StartColor = System.Drawing.SystemColors.Control
TabGradient5.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient1.ActiveTabGradient = TabGradient5
DockPanelGradient3.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient3.StartColor = System.Drawing.SystemColors.ControlLight
DockPaneStripToolWindowGradient1.DockStripGradient = DockPanelGradient3
TabGradient6.EndColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient6.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient6.StartColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient6.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient1.InactiveCaptionGradient = TabGradient6
TabGradient7.EndColor = System.Drawing.Color.Transparent
TabGradient7.StartColor = System.Drawing.Color.Transparent
TabGradient7.TextColor = System.Drawing.SystemColors.ControlDarkDark
DockPaneStripToolWindowGradient1.InactiveTabGradient = TabGradient7
DockPaneStripSkin1.ToolWindowGradient = DockPaneStripToolWindowGradient1
DockPanelSkin1.DockPaneStripSkin = DockPaneStripSkin1
Me.pnlDock.Skin = DockPanelSkin1
Me.pnlDock.TabIndex = 13
'
'msMain
@@ -182,60 +203,151 @@ Partial Class frmMain
'
'mMenFile
'
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSep1, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileExit})
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNewConnection, Me.mMenFileNewFolder, Me.mMenFileSep1, Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileImportExport, Me.mMenFileSep3, Me.mMenFileDelete, Me.mMenFileRename, Me.mMenFileDuplicate, Me.mMenFileSep4, Me.mMenFileExit})
Me.mMenFile.Name = "mMenFile"
Me.mMenFile.Size = New System.Drawing.Size(37, 20)
Me.mMenFile.Text = "&File"
'
'mMenFileNew
'mMenFileNewConnection
'
Me.mMenFileNew.Image = Global.mRemote.My.Resources.Resources.Connections_New
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(256, 22)
Me.mMenFileNew.Text = "New Connections"
Me.mMenFileNewConnection.Image = Global.mRemoteNG.My.Resources.Resources.Connection_Add
Me.mMenFileNewConnection.Name = "mMenFileNewConnection"
Me.mMenFileNewConnection.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileNewConnection.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNewConnection.Text = "New Connection"
'
'mMenFileLoad
'mMenFileNewFolder
'
Me.mMenFileLoad.Image = Global.mRemote.My.Resources.Resources.Connections_Load
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(256, 22)
Me.mMenFileLoad.Text = "Open Connections"
Me.mMenFileNewFolder.Image = Global.mRemoteNG.My.Resources.Resources.Folder_Add
Me.mMenFileNewFolder.Name = "mMenFileNewFolder"
Me.mMenFileNewFolder.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.mMenFileNewFolder.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNewFolder.Text = "New Folder"
'
'mMenFileSep1
'
Me.mMenFileSep1.Name = "mMenFileSep1"
Me.mMenFileSep1.Size = New System.Drawing.Size(253, 6)
Me.mMenFileSep1.Size = New System.Drawing.Size(331, 6)
'
'mMenFileNew
'
Me.mMenFileNew.Image = Global.mRemoteNG.My.Resources.Resources.Connections_New
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNew.Text = "New Connection File"
'
'mMenFileLoad
'
Me.mMenFileLoad.Image = Global.mRemoteNG.My.Resources.Resources.Connections_Load
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(334, 22)
Me.mMenFileLoad.Text = "Open Connection File..."
'
'mMenFileSave
'
Me.mMenFileSave.Image = Global.mRemote.My.Resources.Resources.Connections_Save
Me.mMenFileSave.Image = Global.mRemoteNG.My.Resources.Resources.Connections_Save
Me.mMenFileSave.Name = "mMenFileSave"
Me.mMenFileSave.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSave.Size = New System.Drawing.Size(256, 22)
Me.mMenFileSave.Text = "Save Connections"
Me.mMenFileSave.Size = New System.Drawing.Size(334, 22)
Me.mMenFileSave.Text = "Save Connection File"
'
'mMenFileSaveAs
'
Me.mMenFileSaveAs.Image = Global.mRemote.My.Resources.Resources.Connections_SaveAs
Me.mMenFileSaveAs.Image = Global.mRemoteNG.My.Resources.Resources.Connections_SaveAs
Me.mMenFileSaveAs.Name = "mMenFileSaveAs"
Me.mMenFileSaveAs.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSaveAs.Size = New System.Drawing.Size(256, 22)
Me.mMenFileSaveAs.Text = "Save Connections As"
Me.mMenFileSaveAs.Size = New System.Drawing.Size(334, 22)
Me.mMenFileSaveAs.Text = "Save Connection File As..."
'
'mMenFileSep2
'
Me.mMenFileSep2.Name = "mMenFileSep2"
Me.mMenFileSep2.Size = New System.Drawing.Size(253, 6)
Me.mMenFileSep2.Size = New System.Drawing.Size(331, 6)
'
'mMenFileImportExport
'
Me.mMenFileImportExport.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImportFromXMLFileToolStripMenuItem, Me.ImportFromRDPFileToolStripMenuItem, Me.ImportFromActiveDirectoryToolStripMenuItem, Me.ImportFromPortScanToolStripMenuItem, Me.ToolStripSeparator6, Me.ExportToXMLFileToolStripMenuItem})
Me.mMenFileImportExport.Name = "mMenFileImportExport"
Me.mMenFileImportExport.Size = New System.Drawing.Size(334, 22)
Me.mMenFileImportExport.Text = "Import/Export Folder"
Me.mMenFileImportExport.Visible = False
'
'ImportFromXMLFileToolStripMenuItem
'
Me.ImportFromXMLFileToolStripMenuItem.Name = "ImportFromXMLFileToolStripMenuItem"
Me.ImportFromXMLFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromXMLFileToolStripMenuItem.Text = "Import from XML File..."
'
'ImportFromRDPFileToolStripMenuItem
'
Me.ImportFromRDPFileToolStripMenuItem.Name = "ImportFromRDPFileToolStripMenuItem"
Me.ImportFromRDPFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromRDPFileToolStripMenuItem.Text = "Import from RDP File..."
'
'ImportFromActiveDirectoryToolStripMenuItem
'
Me.ImportFromActiveDirectoryToolStripMenuItem.Name = "ImportFromActiveDirectoryToolStripMenuItem"
Me.ImportFromActiveDirectoryToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromActiveDirectoryToolStripMenuItem.Text = "Import from Active Directory..."
'
'ImportFromPortScanToolStripMenuItem
'
Me.ImportFromPortScanToolStripMenuItem.Name = "ImportFromPortScanToolStripMenuItem"
Me.ImportFromPortScanToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromPortScanToolStripMenuItem.Text = "Import from Port Scan..."
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(232, 6)
'
'ExportToXMLFileToolStripMenuItem
'
Me.ExportToXMLFileToolStripMenuItem.Name = "ExportToXMLFileToolStripMenuItem"
Me.ExportToXMLFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ExportToXMLFileToolStripMenuItem.Text = "Export to XML File..."
'
'mMenFileSep3
'
Me.mMenFileSep3.Name = "mMenFileSep3"
Me.mMenFileSep3.Size = New System.Drawing.Size(331, 6)
Me.mMenFileSep3.Visible = False
'
'mMenFileDelete
'
Me.mMenFileDelete.Image = Global.mRemoteNG.My.Resources.Resources.Delete
Me.mMenFileDelete.Name = "mMenFileDelete"
Me.mMenFileDelete.Size = New System.Drawing.Size(334, 22)
Me.mMenFileDelete.Text = "Delete..."
'
'mMenFileRename
'
Me.mMenFileRename.Image = Global.mRemoteNG.My.Resources.Resources.Rename
Me.mMenFileRename.Name = "mMenFileRename"
Me.mMenFileRename.Size = New System.Drawing.Size(334, 22)
Me.mMenFileRename.Text = "Rename"
'
'mMenFileDuplicate
'
Me.mMenFileDuplicate.Image = Global.mRemoteNG.My.Resources.Resources.Connection_Duplicate
Me.mMenFileDuplicate.Name = "mMenFileDuplicate"
Me.mMenFileDuplicate.Size = New System.Drawing.Size(334, 22)
Me.mMenFileDuplicate.Text = "Duplicate"
'
'mMenFileSep4
'
Me.mMenFileSep4.Name = "mMenFileSep4"
Me.mMenFileSep4.Size = New System.Drawing.Size(331, 6)
'
'mMenFileExit
'
Me.mMenFileExit.Image = Global.mRemote.My.Resources.Resources.Quit
Me.mMenFileExit.Image = Global.mRemoteNG.My.Resources.Resources.Quit
Me.mMenFileExit.Name = "mMenFileExit"
Me.mMenFileExit.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileExit.Size = New System.Drawing.Size(256, 22)
Me.mMenFileExit.Size = New System.Drawing.Size(334, 22)
Me.mMenFileExit.Text = "Exit"
'
'mMenView
@@ -247,14 +359,14 @@ Partial Class frmMain
'
'mMenViewAddConnectionPanel
'
Me.mMenViewAddConnectionPanel.Image = Global.mRemote.My.Resources.Resources.Panel_Add
Me.mMenViewAddConnectionPanel.Image = Global.mRemoteNG.My.Resources.Resources.Panel_Add
Me.mMenViewAddConnectionPanel.Name = "mMenViewAddConnectionPanel"
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(228, 22)
Me.mMenViewAddConnectionPanel.Text = "Add Connection Panel"
'
'mMenViewConnectionPanels
'
Me.mMenViewConnectionPanels.Image = Global.mRemote.My.Resources.Resources.Panels
Me.mMenViewConnectionPanels.Image = Global.mRemoteNG.My.Resources.Resources.Panels
Me.mMenViewConnectionPanels.Name = "mMenViewConnectionPanels"
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(228, 22)
Me.mMenViewConnectionPanels.Text = "Connection Panels"
@@ -268,7 +380,7 @@ Partial Class frmMain
'
Me.mMenViewConnections.Checked = True
Me.mMenViewConnections.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConnections.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenViewConnections.Image = Global.mRemoteNG.My.Resources.Resources.Root
Me.mMenViewConnections.Name = "mMenViewConnections"
Me.mMenViewConnections.Size = New System.Drawing.Size(228, 22)
Me.mMenViewConnections.Text = "Connections"
@@ -295,7 +407,7 @@ Partial Class frmMain
'
Me.mMenViewErrorsAndInfos.Checked = True
Me.mMenViewErrorsAndInfos.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewErrorsAndInfos.Image = Global.mRemote.My.Resources.Resources.ErrorsAndInfos
Me.mMenViewErrorsAndInfos.Image = Global.mRemoteNG.My.Resources.Resources.ErrorsAndInfos
Me.mMenViewErrorsAndInfos.Name = "mMenViewErrorsAndInfos"
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(228, 22)
Me.mMenViewErrorsAndInfos.Text = "Errors and Infos"
@@ -315,7 +427,7 @@ Partial Class frmMain
'mMenViewJumpTo
'
Me.mMenViewJumpTo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewJumpToConnectionsConfig, Me.mMenViewJumpToSessionsScreenshots, Me.mMenViewJumpToErrorsInfos})
Me.mMenViewJumpTo.Image = Global.mRemote.My.Resources.Resources.JumpTo
Me.mMenViewJumpTo.Image = Global.mRemoteNG.My.Resources.Resources.JumpTo
Me.mMenViewJumpTo.Name = "mMenViewJumpTo"
Me.mMenViewJumpTo.Size = New System.Drawing.Size(228, 22)
Me.mMenViewJumpTo.Text = "Jump To"
@@ -325,7 +437,7 @@ Partial Class frmMain
Me.mMenViewJumpToConnectionsConfig.Name = "mMenViewJumpToConnectionsConfig"
Me.mMenViewJumpToConnectionsConfig.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Me.mMenViewJumpToConnectionsConfig.Size = New System.Drawing.Size(260, 22)
Me.mMenViewJumpToConnectionsConfig.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToConnectionsConfig.Text = "Connections && Config"
'
'mMenViewJumpToSessionsScreenshots
@@ -333,7 +445,7 @@ Partial Class frmMain
Me.mMenViewJumpToSessionsScreenshots.Name = "mMenViewJumpToSessionsScreenshots"
Me.mMenViewJumpToSessionsScreenshots.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenViewJumpToSessionsScreenshots.Size = New System.Drawing.Size(260, 22)
Me.mMenViewJumpToSessionsScreenshots.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToSessionsScreenshots.Text = "Sessions && Screenshots"
'
'mMenViewJumpToErrorsInfos
@@ -341,9 +453,15 @@ Partial Class frmMain
Me.mMenViewJumpToErrorsInfos.Name = "mMenViewJumpToErrorsInfos"
Me.mMenViewJumpToErrorsInfos.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys)
Me.mMenViewJumpToErrorsInfos.Size = New System.Drawing.Size(260, 22)
Me.mMenViewJumpToErrorsInfos.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToErrorsInfos.Text = "Errors && Infos"
'
'mMenViewResetLayout
'
Me.mMenViewResetLayout.Name = "mMenViewResetLayout"
Me.mMenViewResetLayout.Size = New System.Drawing.Size(228, 22)
Me.mMenViewResetLayout.Text = "Reset Layout"
'
'mMenViewSep2
'
Me.mMenViewSep2.Name = "mMenViewSep2"
@@ -351,7 +469,7 @@ Partial Class frmMain
'
'mMenViewQuickConnectToolbar
'
Me.mMenViewQuickConnectToolbar.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.mMenViewQuickConnectToolbar.Image = Global.mRemoteNG.My.Resources.Resources.Play_Quick
Me.mMenViewQuickConnectToolbar.Name = "mMenViewQuickConnectToolbar"
Me.mMenViewQuickConnectToolbar.Size = New System.Drawing.Size(228, 22)
Me.mMenViewQuickConnectToolbar.Text = "Quick Connect Toolbar"
@@ -370,7 +488,7 @@ Partial Class frmMain
'
'mMenViewFullscreen
'
Me.mMenViewFullscreen.Image = Global.mRemote.My.Resources.Resources.Fullscreen
Me.mMenViewFullscreen.Image = Global.mRemoteNG.My.Resources.Resources.Fullscreen
Me.mMenViewFullscreen.Name = "mMenViewFullscreen"
Me.mMenViewFullscreen.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.mMenViewFullscreen.Size = New System.Drawing.Size(228, 22)
@@ -385,17 +503,18 @@ Partial Class frmMain
'
'mMenToolsSSHTransfer
'
Me.mMenToolsSSHTransfer.Image = Global.mRemote.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Image = Global.mRemoteNG.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Name = "mMenToolsSSHTransfer"
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsSSHTransfer.Text = "SSH File Transfer"
'
'mMenToolsUVNCSC
'
Me.mMenToolsUVNCSC.Image = Global.mRemote.My.Resources.Resources.UVNC_SC
Me.mMenToolsUVNCSC.Image = Global.mRemoteNG.My.Resources.Resources.UVNC_SC
Me.mMenToolsUVNCSC.Name = "mMenToolsUVNCSC"
Me.mMenToolsUVNCSC.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsUVNCSC.Text = "UltraVNC SingleClick"
Me.mMenToolsUVNCSC.Visible = False
'
'mMenToolsExternalApps
'
@@ -406,7 +525,7 @@ Partial Class frmMain
'
'mMenToolsPortScan
'
Me.mMenToolsPortScan.Image = Global.mRemote.My.Resources.Resources.PortScan
Me.mMenToolsPortScan.Image = Global.mRemoteNG.My.Resources.Resources.PortScan
Me.mMenToolsPortScan.Name = "mMenToolsPortScan"
Me.mMenToolsPortScan.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsPortScan.Text = "Port Scan"
@@ -418,7 +537,7 @@ Partial Class frmMain
'
'mMenToolsComponentsCheck
'
Me.mMenToolsComponentsCheck.Image = Global.mRemote.My.Resources.Resources.ComponentsCheck
Me.mMenToolsComponentsCheck.Image = Global.mRemoteNG.My.Resources.Resources.ComponentsCheck
Me.mMenToolsComponentsCheck.Name = "mMenToolsComponentsCheck"
Me.mMenToolsComponentsCheck.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsComponentsCheck.Text = "Components Check"
@@ -460,7 +579,7 @@ Partial Class frmMain
'
'mMenInfoDonate
'
Me.mMenInfoDonate.Image = Global.mRemote.My.Resources.Resources.Donate
Me.mMenInfoDonate.Image = Global.mRemoteNG.My.Resources.Resources.Donate
Me.mMenInfoDonate.Name = "mMenInfoDonate"
Me.mMenInfoDonate.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoDonate.Text = "Donate"
@@ -473,7 +592,7 @@ Partial Class frmMain
'
'mMenInfoBugReport
'
Me.mMenInfoBugReport.Image = Global.mRemote.My.Resources.Resources.Bug
Me.mMenInfoBugReport.Image = Global.mRemoteNG.My.Resources.Resources.Bug
Me.mMenInfoBugReport.Name = "mMenInfoBugReport"
Me.mMenInfoBugReport.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoBugReport.Text = "Report a Bug"
@@ -485,14 +604,14 @@ Partial Class frmMain
'
'mMenInfoAnnouncements
'
Me.mMenInfoAnnouncements.Image = Global.mRemote.My.Resources.Resources.News
Me.mMenInfoAnnouncements.Image = Global.mRemoteNG.My.Resources.Resources.News
Me.mMenInfoAnnouncements.Name = "mMenInfoAnnouncements"
Me.mMenInfoAnnouncements.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoAnnouncements.Text = "Announcements"
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemote.My.Resources.Resources.Update
Me.mMenToolsUpdate.Image = Global.mRemoteNG.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(190, 22)
Me.mMenToolsUpdate.Text = "Check for Updates"
@@ -504,7 +623,7 @@ Partial Class frmMain
'
'mMenInfoAbout
'
Me.mMenInfoAbout.Image = Global.mRemote.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Image = Global.mRemoteNG.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Name = "mMenInfoAbout"
Me.mMenInfoAbout.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoAbout.Text = "About mRemoteNG"
@@ -525,7 +644,7 @@ Partial Class frmMain
Me.cmbQuickConnect.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cmbQuickConnect.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cmbQuickConnect.Name = "cmbQuickConnect"
Me.cmbQuickConnect.Size = New System.Drawing.Size(120, 25)
Me.cmbQuickConnect.Size = New System.Drawing.Size(200, 25)
'
'tsContainer
'
@@ -538,7 +657,7 @@ Partial Class frmMain
'
Me.tsContainer.ContentPanel.Controls.Add(Me.pnlDock)
Me.tsContainer.ContentPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsContainer.ContentPanel.Size = New System.Drawing.Size(842, 449)
Me.tsContainer.ContentPanel.Size = New System.Drawing.Size(842, 424)
Me.tsContainer.Dock = System.Windows.Forms.DockStyle.Fill
'
'tsContainer.LeftToolStripPanel
@@ -558,46 +677,19 @@ 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
'
'tsQuickConnect
'
Me.tsQuickConnect.Dock = System.Windows.Forms.DockStyle.None
Me.tsQuickConnect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblQuickConnect, Me.cmbQuickConnect, Me.btnQuickyPlay, Me.mMenQuickyCon})
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 24)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.Size = New System.Drawing.Size(251, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
'
Me.btnQuickyPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnQuickyPlay.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.btnQuickyPlay.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnQuickyPlay.Name = "btnQuickyPlay"
Me.btnQuickyPlay.Size = New System.Drawing.Size(32, 22)
Me.btnQuickyPlay.Text = "Connect"
'
'mMenQuickyCon
'
Me.mMenQuickyCon.AutoSize = False
Me.mMenQuickyCon.AutoToolTip = True
Me.mMenQuickyCon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenQuickyCon.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenQuickyCon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.mMenQuickyCon.Name = "mMenQuickyCon"
Me.mMenQuickyCon.Size = New System.Drawing.Size(30, 22)
Me.mMenQuickyCon.Text = "Connections"
'
'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.MaximumSize = New System.Drawing.Size(0, 25)
Me.tsExternalTools.TabIndex = 17
'
'cMenExtAppsToolbar
'
@@ -613,30 +705,107 @@ Partial Class frmMain
Me.cMenToolbarShowText.Size = New System.Drawing.Size(128, 22)
Me.cMenToolbarShowText.Text = "Show Text"
'
'tmrShowUpdate
'tsQuickConnect
'
Me.tmrShowUpdate.Enabled = True
Me.tmrShowUpdate.Interval = 5000
Me.tsQuickConnect.Dock = System.Windows.Forms.DockStyle.None
Me.tsQuickConnect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblQuickConnect, Me.cmbQuickConnect, Me.btnQuickyPlay, Me.mMenQuickyCon})
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 24)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.Size = New System.Drawing.Size(331, 25)
Me.tsQuickConnect.MaximumSize = New System.Drawing.Size(0, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
'
Me.btnQuickyPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnQuickyPlay.Image = Global.mRemoteNG.My.Resources.Resources.Play_Quick
Me.btnQuickyPlay.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnQuickyPlay.Name = "btnQuickyPlay"
Me.btnQuickyPlay.Size = New System.Drawing.Size(32, 22)
Me.btnQuickyPlay.Text = "Connect"
'
'mMenQuickyCon
'
Me.mMenQuickyCon.AutoSize = False
Me.mMenQuickyCon.AutoToolTip = True
Me.mMenQuickyCon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenQuickyCon.Image = Global.mRemoteNG.My.Resources.Resources.Root
Me.mMenQuickyCon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.mMenQuickyCon.Name = "mMenQuickyCon"
Me.mMenQuickyCon.Size = New System.Drawing.Size(30, 22)
Me.mMenQuickyCon.Text = "Connections"
'
'ToolStrip1
'
Me.ToolStrip1.Dock = System.Windows.Forms.DockStyle.None
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton1, Me.ToolStripButton2, Me.ToolStripButton3, Me.ToolStripSplitButton1})
Me.ToolStrip1.Location = New System.Drawing.Point(3, 74)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
Me.ToolStrip1.MaximumSize = New System.Drawing.Size(0, 25)
Me.ToolStrip1.TabIndex = 19
Me.ToolStrip1.Visible = False
'
'ToolStripButton1
'
Me.ToolStripButton1.Image = Global.mRemoteNG.My.Resources.Resources.Play
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(72, 22)
Me.ToolStripButton1.Text = "Connect"
'
'ToolStripButton2
'
Me.ToolStripButton2.Image = Global.mRemoteNG.My.Resources.Resources.Screenshot
Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton2.Name = "ToolStripButton2"
Me.ToolStripButton2.Size = New System.Drawing.Size(85, 22)
Me.ToolStripButton2.Text = "Screenshot"
'
'ToolStripButton3
'
Me.ToolStripButton3.Image = Global.mRemoteNG.My.Resources.Resources.Refresh
Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton3.Name = "ToolStripButton3"
Me.ToolStripButton3.Size = New System.Drawing.Size(66, 22)
Me.ToolStripButton3.Text = "Refresh"
'
'ToolStripSplitButton1
'
Me.ToolStripSplitButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.ToolStripSplitButton1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem1, Me.ToolStripMenuItem2})
Me.ToolStripSplitButton1.Image = Global.mRemoteNG.My.Resources.Resources.Keyboard
Me.ToolStripSplitButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripSplitButton1.Name = "ToolStripSplitButton1"
Me.ToolStripSplitButton1.Size = New System.Drawing.Size(29, 22)
Me.ToolStripSplitButton1.Text = "Special Keys"
'
'ToolStripMenuItem1
'
Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1"
Me.ToolStripMenuItem1.Size = New System.Drawing.Size(135, 22)
Me.ToolStripMenuItem1.Text = "Ctrl-Alt-Del"
'
'ToolStripMenuItem2
'
Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2"
Me.ToolStripMenuItem2.Size = New System.Drawing.Size(135, 22)
Me.ToolStripMenuItem2.Text = "Ctrl-Esc"
'
'tmrAutoSave
'
Me.tmrAutoSave.Interval = 10000
'
'mMenViewResetLayout
'
Me.mMenViewResetLayout.Name = "mMenViewResetLayout"
Me.mMenViewResetLayout.Size = New System.Drawing.Size(228, 22)
Me.mMenViewResetLayout.Text = "Reset Layout"
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(842, 523)
Me.Controls.Add(Me.tsContainer)
Me.Icon = Global.mRemote.My.Resources.Resources.mRemote_Icon
Me.Icon = Global.mRemoteNG.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
Me.Name = "frmMain"
Me.Opacity = 0
Me.Text = "mRemoteNG"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()
@@ -645,9 +814,11 @@ Partial Class frmMain
Me.tsContainer.TopToolStripPanel.PerformLayout()
Me.tsContainer.ResumeLayout(False)
Me.tsContainer.PerformLayout()
Me.cMenExtAppsToolbar.ResumeLayout(False)
Me.tsQuickConnect.ResumeLayout(False)
Me.tsQuickConnect.PerformLayout()
Me.cMenExtAppsToolbar.ResumeLayout(False)
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.ResumeLayout(False)
End Sub
@@ -660,10 +831,9 @@ Partial Class frmMain
Friend WithEvents mMenInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNew As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileLoad As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSave As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSaveAs As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileExit As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsOptions As System.Windows.Forms.ToolStripMenuItem
@@ -684,10 +854,9 @@ Partial Class frmMain
Friend WithEvents mMenViewFullscreen As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSSHTransfer As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tsContainer As System.Windows.Forms.ToolStripContainer
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
@@ -713,5 +882,27 @@ Partial Class frmMain
Friend WithEvents mMenInfoForum As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewResetLayout As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileDuplicate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileNewConnection As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNewFolder As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileImportExport As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromXMLFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromRDPFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromActiveDirectoryToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromPortScanToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents ExportToXMLFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep3 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileDelete As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileRename As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep4 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripSplitButton1 As System.Windows.Forms.ToolStripDropDownButton
Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripMenuItem2 As System.Windows.Forms.ToolStripMenuItem
End Class

View File

@@ -124,8 +124,8 @@
<data name="mMenViewConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
CwIBm8luNgAAArhJREFUOE91U91LU3EYnt0GjUYSgv+EoDeCgXkhiuBAL7swoTWUEryYF2JXQlebTIlK
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
Cv8BNGKaggAAArhJREFUOE91U91LU3EYnt0GjUYSgv+EoDeCgXkhiuBAL7swoTWUEryYF2JXQlebTIlK
pA1bmfODND+DpqUzt5Vfm7NtZx9n52xnui9zm/m5p9/vlINcHnjhnPf83ud5n/d9fhIAkv9FQ0NDrU6n
29fr9cnS0tKqq87lFQ8MDNxqaWm5oVKpjPFEEql0Gp2dnYb29vbrGo3m9mWgHIDBYGh7PzmZ1en1gtE4
kgoLEYTCAmLxOE5OTzExMXHw2mAQTCZT9vmLF8oLIBFAJpNde/N2iGP5EOKJhBh70SjYIAchEsHu3h4O
@@ -143,8 +143,8 @@
<data name="mMenViewSessions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALAgAA
CwIBm8luNgAAA4RJREFUOE9lk21MU3cUh/9L5pxabCoz2YsmLiwbDp0TddMU1sLo7e3LtZTSQim2ILft
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
Cv8BNGKaggAAA4RJREFUOE9lk21MU3cUh/9L5pxabCoz2YsmLiwbDp0TddMU1sLo7e3LtZTSQim2ILft
ENoKtIVSXksEKRStwwoVDSZGCGPIyDbYCG5s02TZFudCtiDIjNFszjiWrFmZWf3tln2Z8uHJOV/Oc345
ySEAyP9hd24gcUo4zKmJrzRlJk6HVIJol4IfrcsQ3M1LfaaUShE8KdnKJ3EeGY6LatIEy7iFG/i+DP6V
EPMUAsrVCKr5aFcKYN2bEMnf94KqlE4mVurllYJgFo/EOZ6xZkso+zl80KDExVoanqxE2IU8FO5YjSbd
@@ -275,8 +275,8 @@
<metadata name="cMenExtAppsToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<metadata name="tmrShowUpdate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>112, 17</value>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>184, 56</value>
</metadata>
<metadata name="tmrAutoSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>252, 17</value>

View File

@@ -1,208 +1,332 @@
Imports mRemote.App.Runtime
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemoteNG.App.Runtime
Imports System.Reflection
Imports System.Runtime.InteropServices
Imports Crownwood
Imports mRemote.App.Native
Imports mRemoteNG.App.Native
Imports PSTaskDialog
Imports mRemoteNG.Config
Imports mRemoteNG.Themes
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
#Region "Properties"
Private _isClosing As Boolean = False
Public ReadOnly Property IsClosing() As Boolean
Get
Return _isClosing
End Get
End Property
#End Region
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'insert enable edition code here
App.Editions.Spanlink.Enabled = False
MainForm = Me
ApplyLanguage()
Startup.CheckCompatibility()
Startup.CreateLogger()
' Create gui config load and save objects
Dim SettingsLoad As New Config.Settings.Load(Me)
' Load GUI Configuration
SettingsLoad.Load()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
ApplyLanguage()
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
AddHandler ThemeManager.ThemeChanged, AddressOf ApplyThemes
ApplyThemes()
Startup.CreateLogger()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
sL.Load()
MessageCollector = New Messages.Collector(Windows.errorsForm)
mC = New Messages.Collector(Windows.errorsForm)
WindowList = New UI.Window.List
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
Tools.IeBrowserEmulation.Register()
Startup.GetConnectionIcons()
Startup.GetPuttySessions()
App.Runtime.GetExtApps()
GetExtApps()
Windows.treePanel.Focus()
Tree.Node.TreeView = Windows.treeForm.tvConnections
'insert new edition code here
Dim edSpanlink As New App.Editions.Spanlink
If My.Settings.FirstStart And _
Not My.Settings.LoadConsFromCustomLocation And _
Not IO.File.Exists(GetStartupConnectionFileName()) Then
NewConnections(GetStartupConnectionFileName())
End If
'LoadCredentials()
LoadConnections()
If Not IsConnectionsFileLoaded Then
Application.Exit()
Return
End If
PuttySessions.StartWatcher()
If My.Settings.StartupComponentsCheck Then
Windows.Show(UI.Window.Type.ComponentsCheck)
End If
If Not My.Settings.CheckForUpdatesAsked Then
Windows.Show(UI.Window.Type.Options)
Windows.optionsForm.ShowUpdatesTab()
My.Settings.CheckForUpdatesAsked = True
End If
#If PORTABLE Then
mMenInfoAnnouncements.Visible = False
mMenToolsUpdate.Visible = False
mMenInfoSep2.Visible = False
#End If
Startup.UpdateCheck()
Startup.AnnouncementCheck()
Startup.CreateSQLUpdateHandlerAndStartTimer()
AddSysMenuItems()
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
Me.Opacity = 1
End Sub
Private Sub ApplyLanguage()
mMenFile.Text = Language.Base.Menu_File
mMenFileNew.Text = Language.Base.Menu_NewConnections
mMenFileLoad.Text = Language.Base.Menu_OpenConnections
mMenFileSave.Text = Language.Base.Menu_SaveConnections
mMenFileSaveAs.Text = Language.Base.Menu_SaveConnectionsAs
mMenFileExit.Text = Language.Base.Menu_Exit
mMenView.Text = Language.Base.Menu_View
mMenViewAddConnectionPanel.Text = Language.Base.Menu_AddConnectionPanel
mMenViewConnectionPanels.Text = Language.Base.Menu_ConnectionPanels
mMenViewConnections.Text = Language.Base.Menu_Connections
mMenViewConfig.Text = Language.Base.Menu_Config
mMenViewSessions.Text = Language.Base.Menu_Sessions
mMenViewErrorsAndInfos.Text = Language.Base.Menu_ErrorsAndInfos
mMenViewScreenshotManager.Text = Language.Base.Menu_ScreenshotManager
mMenViewJumpTo.Text = Language.Base.Menu_JumpTo
mMenViewJumpToConnectionsConfig.Text = Language.Base.Menu_ConnectionsConfig
mMenViewJumpToSessionsScreenshots.Text = Language.Base.Menu_SessionsScreenshots
mMenViewJumpToErrorsInfos.Text = Language.Base.Menu_ErrorsInfos
mMenViewQuickConnectToolbar.Text = Language.Base.Menu_QuickyToolbar
mMenViewExtAppsToolbar.Text = Language.Base.Menu_ExternalApplicationsToolbar
mMenViewFullscreen.Text = Language.Base.Menu_FullScreenKioskMode
mMenTools.Text = Language.Base.Menu_Tools
mMenToolsSSHTransfer.Text = Language.Base.Menu_SSHFileTransfer
mMenToolsExternalApps.Text = Language.Base.Menu_ExternalApplications
mMenToolsPortScan.Text = Language.Base.Menu_PortScan
mMenToolsUpdate.Text = Language.Base.Menu_Update
mMenToolsOptions.Text = Language.Base.Menu_Options
mMenInfo.Text = Language.Base.Menu_Info
mMenInfoHelp.Text = Language.Base.Menu_Help
mMenInfoForum.Text = Language.Base.Menu_Forum
mMenInfoBugReport.Text = Language.Base.Menu_BugReport
mMenInfoDonate.Text = Language.Base.Menu_Donate
mMenInfoWebsite.Text = Language.Base.Menu_Website
mMenInfoAbout.Text = Language.Base.Menu_About
lblQuickConnect.Text = Language.Base.Toolbar_Quicky
btnQuickyPlay.Text = Language.Base.Toolbar_Play
mMenQuickyCon.Text = Language.Base.Menu_Connections
cMenToolbarShowText.Text = Language.Base.Toolbar_ShowText
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.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.strScreenshots
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.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.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.Language.strLabelConnect
btnQuickyPlay.Text = My.Language.strMenuConnect
mMenQuickyCon.Text = My.Language.strMenuConnections
cMenToolbarShowText.Text = My.Language.strMenuShowText
ToolStripButton1.Text = My.Language.strConnect
ToolStripButton2.Text = My.Language.strScreenshot
ToolStripButton3.Text = My.Language.strRefresh
ToolStripSplitButton1.Text = My.Language.strSpecialKeys
ToolStripMenuItem1.Text = My.Language.strKeysCtrlAltDel
ToolStripMenuItem2.Text = My.Language.strKeysCtrlEsc
End Sub
Public Sub ApplyThemes()
With ThemeManager.ActiveTheme
pnlDock.DockBackColor = .WindowBackgroundColor
tsContainer.BackColor = .ToolbarBackgroundColor
tsContainer.ForeColor = .ToolbarTextColor
tsContainer.TopToolStripPanel.BackColor = .ToolbarBackgroundColor
tsContainer.TopToolStripPanel.ForeColor = .ToolbarTextColor
tsContainer.BottomToolStripPanel.BackColor = .ToolbarBackgroundColor
tsContainer.BottomToolStripPanel.ForeColor = .ToolbarTextColor
tsContainer.LeftToolStripPanel.BackColor = .ToolbarBackgroundColor
tsContainer.LeftToolStripPanel.ForeColor = .ToolbarTextColor
tsContainer.RightToolStripPanel.BackColor = .ToolbarBackgroundColor
tsContainer.RightToolStripPanel.ForeColor = .ToolbarTextColor
tsContainer.ContentPanel.BackColor = .ToolbarBackgroundColor
tsContainer.ContentPanel.ForeColor = .ToolbarTextColor
msMain.BackColor = .ToolbarBackgroundColor
msMain.ForeColor = .ToolbarTextColor
ApplyMenuColors(msMain.Items)
tsExternalTools.BackColor = .ToolbarBackgroundColor
tsExternalTools.ForeColor = .ToolbarTextColor
tsQuickConnect.BackColor = .ToolbarBackgroundColor
tsQuickConnect.ForeColor = .ToolbarTextColor
End With
End Sub
Private Shared Sub ApplyMenuColors(itemCollection As ToolStripItemCollection)
With ThemeManager.ActiveTheme
Dim menuItem As ToolStripMenuItem
For Each item As ToolStripItem In itemCollection
item.BackColor = .MenuBackgroundColor
item.ForeColor = .MenuTextColor
menuItem = TryCast(item, ToolStripMenuItem)
If menuItem IsNot Nothing Then
ApplyMenuColors(menuItem.DropDownItems)
End If
Next
End With
End Sub
Private Sub frmMain_Shown(sender As Object, e As EventArgs) Handles Me.Shown
#If PORTABLE Then
Return
#End If
If Not My.Settings.CheckForUpdatesAsked Then
Dim commandButtons() As String = {My.Language.strAskUpdatesCommandRecommended, My.Language.strAskUpdatesCommandCustom, My.Language.strAskUpdatesCommandAskLater}
cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Language.strAskUpdatesMainInstruction, String.Format(My.Language.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", commandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
If cTaskDialog.CommandButtonResult = 0 Or cTaskDialog.CommandButtonResult = 1 Then
My.Settings.CheckForUpdatesAsked = True
End If
If cTaskDialog.CommandButtonResult = 1 Then
Windows.ShowUpdatesTab()
End If
Return
End If
If Not My.Settings.CheckForUpdatesOnStartup Then Return
Dim nextUpdateCheck As Date = My.Settings.CheckForUpdatesLastCheck.Add(TimeSpan.FromDays(My.Settings.CheckForUpdatesFrequencyDays))
If My.Settings.UpdatePending Or Date.UtcNow > nextUpdateCheck Then
If Not IsHandleCreated Then CreateHandle() ' Make sure the handle is created so that InvokeRequired returns the correct result
Startup.CheckForUpdate()
Startup.CheckForAnnouncement()
End If
End 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.AssemblyName, My.Resources.strConfirmExitMainInstruction, "", "", "", My.Resources.strDoNotShowThisMessageAgain, 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 Not (WindowList Is Nothing OrElse WindowList.Count = 0) Then
Dim connectionWindow As UI.Window.Connection
Dim openConnections As Integer = 0
For Each window As UI.Window.Base In WindowList
connectionWindow = TryCast(window, UI.Window.Connection)
If connectionWindow IsNot Nothing Then
openConnections = openConnections + connectionWindow.TabController.TabPages.Count
End If
Next
If openConnections > 0 And _
(My.Settings.ConfirmCloseConnection = ConfirmClose.All Or _
(My.Settings.ConfirmCloseConnection = ConfirmClose.Multiple And openConnections > 1) Or _
My.Settings.ConfirmCloseConnection = ConfirmClose.Exit) 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.ConfirmCloseConnection = My.Settings.ConfirmCloseConnection - 1
End If
If result = DialogResult.No Then
e.Cancel = True
Return
End If
End If
End If
For Each Window As UI.Window.Base In wL
Window.Close()
Next
Shutdown.Cleanup()
App.Runtime.Shutdown.BeforeQuit()
_isClosing = True
If WindowList IsNot Nothing Then
For Each window As UI.Window.Base In WindowList
window.Close()
Next
End If
Shutdown.StartUpdate()
Debug.Print("[END] - " & Now)
End Sub
#End Region
#Region "Timer"
Private tmrRuns As Integer = 0
Private Sub tmrShowUpdate_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrShowUpdate.Tick
If tmrRuns = 5 Then
Me.tmrShowUpdate.Enabled = False
End If
If App.Runtime.IsUpdateAvailable Then
App.Runtime.Windows.Show(UI.Window.Type.Update)
Me.tmrShowUpdate.Enabled = False
End If
If App.Runtime.IsAnnouncementAvailable Then
App.Runtime.Windows.Show(UI.Window.Type.Announcement)
Me.tmrShowUpdate.Enabled = False
End If
tmrRuns += 1
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 index As Integer = tsExternalTools.Items.Count - 1 To 0 Step -1
tsExternalTools.Items(index).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
If Tree.Node.GetNodeType(Tree.Node.SelectedNode) = Tree.Node.Type.Connection Or _
Tree.Node.GetNodeType(Tree.Node.SelectedNode) = Tree.Node.Type.PuttySession Then
extA.Start(Tree.Node.SelectedNode.Tag)
Else
extA.Start()
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
@@ -213,19 +337,89 @@ Public Class frmMain
End If
Next
cMenToolbarShowText.Checked = Show
cMenToolbarShowText.Checked = show
End Sub
#End Region
#Region "Menu"
#Region "File"
Private Sub mMenFile_DropDownOpening(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFile.DropDownOpening
Select Case Tree.Node.GetNodeType(Tree.Node.SelectedNode)
Case Tree.Node.Type.Root
mMenFileNewConnection.Enabled = True
mMenFileNewFolder.Enabled = True
mMenFileImportExport.Enabled = True
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Language.strMenuDelete
mMenFileRename.Text = My.Language.strMenuRenameFolder
mMenFileDuplicate.Text = My.Language.strMenuDuplicate
Case Tree.Node.Type.Container
mMenFileNewConnection.Enabled = True
mMenFileNewFolder.Enabled = True
mMenFileImportExport.Enabled = True
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Language.strMenuDeleteFolder
mMenFileRename.Text = My.Language.strMenuRenameFolder
mMenFileDuplicate.Text = My.Language.strMenuDuplicateFolder
Case Tree.Node.Type.Connection
mMenFileNewConnection.Enabled = True
mMenFileNewFolder.Enabled = True
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Language.strMenuDeleteConnection
mMenFileRename.Text = My.Language.strMenuRenameConnection
mMenFileDuplicate.Text = My.Language.strMenuDuplicateConnection
Case Tree.Node.Type.PuttyRoot, Tree.Node.Type.PuttySession
mMenFileNewConnection.Enabled = False
mMenFileNewFolder.Enabled = False
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = False
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Language.strMenuDelete
mMenFileRename.Text = My.Language.strMenuRename
mMenFileDuplicate.Text = My.Language.strMenuDuplicate
Case Else
mMenFileNewConnection.Enabled = True
mMenFileNewFolder.Enabled = True
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = False
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Language.strMenuDelete
mMenFileRename.Text = My.Language.strMenuRename
mMenFileDuplicate.Text = My.Language.strMenuDuplicate
End Select
End Sub
Private Sub mMenFileNewConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNewConnection.Click
App.Runtime.Windows.treeForm.AddConnection()
SaveConnectionsBG()
End Sub
Private Sub mMenFileNewFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNewFolder.Click
App.Runtime.Windows.treeForm.AddFolder()
SaveConnectionsBG()
End Sub
Private Sub mMenFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNew.Click
NewConnections()
Dim lD As SaveFileDialog = Tools.Controls.ConnectionsSaveAsDialog
If lD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
NewConnections(lD.FileName)
Else
Exit Sub
End If
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(Language.Base.SaveConnectionsFileBeforeOpeningAnother, 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
@@ -241,12 +435,27 @@ 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
App.Runtime.Shutdown.Quit()
End Sub
Private Sub mMenFileDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileDelete.Click
Tree.Node.DeleteSelectedNode()
SaveConnectionsBG()
End Sub
Private Sub mMenFileRename_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileRename.Click
Tree.Node.StartRenameSelectedNode()
SaveConnectionsBG()
End Sub
Private Sub mMenFileDuplicate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileDuplicate.Click
Tree.Node.CloneNode(Tree.Node.SelectedNode)
SaveConnectionsBG()
End Sub
#End Region
#Region "View"
@@ -257,17 +466,23 @@ 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
If Me.mMenViewConnectionPanels.DropDownItems.Count > 0 Then
Me.mMenViewConnectionPanels.Enabled = True
Else
Me.mMenViewConnectionPanels.Enabled = False
End If
End Sub
Private Sub ConnectionPanelMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
@@ -346,7 +561,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
@@ -357,10 +572,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
@@ -375,14 +590,10 @@ Public Class frmMain
End If
End Sub
Public Fullscreen As New Tools.Misc.Fullscreen(Me)
Private Sub mMenViewFullscreen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewFullscreen.Click
If Tools.Misc.Fullscreen.FullscreenActive Then
Tools.Misc.Fullscreen.ExitFullscreen()
Me.mMenViewFullscreen.Checked = False
Else
Tools.Misc.Fullscreen.EnterFullscreen()
Me.mMenViewFullscreen.Checked = True
End If
Fullscreen.Value = Not Fullscreen.Value
mMenViewFullscreen.Checked = Fullscreen.Value
End Sub
#End Region
@@ -429,7 +640,7 @@ Public Class frmMain
Try
btnQuickyPlay.DropDownItems.Clear()
For Each fI As FieldInfo In GetType(mRemote.Connection.Protocol.Protocols).GetFields
For Each fI As FieldInfo In GetType(mRemoteNG.Connection.Protocol.Protocols).GetFields
If fI.Name <> "value__" And fI.Name <> "NONE" And fI.Name <> "IntApp" Then
Dim nBtn As New ToolStripMenuItem
nBtn.Text = fI.Name
@@ -438,29 +649,29 @@ 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
Private Sub QuickyProtocolButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Try
Dim conI As Connection.Info = CreateQuicky(QuickyText, Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.Protocols), sender.Text))
Dim conI As Connection.Info = CreateQuicky(QuickyText, Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.Protocols), sender.Text))
If conI.Port = 0 Then
conI.SetDefaultPort()
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname)
If mRemoteNG.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemoteNG.Connection.QuickConnect.History.Add(conI.Hostname)
End If
Else
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname & ":" & conI.Port)
If mRemoteNG.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemoteNG.Connection.QuickConnect.History.Add(conI.Hostname & ":" & conI.Port)
End If
End If
App.Runtime.OpenConnection(conI, mRemote.Connection.Info.Force.DoNotJump)
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
@@ -528,7 +739,7 @@ Public Class frmMain
Next
End Sub
Private Sub AddNodeToMenu(ByVal tnc As TreeNodeCollection, ByVal menToolStrip As ToolStripMenuItem)
Private Shared Sub AddNodeToMenu(ByVal tnc As TreeNodeCollection, ByVal menToolStrip As ToolStripMenuItem)
Try
For Each tNode As TreeNode In tnc
Dim tMenItem As New ToolStripMenuItem()
@@ -541,23 +752,24 @@ Public Class frmMain
menToolStrip.DropDownItems.Add(tMenItem)
AddNodeToMenu(tNode.Nodes, tMenItem)
ElseIf Tree.Node.GetNodeType(tNode) = Tree.Node.Type.Connection Then
ElseIf Tree.Node.GetNodeType(tNode) = Tree.Node.Type.Connection Or _
Tree.Node.GetNodeType(tNode) = Tree.Node.Type.PuttySession Then
tMenItem.Image = Windows.treeForm.imgListTree.Images(tNode.ImageIndex)
tMenItem.Tag = tNode.Tag
menToolStrip.DropDownItems.Add(tMenItem)
End If
AddHandler tMenItem.MouseDown, AddressOf ConMenItem_MouseDown
AddHandler tMenItem.MouseUp, AddressOf ConMenItem_MouseUp
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
Private Sub ConMenItem_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Private Shared Sub ConMenItem_MouseUp(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = MouseButtons.Left Then
If TypeOf sender.Tag Is mRemote.Connection.Info Then
If TypeOf sender.Tag Is Connection.Info Then
App.Runtime.OpenConnection(sender.Tag)
End If
End If
@@ -565,40 +777,67 @@ Public Class frmMain
#End Region
#Region "Window Overrides and DockPanel Stuff"
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
Private _inSizeMove As Boolean = False
Private Sub frmMain_ResizeBegin(ByVal sender As Object, ByVal e As EventArgs) Handles Me.ResizeBegin
_inSizeMove = True
End Sub
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As EventArgs) Handles Me.Resize
If WindowState = FormWindowState.Minimized Then
If My.Settings.MinimizeToTray Then
If App.Runtime.SysTrayIcon Is Nothing Then
App.Runtime.SysTrayIcon = New Tools.Controls.SysTrayIcon()
If NotificationAreaIcon Is Nothing Then
NotificationAreaIcon = New Tools.Controls.NotificationAreaIcon()
End If
Me.Hide()
Hide()
End If
Else
prevWindowsState = Me.WindowState
PreviousWindowState = WindowState
End If
End Sub
Private bWmGetTextFlag As Boolean = False
Private bWmWindowPosChangedFlag As Boolean = False
Private Sub frmMain_ResizeEnd(ByVal sender As Object, ByVal e As EventArgs) Handles Me.ResizeEnd
_inSizeMove = False
' This handles activations from clicks that started a size/move operation
ActivateConnection()
End Sub
Private _inMouseActivate As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
Try
'Debug.Print(m.Msg)
Select m.Msg
Case WM_GETTEXT
bWmGetTextFlag = True
Case WM_WINDOWPOSCHANGED
If bWmGetTextFlag Then
ActivateConnection()
End If
bWmGetTextFlag = False
bWmWindowPosChangedFlag = True
Select Case m.Msg
Case WM_MOUSEACTIVATE
_inMouseActivate = True
Case WM_ACTIVATEAPP
If bWmWindowPosChangedFlag Then
ActivateConnection()
_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.TabControl 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
' This handles activations from clicks that did not start 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
@@ -606,9 +845,13 @@ Public Class frmMain
Exit For
End If
Next
Case Else
bWmGetTextFlag = False
bWmWindowPosChangedFlag = False
Case WM_DRAWCLIPBOARD
SendMessage(fpChainedWindowHandle, m.Msg, m.LParam, m.WParam)
RaiseEvent clipboardchange()
Case WM_CHANGECBCHAIN
'Send to the next window
SendMessage(fpChainedWindowHandle, m.Msg, m.LParam, m.WParam)
fpChainedWindowHandle = m.LParam
End Select
Catch ex As Exception
End Try
@@ -631,6 +874,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"
@@ -640,21 +909,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), Language.Base.Screen & " " & 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, Language.Base.SendTo)
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

@@ -0,0 +1,300 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imgListPages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imgListPages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAD+
JgAAAk1TRnQBSQFMAgEBCAEAAVABAQFQAQEBEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABMAMAAQEBAAEgBgABMP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8A/wD/AP8ALgAB4gHvAfQB/wGo
AckB1wH/AWcBpAG2Af8BSgGGAZwB/wE1AVwBigH/ATABVwGHAf8BMAFhAZUB/wFDAY4BqwH/AY8BtwHN
Af8B3QHqAfEB/wwAA1cBtwOfAf8DmgH/A5YB/wORAf8DjQH/A4kB/wOEAf8DgAH/A1IB/wNOAf8DSgH/
A0cB/wNDAf8DQAH/A1cBtxgAAw0BEgNWAbYDVgG2Aw0BEWAAAa0BzwHfAf8BQgGRAa0B/wFHAaMBvwH/
AWMBwAHUAf8BlQHZAeYB/wGBAdsB8AH/ATsBxgHsAf8BDwGqAd0B/wEBAZIBxwH/AQ0BgAGsAf8BJAFc
AZIB/wGdAb8B0QH/CAADqAH/A+kB/wPTAf8D0gH/A9EB/wPQAf8DzgH/A80B/wPNAf8DywH/A8sB/wPK
Af8DyQH/A8gB/wPiAf8DQAH/GAADXgHZA+QB/wPjAf8DWAHBMAADQQFyAUwCXwHzAVkCXAHPAUsCTAGQ
AyMBMxwAAUUBhAGbAf8BLwG9AecB/wFSAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/ATsBygHw
Af8BCQG2Ae0B/wEAAacB6AH/AQABoQHhAf8BAAGWAdIB/wEoAUkBZQH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DRAH/CAADCwEPA1QBrQM6
AWEDPwFuA2cB+AHiAeEB3wH/AeEB4AHfAf8DXwHzAzwBZwM8AWYDUwGtAwsBDxwAAyEBMAIrAWIB/AGG
Aa0B4QH/AVQBqAHcAf8BNQGSAckB/wEGAUgBqwH/AVUCVgGxAx8BLRQAAUgBhwGeAf8BLgHEAfAB/wFU
AdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/ATsBygHwAf8BCQG2Ae0B/wEAAagB6AH/AQABoQHh
Af8BAAGcAdoB/wEpAUoBZwH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOwAf8DrwH/
A60B/wOrAf8DqQH/A6gB/wPKAf8DSAH/CAADWgHFBP8ChAGDAf4CgwGCAf4C5wHmAf8B1gHVAdMB/wHX
AdYB1AH/AeMB4gHgAf8DfwH+A6gB/QHpAegB5gH/A1gBwRwAAVQCVgGrAUMBnQHRAf8BmQG8AesB/wFH
AaAB4wH/AZYBuQHqAf8BlAG4AeoB/wE2AZMBygH/AisBXgH8A0MBeBAAAUoBiQGgAf8BLgHEAe8B/wFT
AdQB8QH/AY0B4wH0Af8BogHrAfYB/wGCAd8B8wH/ATwBygHwAf8BCQG2Ae0B/wEAAagB6AH/AQABoQHh
Af8BAAGcAdoB/wErAU0BaQH/CAADtgH/A90B/wPBAf8DvQH/A7wB/wO6Af8DuAH/A7UB/wO0Af8DsgH/
A7AB/wOtAf8DrAH/A6wB/wPPAf8DTAH/CAADZAHnAvkB9wH/Au8B7gH/AtsB2gH/AcoCyQH/AckByAHG
Af8ByQHIAccB/wHJAcgBxwH/AssByQH/AeYB5QHkAf8B5QHkAeIB/wNlAeUYAAMfAS0BKwE2AWYB/AGd
Ab8B7AH/AT8BnAHiAf8BMQGTAd8B/wEuAZEB3wH/ATUBlAHgAf8BlQG4AeoB/wGGAa0B4QH/AR8BgwG7
Af8BSwJMAZAMAAFMAYwBogH/ATABxgHwAf8BVQHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BggHfAfQB/wE8
AcoB8AH/AQkBtgHtAf8BAAGoAegB/wEAAaIB4gH/AQABmwHbAf8BLQFQAYAB/wgAA1oBvQPaAf8DyAH/
A8AB/wO/Af8DvQH/A7oB/wO4Af8DtwH/A7UB/wOzAf8DsAH/A68B/wOzAf8DwgH/A1oBvQgAA04BlQH2
AfUB9AH/AeYB5QHkAf8BvwG+Ab0B/wLrAeoB/wHUAdMB0gH/AdYB1QHUAf8B4gLhAf8CtAGzAf8B1wHW
AdQB/wHiAeEB3wH/A0oBjQwAAysBQgNIAYQBVQJXAbcBTAJfAfMBTAGkAdcB/wGhAcIB7QH/AZ8BwAHt
Af8BnQG/Ae0B/wFKAaMB5AH/ATABkgHfAf8BLgGQAd4B/wFRAacB5gH/AZIBtgHoAf8BGQFVAbcB/wM3
AVoIAAFPAY8BpQH/ATEBxgHwAf8BVQHUAfIB/wGNAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wE7AcoB8AH/
AQkBtgHtAf8BAAGnAegB/wEAAaEB4gH/AQABnAHbAf8BLwFTAYMB/wgAA1oBvQPjAf8D5wH/A+EB/wPg
Af8D4AH/A98B/wPfAf8D3gH/A90B/wPdAf8D3AH/A9sB/wPgAf8D0AH/A1oBvQMLAQ8DVQG1A2QB5wHk
AeMB4gH/AdEB0AHPAf8C8AHvAf8DrgH/A2QB8QNnAfICrAGrAf8C6AHnAf8CywHKAf8B4AHfAd0B/wNh
AeQDVQG1AwsBDwNMAZMBOgGXAc8B/wFRAagB2QH/AY0BtAHiAf8BowHEAe0B/wGnAccB7gH/AToBlwHN
Af8BCgFLAbIB/wE1AZMByQH/AZ8BwAHtAf8BTgGWAaMB/wGeAZYBHgH/AVIBlAGRAf8BjQGzAekB/wFP
AaUB2AH/AVoCXgHYCAABUAGSAagB/wExAcUB8AH/AVYB1AHyAf8BjQHjAfQB/wGiAesB9gH/AYIB3wH0
Af8BOwHKAfAB/wEJAbYB7QH/AQABpwHoAf8BAAGhAeEB/wEAAZwB2wH/ATEBVgGGAf8IAAMpAT8DzgH/
A+wB/wPeAf8D2AH/A9IB/wPMAf8DyAH/A8cB/wPIAf8DywH/A9AB/wPdAf8D6AH/A6QB/wMrAUIDPwFt
AuQB4wH/AdgB1gHVAf8B0gHRAdAB/wHFAcQBwwH/Ae0B7AHrAf8DVwG6CAADXAHNAegB5wHmAf8BtgG1
AbQB/wHWAdUB0wH/AeIB4QHgAf8C4AHfAf8DPAFmAUgCYgH2Aa4BzQHwAf8BsAHPAfAB/wGYAb8B7AH/
AVQBrgHnAf8BqgHKAe8B/wETAVEBuAH/BAABCwFMAbMB/wGiAcMB7QH/AagBlwEHAf8BxAG1ATAB/wGs
AZcBAAH/ATEBkwHfAf8BmAG7AesB/wEAAToBnwH/CAABUwGVAasB/wExAcUB8AH/AVYB1AHyAf8BjQHj
AfQB/wGiAesB9gH/AYMB3wH0Af8BPAHLAfAB/wEJAbUB7QH/AQABpwHoAf8BAAGhAeIB/wEAAZwB2gH/
ATQBWQGIAf8MAANaAb0D4wH/A9sB/wPiAf8BtwHQAbgB/wE6Aa0BPgH/AUwBqgE6Af8BRgGvAT4B/wEs
AaUBOAH/AawBxQGsAf8DwgH/A9EB/wPTAf8DWgG9BAADQgF2AewB6wHoAf8B2gHZAdcB/wHUAdMB0QH/
AcYBxQHEAf8B3gLcAf8DRgF+CAADUAGaAd0B3AHbAf8ByAHGAcUB/wLiAeEB/wLhAd8B/wHuAe0B7AH/
Az8BbwFaAmAB3gGoAckB7QH/AYQBpwHtAf8BLgFAAe0B/wFAAY4B6QH/Aa0BzQHwAf8BQwGdAdIB/wEU
AVIBuQH/AT0BmQHOAf8BpQHFAe4B/wGVAZoBPwH/Aa0BlwEAAf8BnQGXASMB/wE8AZsB4gH/AZgBuwHq
Af8BSAJiAfYIAAFVAZgBrgH/ATEBxQHwAf8BVgHUAfEB/wGNAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wE8
AcoB8AH/AQkBtgHtAf8BAAGoAekB/wEAAaEB4QH/AQABnAHaAf8BNgFbAYoB/wwAAykBPwPRAf8D8wH/
AccB3gHKAf8BOgHJAYUB/wGzAdwBpAH/AecBxwFSAf8B3AG/AUkB/wFMAcwBjwH/ASUBrQE+Af8BuAHQ
AbgB/wPxAf8DrwH/AysBQgQAAy8BSgNgAesDcgH8Ad4B3QHcAf8BywLKAf8B5gLlAf8DYQHhAzIBUAM4
AVwDYAHrAu4B7AH/AcwCywH/AecB5gHlAf8DcgH8A2AB6wMsAUMDUQGcAZIBuQHlAf8BRAFKAfYB/wGB
AYQB9QH/AhYB8AH/AZABuwHrAf8BrgHNAfAB/wGsAcwB8AH/AaoBygHwAf8BhQGyAekB/wE0AakBwQH/
ARoBswGNAf8BLAGoAbYB/wFGAaEB5AH/AZcBugHoAf8DXQHtCAABWAGbAbAB/wEwAcYB8AH/AVYB1AHy
Af8BjQHjAfQB/wGiAesB9gH/AYMB3wH0Af8BPAHKAfAB/wEJAbYB7QH/AQABqAHoAf8BAAGhAeEB/wEA
AZwB2gH/ATkBXwGOAf8QAANaAb0DxAH/AUwBzgGLAf8BmQHkAasB/wGwAcUBMwH/AeoBtQEeAf8B4QGi
AQ8B/wGlAZ0BFgH/AYIBxQGPAf8BHwGaASwB/wOgAf8DWgG9EAADXgHOAeEB4AHeAf8B2QHXAdYB/wG4
ArcB/wHhAeAB3wH/A6gB/QOoAf0C9gH1Af8CwAG/Af8B6gHpAegB/wLzAfIB/wNcAckIAAMjATMBKwFb
AXEB/AGSAaQB9QH/AS8BMAH2Af8BJwGGAfQB/wERAaYB+wH/ATIBqwHyAf8BVAGvAecB/wFRAa0B5wH/
AU4BqgHmAf8BFQG2AYAB/wE2AcgBlwH/AREBtwFQAf8BUwGsAecB/wGPAbUB4wH/AVoCXgHVCAABWwGf
AbMB/wEwAcYB8AH/AVQB1AHxAf8BjAHjAfQB/wGiAesB9gH/AYMB3wH0Af8BPAHKAfAB/wEJAbYB7QH/
AQABpwHoAf8BAAGhAeEB/wEAAZsB2gH/ATsBYgGQAf8YAAFYAXQBYwH8AaIB6QGVAf8B1gHPAT8B/wHi
AbMBHQH/AdEBuwElAf8BwgGuARgB/wGCAb0BQgH/ASsBaQFAAfwYAANMAZEB4wHiAeAB/wLeAdwB/wHh
AeAB3wH/AcwCywH/AcQBwwHCAf8CzwHOAf8C3gHdAf8C8AHvAf8C8AHvAf8C9gH1Af8DSAGHDAADSQGH
AYYBrwHhAf8BuQHXAfMB/wEIAaYB/gH/AUIBvwL/AQEBowL/ATwBvgHwAf8BEAHOAfsB/wEwAb4B8QH/
ASgBswGgAf8BEQG3AU8B/wEdAbMBkAH/AacByAHuAf8BTQGlAdYB/wFPAlEBnAgAAVwBoQG1Af8BVgHV
AfQB/wGaAegB9wH/AbUB8wH6Af8BwgH4AfwB/wHDAfgB/QH/AcEB9wH9Af8BrwHwAfsB/wGPAeIB9wH/
AVUB0AHwAf8BKQG4AeUB/wE+AWUBkwH/GAABWgF0AWQB/AGiAfABnwH/AdgB7QGvAf8B3gHFAT4B/wG0
AeIBOwH/ATYB5wEPAf8BQQHXAUEB/wErAWsBVQH8FAADAQECA18B4wHlAeQB4QH/Au4B7QH/Au4B7QH/
AusB6gH/AeMB4gHhAf8C6AHnAf8C6gHpAf8C8wHyAf8C9QH0Af8B+gH5AfgB/wNcAd8MAAMEAQYDUQGf
AYUBrgHhAf8BMAGyAfkB/wEBAaMC/wEWAakB+wH/AQYB0wH+Af8BQgHiAv8BAQHVAv8BVQGwAegB/wFS
Aa0B5wH/AakBygHvAf8BpQHFAe0B/wErAT4BaAH8AyEBMAgAAV8BowG4Af8BxQH5Af0B/wHFAfkB/QH/
AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5
Af0B/wFAAWgBlQH/GAADYQHcAcgB9wHUAf8B2AH2AcoB/wHnAeMBqQH/AdsBzwFCAf8BrwHcAT4B/wGd
AeoBqwH/A18B4BgAA0ABbwN/Af4DZAHnA18B8wHoAecB5gH/AecB5gHlAf8C7QHsAf8C+wH6Af8DZwHy
A2QB5wN/Af4DPQFoFAADQgF1AV8CYgH2AY4BtgHjAf8BuQHXAfMB/wEzAdUB+wH/AQAB1QL/ARcB0QH7
Af8BswHSAfIB/wGxAdAB8QH/AZIBuAHiAf8BOAGVAcwB/wNKAYoMAAG3AdcB4QH/AYwBvQHMAf8BnQHP
AdsB/wGtAd8B6AH/AbkB7AHzAf8BwgH1AfoB/wHCAfUB+gH/AbgB6wHxAf8BqQHaAeMB/wGUAcQB0QH/
AWYBqAG4Af8BqQHFAdEB/xgAAy0BRQFNAXABZwH6AdsB+AHpAf8B5wHyAdgB/wHtAeUBswH/Ad8B2QGm
Af8BXwF/AV8B+wMyAVAgAAMPARQDCgEOA1MBqgHvAe4B7QH/AvQB8wH/A1IBpAMIAQsDEQEXIAADFgEe
A1QBrgFMAaMB3AH/AZEBuAHkAf8BqAHKAewB/wGlAccB7AH/AY0BtQHiAf8BPgGaAdIB/wFaAl8B2wMx
AU4QAAL+Av8B4wHxAfQB/wG5AdcB4QH/AZUBvgHMAf8BZgGoAbsB/wFZAZsBsAH/AVUBmAGtAf8BXgGh
AbMB/wGMAbIBwgH/AbEBzQHXAf8B3wHrAe8B/wP+Af8cAAMuAUcDXgHZAV4BdAFiAfwBXgFzAV4B/ANe
Ad0DMgFQLAADLwFKA10B8ANiAe8DLAFDMAADKwFCA0wBkAFbAl0B0gFZAlwBzwNOAZkDLQFFHAADEQEX
A1YBswFTAVQBUwGstAADBAEFAxABFQMfAS0DKQE/Ay8BSQMuAUgDKAE9Ax4BKwMPARQDAwEEEAADtwH/
AZwBqAGeAf8BAAFNASgB/wESAZIBSgH/AQABUQEoAf8BAAE+AaAB/wEAATwBngH/AQABOQGbAf8BAAE3
AZkB/wEAATUBlwH/AQABMgGUAf8BAAExAZMB/wNCAf8DQgH/CAABVwFQAU0BjwFwAWABVQG1AaQBcgFU
Ae4BuQF2AVAB/wG1AXQBTgH/AbMBcwFOAf8BsAFxAU0B/wGsAW8BTAH/AakBbgFMAf8BpwFsAUsB/wGm
AWsBSgH/AaABbQFMAf4BlQFoAVEB8QF1AWEBVAHETAADBQEHAx8BLAI+AT0BagJSAVABowFbAlkBxAFd
AloB0wFdAloB0wFbAlkBwwFSAlEBoQM8AWYDHAEoAwQBBgwAAxUBHQNRAaIBFwGVAU4B/wGCAb4BqgH/
ASYBpQGCAf8BBwGXAUAB/wEKAZkBRQH/AQ4BmQFJAf8BEgGdAU4B/wFMAaoB0gH/AUoBqAHRAf8BAAEz
AZUB/xAAAZYBcgFVAd4w/wGSAWkBUAHtSwABAQMSARgDPgFrAV0CWQHXAUYCKwH8AawBIwEAAf8B4QFD
ARcB/wHkAVUBKwH/AdMBQQEPAf8BowJAAf0BYQJeAdoCPgE9AWoDDwEUCAADGAEiAVABUgFQAaQDVgGz
AUMBrAGfAf8BSgG3AZ4B/wFUAbsBrAH/AVQBuwGuAf8BVQG7AbAB/wGAAbwBswH/AQ0BmgFRAf8BKgGV
AccB/wFNAasB0wH/AQABNgGYAf8QAAG8AX8BVwH+BP8BrgFkASkB/wGsAWEBKAH/AawBYQEoBf8BUwGq
AVoB/wFOAaUBVAH/AUkBoAFPAf8BRAGbAUkB/wFBAZcBRgH/AT0BkwFCBf8BoQFuAU0B/kwAAxsBJgNZ
AdIBEwIAAf8BigEyARoB/wHKAYYBPAH/AfYBvAGcAf8B+QHMAbcB/wHjAaABTgH/AbEBTQEzAf8BTwEp
AQoB/wFeAlgB3QMcASgIAAFVAVYBVQGxA1YBswNWAbMBMgGkAZEB/wFFAbYBmwH/AT4BsgGbAf8BQAGy
AZ4B/wFCAbMBoQH/AYUBvwG2Af8BFAGeAYIB/wEvAZkByQH/AVEBrQHUAf8BAAE6AZwB/xAAAcMBhQFX
Bf8BrgFkASkB/wHNAZ4BcQH/AawBYQEoBf8BSAGeAU0B/wFtAckBeAH/AW0ByQF4Af8BbAHIAXcB/wFr
AccBdQH/ATsBkgFABf8BpwFuAUwB/wQAA50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wgAAVMCTwGlASoBDwEAAf8BTwE6ASUB/wGPAUwBNwH/
AawBiAFBAf8BwgGjAYgB/wHBAaUBjgH/AbMBmAGBAf8BkQFMATYB/wFKATEBHAH/ATkBEgEAAf8BVgJV
AbEIAAMIAQsDVQGyA1YBswFMAbIBqAH/AVMBvQGnAf8BhwHBAbUB/wGGAcEBtgH/AYcBwQG3Af8BiAHB
AbkB/wEaAaIBiAH/ATQBnAHLAf8BVQGwAdUB/wEAAT0BnwH/EAABxAGFAVgF/wGuAWQBKQH/Ac0BnwFy
Af8BrAFhASgF/wFLAaIBUQH/AXABygF6Af8BbwHKAXoB/wFuAckBeQH/AWwByAF3Af8BPgGUAUMF/wGr
AW8BTQH/BAADnQH/AboCvQH/AeYC7AH/AeYC7QH/AecC7QH/AegC7gH/AekC7wH/AekC7wH/AeoC7wH/
AeoC8AH/AesC8AH/AesC8QH/AewC8QH/AewC8QH/Ab0CvwH/A50B/wQAAzkBXwFLASsBEAH/AcMBsQGi
Af8BtgGcAYMB/wGmAU8BIgH/AagBTQEfAf8BwwGkAYcB/wHYAcYBsAH/Ab0BqQGLAf8BVQE1ARUB/wEy
ARIBAAH/ASgBBAEAAf8BLwEIAQAB/wMzAVMIAAMGAQgDVQGyASUBoAGKAf8BkwHJAboB/wE1Aa8BlwH/
ARoBogGDAf8BGwGjAYcB/wEdAaQBiwH/ARwBqgGSAf8BKgHCAe0B/wGBAbQB1wH/AQABQQGjAf8QAAHH
AYcBVwX/AbMBawEwAf8B0AGkAXsB/wGxAWkBKwX/AU0BpAFTAf8BcQHLAXsB/wFwAcsBegH/AW8BygF5
Af8BbQHJAXgB/wFBAZgBRgX/AbEBcwFOAf8IAANcAeoB2wLiAf8BzQLPAf8DywH/A8wB/wPOAf8DzwH/
A9AB/wPSAf8D0wH/A9UB/wHXAtgB/wHnAuwB/wNtAfcEAAMiATEBVgJVAbEBPQERAQAB/wGqAYUBNQH/
AbIBSAEGAf8BrQElAQAB/wG6AUIBAAH/AeoB1QG/Af8B/QH8AfoB/wHWAb4BpgH/AZABNQECAf8BOAEG
AQAB/wE5ARYBAAH/ATIBEgEAAf8DVwHFAxwBJwgAAwQBBgELAZQBTQH/AUQBuQGeAf8BHwGmAYkB/wFP
AbEB1QH/AUsBrQHUAf8BRwGrAdIB/wE1AboB5AH/AQABmQE/Af8BAAGOAS4B/wEAAUYBmgH/EAAByAGJ
AVgF/wG2AXMBPQH/AdEBpQGCAf8BtQFwATUF/wFPAacBVgH/AXABywF6Af8BcAHLAXoB/wFvAcoBeQH/
AW0ByQF4Af8BRAGbAUoF/wG1AXUBUAH/CAADXAHqAdkC4QH/AcsCzAH/A8cB/wPIAf8DygH/A8sB/wPN
Af8DzgH/A9AB/wPRAf8B0wLUAf8B5QLrAf8DbQH3BAADLgFHA1kB7AE4AQYBAAH/AZkBJQEAAf8BuAE9
AQAB/wHCATkBAAH/AckBSwEAAf8B5gG/AZQB/wHsAdQBtgH/Ac0BnAE4Af8BqAFCAQIB/wGZAUMBFwH/
AaMBjAFIAf8BVQE8ASUB/wJRAT8B9wE1AjQBVQwAAS4BjgHEAf8BKAGsAYsB/wElAaoBjwH/AVQBtQHY
Af8BUAGyAdYB/wFNAa8B1QH/AUkBrAHTAf8BAAGQATgB/wEvAagBhAH/AQABTgEpAf8DFAEbDAABygGL
AVkF/wG7AXwBUQH/AbkBegFJAf8BuQF5AUcF/wFDAZoBSQH/AVABpwFWAf8BTgGlAVQB/wFMAaMBUgH/
AUoBoQFQAf8BRwGeAU0F/wG4AXkBUQH/CAADXAHqAdcC3wH/AccCyQH/A8IB/wPEAf8DxQH/A8gB/wPJ
Af8DygH/A8wB/wPNAf8B0ALRAf8B4wLqAf8DbQH3BAADOQFfAkABLQH9AUoBEQEAAf8BrgEvAQAB/wHA
ATcBAAH/AecBlgEcAf8B6AGyAVAB/wHkAbEBUAH/AdIBiQEPAf8BvQE8AQAB/wGoASoBAAH/AbgBjQEz
Af8B1AHDAbIB/wGYAYQBRAH/ATEBEwEAAf8BPgI9AWoMAAE0AZEByQH/AaQBzAHkAf8BhwG7AdsB/wEV
AaEBUAH/AQ8BnAFKAf8BCgGaAUYB/wEFAZYBQAH/ASEBowGBAf8BhAHAAasB/wEYAZYBTwH/A1EBogMV
AR0IAAHGAYgBXAH+MP8BuwF7AVIB/wgAA1wB6gHWAt8B/wHDAsUB/wPAAf8DwAH/A8IB/wPDAf8DxAH/
A8UB/wPIAf8DyQH/A80B/wHgAugB/wNtAfcEAAM3AVoCTQEoAfoBgwEcAQAB/wHLAUYBAAH/AeUBiwET
Af8B/gG2AUgC/wHjAcIB/wH0AbwBhQH/AdYBTQEAAf8BxQFEAQAB/wG6ATkBAAH/Aa8BTQEPAf8BrgGI
ATMB/wGUAUwBMwH/ATIBFAEAAf8DPAFmDAABOQGVAc0B/wGoAc8B5QH/AYwBvwHdAf8BGwGlAYEB/wGN
AcUBuAH/AYkBwwG0Af8BhgHBAbEB/wGEAb8BrwH/AU0BuQGfAf8BRAGtAaAB/wNWAbMBUAFSAVABpAMY
ASIEAAHBAYgBWAH6BP8B7QHDAZoB/wHtAcMBmgH/Ae0BwwGaAf8B7QHDAZoB/wHtAcMBmgH/Ae0BwwGa
Af8B7QHDAZoB/wHtAcMBmgH/Ae0BwwGaAf8B7QHDAZoF/wG9AYABVAH/CAADYAHWAccCzQH/AdsC5AH/
AdsC5AH/AdsC5QH/AdwC5QH/AdwC5QH/Ad0C5gH/Ad0C5gH/Ad4C5wH/Ad8C6AH/AeAC6AH/Ac0C0wH/
A18B4wQAAyYBOQFgAloB3gGOASQBAAH/AewBngEpAf8B/gG/AYUC/wHMAaEC/wHfAbsB/wH+AcIBVQH/
AeIBjgEfAf8B0wGEARAB/wHKAU8BAgH/AbUBRgEAAf8BlwE3AQAB/wGBATQBDwH/A1kB7AMuAUgMAAE9
AZgB0AH/AasB0QHnAf8BkAHCAd8B/wEiAakBiAH/AZEByQG7Af8BTAG6AaUB/wFIAbgBoQH/AUQBtgGe
Af8BSAG4AZ0B/wEzAaUBkgH/A1YBswNWAbMBVQFWAVUBsQQAAbYBhwFdAfAE/wHtAcMBmwH/AfQB2gHA
Af8B9AHaAcAB/wH0AdsBwQH/AfQB2wHBAf8B9AHbAcEB/wH0AdsBwQH/AfQB2wHBAf8B9AHbAcEB/wHt
AcMBmgX/AbsBfwFXAf4IAAMsAUMDWwHIA50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wNeAd0DMQFOBAADCQEMA0sBjgHAAUQBAwL/AbwBVQH/AfoBzgGnAf8B+AHbAb4C/wHiAcYC/wG+
AYYB/wH0AawBSwH/AewBwgGaAf8B4gG1AYsB/wG4AUsBCQH/AZ0BOgECAf8BiAE6ARYB/wNPAaUDEAEV
DAABQQGbAdMB/wGuAdQB6AH/AasB0wHoAf8BLwGxAZAB/wGbAc4BwAH/AZkBzQG9Af8BlgHLAbsB/wGV
AcoBuQH/AYABvwGoAf8BTQGzAakB/wNWAbMDVQGyAwgBCwQAAZcBegFeAdgE/wHtAcMBmwH/Ae0BwwGb
Af8B7QHDAZsB/wHtAcMBmgH/Ae0BwwGaAf8B7QHDAZoB/wHtAcMBmgH/Ae0BwwGaAf8B7QHDAZoB/wHt
AcMBmgX/AbsBhAFcAfhIAAMTARoCZAFTAfEB2AGeAUgB/wHnAdMBwAH/AfwB9QHuAv8B+AHrAv8B5QHC
Af8B9gG5AYIB/wHyAdIBuAH/Ae4B0gG2Af8BwgGGASQB/wGnAUwBHQH/Ak0BKQH6Ax0BKRAAAUQBnQHV
Af8BQgGbAdMB/wE/AZoB0gH/AR8BoQGMAf8BGgGfAYoB/wEXAZ0BhQH/ARMBmQGAAf8BLAGlAZIB/wFV
AbgBsQH/ASYBoQGLAf8DVQGyAwYBCAgAAWEBWQFSAZsw/wHWAakBiAH/TAADNQFXAakBOAEKAf8BygG4
AagG/wH+AfwC/wH2AeIB/wH7AcUBoAH/AeQBuQGVAf8B2wGsAVMB/wHDAY4BMgH/AZMBOgEOAf8BPgI9
AWowAAFTAlQBrANWAbMDVgGzAwQBBgwAAUYBQwFBAXEBWQFTAU4BkAGLAXMBXAHMAc4BkgFcAf8ByAGN
AV4B/gHNAZEBXAH/AcwBjwFcAf8BzQGRAV4B/wHNAZIBYAH/AcsBkAFeAf8BsAGDAVsB7wGJAXIBXgHL
AdgBrQGKAf8B1wGrAYoB/1AAAzIBUQJkAVkB7AHQAbIBlQH/AewB4AHZAf8B5gHVAcQB/wHTAbABlAH/
AdMBpgFNAf8BywGPASsB/wFnAWUBWQHyAToCOQFgNAABUwJUAawDVgGzAwQBBpwAAxEBFwNEAXoCWgFX
AcUCZQFeAeUCYQFYAeYCXAFZAckCSAFHAYMDFQEdEAABQgFNAT4HAAE+AwABKAMAAUADAAEwAwABAQEA
AQEFAAGAAQEWAAP/gQAB4AEHAgAB/AE/Av8BwAEDAgAB/AE/AfwBHwHAAQMCAAHAAQMB+AEHAcABAwIA
AcABAwH4AQMBwAEDAgABwAEDAfABAQHAAQMCAAHAAQMBgAEAAcABAwYAAcABAwIAAQEBgAEBAQABwAED
AYACAQGAAgABwAEDAYABAQQAAcABAwHAAQMBwAEDAgABwAEDAfABDwHAAQMBgAEAAcABAwHwAQ8BgAED
AYABAAHAAQMB8AEPAcABAwHgAQEBwAEDAfABDwHwAQ8B8AEDAcABAwH4AR8B/AE/AfwBDwHjBf8B4AEH
AYABAQGAAQEC/wHAAQMBgAEHAYABAQL/AYABAwEAAQcBgAEBAv8BwAEDAQABBwGAAQECAAHAAQMBAAEH
AYABAQIAAYABAQGAAQcBgAEBAYABAQIAAcABBwGAAQEBgAEBAgAB4AEDAYABAQGAAQECAAHgAQEBgAEB
AYABAQIAAeABAAGAAQEBgAEBAgAB4AEAAYABAQGAAQECAAHgAQABgAEBAv8BgAEBAeABAQGAAQEC/wHA
AQMB/wHDAYABAQL/AeABBwH/AccE/wHwAQ8L
</value>
</data>
<metadata name="dlgColor.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>140, 17</value>
</metadata>
</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 = Language.Base.Password
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 = Language.Base.Verify
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 = Language.Base.Button_OK
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 = Language.Base.Button_Cancel
Me.btnCancel.Text = My.Language.strButtonCancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'lblStatus
@@ -107,13 +107,13 @@ Partial Class frmPassword
Me.lblStatus.Name = "lblStatus"
Me.lblStatus.Size = New System.Drawing.Size(189, 14)
Me.lblStatus.TabIndex = 6
Me.lblStatus.Text = Language.Base.Status
Me.lblStatus.Text = "Status"
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopRight
Me.lblStatus.Visible = False
'
'pbLock
'
Me.pbLock.Image = Global.mRemote.My.Resources.Resources.Lock
Me.pbLock.Image = Global.mRemoteNG.My.Resources.Resources.Lock
Me.pbLock.Location = New System.Drawing.Point(7, 8)
Me.pbLock.Name = "pbLock"
Me.pbLock.Size = New System.Drawing.Size(64, 64)
@@ -152,7 +152,7 @@ Partial Class frmPassword
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = Language.Base.Security
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 = Language.Base.Password
lblVerify.Text = Language.Base.Verify
btnOK.Text = Language.Base.Button_OK
btnCancel.Text = Language.Base.Button_Cancel
lblStatus.Text = Language.Base.Status
Text = Language.Base.Security
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.Language.strTitlePassword
End Sub
Private Sub txtPassword_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPassword.GotFocus

View File

@@ -16,27 +16,27 @@
<p>
<span class="heading1">Steps to configure your SQL Server</span></p>
<ul>
<li>Create a new Database called &quot;mRemote&quot; on your SQL Server.</li>
<li>Create a new Database called &quot;mRemoteNG&quot; on your SQL Server.</li>
<li>Run the SQL Script below on the newly created Database.</li>
<li>Give the users that you want to grant access to the mRemote Connections Database
Read/Write permissions on the Database.</li>
</ul>
<p class="heading1">
Steps to configure mRemote for SQL</p>
Steps to configure mRemoteNG for SQL</p>
<ul>
<li>Start mRemote if it&#39;s not already running.</li>
<li>Start mRemoteNG if it&#39;s not already running.</li>
<li>Go to Options - Connections.</li>
<li>Check the box that says &quot;Use SQL Server to load &amp; save connections&quot;.</li>
<li>Fill in your SQL Server hostname or ip address.</li>
<li>If you do not use your Windows logon info to authenticate against the SQL Server
fill in the correct Username and Password.</li>
<li>Click OK to apply the changes. The main window title should now change to
&quot;mRemote | SQL Server&quot;.</li>
&quot;mRemoteNG | SQL Server&quot;.</li>
<li>Now click on File - Save to update the tables on your SQL Server with the data
from the loaded connections xml file. (Do not click File - New, this doesn&#39;t
work yet)</li>
<li>You should now be able to do everything you were able to do with the XML storage
plus see the changes live on another mRemote instance that is connected to the
plus see the changes live on another mRemoteNG instance that is connected to the
same Database.</li>
</ul>

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 ,
@@ -37,6 +38,8 @@ CREATE TABLE [dbo].[tblCons] (
[Resolution] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DisplayWallpaper] [bit] NOT NULL ,
[DisplayThemes] [bit] NOT NULL ,
[EnableFontSmoothing] [bit] NOT NULL ,
[EnableDesktopComposition] [bit] NOT NULL ,
[CacheBitmaps] [bit] NOT NULL ,
[RedirectDiskDrives] [bit] NOT NULL ,
[RedirectPorts] [bit] NOT NULL ,
@@ -72,6 +75,8 @@ CREATE TABLE [dbo].[tblCons] (
[InheritDescription] [bit] NOT NULL ,
[InheritDisplayThemes] [bit] NOT NULL ,
[InheritDisplayWallpaper] [bit] NOT NULL ,
[InheritEnableFontSmoothing] [bit] NOT NULL ,
[InheritEnableDesktopComposition] [bit] NOT NULL ,
[InheritDomain] [bit] NOT NULL ,
[InheritIcon] [bit] NOT NULL ,
[InheritPanel] [bit] NOT NULL ,
@@ -87,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 ,
@@ -112,7 +118,11 @@ CREATE TABLE [dbo].[tblCons] (
[InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL ,
[InheritRDGatewayUsername] [bit] NOT NULL ,
[InheritRDGatewayPassword] [bit] NOT NULL ,
[InheritRDGatewayDomain] [bit] NOT NULL
[InheritRDGatewayDomain] [bit] NOT NULL ,
[LoadBalanceInfo] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[AutomaticResize] [bit] NOT NULL DEFAULT 1 ,
[InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 ,
[InheritAutomaticResize] [bit] NOT NULL DEFAULT 0
) ON [PRIMARY]
GO
@@ -125,7 +135,7 @@ CREATE TABLE [dbo].[tblRoot] (
GO
CREATE TABLE [dbo].[tblUpdate] (
[LastUpdate] [datetime] NULL
[LastUpdate] [datetime] NULL
) ON [PRIMARY]
GO

BIN
mRemoteV1/Icons/PuTTY.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 318 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -5,6 +5,7 @@ Namespace Images
Container = 1
ConnectionOpen = 2
ConnectionClosed = 3
PuttySessions = 4
End Enum
Public Enum ErrorImage

View File

@@ -1,11 +0,0 @@
Namespace Language
Public Class Base
Inherits Language.EN
Public Shared ReadOnly CurrentLanguage As Languages = Languages.EN
End Class
Public Enum Languages
EN = 1
DE = 2
End Enum
End Namespace

View File

@@ -1,390 +0,0 @@
Namespace Language
Public Class DE
Public Const Button_Cancel As String = "&Abbrechen"
Public Const Button_New As String = "&Neu"
Public Const Button_OK As String = "&OK"
Public Const Button_Close As String = "&Schließen"
Public Const Button_Scan As String = "&Scannnen"
Public Const Button_Stop As String = "&Stop"
Public Const Button_Import As String = "&Importieren"
Public Const Props_Name As String = "Name"
Public Const Descr_Name As String = "Dies ist der Name der im Verbindungs Baum angezeigt wird."
Public Const Props_Description As String = "Beschreibung"
Public Const Descr_Description As String = "Hier kann eine Beschreibung für den Host hinterlegt werden."
Public Const Props_Icon As String = "Icon"
Public Const Descr_Icon As String = "Das ausgewählte Icon wird bei Verbindung zum Host im Tab angezeigt."
Public Const Props_Panel As String = "Panel"
Public Const Descr_Panel As String = "Setzt das Panel in dem die Verbindung geöffnet wird."
Public Const Props_HostnameIP As String = "Hostname/IP"
Public Const Descr_HostnameIP As String = "Der Hostname od. die IP zu der eine Verbinung aufgebaut werden soll."
Public Const Props_Username As String = "Benutzername"
Public Const Descr_Username As String = "Geben sie hier ihren Benutzernamen ein."
Public Const Props_Password As String = "Passwort"
Public Const Descr_Password As String = "Geben sie hier ihr Passwort ein."
Public Const Props_Domain As String = "Domäne"
Public Const Descr_Domain As String = "Geben sie hier ihre Domäne ein."
Public Const Props_Protocol As String = "Protokoll"
Public Const Descr_Protocol As String = "Wählen sie das Protokoll das verwendet werden soll um eine Verbindung aufzubauen."
Public Const Props_Port As String = "Port"
Public Const Descr_Port As String = "Geben sie den Port ein auf dem das Protokoll auf Verbindungen wartet."
Public Const Props_PuttySession As String = "Putty Session"
Public Const Descr_PuttySession As String = "Wählen sie eine PuTTY session die bei Verbindung verwendet werden soll."
Public Const Props_EncryrptionStrength As String = "Verschlüsselungsstärke"
Public Const Descr_EncryptionStrength As String = "Wählen sie die Verschlüsselungsstärke des Remote Hosts."
Public Const Props_AuthenticationLevel As String = "Serverauthentifizierung"
Public Const Descr_AuthenticationLevel As String = "Wählen sie welche Authentifizierungs-Variante verwendet wird."
Public Const Props_UseConsoleSession As String = "Verwende Console Session"
Public Const Descr_UseConsoleSession As String = "Zur Console Session des Remote Hosts verbinden."
Public Const Props_Resolution As String = "Auflösung"
Public Const Descr_Resolution As String = "Wählen sie die Auflösung in welcher der Host geöffnet werden soll."
Public Const Props_Colors As String = "Farben"
Public Const Descr_Colors As String = "Wählen sie die Farb Qualität."
Public Const Props_CacheBitmaps As String = "Bitmaps zwischenspeichern"
Public Const Descr_CacheBitmaps As String = "Wählen sie ob Bitmap caching zum Einsatz kommen soll."
Public Const Props_DisplayWallpaper As String = "Hintergrundbild anzeigen"
Public Const Descr_DisplayWallpaper As String = "Wählen sie ob Hintergrundbilder am Remote Host angezeigt werden sollen."
Public Const Props_DisplayThemes As String = "Themen anzeigen"
Public Const Descr_DisplayThemes As String = "Wählen sie ob Themen am Remote Host angezeigt werden sollen."
Public Const Props_RedKeyCombinations As String = "Tastenkombinationen"
Public Const Descr_RedKeyCombinations As String = "Wählen sie ob Tastenkombinationen wie z.B. Alt+Tab auf den Remote Host umgeleitet werden sollen."
Public Const Props_RedDiskDrives As String = "Festplatten"
Public Const Descr_RedDiskDrives As String = "Wählen sie ob ihre lokalen Festplatten am Remote Host angezeigt werden sollen."
Public Const Props_RedPrinters As String = "Drucker"
Public Const Descr_RedPrinters As String = "Wählen sie ob ihre lokalen Drucker am Remote Host angezeigt werden sollen."
Public Const Props_RedPorts As String = "Ports"
Public Const Descr_RedPorts As String = "Wählen sie ob ihre lokalen Ports wie z.B. COM, Parallel auf dem Remote Host angezeigt werden sollen."
Public Const Props_RedSmartCards As String = "Smart Cards"
Public Const Descr_RedSmartCards As String = "Wählen sie ob ihre lokalen Smart Cards auf dem Remote Host zur Verfügung stehen sollen."
Public Const Props_RedSounds As String = "Töne"
Public Const Descr_RedSound As String = "Wählen sie wie Töne auf dem Remote Host wiedergegeben werden sollen."
Public Const Props_PreExtApp As String = "Pre Ext. App"
Public Const Descr_PreExtApp As String = "Wählen sie eine Ext. App die gestartet werden soll bevor die Verbindung zum Remote Host aufgebaut wurde."
Public Const Props_PostExtApp As String = "Post Ext. App"
Public Const Descr_PostExtApp As String = "Wählen sie eine Ext. App die gestartet werden soll nachdem die Verbindung zum Remote Host getrennt wurde."
Public Const Props_Compression As String = "Kompremierung"
Public Const Descr_Compression As String = "Wählen sie die Kompressionsrate die verwendet werden soll."
Public Const Props_Encoding As String = "Codierung"
Public Const Descr_Encoding As String = "Wählen sie die Codierung die verwendet werden soll."
Public Const Props_AuthMode As String = "Auth. Modus"
Public Const Descr_AuthMode As String = "Wählen sie wie sie sich am VNC server authentifizieren wollen."
Public Const Props_ProxyType As String = "Proxy Typ"
Public Const Descr_ProxyType As String = "Wenn sie einen Proxy verwenden um auf den Remote Host zugreifen zu können, wählen sie hier den Typ."
Public Const Props_ProxyIP As String = "Proxy IP"
Public Const Descr_ProxyIP As String = "Geben sie die IP des Proxy Servers ein."
Public Const Props_ProxyPort As String = "Proxy Port"
Public Const Descr_ProxyPort As String = "Geben sie den Port des Proxy Servers ein."
Public Const Props_ProxyUsername As String = "Proxy Benutzername"
Public Const Descr_ProxyUsername As String = "Geben sie ihren Benutzernamen ein."
Public Const Props_ProxyPassword As String = "Proxy Passwort"
Public Const Descr_ProxyPassword As String = "Geben sie ihr Password ein."
Public Const Props_SmartSizeMode As String = "SmartSize Modus"
Public Const Descr_SmartSizeMode As String = "Wählen sie den SmartSize Modus der verwendet werden soll."
Public Const Props_ViewOnly As String = "View-Only"
Public Const Descr_ViewOnly As String = "Wählen sie ob sie eine View-Only Verbindung aufbauen wollen."
Public Const Props_RenderingEngine As String = "Rendering Engine"
Public Const Descr_RenderingEngine As String = "Wählen sie eine der Rendering Engines die verwendet wird um html darzustellen."
Public Const Props_MacAddress As String = "MAC Adresse"
Public Const Descr_MacAddress As String = "Geben sie die MAC Adresse des Remote Hosts ein (kann für Ext. Apps verwendet werden)."
Public Const Props_UserField As String = "Benutzer Feld"
Public Const Descr_UserField As String = "Dieses Feld ist frei beschreibbar."
Public Const Props_General As String = "Generell"
Public Const Props_Display As String = "Anzeige"
Public Const Props_Connection As String = "Verbindung"
Public Const Props_Appearance As String = "Aussehen"
Public Const Props_Redirect As String = "Umleitung"
Public Const Props_Misc As String = "Verschiedenes"
Public Const Props_InheritEverything As String = "Alles vererben"
Public Const Props_ExtApp As String = "Ext. App"
Public Const Descr_ExtApp As String = "Wählen sie die Ext. App die gestartet werden soll."
Public Const Menu_About As String = "Über"
Public Const Menu_AddConnectionPanel As String = "Verbindungs Panel hinzufügen"
Public Const Menu_Forum As String = "Support Forum" ' TODO: Translate
Public Const Menu_BugReport As String = "Bug Report" ' TODO: Translate
Public Const Menu_Config As String = "Konfiguration"
Public Const Menu_ConnectionPanels As String = "Verbindungs Panels"
Public Const Menu_Connections As String = "Verbindungen"
Public Const Menu_ConnectionsConfig As String = "Verbindungen && Konfiguration"
Public Const Menu_Donate As String = "Spenden"
Public Const Menu_ErrorsAndInfos As String = "Fehler und Infos"
Public Const Menu_ErrorsInfos As String = "Fehler && Infos"
Public Const Menu_Exit As String = "Beenden"
Public Const Menu_ExternalApplications As String = "Externe Programme"
Public Const Menu_ExternalApplicationsToolbar As String = "Externe Programme Symbolleiste"
Public Const Menu_File As String = "&Datei"
Public Const Menu_FullScreenKioskMode As String = "Vollbild (Kiosk Modus)"
Public Const Menu_Help As String = "Hilfe"
Public Const Menu_Info As String = "&Info"
Public Const Menu_JumpTo As String = "Springe zu"
Public Const Menu_NewConnections As String = "Neu Verbindungen"
Public Const Menu_OpenConnections As String = "Verbindungen öffnen"
Public Const Menu_Options As String = "Optionen"
Public Const Menu_PortScan As String = "Port Scan"
Public Const Menu_QuickyToolbar As String = "Quicky Symbolleiste"
Public Const Menu_SaveConnections As String = "Verbindungen speichern"
Public Const Menu_SaveConnectionsAs As String = "Verbindungen speichern unter"
Public Const Menu_ScreenshotManager As String = "Screenshot Manager"
Public Const Menu_Sessions As String = "Sessions"
Public Const Menu_SessionsScreenshots As String = "Sessions && Screenshots"
Public Const Menu_SSHFileTransfer As String = "SSH Datei Transfer"
Public Const Menu_Tools As String = "E&xtras"
Public Const Menu_Update As String = "Update"
Public Const Menu_View As String = "&Ansicht"
Public Const Menu_Website As String = "Webseite"
Public Const Toolbar_Play As String = "Los!"
Public Const Toolbar_Quicky As String = "&Quicky:"
Public Const Toolbar_ShowText As String = "Text anzeigen"
Public Const Password As String = "Passwort:"
Public Const Security As String = "Sicherheit"
Public Const SelectAPanel As String = "Wähle ein Panel aus der Liste oder klicke auf Neu um ein neues zu erstellen. Klicke OK um fortzufahren."
Public Const SelectPanel As String = "Wähle Panel"
Public Const Status As String = "Status"
Public Const Verify As String = "Überprüfen:"
Public Const Aspect As String = "Aspekt"
Public Const Free As String = "Frei"
Public Const NoSmartSize As String = "Kein SmartSize"
Public Const Normal As String = "Normal"
Public Const None As String = "Kein"
Public Const NoCompression As String = "Keine Kompression"
Public Const Connecting As String = "Verbinde..."
Public Const Disconnected As String = "Getrennt"
Public Const RDP256Colors As String = "256 Farben"
Public Const RDPSoundBringToThisComputer As String = "Auf diesem Computer wiedergeben"
Public Const RDPSoundLeaveAtRemoteComputer As String = "Auf dem Remotecomputer wiedergeben"
Public Const RDPSoundDoNotPlay As String = "Nicht wiedergeben"
Public Const RDPFitToPanel As String = "An das Panel anpassen"
Public Const RDPSmartSize As String = "Smart Size"
Public Const Active As String = "Aktiv"
Public Const Inactive As String = "Inaktiv"
Public Const Fullscreen As String = "Vollbild"
Public Const Information As String = "Information"
Public Const Warning As String = "Warnung"
Public Const Error_ As String = "Fehler"
Public Const PasswordProtect As String = "Passwortschützen"
Public Const AutomaticReconnect As String = "Automatisches wiederverbinden"
Public Const ServerStatus As String = "Server Status:"
Public Const ReconnectWhenReady As String = "Verbinden wenn bereit"
Public Const Connections As String = "Verbindungen"
Public Const Files As String = "Dateien"
Public Const All As String = "Alle"
Public Const Yes As String = "Ja"
Public Const No As String = "Nein"
Public Const New_ As String = "Neu"
Public Const Connection As String = "Verbindung"
Public Const Folder As String = "Ordner"
Public Const Root As String = "Wurzel"
Public Const SureToDeleteItem As String = "Sind sie sicher dass sie dieses Objekt löschen möchten?"
Public Const License As String = "Lizenz"
Public Const About As String = "Über"
Public Const ChangeLog As String = "Änderungen:"
Public Const ReleasedUnderGPL As String = "Unter der GNU General Public License (GPL) veröffentlicht"
Public Const SomeIconsBy As String = "Einige Icons von"
Public Const Change As String = "Ändern"
Public Const Inheritance As String = "Vererbung"
Public Const Default_ As String = "Standard"
Public Const Properties As String = "Eigenschaften"
Public Const SmartSize As String = "SmartSize"
Public Const Screenshot As String = "Screenshot"
Public Const StartChat As String = "Chat starten"
Public Const TransferFile As String = "Datei übertragen"
Public Const RefreshScreen As String = "Anzeige aktualisieren"
Public Const SendSpecialKeys As String = "Tastenkombination senden"
Public Const RenameTab As String = "Tab umbenennen"
Public Const DuplicateTab As String = "Tab klonen"
Public Const Reconnect As String = "Wiederverbinden"
Public Const Disconnect As String = "Trennen"
Public Const Message As String = "Nachricht"
Public Const Copy As String = "Kopieren"
Public Const Paste As String = "Einfügen"
Public Const Delete As String = "Löschen"
Public Const Filename As String = "Dateiname"
Public Const Arguments As String = "Parameter"
Public Const WaitForExit As String = "Auf Beendigung warten"
Public Const Add As String = "Hinzufügen"
Public Const Remove As String = "Entfernen"
Public Const Start As String = "Starten"
Public Const Application As String = "Applikation"
Public Const Editor As String = "Editor"
Public Const Browse As String = "Öffnen..."
Public Const DisplayName As String = Props_Display & " " & Props_Name
Public Const ReallyDeleteSelectedApplications As String = "Sind sie sicher dass sie die ausgewählte(n) Applikation(en) löschen möchten?"
Public Const Key_Control As String = "Strg"
Public Const Key_Alt As String = "Alt"
Public Const Key_Del As String = "Entf"
Public Const Key_Esc As String = "Esc"
Public Const Advanced As String = "Erweitert"
Public Const TestProxy As String = "Test Proxy"
Public Const Seconds As String = "Sekunden"
Public Const MaxPuttyWaitTime As String = "Maximale Zeit die auf PuTTY und integrierte Ext. Apps gewartet wird"
Public Const AutomaticallyTryToReconnect As String = "Automatisch versuchen zu verbinden wenn Verbindung getrennt wird (nur RDP && ICA)"
Public Const Address As String = "Addresse"
Public Const UseAuthentication As String = "Benutze Authentifizierung"
Public Const UseProxyForAutomaticUpdates As String = "Proxy für automatische Updates verwenden"
Public Const ToConfigurePuttySessions As String = "Hier klicken um PuTTY Sessions zu konfigurieren:"
Public Const LaunchPutty As String = "Starte PuTTY"
Public Const UseCustomPuttyPath As String = "Eigener PuTTY Pfad:"
Public Const AutomaticallyGetSessionInfo As String = "Automatisch Session Informationen einholen"
Public Const WriteLogFile As String = "Log File schreiben (mRemoteNG.log)"
Public Const StartupExit As String = "Start/Ende"
Public Const AllowOnlySingleInstance As String = "Nur eine Instanz zulassen (mRemote Neustart benötigt)"
Public Const ReconnectAtStartup As String = "Offene Verbindungen speichern und beim nächsten Start wiederverbinden"
Public Const CheckForUpdatesOnStartup As String = "Beim Start auf Updates prüfen"
Public Const ConfirmExit As String = "Schließen bestätigen wenn Verbindungen bestehen"
Public Const SaveConsOnExit As String = "Verbindungen beim Schließen speichern"
Public Const MinimizeToSysTray As String = "In die System Tray minimieren"
Public Const ShowFullConsFilePath As String = "Vollen Verbindungsdateipfad im Titel anzeigen"
Public Const AlwaysShowSysTrayIcon As String = "System Tray Icon immer anzeigen"
Public Const ShowDescriptionTooltips As String = "Beschreibungs Tooltips in der Verbindungsliste anzeigen"
Public Const TabsAndPanels As String = "Tabs && Panele"
Public Const ShowProtocolOnTabs As String = "Protokoll im Tab Titel anzeigen"
Public Const ShowLogonInfoOnTabs As String = "Anmeldeinformationen im Tab Titel anzeigen"
Public Const OpenNewTabRight As String = "Neue Tabs rechts vom momentan selektierten Tab öffnen"
Public Const AlwaysShowPanelSelection As String = "Panel Auswahl Dialog immer anzeigen"
Public Const DoubleClickTabClosesIt As String = "Doppelklick schließt Tabs"
Public Const SetHostnameLikeDisplayName As String = "Beim Anlegen einer neuen Verbindung Hostname wie Anzeige Name setzen"
Public Const Experimental As String = "Experimentell"
Public Const UseSQLServer As String = "SQL Server für das Laden && Speichern der Verbindungen verwenden"
Public Const SQLInfo As String = "Für mehr Infos bitte Hilfeeintrag lesen (Info - Help - Getting started - SQL Configuration)"
Public Const SQLServer As String = "SQL Server"
Public Const AutoSaveMins As String = "Minuten (0 = Ausgeschalten)"
Public Const AutoSaveEvery As String = "Automatisch speichern jede:"
Public Const TheFollowing As String = "die folgenden"
Public Const MyCurrentWindowsCreds As String = "meine aktuellen (windows login info)"
Public Const NoInformation As String = "keine"
Public Const EmptyUsernamePasswordDomainFields As String = "Bei leeren Benutzername, Passwort oder Domänen Feldern benutze:"
Public Const SingleClickOnOpenConnectionSwitchesToIt As String = "Ein einzelner Klick auf eine geöffnete Verbindung springt zu dieser"
Public Const SingleClickOnConnectionOpensIt As String = "Ein einzelner Klick auf eine Verbindung öffnet diese"
Public Const SwitchToErrorsAndInfos As String = "Öffne das Fehler && Infos Panel bei"
Public Const Errors As String = "Fehler"
Public Const Warnings As String = "Warnungen"
Public Const Informations As String = "Informationen"
Public Const UseOnlyErrorsAndInfosPanel As String = "Nur Fehler && Infos Panel benutzen (Keine Popups)"
Public Const Applications As String = "Applikationen"
Public Const ProxyTestSucceeded As String = "Proxy test erfolgreich!"
Public Const ProxyTestFailed As String = "Proxy test fehlgeschlagen!"
Public Const StartIP As String = "Start IP"
Public Const EndIP As String = "End IP"
Public Const ProtocolToImport As String = "Zu importierendes Protokoll"
Public Const OpenPorts As String = "Offene Ports"
Public Const ClosedPorts As String = "Geschlossene Ports"
Public Const StartPort As String = "Start Port"
Public Const EndPort As String = "End Port"
Public Const QuickConnect As String = "Quick Connect"
Public Const UncheckProperties As String = "Deaktivieren sie alle Eigenschaften die nicht gespeichert werden sollen."
Public Const Export As String = "Export"
Public Const SaveAll As String = "Alle speichern"
Public Const RemoveAll As String = "Alle entfernen"
Public Const Save As String = "Speichern"
Public Const SaveImageFilter As String = "Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png" ' TODO: Translate
Public Const Screenshots As String = "Screenshots"
Public Const Activity As String = "Aktivität"
Public Const Type As String = "Type"
Public Const Refresh As String = "Aktualisieren"
Public Const LogOff As String = "Ausloggen"
Public Const LocalFile As String = "Lokale Datei"
Public Const RemoteFile As String = "Remote Datei"
Public Const User As String = "Benutzer"
Public Const Host As String = "Host"
Public Const Transfer As String = "Transfer"
Public Const AddConnection As String = "Verbindung hinzufügen"
Public Const AddFolder As String = "Ordner hinzufügen"
Public Const Connect As String = "Verbinden"
Public Const ConnectWithOptions As String = "Verbinden (mit Optionen)"
Public Const ConnectToConsoleSession As String = "Mit der Console Session verbinden"
Public Const ConnectInFullscreen As String = "Im Vollbild verbinden"
Public Const ChoosePanelBeforeConnecting As String = "Panel vor Verbindung auswählen"
Public Const Tools As String = "Extras"
Public Const ImportExport As String = "Importieren/Exportieren"
Public Const ExportmRemoteXML As String = "mRemote XML exportieren"
Public Const ImportmRemoteXML As String = "mRemote XML importieren"
Public Const ImportAD As String = "Aus Active Directory importieren"
Public Const ImportRDPFiles As String = "Aus .RDP Datei(en) importieren"
Public Const ImportPortScan As String = "Von Port Scan importieren"
Public Const Sort As String = "Sortieren"
Public Const SortAsc As String = "Aufsteigend (A-Z)"
Public Const SortDesc As String = "Abfallend (Z-A)"
Public Const Duplicate As String = "Duplizieren"
Public Const Rename As String = "Umbenennen"
Public Const MoveUp As String = "Nach oben"
Public Const MoveDown As String = "Nach unten"
Public Const ExpandAllFolders As String = "Alle Ordner erweitern"
Public Const CollapseAllFolders As String = "Alle Ordner schließen"
Public Const NewConnection As String = "Neue Verbindung"
Public Const NewFolder As String = "Neuer Ordner"
Public Const CheckForUpdate As String = "Auf Update prüfen"
Public Const DownloadAndInstall As String = "Downloaden && Installieren"
Public Const AvailableVersion As String = "Verfügbare Version"
Public Const CurrentVersion As String = "Aktuelle Version"
Public Const Version As String = "Version"
Public Const UpdateAvailable As String = "Update verfügbar!"
Public Const NoUpdateAvailable As String = "Kein Update verfügbar!"
Public Const UpdateDownloadComplete As String = "Download fertiggestellt!" & vbNewLine & "mRemote wird nun geschlossen und die Installation gestartet."
Public Const SendTo As String = "Senden an..."
Public Const Screen As String = "Bildschirm"
Public Const UnclosedConnectionPanels As String = "Es sind noch geöffnete Verbindungs Panele vorhanden, wollen sie wirklich beenden?"
Public Const SaveConnectionsFileBeforeOpeningAnother As String = "Wollen sie die aktuelle Verbindungs-Datei speichern bevor eine andere geladen wird?"
Public Const NewPanel As String = "Neues Panel"
Public Const PanelName As String = "Panel Name"
Public Const NewTitle As String = "Neuer Titel"
Public Const AlwaysConnectEvenIfAuthFails As String = "Immer verbinden, auch wenn Authentifizierung fehlschlägt"
Public Const DontConnectWhenAuthFails As String = "Keine Verbindung herstellen wenn Authentifizierung fehlschlägt"
Public Const WarnIfAuthFails As String = "Warnung anzeigen wenn Authentifizierung fehlschlägt"
Public Const UltraVNCSCListeningPort As String = "UltraVNC SingleClick Port"
Public Const ListeningForIncomingVNCConnections As String = "Warte auf eingehende VNC Verbindungen auf Port"
Public Const CheckProperInstallationOfComponentsAtStartup As String = "Überprüfe die Installation aller Komponenten beim Start"
Public Const XULrunnerPath As String = "XULrunner Pfad"
Public Const Inherit As String = "Vererbe"
Public Const ComponentsCheck As String = "Komponenten Check"
Public Const EncryptCompleteConnectionFile As String = "Connections Datei vollständig verschlüsseln"
Public Const EmptyPasswordContinue As String = "Wollen sie ohne Passwort fortfahren?"
'CompCheck
Public Const CcAlwaysShowScreen As String = "Bei jedem Start anzeigen"
Public Const CcCheckAgain As String = "Aktualisieren"
Public Const CcNotInstalledProperly As String = "nicht korrekt installiert"
Public Const CcCheckSucceeded As String = "Check erfolgreich!"
Public Const CcCheckFailed As String = "Check fehlgeschlagen!"
Public Const CcRDPOK As String = "Alle RDP Komponenten wurden gefunden und scheinen korrekt registriert zu sein."
Public Const CcRDPFailed As String = "Um RDP korrekt betreiben können muss mindestens Remote Desktop Connection (Terminal Services Client) 6.0 installiert sein. Hier können sie die Software herunterladen: http://support.microsoft.com/kb/925876" & vbNewLine & _
"Wenn sie RDP 6.0 bereits installiert haben und der Check noch immer fehlschlägt, versuchen sie die Datei mstscax.dll manuell zu registrieren. Öffnen sie hierzu den Ausführen Dialog (Start - Ausführen) und geben sie Folgendes ein: regsvr32 ""c:\windows\system32\mstscax.dll"" (Wobei c:\ ihr System-Laufwerk ist)." & vbNewLine & _
"Wenn sie noch immer Probleme mit RDP haben, konsultieren sie bitte das mRemote Forum: http://forum.mremoteng.org/"
Public Const CcVNCOK As String = "Alle VNC Komponenten wurden gefunden und scheinen korrekt registriert zu sein."
Public Const CcVNCFailed As String = "VNC benötigt die Datei scvncctrl.dll (wird mitgeliefert). Diese muss registriert sein. Wenn sie eines der nicht-Setup Pakete verwenden muss dies manuell durchgeführt werden." & vbNewLine & _
"Öffnen sie hierzu den Ausführen Dialog (Start - Ausführen) und geben sie Folgendes ein: regsvr32 ""c:\Programme\mRemote\scvncctrl.dll"" (Wobei c:\Programme\mRemote\ ihr mRemote Installations-Pfad ist)." & vbNewLine & _
"Wenn sie noch immer Probleme mit VNC haben, konsultieren sie bitte das mRemote Forum: http://forum.mremoteng.org/"
Public Const CcPuttyOK As String = "PuTTY wurde gefunden und scheint betriebsbereit zu sein."
Public Const CcPuttyFailed As String = "Die Protokolle, SSH, Telnet, Rlogin und RAW benötigen PuTTY. PuTTY wird in allen mRemote Paketen mitgeliefert und befindet sich im Installations-Pfad." & vbNewLine & _
"Bitte versichern sie sich dass sich die Datei Putty.exe in ihrem mRemote Installations-Pfad befindet (Standard: c:\Programme\mRemote\) oder dass sie einen korrekten Pfad in den Optionen (Extras - Optionen - Erweitert - Eigener PuTTY Pfad) angegeben haben."
Public Const CcICAOK As String = "Alle ICA Komponenten wurden gefunden und scheinen korrekt registriert zu sein."
Public Const CcICAFailed As String = "ICA benötigt eine funktionierende Citrix Presentation Server Client Installation und dass die Datei wfica.ocx korrekt registriert ist. Hier können sie den Client herunterladen: http://www.citrix.com/download/" & vbNewLine & _
"Wenn sie Citrix Presentation Server Client installiert haben und noch immer Probleme haben diesen Check erfolgreich abzuschließen, versuchen sie die Datei wfica.ocx manuell zu registrieren." & vbNewLine & _
"Öffnen sie hierzu den Ausführen Dialog (Start - Ausführen) und geben sie Folgendes ein: regsvr32 ""c:\Programme\Citrix\ICA Client\wfica.ocx"" (Wobei c:\Programme\Citrix\ICA Client\ ihr Citrix Presentation Server Client Installations-Pfad ist)." & vbNewLine & _
"Wenn sie noch immer Probleme mit ICA haben, konsultieren sie bitte das mRemote Forum: http://forum.mremoteng.org/"
Public Const CcGeckoOK As String = "XULrunner wurde gefunden und scheint korrekt installiert zu sein."
Public Const CcGeckoFailed As String = "Um die Gecko Rendering Engine benutzen zu können benötigen sie XULrunner 1.8.1.x und einen korrekt eingetragenen Pfad in den Optionen." & vbNewLine & _
"Hier können sie XULrunner 1.8.1.3 herunterladen: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/" & vbNewLine & _
"Wenn der Download abgeschlossen ist entpacken sie das Paket (Der Speicherort ist dabei ihnen überlassen). Als nächstes öffnen sie (in mRemote) Extras - Optionen - Erweitert und geben sie den korrekten Pfad im XULrunner Feld an." & vbNewLine & _
"Wenn sie noch immer Probleme mit der Gecko Engine in mRemote haben, konsultieren sie bitte das mRemote Forum: http://forum.mremoteng.org/"
Public Const CcEOLOK As String = "EOLWTSCOM wurde gefunden und scheint korrekt registriert zu sein."
Public Const CcEOLFailed As String = "Das (RDP) Sessions feature benötigt die Datei eolwtscom.dll. Diese muss korrekt registriert sein." & vbNewLine & _
"Alle mRemote Pakete beinhalten diese Datei, jedoch muss sie, wenn sie eines der nicht-Setup Pakete verwenden manuell registriert werden." & vbNewLine & _
"Öffnen sie hierzu den Ausführen Dialog (Start - Ausführen) und geben sie Folgendes ein: regsvr32 ""c:\Programme\mRemote\eolwtscom.dll"" (Wobei c:\Programme\mRemote\ ihr mRemote Installations-Pfad ist)." & vbNewLine & _
"Wenn sie noch immer Probleme mit dem (RDP) Sessions Feature in mRemote haben, konsultieren sie bitte das mRemote Forum: http://forum.mremoteng.org/"
Public Const PropertiesWillOnlyBeSavedMRemoteXML As String = "(Diese Einstellungen werden nur gespeichert wenn sie mRemote XML als Dateiformat auswählen!)"
End Class
End Namespace

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

File diff suppressed because it is too large Load Diff

View File

@@ -1,401 +0,0 @@
Namespace Language
Public Class EN
Public Const Button_Cancel As String = "&Cancel"
Public Const Button_New As String = "&New"
Public Const Button_OK As String = "&OK"
Public Const Button_Close As String = "&Close"
Public Const Button_Scan As String = "&Scan"
Public Const Button_Stop As String = "&Stop"
Public Const Button_Import As String = "&Import"
Public Const Props_Name As String = "Name"
Public Const Descr_Name As String = "This is the name that will be displayed in the connections tree."
Public Const Props_Description As String = "Description"
Public Const Descr_Description As String = "Put your notes or a description for the host here."
Public Const Props_Icon As String = "Icon"
Public Const Descr_Icon As String = "Choose a icon that will be displayed when connected to the host."
Public Const Props_Panel As String = "Panel"
Public Const Descr_Panel As String = "Sets the panel in which the connection will open."
Public Const Props_HostnameIP As String = "Hostname/IP"
Public Const Descr_HostnameIP As String = "Enter the hostname or ip you want to connect to."
Public Const Props_Username As String = "Username"
Public Const Descr_Username As String = "Enter your username."
Public Const Props_Password As String = "Password"
Public Const Descr_Password As String = "Enter your password."
Public Const Props_Domain As String = "Domain"
Public Const Descr_Domain As String = "Enter your domain."
Public Const Props_Protocol As String = "Protocol"
Public Const Descr_Protocol As String = "Choose the protocol mRemoteNG should use to connect to the host."
Public Const Props_Port As String = "Port"
Public Const Descr_Port As String = "Enter the port the selected protocol is listening on."
Public Const Props_PuttySession As String = "Putty Session"
Public Const Descr_PuttySession As String = "Select a PuTTY session to be used when connecting."
Public Const Props_EncryrptionStrength As String = "Encryption Strength"
Public Const Descr_EncryptionStrength As String = "Select the encryption strength of the remote host."
Public Const Props_AuthenticationLevel As String = "Server authentication"
Public Const Descr_AuthenticationLevel As String = "Select which authentication level this connection should use."
Public Const Props_UseConsoleSession As String = "Use console session"
Public Const Descr_UseConsoleSession As String = "Connect to the console session of the remote host."
Public Const Props_Resolution As String = "Resolution"
Public Const Descr_Resolution As String = "Choose the resolution or mode this connection will open in."
Public Const Props_Colors As String = "Colors"
Public Const Descr_Colors As String = "Select the color quality to be used."
Public Const Props_CacheBitmaps As String = "Cache Bitmaps"
Public Const Descr_CacheBitmaps As String = "Select whether to use bitmap caching or not."
Public Const Props_DisplayWallpaper As String = "Display Wallpaper"
Public Const Descr_DisplayWallpaper As String = "Select yes if the wallpaper of the remote host should be displayed."
Public Const Props_DisplayThemes As String = "Display Themes"
Public Const Descr_DisplayThemes As String = "Select yes if the theme of the remote host should be displayed."
Public Const Props_RedKeyCombinations As String = "Key combinations"
Public Const Descr_RedKeyCombinations As String = "Select whether key combinations (ie. Alt+Tab) should be redirected to the remote host."
Public Const Props_RedDiskDrives As String = "Disk Drives"
Public Const Descr_RedDiskDrives As String = "Select whether local disk drives should be shown on the remote host."
Public Const Props_RedPrinters As String = "Printers"
Public Const Descr_RedPrinters As String = "Select whether local printers should be shown on the remote host."
Public Const Props_RedPorts As String = "Ports"
Public Const Descr_RedPorts As String = "Select whether local ports (ie. com, parallel) should be shown on the remote host."
Public Const Props_RedSmartCards As String = "Smart Cards"
Public Const Descr_RedSmartCards As String = "Select whether local Smart Cards should be available on the remote host."
Public Const Props_RedSounds As String = "Sounds"
Public Const Descr_RedSound As String = "Select how remote sound should be redirected."
Public Const Props_PreExtApp As String = "Pre Ext. App"
Public Const Descr_PreExtApp As String = "Select a Ext. App to be started before the connection to the remote host is established."
Public Const Props_PostExtApp As String = "Post Ext. App"
Public Const Descr_PostExtApp As String = "Select a Ext. App to be started after the disconnection to the remote host."
Public Const Props_Compression As String = "Compression"
Public Const Descr_Compression As String = "Select the compression value to be used."
Public Const Props_Encoding As String = "Encoding"
Public Const Descr_Encoding As String = "Select the encoding mode to be used."
Public Const Props_AuthMode As String = "Auth. Mode"
Public Const Descr_AuthMode As String = "Select how you want to authenticate against the VNC server."
Public Const Props_ProxyType As String = "Proxy Type"
Public Const Descr_ProxyType As String = "If you use a proxy to tunnel VNC connections, select which type it is."
Public Const Props_ProxyIP As String = "Proxy IP"
Public Const Descr_ProxyIP As String = "Enter the Proxy IP to be used."
Public Const Props_ProxyPort As String = "Proxy Port"
Public Const Descr_ProxyPort As String = "Enter the port the Proxy Server listens on."
Public Const Props_ProxyUsername As String = "Proxy Username"
Public Const Descr_ProxyUsername As String = "Enter your username for authenticating against the Proxy."
Public Const Props_ProxyPassword As String = "Proxy Password"
Public Const Descr_ProxyPassword As String = "Enter your password for authenticating against the Proxy."
Public Const Props_SmartSizeMode As String = "SmartSize Mode"
Public Const Descr_SmartSizeMode As String = "Select the SmartSize mode to be used."
Public Const Props_ViewOnly As String = "View Only"
Public Const Descr_ViewOnly As String = "If you want to establish a view-only connection to the host select yes."
Public Const Props_RenderingEngine As String = "Rendering Engine"
Public Const Descr_RenderingEngine As String = "Select one of the available rendering engines that will be used to display html."
Public Const Props_MacAddress As String = "MAC Address"
Public Const Descr_MacAddress As String = "Enter the MAC Address of the remote host if you wish to use it in Ext. Apps."
Public Const Props_UserField As String = "User Field"
Public Const Descr_UserField As String = "Feel free to enter any information you need here."
Public Const Props_RDGatewayUsageMethod As String = "Use Gateway"
Public Const Descr_RDGatewayUsageMethod As String = "Specifies when to use a Remote Desktop Gateway (RD Gateway) server."
Public Const Props_RDGatewayHostname As String = "Gateway Hostname"
Public Const Descr_RDGatewayHostname As String = "Specifies the host name of the Remote Desktop Gateway server."
Public Const Props_RDGatewayUseConnectionCredentials As String = "Gateway Credentials"
Public Const Descr_RDGatewayUseConnectionCredentials As String = "Specifies whether or not to log on to the gateway using the same username and password as the connection."
Public Const Props_RDGatewayUsername As String = "Gateway Username"
Public Const Descr_RDGatewayUsername As String = "Specifies the user name that a user provides to connect to the RD Gateway server."
Public Const Props_RDGatewayPassword As String = "Gateway Password"
Public Const Descr_RDGatewayPassword As String = "Specifies the password that a user provides to connect to the RD Gateway server."
Public Const Props_RDGatewayDomain As String = "Gateway Domain"
Public Const Descr_RDGatewayDomain As String = "Specifies the domain name that a user provides to connect to the RD Gateway server."
Public Const Props_General As String = "General"
Public Const Props_Display As String = "Display"
Public Const Props_Connection As String = "Connection"
Public Const Category_RDGateway As String = "Gateway"
Public Const Props_Appearance As String = "Appearance"
Public Const Props_Redirect As String = "Redirect"
Public Const Props_Misc As String = "Misc"
Public Const Props_InheritEverything As String = "Inherit Everything"
Public Const Props_ExtApp As String = "Ext. App"
Public Const Descr_ExtApp As String = "Select the Ext. App to be started."
Public Const Menu_About As String = "About"
Public Const Menu_AddConnectionPanel As String = "Add Connection Panel"
Public Const Menu_Forum As String = "Support Forum"
Public Const Menu_BugReport As String = "Report a Bug"
Public Const Menu_Config As String = "Config"
Public Const Menu_ConnectionPanels As String = "Connection Panels"
Public Const Menu_Connections As String = "Connections"
Public Const Menu_ConnectionsConfig As String = "Connections && Config"
Public Const Menu_Donate As String = "Donate"
Public Const Menu_ErrorsAndInfos As String = "Notifications"
Public Const Menu_ErrorsInfos As String = "Notifications"
Public Const Menu_Exit As String = "Exit"
Public Const Menu_ExternalApplications As String = "External Applications"
Public Const Menu_ExternalApplicationsToolbar As String = "External Applications Toolbar"
Public Const Menu_File As String = "&File"
Public Const Menu_FullScreenKioskMode As String = "Full Screen"
Public Const Menu_Help As String = "mRemoteNG Help"
Public Const Menu_Info As String = "&Help"
Public Const Menu_JumpTo As String = "Jump To"
Public Const Menu_NewConnections As String = "New Connections"
Public Const Menu_OpenConnections As String = "Open Connections"
Public Const Menu_Options As String = "Options"
Public Const Menu_PortScan As String = "Port Scan"
Public Const Menu_QuickyToolbar As String = "Quick Connect Toolbar"
Public Const Menu_SaveConnections As String = "Save Connections"
Public Const Menu_SaveConnectionsAs As String = "Save Connections As"
Public Const Menu_ScreenshotManager As String = "Screenshot Manager"
Public Const Menu_Sessions As String = "Sessions"
Public Const Menu_SessionsScreenshots As String = "Sessions && Screenshots"
Public Const Menu_SSHFileTransfer As String = "SSH File Transfer"
Public Const Menu_Tools As String = "&Tools"
Public Const Menu_Update As String = "Check for Updates"
Public Const Menu_View As String = "&View"
Public Const Menu_Website As String = "Website"
Public Const Toolbar_Play As String = "Connect"
Public Const Toolbar_Quicky As String = "&Connect:"
Public Const Toolbar_ShowText As String = "Show Text"
Public Const Password As String = "Password:"
Public Const Security As String = "Security"
Public Const SelectAPanel As String = "Select a panel from the list below or click New to add a new one. Click OK to continue."
Public Const SelectPanel As String = "Select Panel"
Public Const Status As String = "Status"
Public Const Verify As String = "Verify:"
Public Const Aspect As String = "Aspect"
Public Const Free As String = "Free"
Public Const NoSmartSize As String = "No SmartSize"
Public Const Normal As String = "Normal"
Public Const None As String = "None"
Public Const NoCompression As String = "No Compression"
Public Const Connecting As String = "Connecting..."
Public Const Disconnected As String = "Disconnected"
Public Const RDP256Colors As String = "256 Colors"
Public Const RDPSoundBringToThisComputer As String = "Bring to this computer"
Public Const RDPSoundLeaveAtRemoteComputer As String = "Leave at remote computer"
Public Const RDPSoundDoNotPlay As String = "Do not play"
Public Const RDPFitToPanel As String = "Fit To Panel"
Public Const RDPSmartSize As String = "Smart Size"
Public Const Active As String = "Active"
Public Const Inactive As String = "Inactive"
Public Const Fullscreen As String = "Fullscreen"
Public Const Information As String = "Information"
Public Const Warning As String = "Warning"
Public Const Error_ As String = "Error"
Public Const PasswordProtect As String = "Password Protect"
Public Const AutomaticReconnect As String = "Automatic Reconnect"
Public Const ServerStatus As String = "Server Status:"
Public Const ReconnectWhenReady As String = "Reconnect when ready"
Public Const Connections As String = "Connections"
Public Const Files As String = "Files"
Public Const All As String = "All"
Public Const Yes As String = "Yes"
Public Const No As String = "No"
Public Const New_ As String = "New"
Public Const Connection As String = "Connection"
Public Const Folder As String = "Folder"
Public Const Root As String = "Root"
Public Const SureToDeleteItem As String = "Are you sure you want to delete this Item?"
Public Const License As String = "License"
Public Const Change As String = "Change"
Public Const Inheritance As String = "Inheritance"
Public Const Default_ As String = "Default"
Public Const Properties As String = "Properties"
Public Const SmartSize As String = "SmartSize"
Public Const Screenshot As String = "Screenshot"
Public Const StartChat As String = "Start Chat"
Public Const TransferFile As String = "Transfer File"
Public Const RefreshScreen As String = "Refresh Screen"
Public Const SendSpecialKeys As String = "Send special Keys"
Public Const RenameTab As String = "Rename Tab"
Public Const DuplicateTab As String = "Duplicate Tab"
Public Const Reconnect As String = "Reconnect"
Public Const Disconnect As String = "Disconnect"
Public Const Message As String = "Message"
Public Const Copy As String = "Copy"
Public Const Paste As String = "Paste"
Public Const Delete As String = "Delete"
Public Const Filename As String = "Filename"
Public Const Arguments As String = "Arguments"
Public Const WaitForExit As String = "Wait for exit"
Public Const Add As String = "Add"
Public Const Remove As String = "Remove"
Public Const Start As String = "Start"
Public Const Application As String = "Application"
Public Const Editor As String = "Editor"
Public Const Browse As String = "Browse..."
Public Const DisplayName As String = Props_Display & " " & Props_Name
Public Const ReallyDeleteSelectedApplications As String = "Do you really want to delete the selected application(s)?"
Public Const Key_Control As String = "Ctrl"
Public Const Key_Alt As String = "Alt"
Public Const Key_Del As String = "Del"
Public Const Key_Esc As String = "Esc"
Public Const Advanced As String = "Advanced"
Public Const TestProxy As String = "Test Proxy"
Public Const Seconds As String = "seconds"
Public Const MaxPuttyWaitTime As String = "Max. PuTTY && Integrated Ext. Apps wait time"
Public Const AutomaticallyTryToReconnect As String = "Automatically try to reconnect when disconnected from server (RDP && ICA only)"
Public Const Address As String = "Address"
Public Const UseAuthentication As String = "This proxy server requires authentication"
Public Const UseProxyForAutomaticUpdates As String = "Use a proxy server to connect"
Public Const ToConfigurePuttySessions As String = "To configure PuTTY sessions click this button:"
Public Const LaunchPutty As String = "Launch PuTTY"
Public Const UseCustomPuttyPath As String = "Use custom PuTTY path:"
Public Const AutomaticallyGetSessionInfo As String = "Automatically get session information"
Public Const WriteLogFile As String = "Write log file (mRemoteNG.log)"
Public Const StartupExit As String = "Startup/Exit"
Public Const AllowOnlySingleInstance As String = "Allow only a single instance of the application (mRemoteNG restart required)"
Public Const ReconnectAtStartup As String = "Reconnect to previously opened sessions on startup"
Public Const CheckForUpdatesOnStartup As String = "Check for updates and announcements"
Public Const ConfirmExit As String = "Confirm exit if there are open connections"
Public Const SaveConsOnExit As String = "Save connections on exit"
Public Const MinimizeToSysTray As String = "Minimize to System Tray"
Public Const ShowFullConsFilePath As String = "Show full connections file path in window title"
Public Const AlwaysShowSysTrayIcon As String = "Always show System Tray Icon"
Public Const ShowDescriptionTooltips As String = "Show description tooltips in connection tree"
Public Const TabsAndPanels As String = "Tabs && Panels"
Public Const ShowProtocolOnTabs As String = "Show protocols on tab names"
Public Const ShowLogonInfoOnTabs As String = "Show logon information on tab names"
Public Const OpenNewTabRight As String = "Open new tab to the right of the currently selected tab"
Public Const AlwaysShowPanelSelection As String = "Always show panel selection dialog when opening connectins"
Public Const DoubleClickTabClosesIt As String = "Double click on tab closes it"
Public Const SetHostnameLikeDisplayName As String = "Set hostname like display name when creating new connections"
Public Const Experimental As String = "Experimental"
Public Const UseSQLServer As String = "Use SQL Server to load && save connections"
Public Const SQLInfo As String = "Please see Help - Getting started - SQL Configuration for more Info!"
Public Const SQLServer As String = "SQL Server"
Public Const AutoSaveMins As String = "Minutes (0 means disabled)"
Public Const AutoSaveEvery As String = "Auto Save every:"
Public Const TheFollowing As String = "the following"
Public Const MyCurrentWindowsCreds As String = "my current credentials (windows logon info)"
Public Const NoInformation As String = "no information"
Public Const EmptyUsernamePasswordDomainFields As String = "For empty Username, Password or Domain fields use:"
Public Const SingleClickOnOpenConnectionSwitchesToIt As String = "Single click on opened connection switches to it"
Public Const SingleClickOnConnectionOpensIt As String = "Single click on connection opens it"
Public Const SwitchToErrorsAndInfos As String = "Switch to Notifications panel on"
Public Const Errors As String = "Errors"
Public Const Warnings As String = "Warnings"
Public Const Informations As String = "Informations"
Public Const UseOnlyErrorsAndInfosPanel As String = "Use only Notifications panel (no messagebox popups)"
Public Const Applications As String = "Applications"
Public Const ProxyTestSucceeded As String = "Proxy test succeeded!"
Public Const ProxyTestFailed As String = "Proxy test failed!"
Public Const StartIP As String = "Start IP"
Public Const EndIP As String = "End IP"
Public Const ProtocolToImport As String = "Protocol to import"
Public Const OpenPorts As String = "Open Ports"
Public Const ClosedPorts As String = "Closed Ports"
Public Const StartPort As String = "Start Port"
Public Const EndPort As String = "End Port"
Public Const QuickConnect As String = "Quick Connect"
Public Const UncheckProperties As String = "Uncheck the properties you want not to be saved!"
Public Const Export As String = "Export"
Public Const SaveAll As String = "Save All"
Public Const RemoveAll As String = "Remove All"
Public Const Save As String = "Save"
Public Const SaveImageFilter As String = "Graphics Interchange Format File (.gif)|*.gif|Joint Photographic Experts Group File (.jpeg)|*.jpeg|Joint Photographic Experts Group File (.jpg)|*.jpg|Portable Network Graphics File (.png)|*.png"
Public Const Screenshots As String = "Screenshots"
Public Const Activity As String = "Activity"
Public Const Type As String = "Type"
Public Const Refresh As String = "Refresh"
Public Const LogOff As String = "Log off"
Public Const LocalFile As String = "Local File"
Public Const RemoteFile As String = "Remote File"
Public Const User As String = "User"
Public Const Host As String = "Host"
Public Const Transfer As String = "Transfer"
Public Const AddConnection As String = "Add Connection"
Public Const AddFolder As String = "Add Folder"
Public Const Connect As String = "Connect"
Public Const ConnectWithOptions As String = "Connect (with options)"
Public Const ConnectToConsoleSession As String = "Connect to console session"
Public Const ConnectInFullscreen As String = "Connect in fullscreen"
Public Const ChoosePanelBeforeConnecting As String = "Choose panel before connecting"
Public Const Tools As String = "Tools"
Public Const ImportExport As String = "Import/Export"
Public Const ExportmRemoteXML As String = "Export mRemote/mRemoteNG XML"
Public Const ImportmRemoteXML As String = "Import mRemote/mRemoteNG XML"
Public Const ImportAD As String = "Import from Active Directory"
Public Const ImportRDPFiles As String = "Import from .RDP file(s)"
Public Const ImportPortScan As String = "Import from Port Scan"
Public Const Sort As String = "Sort"
Public Const SortAsc As String = "Ascending (A-Z)"
Public Const SortDesc As String = "Descending (Z-A)"
Public Const Duplicate As String = "Duplicate"
Public Const Rename As String = "Rename"
Public Const MoveUp As String = "Move up"
Public Const MoveDown As String = "Move down"
Public Const ExpandAllFolders As String = "Expand all folders"
Public Const CollapseAllFolders As String = "Collapse all folders"
Public Const NewConnection As String = "New Connection"
Public Const NewFolder As String = "New Folder"
Public Const CheckForUpdate As String = "Check Again"
Public Const DownloadAndInstall As String = "Download and Install"
Public Const AvailableVersion As String = "Current version"
Public Const CurrentVersion As String = "Installed version"
Public Const Version As String = "Version"
Public Const UpdateAvailable As String = "mRemoteNG requires an update"
Public Const NoUpdateAvailable As String = "mRemoteNG is up to date"
Public Const UpdateDownloadComplete As String = "Download complete!" & vbNewLine & "mRemoteNG will now quit and begin with the installation."
Public Const SendTo As String = "Send to..."
Public Const Screen As String = "Screen"
Public Const SaveConnectionsFileBeforeOpeningAnother As String = "Do you want to save the current connections file before loading another?"
Public Const NewPanel As String = "New Panel"
Public Const PanelName As String = "Panel name"
Public Const NewTitle As String = "New Title"
Public Const AlwaysConnectEvenIfAuthFails As String = "Always connect, even if authentication fails"
Public Const DontConnectWhenAuthFails As String = "Don't connect if authentication fails"
Public Const WarnIfAuthFails As String = "Warn me if authentication fails"
Public Const UltraVNCSCListeningPort As String = "UltraVNC SingleClick Listening Port"
Public Const ListeningForIncomingVNCConnections As String = "Listening for incoming VNC connections on port"
Public Const CheckProperInstallationOfComponentsAtStartup As String = "Check proper installation of components at startup"
Public Const XULrunnerPath As String = "XULrunner path"
Public Const Inherit As String = "Inherit"
Public Const ComponentsCheck As String = "Components Check"
Public Const EncryptCompleteConnectionFile As String = "Completely encrypt connection file"
Public Const EmptyPasswordContinue As String = "Do you want to continue with no password?"
'CompCheck
Public Const CcAlwaysShowScreen As String = "Always show this screen at startup"
Public Const CcCheckAgain As String = "Refresh"
Public Const CcNotInstalledProperly As String = "not installed properly"
Public Const CcCheckSucceeded As String = "Check succeeded!"
Public Const CcCheckFailed As String = "Check failed!"
Public Const CcRDPOK As String = "All RDP components were found and seem to be registered properly." & vbNewLine & _
"Remote Desktop Connection Control Version {0}"
Public Const CcRDPFailed As String = "For RDP to work properly you need to have at least Remote Desktop Connection (Terminal Services Client) 6.1 installed. You can get it here: http://support.microsoft.com/kb/951616" & vbNewLine & _
"If you have RDP 6.1 installed and the check still fails, try to register mstscax.dll manually. To do this open up the run dialog (Start - Run) and enter the following: regsvr32 ""c:\windows\system32\mstscax.dll"" (Where c:\ is your system drive)." & vbNewLine & _
"If you still have trouble getting RDP to work please consult the mRemoteNG Forum at http://forum.mremoteng.org/"
Public Const CcVNCOK As String = "All VNC components were found and seem to be registered properly." & vbNewLine & _
"VncSharpNG Control Version {0}"
Public Const CcVNCFailed As String = "VNC requires VncSharpNG.dll to be located in your mRemoteNG application folder." & vbNewLine & _
"Please make sure that you have the VncSharpNG.dll file in your mRemoteNG application folder (usually C:\Program Files\mRemoteNG\)." & vbNewLine & _
"If you are still not able to pass this check or use VNC in mRemoteNG please consult the mRemoteNG Forum at http://forum.mremoteng.org/"
Public Const CcPuttyOK As String = "The PuTTY executable was found and should be ready to use."
Public Const CcPuttyFailed As String = "The SSH, Telnet, Rlogin and RAW protocols need PuTTY to work. PuTTY comes with every mRemoteNG package and is located in the installation path." & vbNewLine & _
"Please make sure that either you have the Putty.exe in your mRemoteNG directory (default: c:\Program Files\mRemoteNG\) or that you specified a valid path to your PuTTY executable in the Options (Tools - Options - Advanced - Custom PuTTY path)"
Public Const CcICAOK As String = "All ICA components were found and seem to be registered properly." & vbNewLine & _
"Citrix ICA Client Control Version {0}"
Public Const CcICAFailed As String = "ICA requires that the Citrix Presentation Server Client is installed and that the wfica.ocx library is registered. You can download the client here: http://www.citrix.com/download/" & vbNewLine & _
"If you have the Citrix Presentation Server Client installed and the check still fails, try to register wfica.ocx manually." & vbNewLine & _
"To do this open up the run dialog (Start - Run) and enter the following: regsvr32 ""c:\Program Files\Citrix\ICA Client\wfica.ocx"" (Where c:\Program Files\Citrix\ICA Client\ is the path to your Citrix Presentation Server Client installation)." & vbNewLine & _
"If you are still not able to pass this check or use ICA in mRemoteNG please consult the mRemoteNG Forum at http://forum.mremoteng.org/"
Public Const CcGeckoOK As String = "XULrunner was found and seems to be installed properly."
Public Const CcGeckoFailed As String = "To use the Gecko Rendering Engine you need to have XULrunner 1.8.1.x and the path to the installation set in your Options." & vbNewLine & _
"You can download XULrunner 1.8.1.3 here: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/" & vbNewLine & _
"When you are finished downloading extract the package to a path of your choice. Then in mRemoteNG go to Tools - Options - Advanced and enter the correct path in the XULrunner path field." & vbNewLine & _
"If you are still not able to pass this check or use the Gecko Engine in mRemoteNG please consult the mRemoteNG Forum at http://forum.mremoteng.org/"
Public Const CcEOLOK As String = "EOLWTSCOM was found and seems to be registered properly."
Public Const CcEOLFailed As String = "The (RDP) Sessions feature requires that you have a registered copy of eolwtscom.dll on your system." & vbNewLine & _
"mRemoteNG ships with this component but will not register it automatically unless you run the setup package." & vbNewLine & _
"To do register it manually do this: Open up the run dialog (Start - Run) and enter the following: regsvr32 ""c:\Program Files\mRemoteNG\eolwtscom.dll"" (Where c:\Program Files\mRemoteNG\ is the path to your mRemoteNG installation)." & vbNewLine & _
"If you are still not able to pass this check or use the (RDP) Sessions feature in mRemoteNG please consult the mRemoteNG Forum at http://forum.mremoteng.org/"
Public Const PropertiesWillOnlyBeSavedMRemoteXML As String = "(These properties will only be saved if you select mRemote/mRemoteNG XML as output file format!)"
End Class
End Namespace

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,348 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>Σχετικά με</value>
</data>
<data name="strActive" xml:space="preserve">
<value>Ενεργό</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Δραστηριότητα</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Νέα σύνδεση</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Νέος φάκελος</value>
</data>
<data name="strAddNodeFromXmlFailed" xml:space="preserve">
<value>AddNodeFromXML απέτυχε!</value>
</data>
<data name="strAddNodesFromSqlFailed" xml:space="preserve">
<value>AddNodesFromSQL απέτυχε!</value>
</data>
<data name="strAllowOnlySingleInstance" xml:space="preserve">
<value>Επιτρέπετε μόνο ένα μόνο παράδειγμα της εφαρμογής (απαιτείται επανεκκίνηση του mRemoteNG)</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Πάντα</value>
</data>
<data name="strAlwaysConnectEvenIfAuthFails" xml:space="preserve">
<value>Πάντοτε να συνδεθεί, ακόμη και αν ο έλεγχος ταυτότητας αποτυγχάνει</value>
</data>
<data name="strAlwaysShowPanelSelection" xml:space="preserve">
<value>Πάντα Εμφάνιση πίνακα διαλόγου επιλογής κατά το άνοιγμα συνδέσεων</value>
</data>
<data name="strAlwaysShowSysTrayIcon" xml:space="preserve">
<value>Να εμφανίζονται πάντα γνωστοποίησης περιοχων εικόνας</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Ρωτήστε με ξανά αργότερα</value>
</data>
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
<value>Προσαρμογή των ρυθμίσεων τώρα</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Χρήση των προτεινόμενων ρυθμίσεων</value>
</data>
<data name="strAskUpdatesContent" xml:space="preserve">
<value>{0} μπορεί να ελέγχει αυτόματα ενημερώσεις που μπορούν να παρέχουν νέα χαρακτηριστικά και διορθώσεις σφαλμάτων. Συνιστάται να επιτρέψετε {0} να ελέγξει για ενημερώσεις σε εβδομαδιαία βάση.</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Ρυθμίσεις αυτόματης ενημέρωσης</value>
</data>
<data name="strAspect" xml:space="preserve">
<value>Πτυχή</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Αυτόματη λήψη πληροφοριών περιόδου</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Αυτόματη αποθήκευση κάθε:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Λεπτά (0 σημαίνει απενεργοποιημένο)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Τρέχουσα έκδοση</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp;Αναζήτηση...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Ακύρωση</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Αλλαγή</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>&amp;Κλείσιμο</value>
</data>
<data name="strButtonDefaultInheritance" xml:space="preserve">
<value>Προεπιλογή κληρονομικότητας</value>
</data>
<data name="strButtonDefaultProperties" xml:space="preserve">
<value>Προεπιλεγμένες ιδιότητες</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Αποσύνδεση</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Εικονίδιο</value>
</data>
<data name="strButtonImport" xml:space="preserve">
<value>&amp;Εισαγωγή</value>
</data>
<data name="strButtonInheritance" xml:space="preserve">
<value>Κληρονομιά</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Εκκίνηση του PuTTY</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp; Νέο</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;ΟΚ</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Ιδιότητες</value>
</data>
<data name="strButtonScan" xml:space="preserve">
<value>&amp;Σάρωση</value>
</data>
<data name="strButtonStop" xml:space="preserve">
<value>&amp;Διακοπή</value>
</data>
<data name="strButtonTestProxy" xml:space="preserve">
<value>Δοκιμή διακομιστή μεσολάβησης</value>
</data>
<data name="strCannotImportNormalSessionFile" xml:space="preserve">
<value>Δεν μπορείτε να εισαγάγετε ένα κανονικό αρχείο σύνδεσης.
Παρακαλούμε χρησιμοποιήστε Αρχείο - Συνδέσεις φορτίου για τα κανονικά αρχεία σύνδεσης!</value>
</data>
<data name="strCannotStartPortScan" xml:space="preserve">
<value>Δεν είναι δυνατή η εκκίνηση της σάρωσης υποδοχων, εσφαλμένη μορφή IP!</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Εμφάνιση</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Σύνδεση</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Πιστοποιήσεις</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Οθόνη</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Πύλη</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Γενική</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Διάφορα</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Πρωτόκολλο</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Ανακατεύθυνση</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Πάντα εμφάνιση αυτής της οθόνης κατά την εκκίνηση</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Ανανέωση</value>
</data>
<data name="strCcCheckFailed" xml:space="preserve">
<value>Ο ελέγχος απέτυχε!</value>
</data>
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Ο ελεγχος πέτυχε!</value>
</data>
<data name="strCcEOLFailed" xml:space="preserve">
<value>Η δυνατότητα (RDP) συνεδρίες προϋποθέτει ότι έχετε μια εγγεγραμμένο αντίγραφο του eolwtscom.dll στο σύστημά σας. mRemoteNG πλοία με αυτό το στοιχείο αλλά θα δεν εγγραφείτε αυτόματα εκτός αν η εκτέλεση του πακέτου εγκατάστασης. Να εγγραφείτε δεν με μη αυτόματο τρόπο αυτό: Ανοίξτε στο τρέχω διάλογος (έναρξη - Run) και πληκτρολογήστε τα παρακάτω: regsvr32 "c:\Program Files\mRemoteNG\eolwtscom.dll" (όπου c:\Program Files\mRemoteNG\ είναι η διαδρομή προς την εγκατάσταση mRemoteNG). Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή να χρησιμοποιήσετε τη δυνατότητα συνεδρίες (RDP) στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/</value>
</data>
<data name="strCcEOLOK" xml:space="preserve">
<value>Το EOLWTSCOM βρέθηκε και φαίνεται να έχει καταχωρηθεί σωστά.</value>
</data>
<data name="strCcGeckoFailed" xml:space="preserve">
<value>Για να χρησιμοποιήσετε το μηχανισμό απόδοσης Gecko πρέπει να έχετε XULrunner 1.8.1.x και ο δρόμος για την εγκατάσταση ορίστε στις επιλογές σας. Μπορείτε να κατεβάσετε XULrunner 1.8.1.3 εδώ: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/ όταν ολοκληρώσετε τη λήψη κάντε εξαγωγή του πακέτου για την πορεία της επιλογής σας. Στη συνέχεια, στο mRemoteNG πηγαίνετε στο εργαλεία - επιλογές - προηγμένες και πληκτρολογήσει τη σωστή διαδρομή στο πεδίο διαδρομή XULrunner. Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή χρησιμοποιούν την μηχανή Gecko στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/</value>
</data>
<data name="strCcGeckoOK" xml:space="preserve">
<value>Το XULrunner βρέθηκε και φαίνεται να έχει εγκατασταθεί σωστά.</value>
</data>
<data name="strCcICAFailed" xml:space="preserve">
<value>ICA απαιτεί ότι είναι εγκατεστημένο το XenDesktop Online Plugin και ότι καταχωρείται η βιβλιοθήκη wfica.ocx. Μπορείτε να κατεβάσετε τον πελάτη εδώ: http://www.citrix.com/download/ αν έχετε το XenDesktop Online Plugin εγκατασταθεί και ο έλεγχος συνεχίσει να αποτυγχάνει, προσπαθήστε να εγγραφείτε wfica.ocx με μη αυτόματο τρόπο. Να κάνει αυτό ανοίγω πάνω στο τρέχω διάλογος (έναρξη - Run) και πληκτρολογήστε τα παρακάτω: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (όπου c:\Program Files\Citrix\ICA Client\ είναι η διαδρομή στην εγκατάσταση XenDesktop Online Plugin). Εάν είστε ακόμα δεν είναι σε θέση να περάσει ο έλεγχος αυτός ή να χρησιμοποιήσετε ICA στο mRemoteNG συμβουλευτείτε το mRemoteNG φόρουμ στο http://forum.mremoteng.org/"</value>
</data>
<data name="strCcICAOK" xml:space="preserve">
<value>Όλα τα συστατικά ICA βρέθηκαν και φαίνεται να καταχωρηθηκαν σωστά. Πρόγραμμα-πελάτη Citrix ICA ελέγχου έκδοση {0}</value>
</data>
<data name="strCcNotInstalledProperly" xml:space="preserve">
<value>δεν έχει εγκατασταθεί σωστά</value>
</data>
<data name="strConnectInFullscreen" xml:space="preserve">
<value>Σύνδεση σε λειτουργία πλήρους οθόνης</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Σύνδεση...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Πρωτόκολλο γεγονός που συνδέεται</value>
</data>
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
<value>Σύνδεση με "{0}" μέσω "{1}" από το χρήστη "{2}" (Περιγραφή: «{3}»? Χρήστη το πεδίο: «{4}")</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Η συνδεση απέτυχε!</value>
</data>
<data name="strConnectionEventErrorOccured" xml:space="preserve">
<value>Πρωτόκολλο ErrorOccured εκδήλωση</value>
</data>
<data name="strConnectionOpenFailed" xml:space="preserve">
<value>Άνοιγμα σύνδεσης απέτυχε!</value>
</data>
<data name="strConnectionOpenFailedNoHostname" xml:space="preserve">
<value>Δεν μπορεί να ανοίχθει η σύνδεση: Το όνομα του κεντρικού υπολογιστή δεν ειναι καθορισμένο!</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>RDP λάθος!
Κωδικός σφάλματος: {0}
Περιγραφή σφάλματος: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Συνδέσεις</value>
</data>
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
<value>Αδυναμία ορισμού προεπιλεγμένης θύρας!</value>
</data>
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
<value>Δεν ήταν δυνατή η δημιουργία αντιγράφων ασφαλείας των συνδέσεων αρχείου!</value>
</data>
<data name="strConnectionsFileCouldNotBeImported" xml:space="preserve">
<value>Δεν ήταν δυνατή η εισαγωγή συνδέσεων αρχείου!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoaded" xml:space="preserve">
<value>Το αρχείο συνδέσεων "{0}" δεν μπορεί να φορτωθεί!</value>
</data>
</root>

View File

@@ -0,0 +1,243 @@
<?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="strPropertyDescriptionColors" xml:space="preserve">
<value>Select the color quality to be used.</value>
</data>
<data name="strPropertyNameColors" xml:space="preserve">
<value>Colors</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="strThemeDescriptionConfigPanelBackgroundColor" xml:space="preserve">
<value>The background color of the config panel.</value>
</data>
<data name="strThemeDescriptionConfigPanelCategoryTextColor" xml:space="preserve">
<value>The color of the category text in the config panel.</value>
</data>
<data name="strThemeDescriptionConfigPanelGridLineColor" xml:space="preserve">
<value>The color of the grid lines in the config panel</value>
</data>
<data name="strThemeDescriptionConfigPanelHelpBackgroundColor" xml:space="preserve">
<value>The background color of the help area of the config panel.</value>
</data>
<data name="strThemeDescriptionConfigPanelHelpTextColor" xml:space="preserve">
<value>The color of the text in the help area of the config panel.</value>
</data>
<data name="strThemeDescriptionConfigPanelTextColor" xml:space="preserve">
<value>The color of the text in the config panel.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelBackgroundColor" xml:space="preserve">
<value>The background color of the connections panel.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelTextColor" xml:space="preserve">
<value>The color of the text in the connections panel.</value>
</data>
<data name="strThemeDescriptionConnectionsPanelTreeLineColor" xml:space="preserve">
<value>The color of the tree lines in the connections panel.</value>
</data>
<data name="strThemeDescriptionMenuBackgroundColor" xml:space="preserve">
<value>The background color of the menus.</value>
</data>
<data name="strThemeDescriptionMenuTextColor" xml:space="preserve">
<value>The color of the text in the menus.</value>
</data>
<data name="strThemeDescriptionSearchBoxBackgroundColor" xml:space="preserve">
<value>The background color of the search box.</value>
</data>
<data name="strThemeDescriptionSearchBoxTextColor" xml:space="preserve">
<value>The color of the text in the search box.</value>
</data>
<data name="strThemeDescriptionSearchBoxTextPromptColor" xml:space="preserve">
<value>The color of the prompt text in the search box.</value>
</data>
<data name="strThemeDescriptionToolbarBackgroundColor" xml:space="preserve">
<value>The background color of the toolbars.</value>
</data>
<data name="strThemeDescriptionToolbarTextColor" xml:space="preserve">
<value>The color of the text in the toolbars.</value>
</data>
<data name="strThemeDescriptionWindowBackgroundColor" xml:space="preserve">
<value>The background color of the main window.</value>
</data>
<data name="strThemeNameConfigPanelBackgroundColor" xml:space="preserve">
<value>Config Panel Background Color</value>
</data>
<data name="strThemeNameConfigPanelCategoryTextColor" xml:space="preserve">
<value>Config Panel Category Text Color</value>
</data>
<data name="strThemeNameConfigPanelGridLineColor" xml:space="preserve">
<value>Config Panel Grid Line Color</value>
</data>
<data name="strThemeNameConfigPanelHelpBackgroundColor" xml:space="preserve">
<value>Config Panel Help Background Color</value>
</data>
<data name="strThemeNameConfigPanelHelpTextColor" xml:space="preserve">
<value>Config Panel Help Text Color</value>
</data>
<data name="strThemeNameConfigPanelTextColor" xml:space="preserve">
<value>Config Panel Text Color</value>
</data>
<data name="strThemeNameConnectionsPanelBackgroundColor" xml:space="preserve">
<value>Connections Panel Background Color</value>
</data>
<data name="strThemeNameConnectionsPanelTextColor" xml:space="preserve">
<value>Connections Panel Text Color</value>
</data>
<data name="strThemeNameConnectionsPanelTreeLineColor" xml:space="preserve">
<value>Connections Panel Tree Line Color</value>
</data>
<data name="strThemeNameMenuBackgroundColor" xml:space="preserve">
<value>Menu Background Color</value>
</data>
<data name="strThemeNameMenuTextColor" xml:space="preserve">
<value>Menu Text Color</value>
</data>
<data name="strThemeNameSearchBoxBackgroundColor" xml:space="preserve">
<value>Search Box Background Color</value>
</data>
<data name="strThemeNameSearchBoxTextColor" xml:space="preserve">
<value>Search Box Text Color</value>
</data>
<data name="strThemeNameSearchBoxTextPromptColor" xml:space="preserve">
<value>Search Box Text Prompt Color</value>
</data>
<data name="strThemeNameToolbarBackgroundColor" xml:space="preserve">
<value>Toolbar Background Color</value>
</data>
<data name="strThemeNameToolbarTextColor" xml:space="preserve">
<value>Toolbar Text Color</value>
</data>
<data name="strThemeNameWindowBackgroundColor" xml:space="preserve">
<value>Window Background Color</value>
</data>
</root>

View File

@@ -0,0 +1,387 @@
<?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="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

View File

@@ -0,0 +1,438 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>Névjegy</value>
</data>
<data name="strActive" xml:space="preserve">
<value>Aktív</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Tevékenység</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Új kapcsolat</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Új mappa</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Mindig</value>
</data>
<data name="strAlwaysConnectEvenIfAuthFails" xml:space="preserve">
<value>Kapcsolódj mindig, sikertelen hitelesítés esetén is</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Kérdezz rá később</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Javasolt beállítások használata</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatikus frissítés beállításai</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Munkamenet információk automatikus megszerzése</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Automatikus mentés minden:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Perc (0 - kikapcsolva)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Aktuális verzió</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp;Böngészés...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp;Mégsem</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Módosít</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>Be&amp;zár</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Kapcsolat bontása</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Ikon</value>
</data>
<data name="strButtonImport" xml:space="preserve">
<value>&amp;Improtálás</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>PuTTY indítása</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp;Új</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp;OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Tulajdonságok</value>
</data>
<data name="strCannotStartPortScan" xml:space="preserve">
<value>Helytelen IP cím, a port szkennelés nem indítható!</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Megjelenés</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Kapcsolat</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Hitelesítés</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Képernyő</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Átjáró</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Általános</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Egyéb</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Protokoll</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Átirányítás</value>
</data>
<data name="strCcCheckFailed" xml:space="preserve">
<value>Az ellenőrzés sikertelen!</value>
</data>
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Az ellenőrzés sikeres!</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Tartomány</value>
</data>
<data name="strCheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Többé ne mutasd ezt az üzenetet.</value>
</data>
<data name="strColumnFilename" xml:space="preserve">
<value>Fájlnév</value>
</data>
<data name="strColumnHostnameIP" xml:space="preserve">
<value>Kiszolgálónév/IP cím</value>
</data>
<data name="strColumnMessage" xml:space="preserve">
<value>Üzenet</value>
</data>
<data name="strColumnUsername" xml:space="preserve">
<value>Felhasználónév</value>
</data>
<data name="strCommandLineArgsCouldNotBeParsed" xml:space="preserve">
<value>Nem értelmezhető parancssori argumentum!</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Kapcsolódás...</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Sikertelen kapcsolódás!</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Kapcsolatok</value>
</data>
<data name="strCurrentVersion" xml:space="preserve">
<value>Telepített verzió</value>
</data>
<data name="strDontConnectWhenAuthFails" xml:space="preserve">
<value>Ne kapcsolódj sikertelen hitelesítéskor</value>
</data>
<data name="strDoubleClickTabClosesIt" xml:space="preserve">
<value>Duplaklikk a fülön bezárja azt</value>
</data>
<data name="strExperimental" xml:space="preserve">
<value>Kísérleti</value>
</data>
<data name="strFullscreen" xml:space="preserve">
<value>Teljes képernyő</value>
</data>
<data name="strGeneral" xml:space="preserve">
<value>Általános</value>
</data>
<data name="strGroupboxFiles" xml:space="preserve">
<value>Fájlok</value>
</data>
<data name="strHttpConnectFailed" xml:space="preserve">
<value>A HTTP csatlakozás nem sikerült!</value>
</data>
<data name="strImportExport" xml:space="preserve">
<value>Importálás/Exportálás</value>
</data>
<data name="strKeysCtrlAltDel" xml:space="preserve">
<value>CTRL-ALT-DEL</value>
</data>
<data name="strKeysCtrlEsc" xml:space="preserve">
<value>CONTROL-ESC</value>
</data>
<data name="strLabelAddress" xml:space="preserve">
<value>Cím:</value>
</data>
<data name="strLabelDisplayName" xml:space="preserve">
<value>Megjelenítendő név</value>
</data>
<data name="strLabelDomain" xml:space="preserve">
<value>Tartomány:</value>
</data>
<data name="strLabelFilename" xml:space="preserve">
<value>Fájlnév:</value>
</data>
<data name="strLabelHostname" xml:space="preserve">
<value>Hosztnév:</value>
</data>
<data name="strLabelOptions" xml:space="preserve">
<value>Opciók:</value>
</data>
<data name="strLabelPassword" xml:space="preserve">
<value>Jelszó:</value>
</data>
<data name="strLabelPort" xml:space="preserve">
<value>Port:</value>
</data>
<data name="strLabelPortableEdition" xml:space="preserve">
<value>Hordozható kiadás</value>
</data>
<data name="strLabelProtocol" xml:space="preserve">
<value>Protokoll:</value>
</data>
<data name="strLabelServerStatus" xml:space="preserve">
<value>Szerver állapot:</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Adatbázis:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Adatbázis:</value>
</data>
<data name="strLabelUsername" xml:space="preserve">
<value>Felhasználónév:</value>
</data>
<data name="strLabelVerify" xml:space="preserve">
<value>Ellenőrzés:</value>
</data>
<data name="strLanguage" xml:space="preserve">
<value>Nyelv</value>
</data>
<data name="strLanguageDefault" xml:space="preserve">
<value>(Automatikus észlelés)</value>
</data>
<data name="strMenuAbout" xml:space="preserve">
<value>Névjegy</value>
</data>
<data name="strMenuCheckForUpdates" xml:space="preserve">
<value>Frissítés keresése</value>
</data>
<data name="strMenuJumpTo" xml:space="preserve">
<value>Ugrás</value>
</data>
<data name="strMenuLaunchExternalTool" xml:space="preserve">
<value>Külső eszköz indítása</value>
</data>
<data name="strMenuNewConnectionFile" xml:space="preserve">
<value>Új kapcsolatfájl</value>
</data>
<data name="strMenuNewExternalTool" xml:space="preserve">
<value>Új külső eszköz</value>
</data>
<data name="strMenuNotifications" xml:space="preserve">
<value>Értesítések</value>
</data>
<data name="strMenuOpenConnectionFile" xml:space="preserve">
<value>Kapcsolatfájl megnyitása...</value>
</data>
<data name="strMenuOptions" xml:space="preserve">
<value>Opciók</value>
</data>
<data name="strMenuReconnect" xml:space="preserve">
<value>Újrakapcsolódás</value>
</data>
<data name="strMenuRename" xml:space="preserve">
<value>Átnevezés</value>
</data>
<data name="strMenuRenameConnection" xml:space="preserve">
<value>Kapcsolat átnevezése</value>
</data>
<data name="strMenuRenameFolder" xml:space="preserve">
<value>Könyvtár átnevezése</value>
</data>
<data name="strMenuRenameTab" xml:space="preserve">
<value>Fül átnevezése</value>
</data>
<data name="strMenuReportBug" xml:space="preserve">
<value>Hibabejelentés</value>
</data>
<data name="strMenuResetLayout" xml:space="preserve">
<value>Elrendezés alaphelyzetbe állítása</value>
</data>
<data name="strMenuSaveConnectionFile" xml:space="preserve">
<value>Kapcsolatfájl mentése</value>
</data>
<data name="strMenuSaveConnectionFileAs" xml:space="preserve">
<value>Kapcsolatfájl mentése, mint...</value>
</data>
<data name="strMenuScreenshot" xml:space="preserve">
<value>Képernyőmentés</value>
</data>
<data name="strMenuScreenshotManager" xml:space="preserve">
<value>Képernyőmentés kezelő</value>
</data>
<data name="strMenuSessions" xml:space="preserve">
<value>Munkamenetek</value>
</data>
<data name="strMenuSessionsAndScreenshots" xml:space="preserve">
<value>Munkamanetek és képernyőmentések</value>
</data>
<data name="strMenuWebsite" xml:space="preserve">
<value>Honlap</value>
</data>
<data name="strNever" xml:space="preserve">
<value>Soha</value>
</data>
<data name="strNewConnection" xml:space="preserve">
<value>Új kapcsolat</value>
</data>
<data name="strNewFolder" xml:space="preserve">
<value>Új mappa</value>
</data>
<data name="strNewPanel" xml:space="preserve">
<value>Új panel</value>
</data>
<data name="strNewRoot" xml:space="preserve">
<value>Új gyökérelem</value>
</data>
<data name="strNewTitle" xml:space="preserve">
<value>Új cím</value>
</data>
<data name="strNo" xml:space="preserve">
<value>Nem</value>
</data>
<data name="strUseSQLServer" xml:space="preserve">
<value>SQL szerver használata a kapcsolatok kezelésére</value>
</data>
</root>

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

@@ -0,0 +1,490 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" id="root">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strAbout" xml:space="preserve">
<value>Sobre</value>
</data>
<data name="strActive" xml:space="preserve">
<value>Ativo</value>
</data>
<data name="strActivity" xml:space="preserve">
<value>Atividade</value>
</data>
<data name="strAddConnection" xml:space="preserve">
<value>Nova conexão</value>
</data>
<data name="strAddFolder" xml:space="preserve">
<value>Nova pasta</value>
</data>
<data name="strAddNodeFromXmlFailed" xml:space="preserve">
<value>AddNodeFromXML falhou!</value>
</data>
<data name="strAddNodesFromSqlFailed" xml:space="preserve">
<value>AddNodesFromSQL falhou!</value>
</data>
<data name="strAllowOnlySingleInstance" xml:space="preserve">
<value>Permitir apenas uma única instância do aplicativo (É necessário reiniciar o mRemoteNG)</value>
</data>
<data name="strAlways" xml:space="preserve">
<value>Sempre</value>
</data>
<data name="strAlwaysConnectEvenIfAuthFails" xml:space="preserve">
<value>Conectar sempre, mesmo se a autenticação falhar</value>
</data>
<data name="strAlwaysShowPanelSelection" xml:space="preserve">
<value>Sempre mostrar a caixa de diálogo de seleção de painel ao abrir conexões</value>
</data>
<data name="strAlwaysShowSysTrayIcon" xml:space="preserve">
<value>Sempre mostrar ícone da área de notificação</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Me pergunte novamente mais tarde</value>
</data>
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
<value>Personalizar as configurações agora</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Usar as configurações recomendadas</value>
</data>
<data name="strAskUpdatesContent" xml:space="preserve">
<value>{0} pode verificar automaticamente as atualizações que podem fornecer novas funcionalidades e correções de bugs. É recomendável que você permita {0} verificar atualizações semanais.</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Configurações de atualização automática</value>
</data>
<data name="strAspect" xml:space="preserve">
<value>Aspecto</value>
</data>
<data name="strAutomaticallyGetSessionInfo" xml:space="preserve">
<value>Obter automaticamente informações de sessão</value>
</data>
<data name="strAutoSaveEvery" xml:space="preserve">
<value>Salvar automaticamente a cada:</value>
</data>
<data name="strAutoSaveMins" xml:space="preserve">
<value>Minutos (0 significa desativado)</value>
</data>
<data name="strAvailableVersion" xml:space="preserve">
<value>Versão atual</value>
</data>
<data name="strButtonBrowse" xml:space="preserve">
<value>&amp; Procurar...</value>
</data>
<data name="strButtonCancel" xml:space="preserve">
<value>&amp; Cancelar</value>
</data>
<data name="strButtonChange" xml:space="preserve">
<value>Alterar</value>
</data>
<data name="strButtonClose" xml:space="preserve">
<value>&amp; Fechar</value>
</data>
<data name="strButtonDefaultInheritance" xml:space="preserve">
<value>Herança padrão</value>
</data>
<data name="strButtonDefaultProperties" xml:space="preserve">
<value>Propriedades padrões</value>
</data>
<data name="strButtonDisconnect" xml:space="preserve">
<value>Desconectar</value>
</data>
<data name="strButtonIcon" xml:space="preserve">
<value>Ícone</value>
</data>
<data name="strButtonImport" xml:space="preserve">
<value>&amp; Importar</value>
</data>
<data name="strButtonInheritance" xml:space="preserve">
<value>Herança</value>
</data>
<data name="strButtonLaunchPutty" xml:space="preserve">
<value>Executar o PuTTY</value>
</data>
<data name="strButtonNew" xml:space="preserve">
<value>&amp; Novo</value>
</data>
<data name="strButtonOK" xml:space="preserve">
<value>&amp; OK</value>
</data>
<data name="strButtonProperties" xml:space="preserve">
<value>Propriedades</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>Testar Proxy</value>
</data>
<data name="strCannotImportNormalSessionFile" xml:space="preserve">
<value>Você não pode importar um arquivo de conexão normal. Por favor, use Arquivo - Carregar Conexões para os arquivos de conexão normal!</value>
</data>
<data name="strCannotStartPortScan" xml:space="preserve">
<value>Não é possível iniciar a varredura de portas, formato IP incorreto!</value>
</data>
<data name="strCategoryAppearance" xml:space="preserve">
<value>Aparência</value>
</data>
<data name="strCategoryConnection" xml:space="preserve">
<value>Conexão</value>
</data>
<data name="strCategoryCredentials" xml:space="preserve">
<value>Credenciais</value>
</data>
<data name="strCategoryDisplay" xml:space="preserve">
<value>Mostrar</value>
</data>
<data name="strCategoryGateway" xml:space="preserve">
<value>Gateway</value>
</data>
<data name="strCategoryGeneral" xml:space="preserve">
<value>Geral</value>
</data>
<data name="strCategoryMiscellaneous" xml:space="preserve">
<value>Diversos</value>
</data>
<data name="strCategoryProtocol" xml:space="preserve">
<value>Protocolo</value>
</data>
<data name="strCategoryRedirect" xml:space="preserve">
<value>Redirecionar</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Sempre mostrar esta tela na inicialização</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Atualizar</value>
</data>
<data name="strCcCheckFailed" xml:space="preserve">
<value>Falha na verificação!</value>
</data>
<data name="strCcCheckSucceeded" xml:space="preserve">
<value>Verificação com sucesso!</value>
</data>
<data name="strCcEOLFailed" xml:space="preserve">
<value>O recurso de sessões (RDP) requer que você tenha uma cópia registrada do eolwtscom.dll no seu sistema.
mRemoteNG vem com este componente mas não o registra automaticamente a menos que você instale o pacote.
Para registrá-lo manualmente faça isso: Abra a caixa de diálogo Executar (Iniciar - Executar) e digite o seguinte: regsvr32 "c:\Program Files\mRemoteNG\eolwtscom.dll" (onde c:\Program Files\mRemoteNG\ é o caminho para a instalação de mRemoteNG).
Se você ainda não conseguir passar por esta verificação ou não conseguir usar o recurso de sessões (RDP) no mRemoteNG, por favor, consulte o fórum de mRemoteNG em http://forum.mremoteng.org/</value>
</data>
<data name="strCcEOLOK" xml:space="preserve">
<value>EOLWTSCOM foi encontrada e parece ser registrado corretamente.</value>
</data>
<data name="strCcGeckoFailed" xml:space="preserve">
<value>Para usar o motor de renderização Gecko, você precisa ter o XULrunner 1.8.1.x e o caminho para a instalação do conjunto em suas opções.
Você pode baixar o XULrunner 1.8.1.3 em: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/
Quando terminar de baixar o pacote, extraia o pacote para um caminho de sua escolha.
Em seguida, emtre no mRemoteNG e vá em ferramentas - opções - avançadas e digite o caminho correto no campo caminho XULrunner.
Se ainda não conseguir passar esta verificação ou usar o motor Gecko em mRemoteNG por favor consultar o fórum de mRemoteNG em http://forum.mremoteng.org/</value>
</data>
<data name="strCcGeckoOK" xml:space="preserve">
<value>XULrunner foi encontrado e aparenta estar instalado corretamente.</value>
</data>
<data name="strCcICAFailed" xml:space="preserve">
<value>ICA requer que o XenDesktop Online Plugin esteja instalado e a biblioteca wfica.ocs registrada. Você pode baixar o cliente aqui: http://www.citrix.com/download/
Se você tiver o Plugin Online XenDesktop instalado e a verificação ainda falhar, tente registrar manualmente o wfica.ocx
Para fazer isso abra a caixa de diálogo Executar (Iniciar - Executar) e digite o seguinte: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (onde c:\Program Files\Citrix\ICA Client\ é o caminho para a instalação do Plugin Online do XenDesktop).
Se você ainda não puder passar por esta verificação ou usar ICA em mRemoteNG, por favor, consulte o fórum de mRemoteNG no http://forum.mremoteng.org/"</value>
</data>
<data name="strCcICAOK" xml:space="preserve">
<value>Todos os componentes de ICA, foram encontrados e parecem ser registrado corretamente. Citrix ICA cliente controle versão {0}</value>
</data>
<data name="strCcNotInstalledProperly" xml:space="preserve">
<value>não instalado corretamente</value>
</data>
<data name="strCcPuttyFailed" xml:space="preserve">
<value>O SSH, Telnet, Rlogin e protocolos RAW precisam PuTTY para trabalhar. PuTTY vem com cada pacote de mRemoteNG e está localizado no caminho de instalação.
Por favor, certifique-se de que você tem o Putty.exe em seu diretório mRemoteNG (padrão: c:\Program Files\mRemoteNG\) ou que você tenha especificado um caminho válido para seu executável PuTTY nas opções (ferramentas - opções - avançadas - caminho personalizado PuTTY)</value>
</data>
<data name="strCcPuttyOK" xml:space="preserve">
<value>O executável PuTTY foi encontrado e está pronto para usar.</value>
</data>
<data name="strCheckboxDomain" xml:space="preserve">
<value>Domínio</value>
</data>
<data name="strCheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Não mostre esta mensagem novamente.</value>
</data>
<data name="strCheckboxInheritance" xml:space="preserve">
<value>Herança</value>
</data>
<data name="strCheckboxPassword" xml:space="preserve">
<value>Senha</value>
</data>
<data name="strCheckboxProxyAuthentication" xml:space="preserve">
<value>Este servidor proxy requer autenticação</value>
</data>
<data name="strCheckboxPuttyPath" xml:space="preserve">
<value>Use o caminho personalizado para o PuTTY:</value>
</data>
<data name="strCheckboxReconnectWhenReady" xml:space="preserve">
<value>Reconectar quando estiver pronto</value>
</data>
<data name="strCheckboxUpdateUseProxy" xml:space="preserve">
<value>Usar um servidor proxy para se conectar</value>
</data>
<data name="strCheckboxUsername" xml:space="preserve">
<value>Nome de usuário</value>
</data>
<data name="strCheckboxWaitForExit" xml:space="preserve">
<value>Esperar para sair</value>
</data>
<data name="strCheckForUpdate" xml:space="preserve">
<value>Verificar novamente</value>
</data>
<data name="strCheckForUpdatesOnStartup" xml:space="preserve">
<value>Verificar se há atualizações e anúncios na inicialização</value>
</data>
<data name="strCheckNow" xml:space="preserve">
<value>Verificar agora</value>
</data>
<data name="strClosedPorts" xml:space="preserve">
<value>Portas fechadas</value>
</data>
<data name="strCollapseAllFolders" xml:space="preserve">
<value>Recolher todas as pastas</value>
</data>
<data name="strColumnArguments" xml:space="preserve">
<value>Argumentos</value>
</data>
<data name="strColumnDisplayName" xml:space="preserve">
<value>Nome de exibição</value>
</data>
<data name="strColumnFilename" xml:space="preserve">
<value>Nome do arquivo</value>
</data>
<data name="strColumnHostnameIP" xml:space="preserve">
<value>HostName/IP</value>
</data>
<data name="strColumnMessage" xml:space="preserve">
<value>Mensagem</value>
</data>
<data name="strColumnUsername" xml:space="preserve">
<value>Nome de usuário</value>
</data>
<data name="strColumnWaitForExit" xml:space="preserve">
<value>Esperar para sair</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Validação de componentes</value>
</data>
<data name="strConfigPropertyGridButtonIconClickFailed" xml:space="preserve">
<value>btnIcon_Click falhou!</value>
</data>
<data name="strConfigPropertyGridHideItemsFailed" xml:space="preserve">
<value>ShowHideGridItems falhou!</value>
</data>
<data name="strConfigPropertyGridMenuClickFailed" xml:space="preserve">
<value>IconMenu_Click falhou!</value>
</data>
<data name="strConfigPropertyGridObjectFailed" xml:space="preserve">
<value>Propriedade do Objeto de grade falhou!</value>
</data>
<data name="strConfigPropertyGridSetHostStatusFailed" xml:space="preserve">
<value>SetHostStatus falhou!</value>
</data>
<data name="strConfigPropertyGridValueFailed" xml:space="preserve">
<value>pGrid_PopertyValueChanged falhou!</value>
</data>
<data name="strConfigUiLoadFailed" xml:space="preserve">
<value>Config UI carregamento falhou!</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<value>Você quer fechar a conexão, "{0}"?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>Tem certeza que deseja fechar o painel, "{0}"? Todas as ligações ativas serão fechadas.</value>
</data>
<data name="strConfirmDeleteExternalTool" xml:space="preserve">
<value>Tem certeza que deseja excluir a ferramenta externa, "{0}"?</value>
</data>
<data name="strConfirmDeleteExternalToolMultiple" xml:space="preserve">
<value>Tem certeza que deseja excluir as ferramentas externas {0} selecionadas?</value>
</data>
<data name="strConfirmDeleteNodeConnection" xml:space="preserve">
<value>Tem certeza que deseja excluir a ligação, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolder" xml:space="preserve">
<value>Tem certeza que deseja excluir a pasta vazia, "{0}"?</value>
</data>
<data name="strConfirmDeleteNodeFolderNotEmpty" xml:space="preserve">
<value>Tem certeza que deseja excluir a pasta, "{0}"? Pastas ou ligações que ele contém também serão excluídas.</value>
</data>
<data name="strConfirmExitMainInstruction" xml:space="preserve">
<value>Você quer fechar todas as conexões abertas?</value>
</data>
<data name="strConfirmResetLayout" xml:space="preserve">
<value>Tem certeza de que deseja redefinir os painéis para o layout padrão?</value>
</data>
<data name="strConnect" xml:space="preserve">
<value>Conectar-se</value>
</data>
<data name="strConnectInFullscreen" xml:space="preserve">
<value>Se conectar em modo fullscreen</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Conectando...</value>
</data>
<data name="strConnectionEventConnected" xml:space="preserve">
<value>Protocolo evento conectado</value>
</data>
<data name="strConnectionEventConnectedDetail" xml:space="preserve">
<value>Conexão para "{0}" via "{1}" estabelecido pelo usuário "{2}" (Descrição: "{3}"; Campo usuário: "{4}")</value>
</data>
<data name="strConnectionEventConnectionFailed" xml:space="preserve">
<value>Conexão falhou!</value>
</data>
<data name="strConnectionEventErrorOccured" xml:space="preserve">
<value>Erro no evento de protocolo</value>
</data>
<data name="strConnectionOpenFailed" xml:space="preserve">
<value>Abrir conexão falhou!</value>
</data>
<data name="strConnectionOpenFailedNoHostname" xml:space="preserve">
<value>Não é possível abrir a conexão: nenhum nome de host especificado!</value>
</data>
<data name="strConnectionRdpErrorDetail" xml:space="preserve">
<value>Erro RDP!
Código de erro: {0}
Descrição do erro: {1}</value>
</data>
<data name="strConnections" xml:space="preserve">
<value>Conexões</value>
</data>
<data name="strConnectionSetDefaultPortFailed" xml:space="preserve">
<value>Impossível definir porta padrão!</value>
</data>
<data name="strConnectionsFileBackupFailed" xml:space="preserve">
<value>Não foi possível criar o backup do arquivo de conexões!</value>
</data>
<data name="strConnectionsFileCouldNotBeImported" xml:space="preserve">
<value>Falha na importação do arquivo de conexões!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoaded" xml:space="preserve">
<value>Arquivo de conexões "{0}" não pôde ser carregado!</value>
</data>
<data name="strConnectionsFileCouldNotBeLoadedNew" xml:space="preserve">
<value>Arquivo de conexões "{0}" não pôde ser carregado! Começando com o novo arquivo de conexões.</value>
</data>
<data name="strConnectionsFileCouldNotBeSaved" xml:space="preserve">
<value>Não consegui salvar o arquivo de conexões!</value>
</data>
</root>

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

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
@@ -121,6 +113,10 @@ Namespace Messages
AddToList(lvItem)
End Sub
Public Sub AddExceptionMessage(ByVal message As String, ByVal ex As Exception, Optional ByVal msgClass As MessageClass = MessageClass.ErrorMsg, Optional ByVal logOnly As Boolean = False)
AddMessage(msgClass, message & vbNewLine & Tools.Misc.GetExceptionMessageRecursive(ex), logOnly)
End Sub
Private Sub SwitchTimerTick(ByVal sender As Object, ByVal e As System.EventArgs)
Me.SwitchToMessage()
Me.ECTimer.Enabled = False
@@ -138,11 +134,11 @@ Namespace Messages
Private Shared Sub ShowMessageBox(ByVal Msg As Messages.Message)
Select Case Msg.MsgClass
Case Messages.MessageClass.InformationMsg
MessageBox.Show(Msg.MsgText, Language.Base.Information & " (" & 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, Language.Base.Warning & " (" & 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, Language.Base.Error_ & " (" & 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,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.1433
' Runtime Version:4.0.30319.239
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -32,7 +32,7 @@ Namespace My
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.mRemote.frmMain
Me.MainForm = Global.mRemoteNG.frmMain
End Sub
End Class
End Namespace

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-2010 Felix Deimel, 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,5 +32,6 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.63")>
<Assembly: AssemblyFileVersion("1.63")>
<Assembly: AssemblyVersion("1.72.*")>
<Assembly: NeutralResourcesLanguageAttribute("en")>

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