diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md index b5554a85..68626539 100644 --- a/.github/CONTRIBUTING.md +++ b/.github/CONTRIBUTING.md @@ -1,58 +1,24 @@ -# Welcome! +**Hello, and welcome to the mRemoteNG project!** -We are really glad you are interested in contributing to mRemoteNG! +Open source software is best when shared with others. This also applies to the work that goes into the software. Your ideas and passion are what make this software great! +There are many ways that you can help improve mRemoteNG, even if you don't know how to program: -Open source software is best when shared with others. This also applies to the work that goes into the software. Your ideas and passion are what make this software great. +- add documentation or "how-to" articles on the Wiki +- answer support questions on the forum +- add or improve a translation +- submit a pull request for a bug or feature ticket - -### Ways you can contribute -There are many ways that you can help improve mRemoteNG, even if you don't know how to program. - -For example, you might: -- add documentation or "how-to" articles on the [Wiki](https://github.com/mRemoteNG/mRemoteNG/wiki) -- answer support questions on the [forum](http://forum.mremoteng.org) -- [add or improve a translation](https://github.com/mRemoteNG/mRemoteNG/wiki/How-to-Help-Translating-mRemoteNG) -- submit a [pull request](https://github.com/mRemoteNG/mRemoteNG/pulls) for a [bug or feature ticket](https://github.com/mRemoteNG/mRemoteNG/issues) - - -# Submitting GitHub Issues The GitHub Issue tracker is our preferred channel for bug reports and feature requests. -- For questions or general discussion, please use [our public Gitter chat](https://gitter.im/mRemoteNG/PublicChat) or the [forum](http://forum.mremoteng.org). -- If you find a security vulnerability, do **NOT** open an issue. Email support@mremoteng.org instead. +For questions or general discussion, please use [our public Gitter chat](https://gitter.im/mRemoteNG/PublicChat) or the [forum](http://forum.mremoteng.org). -### Bug reports -A bug is any behavior that does not consistently produce the expected result. +If you find a security vulnerability, do **NOT** open an issue. Email security@mremoteng.org instead. -Guidelines for bug reports: -1. Do not open bug reports for questions. -1. Use the GitHub Issue search to make sure your bug hasn't already been reported. -1. Include as much detailed information as possible. We've included a default template when opening an issue to make this easier. +You'll find all information on our GitHub workflow in our [Wiki](https://github.com/mRemoteNG/mRemoteNG/wiki), or you can use these links: -### Feature requests -Feature requests are great! Take some time to compose a well thought out proposal. It's up to you to convince the project maintainers that your feature is a good idea. To ensure your request receives the consideration that it deserves, include as much detail as possible. For example: -- What is the purpose of the new feature? -- What situation led you to want this feature? -- How does the application perform now and how would the new feature change this? -- If applicable, consider including visual mock-ups to show us what you mean. +- [Branches](https://github.com/mRemoteNG/mRemoteNG/wiki/Branches) +- [Bug Repots](https://github.com/mRemoteNG/mRemoteNG/wiki/Bug-Reports) +- [Feature Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Feature-Requests) +- [Pull Requests](https://github.com/mRemoteNG/mRemoteNG/wiki/Pull-Requests) -# Pull requests -Good pull requests are a huge help! If you haven't already, please consider reading [GitHub's guide to contributing to open source](https://guides.github.com/activities/contributing-to-open-source/) - -Our requests when it comes to pull requests: -- Be clear about what your PR seeks to do. -- Keep your PR focused. It should be clear what code changed to achieve your stated goal. -- Add or update tests when possible. Some of the code base is still very hard to effectively test. If you can, please try to create or update tests that relate to your PR. -- Please talk with one of the project maintainers before starting work on large pull requests. Otherwise, you run the risk of putting a lot of time into a feature or refactor that gets denied. -- If you have access to Static Code Analysis tools (like ReSharper), please don't analyze/fix everything in one giant PR. As great as these tools are, they can sometimes cause unintended problems. - -# Code Style -- Please make use of simple types and var where possible -- Prefer "using" over .Dispose() -- Avoid nesting "using" - -# Your first contributions Want to help but don't know where to start? Check out the issues that we've labeled with [`Help Wanted`](https://github.com/mRemoteNG/mRemoteNG/issues?q=is%3Aissue+is%3Aopen+label%3A%22Help+Wanted%22) or [`ready`](https://github.com/mRemoteNG/mRemoteNG/issues?utf8=%E2%9C%93&q=is%3Aissue%20is%3Aopen%20label%3A%22ready%22). These will vary in difficulty, but should be possible for new contributors. - -Want to help but don't know C#? Check out the issues that we've labeled with [`Documentation`](https://github.com/mRemoteNG/mRemoteNG/labels/Documentation). - -Sorry, we currently do not have any tags for truly beginner-friendly issues :( +Even if you don't know C# you can heck out the issues that we've labeled with [`Documentation`](https://github.com/mRemoteNG/mRemoteNG/labels/Documentation). diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 5ead5d43..225845bc 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -23,7 +23,9 @@ ## Checklist: +- [ ] I have read the **CONTRIBUTING** document. - [ ] My code follows the code style of this project. +- [ ] This pull request does not target the master branch. +- [ ] I have updated the changelog file accordingly. - [ ] My change requires a change to the documentation. - [ ] I have updated the documentation accordingly. -- [ ] I have read the **CONTRIBUTING** document. diff --git a/.gitignore b/.gitignore index 18a38611..10cbe4eb 100644 --- a/.gitignore +++ b/.gitignore @@ -285,4 +285,4 @@ InstallerProjects/Installer/Resources/License.rtf # gh-pages info runlocal.bat -/_site \ No newline at end of file +/_site diff --git a/CHANGELOG.TXT b/CHANGELOG.TXT deleted file mode 100644 index ee5f573d..00000000 --- a/CHANGELOG.TXT +++ /dev/null @@ -1,1546 +0,0 @@ -1.77.0 (2019-xx-xx): - -Features/Enhancements: ----------------------- -#1414: Add "Remote Audio Capture" option for RDP -#1336: Added ability to run External tools on folders -#1320: Added ability to favorite items in the connection tree -#1318: Added support for saving connections in MySQL -#1293: Importing .rdp files now imports gateway settings -#1246: Improved connections loading to tolerate missing attributes in the confCons xml file -#1230: Added option to track the currently focused connection in the connection tree -#1223: Open External Links in Default Web Browser -#1220: Added an Apple/Mac connection icon -#1218: A splashscreen has been added when mRemoteNG starts -#1216: Connection tree search bar can be placed at the top or bottom of connection tree -#1201: The help files packaged with mRemoteNG have been rewritten -#1186: Certain dialogs are not correctly using localized text for buttons -#1170: The Options window no longer displays in the Windows taskbar when open -#1141: 'Copy Hostname' option added to connection tree context menu -#1129: Spanish translation improvements -#1123: Added a dialog that will display when unhandled exceptions occur -#1102: Added a button to clear connections searchbox -#1072: Russian translation improvements -#1042: Added a connection icon for OSX/MacOS -#1016: Chinese (simplified) translation improvements -#951: Added property to Enable/Disable Clipboard Sharing for RDP connections -#929: Added the hostname to certain RDP error/disconnect messages where it was missing -#928: Add context menu items to 'Close all but this' and 'Close all tabs to the right' -#907: Added option to disable trimming whitespace from username field -#896: Added a "view only" mode for RDP connections -#765: Port Scan Issues (single port scan option now available) -#416: Added ability to Enable/Disable Clipboard Sharing for RDP connections -#321: Added support for displaying on HiDPI screens -#155: Replace MagicLibrary with DockPanelSuite -#154: MR-139: Close Button on Each Tab - new default theme has a close button on each tab - -Fixes: ------- -#1383: Fixed issue where default Computer OU was not showing up when importing from Active Directory -#1248: RemoveMagicLib Bugs - various bugs that cropped up as a result of removing magiclib -#1245: Options form takes nearly 3 seconds to appear when Theming is active -#1240: Theming problem with NGNumericUpDown -#1238: Connection panel not translated until opened for the first time -#1186: Fixed several dialog boxes to use localized button text -#1170: Prevent Options window from showing up in taskbar -#1132: loadbalanceinfo field now correctly imported from RDP files -#1064: "Esc" button does does not close some dialogs -#1044: Dragging (grabbing) the program window requires 2 clicks - - -1.76.20 (2019-04-12): - -Fixes: ------- -#1401: Connections corrupted when importing RDC Manager files that are missing certain fields - - -1.76.19 (2019-04-04): - -Fixes: ------- -#1374: Vertical Scroll Bar missing in PuTTYNG after 0.70.0.1 & 0.71 updates - - -1.76.18 (2019-03-20): - -Fixes: ------- -#1365: PuTTY window not centered after 0.71 update - - -1.76.17 (2019-03-20): - -Fixes: ------- -#1362: Updated PuTTYNG to 0.71 - - -1.76.16 (2019-03-14): - -Fixes: ------- -#1347: Remote Desktop Gateway username field encrypted instead of password - - -1.76.15 (2019-03-09): - -Fixes: ------- -#1303: Exception on first connection with new SQL server database -#1304: Resolved several issues with importing multiple RDP Manager v2.7 files - -Features/Enhancements: ----------------------- -Importing multiple files now only causes 1 save event, rather than 1 per file imported. - - -1.76.14 (2019-02-08): - -Features/Enhancements: ----------------------- -#222: Allow FIPS to be enabled - - -1.76.13 (2018-12-22): - -Changes: --------- -#222: Pre-Release Test build for running on systems with FIPS Enabled - - -1.76.12 (2018-11-08): - -Features/Enhancements: ----------------------- -#1180: Allow saving certain connection properties locally when using database - -Fixes: ------- -#1181: Connections sometimes dont immediately load when switching to sql feature -#1173: Fixed memory leak when loading connections multiple times -#1168: Autohide Connection and Config tab won't open when ssh connection active -#1134: Fixed issue where opening a connection opens same connection on other clients when using database feature -#449: Encrypt passwords saved to database - - -1.76.11 (2018-10-18): - -Fixes: ------- -#1139: Feature "Reconnect to previously opened sessions" not working -#1136: Putty window not maximized - - -1.76.10 (2018-10-07): - -Fixes: ------- -#1124: Enabling themes causes an exception - - -1.76.9 (2018-10-07): - -Fixes: ------- -#1117: Duplicate panel created when "Reconnect on Startup" and "Create Empty Panel" settings enabled -#1115: Exception when changing from xml data storage to SQL -#1110: Pressing Delete button during connection rename attempts to delete the connection instead of the text -#1106: Inheritance does not work when parent has C# default type set -#1092: Invalid Cast Exceptions loading default connectioninfo -#1091: Minor themeing issues -#853: Added some additional safety checks and logging to help address RDP crashes - - -1.76.8 (2018-08-25): - -Fixes: ------- -#1088: Delete and Launch buttons are not disabled when last external tool deleted -#1087: 'Save connections after every edit' setting not honored -#1082: Connections not given GUID if Id is empty in connection xml - - -1.76.7 (2018-08-22): - -Fixes: ------- -#1076: Wrong object selected when duplicating connection then switching between properties and inheritance in config window -#1068: Fixed some toolbar positioning bugs - - -1.76.6 (2018-08-03): - -Fixes: ------- -#1062: Entering correct password when starting app does not load connections file - -1.76.5 (2018-08-02): - -Fixes: ------- -#1057: Hitting F2 with no connection node selected caused unhandled exception -#1052: 'Switch to notification panel' feature does not always switch -#1051: Tooltips always displayed regardless of 'Show description tooltips in connection tree' setting -#1050: Config window retains access to previously selected node after loading new connections file -#1045: Config window shows several incorrect properties for HTTPS connections -#1040: Canceling "select panel" form does not cancel -#1039: Set default theme when themes disabled -#1038: Unable to add connection with active filter -#1036: Exception when themes are active and options page closed on Connections then reopened -#1034: Connection context menu not being translated -#1030: Exception thrown if importing from port scan and no tree node is selected -#1020: BackupFileKeepCount setting not limiting backup file count -#1004: Duplicating root or PuTTy node through hotkey causes unhandled exception -#1002: Disabling filtering without clearing keyword leaves filtered state -#1001: Connection tree context menu hotkeys stop working and disappear in some cases -#999: Some hotkeys stop working if File menu was called when PuTTy Saved Sessions was selected -#998: Can sometimes add connection under PuTTY Sessions node -#991: Error when deleting host in filtered view -#971: Portable Settings now apply to any machine they are used on -#961: Connections file overwritten if correct decryption password not provided -#893: Removed unneeded files from build/package -#868: if statement returned the same value -#762: Increased button size to fit locaized text - - -1.76.4 Alpha 6 (2018-06-03): - -Features/Enhancements: ----------------------- -#948: Fixed issue where many menu item translations were not being used -#942: Improved Russian translation of several items -#924: Notification for "No Host Specified" when clicking folders in quick-connect menu -#902: Menu bar can once again be moved. View -> "Lock toolbar positions" now also locks the menu position -Added option for creating an empty panel on startup - -Fixes: ------- -#938: Minor layout improvements on the Port Scan screen -#916: Default properties were not being saved - - -1.76.3 Alpha 5 (2018-03-14): - -Fixes: ------- -#911: Csv exports sometimes do not include all fields -#807: Inheritance is sometimes turned on for nodes under root Connections node - - -1.76.2 Alpha 4 (2018-03-03): - -Fixes: ------- -#899: DoNotPlay is Case Sensitive in XML Serialization - - -1.76.1 Alpha 3 (2018-02-24): - -Features/Enhancements: ----------------------- -#625: Added ability to import mRemoteNG formatted CSV files -#648: The port scan ping timeout is now configurable - -Fixes: ------- -Fixed a few Xml serialization bugs that would occur if boolean values weren't capitalized - - -1.76.0 Alpha 2 (2018-02-01): - -Features/Enhancements: ----------------------- -#838: Added an option to lock toolbars -#836: Added a Read Only option for SQL connections -#829: Add option that fixes connecting to Azure instances with LoadBalanceInfo - -Fixes: ------- -#840: Fix theme loading issue in installer version -#800: Fixed issue with PuTTY sessions not showing some extended characters -Fixed a few toolbar layout issues - - -1.76.0 Alpha 1 (2017-12-08): - -Features/Enhancements: ----------------------- -#799: Added option to save connections on every edit -#798: Added button to test SQL database connections on SQL options page -#784: Rearranged some settings in the Options pages to prevent overlap with some translations -#704: Portable version now saves settings in application directory -#671: Revamped UI theme system -#611: Added multi-ssh toolbar for sending commands to many SSH clients at once -#558: Connection tree now shows customizable icons instead of play/pause icon -#519: You can now import normal mRemoteNG files - they do not have to be exports -#504: Added Korean translation -#485: The Domain field is now visible/editable for connection with the IntApp protocol -#468: Default connection info Panel property is now saved -#429: Added Czech translation -#421: When a connection file cannot be loaded, we will now prompt for how to proceed rather than always exiting. -#338: Added option to filter connection tree when searching -#357: Updated GeckoFX to v45.45.0.32 -#225: Added support for importing Remote Desktop Connection Manager v2.7 RDG files -#207: Can now specify a working directory for external tools -#197: Selecting a quick connect protocol will start a connection with that host -#184: Improve search to include description and hostname fields -#152: Added option "Show on Toolbar" to external tools -Added more logging/notifications options - -Fixes: ------- -#747: Fixed unnecessary "PuttySessions.Watcher.StartWatching" error message -#650: Fixed German translation typo -#639: Fixed Italian translation typo -#479: New connection tree nodes not starting in edit mode -#233: Fixed crash that can occur when disconnecting from VNC server -#195: Access to https with self-signed certificates not working - - -General Changes: ----------------- -#797: Removed duplicate translation strings -#608: The Help -> Support Forum menu item now directs users to our Reddit community -#493: Changed backup file name time stamp to use local system time rather than UTC -Improved compatability between environments when building mRemoteNG from source - - -1.75.7012 (2017-12-01): - -Fixes: ------- -#814: Fixed bug that prevented reordering connections by dragging -#810: Official mRemoteNG builds will now be signed with a DigiCert certificate -#803: File path command line argument not working with network path - - -1.75.7011 (2017-11-07): - -Fixes: ------- -#778: Custom connection file path command line argument (/c) not working -#763: Sometimes minimizing folder causes connection tree to disappear -#761: Connections using external tools do not start (introduced in v1.75.7009) -#758: "Decryption failed" message when loading from SQL server -Fixed issues with /resetpanels and /resetpos command line arguments -Resolved bug where connection tree hotkeys would sometimes be disabled - - -1.75.7010 (2017-10-29): - -Fixes: ------- -#756: CustomConsPath always null - - -1.75.7009 (2017-10-28): - -Fixes: ------- -#676: Portable version ignores /cons param on first run -#675: Attempting to add new connection/folder does not work in some situations -#665: Can not add new connection or new folder in some situations -#658: Keep Port Scan tab open after import -#646: Exception after click on import port scan -#635: Updated PuTTYNG to 0.70 -#610: mRemoteNG cannot start /crashes for some users on Windows server 2012 R2 server -#600: Missing horizontal scrollbar on Connections Panel -#596: Exception when launching external tool without a connection selected -#550: Sometimes double-clicking connection tree node began rename instead of connecting -#536: Prevented log file creation when writeLogFile option is not set -#529: Erratic Tree Selection when using SQL Database -#482: Default connection password not decrypted when loaded -#335: The Quick Connect Toolbar > Connection view does not show open connections with the play icon -#176: Unable to enter text in Quick Connect when SSH connection active -Minor error message correction -Minor code refactoring - - -NO.RELEASE (2017-06-15): - -Fixed in previous releases: ---------------------------- -#466: Installer still failing on Win7 for updates - v1.75.7005 (Hotifx 5) -#462: Remove no longer used files from portable version - v1.75.7003 (Hotfix 4) - - -1.75.7008 (2017-06-15): - -Fixes: ------- -#589: MSI doesn't update with newer PuTTYNG version that fixes #583 (Again, Sorry!) -Minor updates to the installer build - - -1.75.7007 (2017-06-14): - -Fixes: ------- -#583: SSH (PuTTYNG) Sessions are not properly integrated into the main mRemoteNG window (Sorry!) - - -1.75.7006 (2017-06-13): - -Fixes: ------- -#377: Use all space on About page -#527: Additional protections to avoid problems on update check in heavily firewalled environments -#530: Fixed issue where using External Tool on existing connection causes creation of 'New Connection' entry -#531: Update PuTTYNG to 0.69 -#546: Quick Connect from notification area icon displays warning when clicking on a folder (see #334) - - -1.75.7005 (2017-04-27): - -Fixes: ------- -#410: Update PuTTYNG to 0.68 -#434: Fix complier warnings CA1049 & CA2111 -#442: Fixed issue loading PuTTY sessions that have spaces in the name -#502: Problems with ParentID for Duplicated Containers/Connections with SQL Connection Storage -#514: Expanded property not saved/loaded properly from SQL -#518: Exception when Importing File - - -General Changes: ----------------- -Minor code cleanup/optimizations/null checks - - -1.75.7003 (2017-03-24): - -Fixes: ------- -#464: Resolved issue when importing a connections file while using SQL server feature - - -1.75.7002 (2017-03-10): - -Fixes: ------- -#448: Resolved issue with SQL saving - - -1.75.7001 (2017-03-10): - -Fixes: ------- -#408: Update SQL scripts - - -1.75 hotfix 1 (2017-03-06): - -General Changes: ----------------- -#437: Modify version numbering scheme - -Fixes: ------- -#422: Uncaught exception when clicking in connection tree whitespace -#312: Resolved KeePass auto-type issue -#427: Export does not respect filtering user/password/domain - - - -1.75 (2017-03-01): - -Known Issue: ------------- -File hash check will fail when updating from 1.75 Beta 1 to newer versions. - Exception will be: "MD5 Hashes didn't match!" for 1.75 Beta 1 - 1.75 RC1 - - -Features/Enhancements: ----------------------- -#344 - Use SHA512 File Hashes to validate downloads (in the update mechanism & posted to the Downloads page) -Added Release Channels to the update check functionality allowing users to select one of 3 release channels for updates: Stable, Beta, Dev -#360: Help -> About, Version # is now selectable/copyable -#221: RDP: Optional disconnect after X number of minutes of inactivity - - -Fixes: ------- -#369: Reset Layout Option Does Not Reset Notification Pane -#362: Invalid cast exception when using the Notification Area Icon minimize/restore -#334: Quick Connect displays warning when clicking on a folder -#325: When using a connection with an external app, results in opening the same external app continuously -#311: Import from Active Directory does not use machine's domain by default -#258: Rename Tab dialog - populate original name in dialog (1.72 functionality) -#211, #267: Recursive AD Import wasn't fully functional - - -General Changes: ----------------- -The usual general code clean up and refactoring -#325: Code clean up and additional logging for External Tools based connections -#298: Code clean up and additional logging around application startup -#291, #236: External Tools code clean up and additional logging - - - -1.75 Beta 3 (2016-12-01): - -Known Issue: ------------- -Portable build MD5 check will fail when updating from 1.75 Beta 1 to newer versions. - - -Fixes: ------- -#289: Install fails during update process (only affects v1.75 beta 1 - v1.75 beta 2) - - -1.75 Beta 2 (2016-12-01): - -Features/Enhancements: ----------------------- -#273: Added Turkish translation provided by forum user "rizaemet" -#217: Create user manual documentation for the SSH File Transfer feature - - -Fixes: ------- -#254: Component check window position issues and uncaught exception -#260: Crash when attempting to load fully encrypted confCons v2.5 -#261: Double clicking folder in treeview doesn't expand it in 1.75 beta1 -#271: Install package is not using the last installation path -#278: Silent installs not detecting prerequisites - - -1.75 Beta 1 (2016-11-15): - -General Changes: ----------------- -Lots of code clean up and refactoring -Limit log file size to 1 main log + 5 backups * 10MB. -Minor UI Tweak: Default Menubar and QuickConnect Bar to same line -MR-364: Removed "Announcement" functionality -MR-366: Show PuTTY type and version on components check screen -MR-586: Reduce HTTP/HTTPS document title length that is appended to the connection tab title -MR-938: Adjust RDP Resolution list (ensure most common resolutions were available) -MR-975: Replaced TreeView with TreeListView for displaying connection tree. This was a large change which separated the GUI from the domain model. -#144: Removed export option for "VisionApp Remote Desktop 2008" - - -Features/Enhancements: ----------------------- -MR-220: Don't close the AD importer after import -MR-971: Added Right Click method to Port Scan to import discovered hosts -MR-1000, #211: Sub OU AD Import -#172: Implement "audioqualitymode" for RDP sessions -#160: Allow portable version to perform an update check (and download the latest .zip) -#157: Implement new cryptography providers (See Tools -> Options -> Security) -#167: fix/implement the update check (was disabled in 1.74 as part of the C# conversion) - - -Fixes: ------- -MR-967: File transfer doesn't work when specifying full path and file name (as prompted) -MR-979: switched to notifications panel incorrectly (when configured NOT to do so) - - -1.75 Alpha 3 (2016-08-12): - -Fixes: ------- -MR-965, MR-871, MR-629: Error 264 on RDP Connect attempt - Added timeout value to Tools -> Options -> Connections -MR-946: Remove old/insecure SharpSSH and related components. Replace with SSH.NET for File Transfer Functionality -MR-896: Added prerequisite installer check for KB2574819. Prevents "Class not registered" errors when opening RDP connections. -PR-130: Fix Scan button width to fit Russian translation - - - -1.75 Alpha 2 (2016-08-03): - -General Changes: ----------------- -Updated GeckoFx package -Updated DockPanelSuite library to 2.10 Final -Japanese translation updated -MR-942: Refactored code relating to loading the connections file - -Features/Enhancements: ----------------------- -MR-961, PR-133: Option to reconnect all currently opened connection tabs -MR-917: Improved cryptographic support - -Fixes: ------- -MR-910: Fixes to support Remote Desktop Gateways -MR-874: Incorrect RDP prerequisite check in installer - - - -1.75 Alpha 1 (2016-07-08): - -General Changes: ----------------- -Additional code cleanup - - -Fixes: ------- -MR-905: mRemoteNG crashes at startup (in FIPS policy check) -MR-902: mRemoteNG crashes after locking/unlocking the local system after loading a VNC connection - - -1.74 (2016-06-28): - -Supported Platforms/Components: -------------------------------- -Windows 7 SP1 (with RDP Client v8: KB2592687/KB2923545) or later -.NET Framework 4 or later -XULRunner is no longer required for Gecko support (see below) - - -General Changes: ----------------- -Converted source from Visual Basic to C Sharp -Lots of code refactoring/clean up/general stability changes -MR-714: Removed Keyboard shortcut functionality - - Introduced in 1.73 beta that was never officially released - - This caused stability issues - - May be re-added in a future release - - Removal does *NOT* impact the ability to send keyboard shortcuts to RDP sessions (when redirect key combinations is set to "yes") -MR-559: Removed RDP Sessions panel functionality. This required a library for which no trusted origin/source could be located -Removed a bunch of old code/libraries and replaced them accordingly - - -Security Updates: ------------------ -MR-775, MR-745: Updated PuTTY to 0.67 - - -Features/Enhancements: ----------------------- -Updated to latest DockPanelSuite and enabled a slick new theme! -MR-145: Installer is now MSI based -MR-255: Updated RDP Client to version 8 -MR-389: Updates to IE rendering engine - - Support for latest version of IE (9-11) - - Dropped support for IE 7 & IE 8 -MR-850: Replaced XULRunner with GeckoFx - - No need to manually configure to have the Gecko rendering engine available now - - Install image is now significantly larger due to the inclusion of the Gecko Engine -MR-821: Initial Japanese translation included -Port Scan is now Asynchronous (and is significantly faster) - - -Fixes: ------- -MR-874: Added work-around to installer to ignore installation prerequisites -MR-884: Slow startup in some scenarios checking authenticode certificate -MR-872: Crash in External Tools when arguments aren't quoted -MR-854: crashes when right clicking on connection tab -MR-852: Option "Allow only a single instance of the application" non-functional -MR-836: Trying to delete a folder of connections only deletes 2 connections at a time -MR-824, MR-706: Suppress Script Errors when using the IE rendering engine -MR-822: Improve RDP error code messages -MR-640: Fixed Inheritance not working -MR-639: RDP: Connect to console session -MR-610, MR-582, MR-451: RDP: Protocol Error 3334 or exceptions with large number of connections open - - This problem appears largely resolved by most reports and testing - - Further workarounds/problem avoidance: Disable Bitmap Caching on all RDP session configuration -MR-429: Display issue on the Options -> Advanced panel -MR-385: Inheritance settings lost when moving item to the root of the tree - - ------ New Dev Team & Conversion to C# ----- - - -1.73 Beta 2 (NEVER RELEASED): -Fixed issue MR-619 - Keyboard shortcuts stop working after locking the screen with Win+L -Added support for importing files from PuTTY Connection Manager. -Improved the import and export functionality. - - - -1.73 Beta 1 (2013-11-19): -Added feature MR-16 - Add keyboard shortcuts to switch between tabs -Added feature MR-141 - Add a default protocol option -Added feature MR-212 - Add option to connect without credentials -Added feature MR-512 - Add support for importing files from Remote Desktop Connection Manager -Added feature MR-547 - Add support for Xming Portable PuTTY -Made improvement MR-250 - Show the name of the selected connection tab in the title of the window -Made improvement MR-367 - Make the 'Connect' button on the 'Quick Connect' toolbar a forced dropdown -Made improvement MR-419 - Password prompt dialog should have a meaningful window title -Made improvement MR-486 - Allow escaping of variable names for external tools -Made improvement MR-590 - Make panels docked to the edge of the window keep their size -Fixed issue MR-187 - F7 keyboard shortcut for New Folder conflicts with remote connections -Fixed issue MR-523 - Changes to external tools are not saved until exiting the program -Fixed issue MR-556 - Export fails when overwriting an existing file -Fixed issue MR-594 - Crash on startup if write access is denied to the IE browser emulation registry key -Fixed issue MR-603 - Some configuration options are still shown even when inheritance is enabled -MR-590: Added "Reset" to config panel context menu to allow resetting some config settings to their default value. -Added and improved menu icons. -Removed misleading log messages about RD Gateway support. -Removed invalid "Site" configuration option from PuTTY Saved Sessions. -Fixed PuTTY Saved Sessions still showing if all saved sessions are removed. -Fixed config panel showing settings from previously loaded connection file after loading a new one. -Improved handling of variables in external tool arguments. - - - -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 application -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 -Updated DockPanel Suite from 2.2.0 to 2.3.1 -Fixed error if the mouse is clicked outside of the remote screen area of a VNC connection -Fixed flashing and red lines at bottom of the window on first run -Added View->Reset Layout menu item -Added F11 shortcut key to View->Full Screen -Improved RDP error reporting -Added support for Credential Security Support Provider (CredSSP) which is required for Network Level Authentication (NLA) -Added support for connecting through Remote Desktop Gateway servers -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 (2010-01-19): -Switched to VncSharp, an open source VNC component -VNC is supported again except for the following features: -Windows authentication -Setting the compression, encoding and color settings -Connecting through a proxy server -Free SmartSize mode (it does the same thing as Aspect SmartSize mode now) -Rearranged the Options page and added an Updates tab -Added option to change how often updates are checked -Open Updates options tab before connecting for the first time -No longer show About page on first run -Renamed Quicky toolbar to Quick Connect toolbar -Changed back to allowing toolbars to dock to the left or right of the menu bar and added gripper to move it around -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 (2010-01-14): -Removed unlicensed SmartCode Solutions ViewerX VNC Viewer ActiveX -This version of mRemoteNG does not support VNC - - - -1.60 (2010-01-09): -Changed name to mRemoteNG -Fixed menu bar not staying docked to left side -Removed snakes game Easter egg -Removed references to visionapp Remote Desktop -Changed filename delimiter in title bar from pipe to dash -Changed default format for saving screenshot images to PNG -Changed website addresses -Added Report a Bug and Support Forum links to the Help menu -Moved Check for Updates to the Help menu -Changed website links in Help menu and About page to load within mRemoteNG instead of launching an external browser - ------ - -1.50: -Added the following formats to the "Save Connections As" function: -mRemote CSV (standard CSV file with all properties) -vRD 2008 CSV (standard CSV file with properties relevant for importing connections in vRD 2008) -Fixed bug in inheritance code (SmartSize Mode and View Only properies were always shown when using VNC) - -1.49: -mRemote and visionapp Remote Desktop 2008 merge! -Read more here: http://www.mremote.org/wiki/visionappMerge.ashx -or in the Announcement panel. -Added features to the update function -Added Announcement feature -Changed copyright notice in about screen and text when connecting via VNC -Fixed some SQL-related problems - -V1.48: -ATTENTION! There is a bug in the automatic update code in 1.45 so you will have to download the new version manually from http://www.mremote.org/wiki/Downloads.ashx - -Added startup components check with directions to fix component installation (also available in Tools - Components Check) -Added "Try to integrate" option to Ext. Apps. If enabled mRemote will try to integrate the app into a tab container like any other connection protocol. -Added Ext. App as protocol. Any Ext. App can be launched just like a normal connection. -Example (DameWare Mini Remote Control): -Create a new Ext. App with the following properties: -Display Name: DameWare -Filename: c:\PathToYourDameWareInstallDir\DWRCC.exe -Arguments: -c: -h: -m:%hostname% -u:%username% -p:"%password%" -d:%domain% -Options: Try to integrate -Create a new connection and select Ext. App as protocol -Then choose DameWare in the Ext. App field -If you have problems with a particular app that takes a long time to start up consider setting a higher PuTTY/Ext. Apps wait time in Tools - Options - Advanced -Added option to completely encrypt connection files (tools - options - advancecd) -Added Rendering Engine option for HTTP/S protocols -You can now use the Gecko (Firefox) rendering engine -For this to work you need to download xulrunner (get it here: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/) -It must be the 1.8.1.3 release, 1.9.0.0 does NOT work! -Extract the contents to a path of your choice and set the correct path in Tools - Options - Advanced - XULrunner path -The interface is tab enabled and usage is generally very firefox-like. So you can open new tabs with Ctrl+T, jump to the location bar with Ctrl+L and so on... -Added "MAC Address", "User Field" fields and %MacAddress%, %UserField% variables to use in Ext. Apps -Added descriptions for all fields in the config editor -Fixed bug in connections loading code when using SQL storage -Fixed bug in reconnect code -Fixed VNC sessions not refreshing screen automatically when switching between tabs or panels - -WARNING! There have been changes to the connections file/SQL tables -Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables -To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) -These are the added lines: -[RenderingEngine] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , -[MacAddress] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , -[UserField] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , -[ExtApp] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , -[InheritRenderingEngine] [bit] NOT NULL , -[InheritMacAddress] [bit] NOT NULL , -[InheritUserField] [bit] NOT NULL , -[InheritExtApp] [bit] NOT NULL , - -V1.45: -New german language build available -Added support for RDP 6.1 (XP SP3/Vista SP1) features (Server Authentication, Console Session, TS Gateway not yet...) -Added basic support for UltraVNC SingleClick (Tools - UltraVNC SingleClick); the listening port is configurable in the options -Fixed VNC connections not working on x64 -Fixed screenshots save all feature overwriting files with the same name (not actually a bug, but rather a new feature ;) -Fixed ICA Encryption Strength not inheriting properly - -WARNING! There have been changes to the connections file/SQL tables -Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables -To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) -These are the added lines: -[RDPAuthenticationLevel] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , -[InheritRDPAuthenticationLevel] [bit] NOT NULL , - -V1.43: -Added function to send either the main form or a connection panel to another screen -To send the form to another screen, right click the titlebar or the taskbar button and select "Send to..." -If you want to send a panel to another screen, right click the panel's tab and do the same -Fixed PuTTY connections not supporting credentials with spaces -Fixed form not opening on last position when using multiple screens -Fixed kiosk mode not working on secondary screen - -V1.42: -IMPORTANT NEWS: Please read the page that opens when you first start this release or go to: -http://www.mRemote.org/wiki/MainPage.ashx#Commercial -Added minimize to tray option -Added option to enable switching to open connections with a single click on the corresponding connection in the tree -Added button to test proxy settings -Fixed: If the active connection tab is a PuTTY connection, Alt+Tab to mRemote now focuses the PuTTY window -Fixed encoding problem with PuTTY sessions that included spaces -Fixed problem that made mRemote inaccesible when closing it on a second monitor and then disabling this monitor -Fixed: Inheritance defaults of some new VNC properties were not saved in the portable package - -V1.41: -Added complete support for SmartCode's ViewerX and removed VncSharp -Many thx to everyone who donated to make this happen!!! I didn't think that it wouldn't even take a week! =) -I hope everyone will be satisfied by the functions and possibilities this new control provides -If you use one of the non-setup packages you must register the control yourself -Open a cmd and change to the directory you installed mRemote to -Type regsvr32 scvncctrl.dll and click ok -Changed shortcuts and added buttons for them to the view menu under "Jump To" because they were causing several problems - -WARNING! There have been changes to the connections file/SQL tables and the Ext. Apps XML file -Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables -To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) - -V1.40: -Added (limited) support for the trial version of SmartCode's VNC ActiveX -To enable it go to Options - Advanced and check "Try SmartCode VNC ActiveX" -When connecting a pop up will open, wait about 10 seconds, then click on "Trial" to continue -I will integrate this control fully into mRemote if I get enough Donations to buy the single developer license ($375,-) -So if you want to see better VNC support (All UltraVNC, TightVNC and RealVNC functions) in mRemote, please help me and donate some bucks -For donations either go to the mRemote Wiki (Info - Website) or click on Info - Donate to directly go to PayPal -I will announce the current donation amount every day (or as often as I can) on the Wiki main page -If you want to know more about the control go here: http://www.s-code.com/products/viewerx/ -Added feature to choose the panel a connection will open in when... -a. no panel name was assigned in the properties -b. you opened a connection with the option to choose the panel before connecting -c. you checked "Always show panel selection dialog when opening connectins" in Options - Tabs & Panels -Added Shortcuts to focus the standard panels -Alt+C: Switch between Connections & Config panel -Alt+S: Switch between Sessions & Screenshots panel -Alt+E: Switch to Errors & Infos panel -Added some new icons - -V1.39: -Added MagicLibrary.dll to the release again (forgot it in the 1.38 packages, sorry) -Added auto-reconnect for ICA -Added feature that automatically clears whitespaces in the Quicky Textfield -Added special feature: Go to the set password dialog and type "ijustwannaplay" (without the quotes) in the password field... ;) - -V1.38: -Added automatic reconnect feature for RDP (Options - Advanced) -Added connections drop-down to the quicky toolbar (same as the tray icon menu) -Added setting in the options to enable/disable that double clicking on a connection tab closes it -Added option to automatically set the hostname like the display name when creating new connections -Fixed bug that caused the properties of a folder to be filled with "Object reference not set to an instance of an object." when adding a folder to the root with Default Inheritance enabled -Fixed bug that made the properties of a newly added Connection to the root unavailable when Default Inheritance was enabled -Fixed bug that the default settings for Pre/Post Ext. App, and their inheritance settings were not being saved -Fixed bug in settings loading methods that caused the application to hang when an error occured -Fixed bug in Ext. Apps panel that copied the properties of the previously selected Ext. App when "Wait for exit" was checked -Fixed bug in the SQL Query that creates the tables needed by mRemote -Attempt to fix the "Drop-Down on Screenshot" bug on some machines - -V1.35: -Added single instance mode (look in Options - Startup/Exit) - No cmd arguments supported yet! -Added possibilty to start a Ext. App before connecting and on disconnect (e.g. for VPN/RAS) -Added option to the Ext. Apps to tell mRemote to wait for the exit of the Ext. App -Added encryption setting for ICA - -WARNING! There have been changes to the connections file/SQL tables and the Ext. Apps XML file -Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables -Here's a list of new columns that need to be created before saving connections to an SQL server: -Name: ICAEncryptionStrength, Data-Type: varchar, Length: 64, Allow Nulls: No -Name: InheritICAEncryptionStrength, Data-Type: bit, Length: 1, Allow Nulls: No -Name: PreExtApp, Date-Type: varchar, Length: 512, Allow Nulls: Yes -Name: PostExtApp, Date-Type: varchar, Length: 512, Allow Nulls: Yes -Name: InheritPreExtApp, Date-Type: bit, Length: 1, Allow Nulls: No -Name: InheritPostExtApp, Date-Type: bit, Length: 1, Allow Nulls: No - -V1.33: -Fixed problem that caused RDP connections not to initialize properly when using XP SP3 -Fixed bug in Port Scan that prevented hosts with no hostname from being imported - -V1.32: -Added: Inheritance defaults can now be customized (look in the root properties of your connections tree) -Fixed bug that made password-secured connection files not load properly because the return value from the password screen was always null -Fixed a lot of outdated code in the import functions (Import from XML, Import from AD, Import from RDP files) -Fixed bug that caused properties with a ' character not to be saved properly when using SQL Server -Changed Target CPU to AnyCPU again as I think the x86 setting caused problems on x64 machines (although it shouldn't) - -V1.31: -Small speed improvement to the port scanner -Fixed bug that caused SQL live-update to not work when not using AD Authentication -Fixed bug that caused Save As not to work - -V1.30: -Added experimental SQL Server with live-update (multi-user) support (see Help - Getting started - SQL Configuration) -Added bunch of new icons to the UI, most of them by famfamfam.com -Added dropdown button to Quicky Toolbar to choose protocol -Many smaller changes and additions -Fixed: Wrong default PuTTY session name -Fixed bug in Port Scanner that caused an error when no DNS name could be resolved - -V1.25: -Added inheritance for folders -Added port scan feature and possibility to import from a scan -Added toolbar for Ext. Apps (see View - External Applications Toolbar) -Added quick connect as toolbar -Added code that creates a backup of the current connections file every time it is loaded (It's named YourConsFile.xml_BAK) -Added description variable to Ext. Apps -Fixed bug that allowed inheriting from root node -Fixed bug that caused Ext. Apps launched from a connection tab to use the selected tree node instead of the current tab -Fixed bug that caused mRemote not to save panel layout and Ext. Apps on exit - -V1.24: -Fixed a bug in connections loading mechanism that caused a corrupted connections file when upgrading from a previous version - -V1.23: -Added feature to remember which connections were opened on last runtime and reconnect to them on the next start (see Tools - Options - Startup/Exit) -A command line switch is also available to cancel reconnecting (/noreconnect or /norc) -Added Auto Save feature (Tools - Options - Connections - Auto Save every...) -Added Ext. Apps to connection tab context menu -Added better error handling for RDP connection creation -Fixed problem with Sessions feature on 64bit systems -Fixed Sessions feature not working when using global credentials -Fixed several problems with the Active Directory OU picker control -Fixed bug in Connection duplicate code that caused duplicated connection to still have previous tree node assigned - -V1.20: -Added External Applications feature (check the help section for more info) -Added duplicate feature to Connections tree -Fixed: MagicLibrary.dll was not included in the setup package - -V1.16: -New Domain: www.mRemote.org -Fixed PuTTY connections appearing in a new window -There's a new setting in the options to fine tune the time to wait until the window has been created -Fixed export not working -Added reconnect feature in tab menu - -V1.15: -Added: New portable package -Added: Defaults for new connections can now be customized -Click the root item and then the new Properties-like button with a small yellow star to get to the settings -Fixed Import from Active Directory not working -Fixed problem with single click connect not focusing correctly -Fixed root node not being renamed after changing name in property grid - -V1.10: -Added support for setting a password to protect the connections file with (look in the root of your connections tree) -Added RDP file import feature -Added new command-line switch to reset panel's positions -Added HTTPS as protocol -Added HTTP/S basic authentication -Added support for setting a Proxy server for automatic updates -Some changes in help section -Fixed the bug that passwords stored in the options weren't decrypted when a connection was opened -Fixed "bug" that prevented "Connect to console session" from working in RDC6.1 (Vista SP1 RC1/XP SP3 RC1) - -V1.00: -Merry Christmas! =) - -V1.00 is a (almost) complete rewrite of the whole application -The code base is now much cleaner and more (easily) extendable -New features include (but are not limited to): -Every part of the application is now integrated into panels which can be moved, docked and undocked, hidden, moved to another monitor, etc. -This makes many new and exciting ways to manage connection and application windows possible -You can for example open up 4 PuTTY sessions in 4 different panels and align them in the main application so you can use all 4 side by side - 2 on the upper side and 2 on the bottom for example -This can be done for EVERY part of the application, it's completely modular and customizable -Connection and folder (previously called containers) properties have moved to a new property grid control -Every setting (with the exclusion of the hostname, which wouldn't make any sense) can now be inherited from the parent folder -Connection file saving/loading is now handled a bit different (more in the help section) -Application restart is no longer nececary after changing options, they are active with a click of the OK button -Smart size can now be activated also if a connection is already open (in the right click menu of the active tab) -A panel name can be stored with every connection (or folder, if inherting) to always open the connection in the specified panel -And last but not least, many bugs have been fixed, though there are probably many new bugs aswell - Did I already mention this is a rewrite? ;) -I hope you like my work and if you do please consider donating on the mRemote website to support me a little. Any amount will do! Thx! - -V0.50: -Removed old Terminal (SSH, Telnet) control and embedded PuTTY instead -This decision brings mostly good but also some bad news -The good news is that now everything that works in putty also works in mRemote -This means X11 forwarding, SSH port forwarding, session logging, appearance customization, etc. should be working fine now -It also brings some new protocols (Rlogin, RAW) -The bad news is that I cannot fully integrate Putty into mRemote because it is a standalone application and thus has it's own window handle -This means that you won't be able to use Ctrl+Tab to switch between tabs, catching errors or infos through the new Errors and Infos tab isn't possible, etc. -Added possibility to change resolution or display mode (Fit to window, Fullscreen, Smart size) -Added new setting in options to show logon info on tab titles -Added new feature that catches popup dialogs and puts them in a managed interface. This is another step to make mRemote a single window application. -Pressing escape switches back to the connection list -There is a context menu that allows you to copy selected errors/warnings/infos to the clipboard (text only) or to delete them -There also are settings in the option to change when to switch to the tab and to switch back to the normal behaviour of displaying message popups -Added QuickConnect history and auto-complete functions -Added a few new Icons (Linux, Windows, ESX, Log, Finance) -Improved options tab -Connections file version is now 1.2 -Fixed some form drawing bugs - -V0.35: -Added tab switching/closing hotkeys -Switch to next tab: Ctrl+Tab -Switch to previous tab: Ctrl+Shift+Tab -Close active tab: Ctrl+W -This does not and will probably never work with RDP connections! -Fixed bug in updating code that still displayed the current version in the old format (x.x.x.x instead of x.xx) -Fixed bug where the colors setting was not correctly read after saving and reloading a connections file (only with 256 colors setting) -Fixed bug that made connect to console session and fullscreen options not work -Fixed bug that when opening options, update or about tab caused weird paddings next to the tab or other strange behaviour -Changed shortcuts to menu items in main menu as they interfered with some terminal key bindings - -V0.30: -Added HTTP as protocol to allow for basic web-based administration -Added new connections menu to the toolbar -Left click on a connection connects -Right click on a container or connection opens the config tab for the selected item -Added two new connection context menu entries for quickly connecting to console session or connecting in fullscreen -Improved tray icon menu (just like the main connections menu) -The connections tree can now be hidden -To hide it right click on the splitter (the divider between the connections tree and the tabbing interface) -Removed overlay (RDP locking) feature in favor of simply grabbing input when clicking inside the control area -I hope nobody is too sad that the nice looking overlay feature had to go, but..., well, it had to! ;-) -Changed "Redirect Key combinations (like in fullscreen)" to be disabled when in kiosk mode as it has no effect then anyway -Several small bugfixes and code improvements - -V0.20: -Added Drag and Drop support for tabs -Added tab context menu -Switch to/from fullscreen -Take a screenshot -Transfer files via SCP/SFTP (SSH) -Send special keys (VNC) -Rename tabs -Duplicate tabs (Create another instance of the connection) -Show config -Close tab (disconnect) -Removed Fullscreen and Send special keys buttons from the main toolbar as they are now in the tab context menu -Added middle click support for tabs (close/disconnect) -Added SSH file transfer (SCP/SFTP) support -Added Tools menu to the tree context menu -Transfer files via SCP/SFTP (SSH) -Import/Export features -Sorting -Changed version format -Fixed the problem that caused mRemote to crash when dragging a parent node of the connections tree onto one of it's child nodes -Fixed problem in importing mechanism that allowed importing connections including the root which resulted in multiple root items that couldn't be deleted -Fixed problem with quick connect - -V0.0.9.0: -Added support for redirecting key combinations (Alt+Tab, Winkey, ...) -Added Import/Export features -Added Quick Connect Port support, just type the host you want to connect to followed by a ":" and then the port -Added Connect/Disconnect buttons to connections context menu -Added two new icons (Test Server | TST; Build Server | BS) -Many changes to the connections loading/saving mechanisms -confCons version is now 1.0 -Some code cleanup -Fixed auto session info to only try to get session information when a RDP connection is selected -Fixed AD Import feature (didn't care if imported items were computers, groups, users, ... ;) -Fixed settings and connections not saving when installing updates from the auto-updater -Fixed form size and location not saving properly when closing the application in minimized state or in maximized state on a secondary monitor - -V0.0.8.2: -Added SSH1 to Quick Connect GUI -Changed buffer size of terminal control, it's now 500 lines -Fixed terminal connections not getting focus when changing tabs -Fixed bug in terminal code that caused hitting "home" to show "~" instead of jumping to the start of the line -Fixed bug that caused that hitting enter in mRemote wouldn't do anything when options was opened before - -V0.0.8.0: -Added code to check if the msrdp com control is registered -Many Improvements to the terminal control (ssh1(!), ssh2, telnet) -Fixed bug that caused mRemote to crash when moving connection into root node (only with inheritance enabled) -Fixed bug: Pressing delete when editing a node's name caused delete messagebox to show - -V0.0.7.5: -Added inheritance feature to inherit connection settings from parent container -Expanded/Collapsed state of tree nodes will now be saved -Reduced auto session info delay to 700ms -Some code maintainance -Some corrections to connections tree and quick search behaviour -Fixed bug in TerminalControl that caused the error message "error loading string" -Fixed: Settings saving on exit was broken in V0.0.7.0, this is fixed now -Changed connections file version to 0.9 -Fixed connections context menu bug that made import from ad option inaccessible -Fixed session info filling up with infos about hosts previously selected - -V0.0.7.0: -Massive GUI redesign and changes, hope you like it! =) -Fixed bug that made session info to query immediately after selecting a connection (when enabled), there is now a one second delay to prevent collecting session info for more than one host - -V0.0.6.8: -Added connection import feature for Active Directory -Tidied up project references -Multiple changes to setup routine -Improved error handling for auto-update -Improved download handling for auto-update -Fixed bug that made download finished/failed message box appear multiple times when update was canceled and re-downloaded -Fixed bug where double-clicking a container opened all connections inside this container - -V0.0.6.6: -Changed port textbox control to only allow digits -Small changes to connection code for SSH -Fixed port setting not saving (or always displaying default port for selected protocol) - -V0.0.6.5: -Added auto update feature -Changed: Multiple UI Changes (added shortcuts, rearranged menu items, ...) -Fixed the problem where the connections file version was saved either with a dot or a comma, depending on system language -Fixed not being able to connect to SSH2 hosts without specifying username and password -Fixed several problems with Quick Connect -Improved saving of config changes -Fixed connections tab not closing when using SSH - -V0.0.6.0: -Added new protocols: SSH2 and Telnet -Added first command line switch/parameter "/consfile" -Ex.: mRemote.exe /consfile "%PathToYourConnectionsFile%" -Added button to screenshots to delete a screenshot -Added Host Status (Ping) feature -Many code rewrites and changes in almost every area -Changed the way connections get loaded -The default path for the connection file is no longer in the application directory but in the local application data folder. -Ex.: c:\Documents and Settings\felix\Local Settings\Application Data\Felix_Deimel\mRemote\ -If opening a connection file from a custom location (click on open link) saving will also occur in this file and not like in previous versions to the default connections file -To import your old connection file please use the following procedure: start mRemote, click on "Open" and find your old connection file. Then click on "Save As" and save it with the default file name to the default location -Changed the font and style of context menus -Changed Quick Connect UI -Fixed connection settings in config tab not saving when clicking another connection before jumping to another config field -Fixed a bug where renaming a container caused the first connection in the same container to be renamed too - -V0.0.5.0 R2: -Fixed a bug that prevented connections from opening when icon files were assigned in a previous version of mRemote - -V0.0.5.0: -Added (Global) fullscreen / kiosk feature -Added redirection settings for disk drives, printers, ports, smart cards and sound -Added option to write a log file -Added option to open new tabs on the right side of the currently selected tab -Added possibility to connect to all nodes in a container -Changed session functions to work in background -Changed icon choosing mechanism and added a bunch of default icons -Changed: Containers with connection can now be deleted just like empty containers -Changed screenshot functions to now collect all screenshots in one tab -Changed: More settings can now be changed on container basis -Changed config file version to 0.6 -Changed: Small internal changes to the connection saving/creating and opening mechanisms -Fixed "Display Wallpapers" and "Display Themes" settings, they are working now - -V0.0.3.6: -Added Feature to display an overlay when RDP connection tab has lost the focus, clicking on this gives the focus back to the control -Added standard handlers for F2 (rename) and DEL (delete) keys in the treeview -Added icon preview for connections in config tab -Changed the way new connections and containers are being created in the treeview. The pop up window will not be displayed any longer, instead everything is handled inplace by the treeview. -Changed some minor UI related stuff -Fixed bug in tab closing mechanism that caused icons (play/pause) to not be set on the correct tree nodes - -V0.0.3.5: -Added Feature to query and log off sessions on a remote machine and option to do this automatically -Added Option to show icon in system tray with connection menu -Changed controls to flat style as I think this fits the whole application more than the old 3D look -Multiple UI changes to eliminate annoying behaviour - -V0.0.3.3: -Added Feature to specify which login information to use when no info is provided in the config of a remote machine -Fixed bug in Quick Find where trying to open a connection when no node was found caused an error -Fixed bug where the main form was not rendered correctly when hiding top bar and using XP Themes -Fixed bug in drag-drop routine that caused application to hang when trying to drop a node on one of it's child nodes -Fixed bug where taskbar buttons for fullscreen rdp windows did not disappear after disconnecting - -V0.0.3.2: -Added new Save As Dialog with feature to only save specific connection settings -Added Option to display Tooltips when hovering over host entries in the connection tree -Added Option to ask at exit when there are open connections -Fixed bug where saving connections file with spaces in the root node caused an error -> updated Connection File Version to 0.5 -Fixed bug in options tab where the browse button for a custom connection file didn't do anything - -V0.0.3.0: -Added Options Tab -Load connections file from different location -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 -Added feature to send special keys (VNC) -Updated VncSharp Library to V0.88 (still pretty buggy) - -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 -Fixed bug in Quick Connect GUI -Disabled "Display Wallpaper" and "Display Themes" checkboxes as these features are not implemented - -V0.0.2.5: -Quick connect button bug fixed -Search field resize bug fixed -Splitter position is now saved on exit -Added new connections toolstrip (same functions as context menu) - -V0.0.2.4: -Changed default color depth to 16bit -Added Keep Alive Interval (1 Minute) -Added Options to choose between RDP & VNC -Added Port Setting for RDP -Added Option to connect to console -Added Menu Entries to move Connections & Containers up & down -Some small code improvements diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 00000000..e3e5a6b0 --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,1574 @@ +# Changelog +All notable changes to this project will be documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] +### Added +### Changed +### Fixed +- #1428: Fixed a rare error when checking for FIPS +- #1426: Tabbing is reversed in config window +- #1425: Connections didn't always respect the Panel property + + +## [1.77.0] - 2019-04-29 +### Added +- #1414: Add "Remote Audio Capture" option for RDP +- #1336: Added ability to run External tools on folders +- #1320: Added ability to favorite items in the connection tree +- #1318: Added support for saving connections in MySQL +- #1293: Importing .rdp files now imports gateway settings +- #1246: Improved connections loading to tolerate missing attributes in the confCons xml file +- #1230: Added option to track the currently focused connection in the connection tree +- #1220: Added an Apple/Mac connection icon +- #1218: A splashscreen has been added when mRemoteNG starts +- #1216: Connection tree search bar can be placed at the top or bottom of connection tree +- #1201: The help files packaged with mRemoteNG have been rewritten +- #1186: Certain dialogs are not correctly using localized text for buttons +- #1170: The Options window no longer displays in the Windows taskbar when open +- #1141: 'Copy Hostname' option added to connection tree context menu +- #1123: Added a dialog that will display when unhandled exceptions occur +- #1102: Added a button to clear connections searchbox +- #1042: Added a connection icon for OSX/MacOS +- #951: Added property to Enable/Disable Clipboard Sharing for RDP connections +- #929: Added the hostname to certain RDP error/disconnect messages where it was missing +- #928: Add context menu items to 'Close all but this' and 'Close all tabs to the right' +- #907: Added option to disable trimming whitespace from username field +- #896: Added a "view only" mode for RDP connections +- #416: Added ability to Enable/Disable Clipboard Sharing for RDP connections +- #321: Added support for displaying on HiDPI screens +### Changed +- #1430: Revised options dialog to prevent components from overlapping in some translations (e.g. russian) +- #1389: Connection config window refactoring. Default connection info buttons now always available. +- #1384: Revised help files and switched to sphinx as a documentation system +- #1223: Open External Links in Default Web Browser +- #1129: Spanish translation improvements +- #1072: Russian translation improvements +- #1016: Chinese (simplified) translation improvements +- #765: Port Scan Issues (single port scan option now available) +- #155: Replace MagicLibrary with DockPanelSuite +- #154: MR-139: Close Button on Each Tab - new default theme has a close button on each tab + + +### Fixed +- #1383: Fixed issue where default Computer OU was not showing up when importing from Active Directory +- #1248: RemoveMagicLib Bugs - various bugs that cropped up as a result of removing magiclib +- #1245: Options form takes nearly 3 seconds to appear when Theming is active +- #1240: Theming problem with NGNumericUpDown +- #1238: Connection panel not translated until opened for the first time +- #1186: Fixed several dialog boxes to use localized button text +- #1170: Prevent Options window from showing up in taskbar +- #1064: "Esc" button does does not close some dialogs +- #1044: Dragging (grabbing) the program window requires 2 clicks + + +## [1.76.20] - 2019-04-12 +### Fixed +- #1401: Connections corrupted when importing RDC Manager files that are missing certain fields + +## [1.76.19] - 2019-04-04 +### Fixed +- #1374: Vertical Scroll Bar missing in PuTTYNG after 0.70.0.1 & 0.71 updates + +## [1.76.18] - 2019-03-20 +### Fixeed +- #1365: PuTTY window not centered after 0.71 update + +## [1.76.16] - 2019-03-14 +### Fixed +- #1362: Updated PuTTYNG to 0.71 + +## [1.76.15] - 2019-03-09 +### Added +- Importing multiple files now only causes 1 save event, rather than 1 per file imported +### Fixed +- #1303: Exception on first connection with new SQL server database +- #1304: Resolved several issues with importing multiple RDP Manager v2.7 files + +## [1.76.14] - 2019-02-08 +### Changed +- #222: Pre-Release Test build for running on systems with FIPS Enabled + +## [1.76.12] - 2018-11-08 +### Added +- #1180: Allow saving certain connection properties locally when using database +### Fixed +- #1181: Connections sometimes dont immediately load when switching to sql feature +- #1173: Fixed memory leak when loading connections multiple times +- #1168: Autohide Connection and Config tab won't open when ssh connection active +- #1134: Fixed issue where opening a connection opens same connection on other clients when using database feature +- #449: Encrypt passwords saved to database + +## [1.76.11] - 2018-10-18 +### Fixed +- #1139: Feature "Reconnect to previously opened sessions" not working +- #1136: Putty window not maximized + +## [1.76.10] - 2018-10-07 +### Fixed +- #1124: Enabling themes causes an exception + +## [1.76.9] - 2018-10-07 +### Fixed +- #1117: Duplicate panel created when "Reconnect on Startup" and "Create Empty Panel" settings enabled +- #1115: Exception when changing from xml data storage to SQL +- #1110: Pressing Delete button during connection rename attempts to delete the connection instead of the text +- #1106: Inheritance does not work when parent has C# default type set +- #1092: Invalid Cast Exceptions loading default connectioninfo +- #1091: Minor themeing issues +- #853: Added some additional safety checks and logging to help address RDP crashes + +## [1.76.8] - 2018-08-25 +### Fixed +- #1088: Delete and Launch buttons are not disabled when last external tool deleted +- ${1}'Save connections after every edit' setting not honored +- #1082: Connections not given GUID if Id is empty in connection xml + +## [1.76.7] - 2018-08-22 +### Fixed +- #1076: Wrong object selected when duplicating connection then switching between properties and inheritance in config window +- #1068: Fixed some toolbar positioning bugs + +## [1.76.6] - 2018-08-03) +### Fixed +- #1062: Entering correct password when starting app does not load connections file + +## [1.76.5] - 2018-08-02) +### Removed +- #893: Removed unneeded files from build/package +### Fixed +- #1057: Hitting F2 with no connection node selected caused unhandled exception +- #1052: 'Switch to notification panel' feature does not always switch +- #1051: Tooltips always displayed regardless of 'Show description tooltips in connection tree' setting +- #1050: Config window retains access to previously selected node after loading new connections file +- #1045: Config window shows several incorrect properties for HTTPS connections +- #1040: Canceling "select panel" form does not cancel +- #1039: Set default theme when themes disabled +- #1038: Unable to add connection with active filter +- #1036: Exception when themes are active and options page closed on Connections then reopened +- #1034: Connection context menu not being translated +- #1030: Exception thrown if importing from port scan and no tree node is selected +- #1020: BackupFileKeepCount setting not limiting backup file count +- #1004: Duplicating root or PuTTy node through hotkey causes unhandled exception +- #1002: Disabling filtering without clearing keyword leaves filtered state +- #1001: Connection tree context menu hotkeys stop working and disappear in some cases +- #999: Some hotkeys stop working if File menu was called when PuTTy Saved Sessions was selected +- #998: Can sometimes add connection under PuTTY Sessions node +- #991: Error when deleting host in filtered view +- #971: Portable Settings now apply to any machine they are used on +- #961: Connections file overwritten if correct decryption password not provided +- #868: if statement returned the same value +- #762: Increased button size to fit locaized text + +## [1.76.4 Alpha 6] - 2018-06-03 +### Added +- #924: Notification for "No Host Specified" when clicking folders in quick-connect menu +- Added option for creating an empty panel on startup +### Changed +- #942: Improved Russian translation of several items +- #902: Menu bar can once again be moved. View -> "Lock toolbar positions" now also locks the menu position +### Fixed +- #948: Fixed issue where many menu item translations were not being used +- #938: Minor layout improvements on the Port Scan screen +- #916: Default properties were not being saved + +## [1.76.3 Alpha 5] - 2018-03-14 +### Fixed +- #911: Csv exports sometimes do not include all fields +- #807: Inheritance is sometimes turned on for nodes under root Connections node + +## [1.76.2 Alpha 4] - 2018-03-03 +### Fixed +- #899: DoNotPlay is Case Sensitive in XML Serialization + +## [1.76.1 Alpha 3] - 2018-02-24 +### Added +- #625: Added ability to import mRemoteNG formatted CSV files +- #648: The port scan ping timeout is now configurable +### Fixed +- Fixed a few Xml serialization bugs that would occur if boolean values weren't capitalized + +## [1.76.0 Alpha 2] - 2018-02-01 +### Added +- #838: Added an option to lock toolbars +- #836: Added a Read Only option for SQL connections +- #829: Add option that fixes connecting to Azure instances with LoadBalanceInfo +### Fixed +- #840: Fix theme loading issue in installer version +- #800: Fixed issue with PuTTY sessions not showing some extended characters +- Fixed a few toolbar layout issues + +## [1.76.0 Alpha 1] - 2017-12-08 +### Added +- #799: Added option to save connections on every edit +- #798: Added button to test SQL database connections on SQL options page +- #611: Added multi-ssh toolbar for sending commands to many SSH clients at once +- #519: You can now import normal mRemoteNG files - they do not have to be exports +- #504: Added Korean translation +- #485: The Domain field is now visible/editable for connection with the IntApp protocol +- #468: Default connection info Panel property is now saved +- #429: Added Czech translation +- #421: When a connection file cannot be loaded, we will now prompt for how to proceed rather than always exiting. +- #338: Added option to filter connection tree when searching +- #225: Added support for importing Remote Desktop Connection Manager v2.7 RDG files +- #207: Can now specify a working directory for external tools +- #197: Selecting a quick connect protocol will start a connection with that host +- #184: Improve search to include description and hostname fields +- #152: Added option "Show on Toolbar" to external tools +- Added more logging/notifications options +### Changed +- #784: Rearranged some settings in the Options pages to prevent overlap with some translations +- #704: Portable version now saves settings in application directory +- #671: Revamped UI theme system +- #608: The Help -> Support Forum menu item now directs users to our Reddit community +- #558: Connection tree now shows customizable icons instead of play/pause icon +- #493: Changed backup file name time stamp to use local system time rather than UTC +- #357: Updated GeckoFX to v45.45.0.32 +- Improved compatability between environments when building mRemoteNG from source +### Removed +- #797: Removed duplicate translation strings +### Fixed +- #747: Fixed unnecessary "PuttySessions.Watcher.StartWatching" error message +- #650: Fixed German translation typo +- #639: Fixed Italian translation typo +- #479: New connection tree nodes not starting in edit mode +- #233: Fixed crash that can occur when disconnecting from VNC server +- #195: Access to https with self-signed certificates not working + +## [1.75.7012] - 2017-12-01 +### Changed +- #810: Official mRemoteNG builds will now be signed with a DigiCert certificate +### Fixed +- #814: Fixed bug that prevented reordering connections by dragging +- #803: File path command line argument not working with network path + +## [1.75.7011] - 2017-11-07 +### Fixed +- #778: Custom connection file path command line argument (/c) not working +- #763: Sometimes minimizing folder causes connection tree to disappear +- #761: Connections using external tools do not start (introduced in 1.75.7009) +- #758: "Decryption failed" message when loading from SQL server +- Fixed issues with /resetpanels and /resetpos command line arguments +- Resolved bug where connection tree hotkeys would sometimes be disabled + +## [1.75.7010] - 2017-10-29 +### Fixed +- #756: CustomConsPath always null + +## [1.75.7009] - 2017-10-28 +### Changed +- #635: Updated PuTTYNG to 0.70 +- Minor error message correction +- Minor code refactoring +### Fixed +- #676: Portable version ignores /cons param on first run +- #675: Attempting to add new connection/folder does not work in some situations +- #665: Can not add new connection or new folder in some situations +- #658: Keep Port Scan tab open after import +- #646: Exception after click on import port scan +- #610: mRemoteNG cannot start /crashes for some users on Windows server 2012 R2 server +- #600: Missing horizontal scrollbar on Connections Panel +- #596: Exception when launching external tool without a connection selected +- #550: Sometimes double-clicking connection tree node began rename instead of connecting +- #536: Prevented log file creation when writeLogFile option is not set +- #529: Erratic Tree Selection when using SQL Database +- #482: Default connection password not decrypted when loaded +- #335: The Quick Connect Toolbar > Connection view does not show open connections with the play icon +- #176: Unable to enter text in Quick Connect when SSH connection active + + +## NO RELEASE - 2017-06-15 +### Fixed +- #466: Installer still failing on Win7 for updates - 1.75.7005 (Hotifx 5) +- #462: Remove no longer used files from portable version - 1.75.7003 (Hotfix 4) + +## [1.75.7008] - 2017-06-15 +### Changed +- Minor updates to the installer build +### Fixed +- #589: MSI doesn't update with newer PuTTYNG version that fixes #583 (Again, Sorry!) + +## [1.75.7007] - 2017-06-14 +### Fixed +- #583: SSH (PuTTYNG) Sessions are not properly integrated into the main mRemoteNG window (Sorry!) + +## [1.75.7006] - 2017-06-13 +### Changed +- #531: Update PuTTYNG to 0.69 +### Fixed +- #377: Use all space on About page +- #527: Additional protections to avoid problems on update check in heavily firewalled environments +- #530: Fixed issue where using External Tool on existing connection causes creation of 'New Connection' entry +- #546: Quick Connect from notification area icon displays warning when clicking on a folder (see #334) + +## [1.75.7005] - 2017-04-27 +### Changed +- #410: Update PuTTYNG to 0.68 +- Minor code cleanup/optimizations/null checks +### Fixed +- #434: Fix complier warnings CA1049 & CA2111 +- #442: Fixed issue loading PuTTY sessions that have spaces in the name +- #502: Problems with ParentID for Duplicated Containers/Connections with SQL Connection Storage +- #514: Expanded property not saved/loaded properly from SQL +- #518: Exception when Importing File + +## [1.75.7003] - 2017-03-24 +### Fixed +- #464: Resolved issue when importing a connections file while using SQL server feature + +## [1.75.7002] - 2017-03-10 +### Fixed +- #448: Resolved issue with SQL saving + +## [1.75.7001] - 2017-03-10 +### Changed +- #408: Update SQL scripts + +## [1.75 hotfix 1] - 2017-03-06 +### Changed +- #437: Modify version numbering scheme +### Fixed +- #422: Uncaught exception when clicking in connection tree whitespace +- #312: Resolved KeePass auto-type issue +- #427: Export does not respect filtering user/password/domain + +## [1.75] - 2017-03-01 +### Known Issues +- File hash check will fail when updating from 1.75 Beta 1 to newer versions. + - Exception will be: "MD5 Hashes didn't match!" for 1.75 Beta 1 - 1.75 RC1 +### Added +- #344: Use SHA512 File Hashes to validate downloads (in the update mechanism & posted to the Downloads page) +- Added Release Channels to the update check functionality allowing users to select one of 3 release channels for updates: Stable, Beta, Dev +- #360: Help -> About, Version # is now selectable/copyable +- #221: RDP: Optional disconnect after X number of minutes of inactivity +### Changed +- The usual general code clean up and refactoring +- #325: Code clean up and additional logging for External Tools based connections +- #298: Code clean up and additional logging around application startup +- #291, #236: External Tools code clean up and additional logging +### Fixed +- #369: Reset Layout Option Does Not Reset Notification Pane +- #362: Invalid cast exception when using the Notification Area Icon minimize/restore +- #334: Quick Connect displays warning when clicking on a folder +- #325: When using a connection with an external app, results in opening the same external app continuously +- #311: Import from Active Directory does not use machine's domain by default +- #258: Rename Tab dialog - populate original name in dialog (1.72 functionality) +- #211, #267: Recursive AD Import wasn't fully functional + +## [1.75 Beta 3] - 2016-12-01 +### Known Issues +- Portable build MD5 check will fail when updating from 1.75 Beta 1 to newer versions. +### Fixed +- #289: Install fails during update process (only affects 1.75 beta 1 - 1.75 beta 2) + +## [1.75 Beta 2] - 2016-12-01 +### Added +- #273: Added Turkish translation provided by forum user "rizaemet" +- #217: Create user manual documentation for the SSH File Transfer feature +### Fixed +- #254: Component check window position issues and uncaught exception +- #260: Crash when attempting to load fully encrypted confCons v2.5 +- #261: Double clicking folder in treeview doesn't expand it in 1.75 beta1 +- #271: Install package is not using the last installation path +- #278: Silent installs not detecting prerequisites + +## [1.75 Beta 1] - 2016-11-15 +### Added +- MR-971: Added Right Click method to Port Scan to import discovered hosts +- MR-1000, - #211: Sub OU AD Import +- #172: Implement "audioqualitymode" for RDP sessions +- #160: Allow portable version to perform an update check (and download the latest .zip) +- #157: Implement new cryptography providers (See Tools -> Options -> Security) +### Changed +- Lots of code clean up and refactoring +- Limit log file size to 1 main log + 5 backups * 10MB. +- Minor UI Tweak: Default Menubar and QuickConnect Bar to same line +- MR-364: Removed "Announcement" functionality +- MR-366: Show PuTTY type and version on components check screen +- MR-586: Reduce HTTP/HTTPS document title length that is appended to the connection tab title +- MR-938: Adjust RDP Resolution list (ensure most common resolutions were available) +- MR-975: Replaced TreeView with TreeListView for displaying connection tree. This was a large change which separated the GUI from the domain model. +- #144: Removed export option for "VisionApp Remote Desktop 2008" +- MR-220: Don't close the AD importer after import +- #167: fix/implement the update check (was disabled in 1.74 as part of the C# conversion) +### Fixed +- MR-967: File transfer doesn't work when specifying full path and file name (as prompted) +- MR-979: switched to notifications panel incorrectly (when configured NOT to do so) + +## [1.75 Alpha 3] - 2016-08-12 +### Added +- MR-896: Added prerequisite installer check for KB2574819. Prevents "Class not registered" errors when opening RDP connections. +### Changed +- PR-130: Fix Scan button width to fit Russian translation +### Removed +- MR-946: Remove old/insecure SharpSSH and related components. Replace with SSH.NET for File Transfer Functionality +### Fixed +- MR-965, MR-871, MR-629: Error 264 on RDP Connect attempt - Added timeout value to Tools -> Options -> Connections + +## [1.75 Alpha 2] - 2016-08-03 +### Added +- MR-961, PR-133: Option to reconnect all currently opened connection tabs +- MR-917: Improved cryptographic support +### Changed +- Updated GeckoFx package +- Updated DockPanelSuite library to 2.10 Final +- Japanese translation updated +- MR-942: Refactored code relating to loading the connections file +### Fixed +- MR-910: Fixes to support Remote Desktop Gateways +- MR-874: Incorrect RDP prerequisite check in installer + +## [1.75 Alpha 1] - 2016-07-08 +### Changed +- Additional code cleanup +### Fixed +- MR-905: mRemoteNG crashes at startup (in FIPS policy check) +- MR-902: mRemoteNG crashes after locking/unlocking the local system after loading a VNC connection + +## [1.74] - 2016-06-28 +### Added +- MR-821: Initial Japanese translation included +### Changed +- New operating system requirements + - Windows 7 SP1 (with RDP Client v8: KB2592687/KB2923545) or later + - .NET Framework 4 or later +- XULRunner is no longer required for Gecko support (see below) +- Converted source from Visual Basic to C Sharp +- Lots of code refactoring/clean up/general stability changes +- Updated to latest DockPanelSuite and enabled a slick new theme! +- MR-145: Installer is now MSI based +- MR-255: Updated RDP Client to version 8 +- MR-389: Updates to IE rendering engine + - Support for latest version of IE (9-11) + - Dropped support for IE 7 & IE 8 +- MR-850: Replaced XULRunner with GeckoFx + - No need to manually configure to have the Gecko rendering engine available now + - Install image is now significantly larger due to the inclusion of the Gecko Engine +- Port Scan is now Asynchronous (and is significantly faster) +### Removed +- MR-714: Removed Keyboard shortcut functionality + - Introduced in 1.73 beta that was never officially released + - This caused stability issues + - May be re-added in a future release + - Removal does *NOT* impact the ability to send keyboard shortcuts to RDP sessions (when redirect key combinations is set to "yes") +- MR-559: Removed RDP Sessions panel functionality. This required a library for which no trusted origin/source could be located +- Removed a bunch of old code/libraries and replaced them accordingly +### Security +- MR-775, MR-745: Updated PuTTY to 0.67 +### Fixed +- MR-874: Added work-around to installer to ignore installation prerequisites +- MR-884: Slow startup in some scenarios checking authenticode certificate +- MR-872: Crash in External Tools when arguments aren't quoted +- MR-854: crashes when right clicking on connection tab +- MR-852: Option "Allow only a single instance of the application" non-functional +- MR-836: Trying to delete a folder of connections only deletes 2 connections at a time +- MR-824, MR-706: Suppress Script Errors when using the IE rendering engine +- MR-822: Improve RDP error code messages +- MR-640: Fixed Inheritance not working +- MR-639: RDP: Connect to console session +- MR-610, MR-582, MR-451: RDP: Protocol Error 3334 or exceptions with large number of connections open + - This problem appears largely resolved by most reports and testing + - Further workarounds/problem avoidance: Disable Bitmap Caching on all RDP session configuration +- MR-429: Display issue on the Options -> Advanced panel +- MR-385: Inheritance settings lost when moving item to the root of the tree + +## New Dev Team + +## [1.73 Beta 2] - [NEVER RELEASED] +### Added +- Added support for importing files from PuTTY Connection Manager. +### Fixed +- Fixed issue MR-619 - Keyboard shortcuts stop working after locking the screen with Win+L +- Improved the import and export functionality. + +## [1.73 Beta 1] - 2013-11-19 +### Added +- Added feature MR-16 - Add keyboard shortcuts to switch between tabs +- Added feature MR-141 - Add a default protocol option +- Added feature MR-212 - Add option to connect without credentials +- Added feature MR-512 - Add support for importing files from Remote Desktop Connection Manager +- Added feature MR-547 - Add support for Xming Portable PuTTY +- MR-590: Added "Reset" to config panel context menu to allow resetting some config settings to their default value. +- Added and improved menu icons. +### Changed +- Made improvement MR-250 - Show the name of the selected connection tab in the title of the window +- Made improvement MR-367 - Make the 'Connect' button on the 'Quick Connect' toolbar a forced dropdown +- Made improvement MR-419 - Password prompt dialog should have a meaningful window title +- Made improvement MR-486 - Allow escaping of variable names for external tools +- Made improvement MR-590 - Make panels docked to the edge of the window keep their size +- Improved handling of variables in external tool arguments. +### Removed +- Removed misleading log messages about RD Gateway support. +- Removed invalid "Site" configuration option from PuTTY Saved Sessions. +- Fixed issue MR-187 - F7 keyboard shortcut for New Folder conflicts with remote connections +- Fixed issue MR-523 - Changes to external tools are not saved until exiting the program +- Fixed issue MR-556 - Export fails when overwriting an existing file +- Fixed issue MR-594 - Crash on startup if write access is denied to the IE browser emulation registry key +- Fixed issue MR-603 - Some configuration options are still shown even when inheritance is enabled +- Fixed PuTTY Saved Sessions still showing if all saved sessions are removed. +- Fixed config panel showing settings from previously loaded connection file after loading a new one. + +## [1.72] - 2013-11-13 +### Fixed +- 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 +### Removed +- Removed warning message when mRemoteNG is started for the first time about new connections file being created. +### Fixed +- 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. + +## [1.71 Release Candidate 2] - 2013-10-16 +### Fixed +- 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 +### Added +- Added Chinese (Traditional) translation. +- Added partial Greek and Hungarian translations. +### Changed +- Updated PuTTY to version 0.63. +- Updated translations. +### Fixed +- 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. + +## [1.71 Beta 5] - 2013-06-09 +### Fixed +- 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 +- Added feature MR-435 - Add digital signature check to updater +- Added Norwegian (Bokmal) and Portuguese (Brazil) translations. +- Added Spanish translation to the installer. +- Added PuTTY Session Settings command to the Config panel for PuTTY Saved Sessions. +### Changed +- Updated translations. +- 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. +- Updated VncSharpNG to 1.3.4896.25007 +- Lowered required version of RDC from 6.1 to 6.0. +### Fixed +- 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 +- 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. +- 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. + +## [1.71 Beta 3] - 2013-03-20 +### Fixed +- 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 application +- 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 +- 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 +### Changed +- 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. +### Fixed +- 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 + +## [1.71 Beta 1] - 2013-03-04 +### Added +- Added feature MR-329 - Create Option to disable the "Quick: " prefix +- Added detection of newer versions of connection files and database schemata. mRemoteNG will now refuse to open them to avoid data loss. +### Fixed +- 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 +- 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 +- 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 +### Changed +- Re-enabled PuTTYNG integration enhancements on Windows 8 +### Fixed +- 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 +### Added +- Added translations for Spanish (Argentina), Italian, Polish, Portuguese, Chinese (Simplified). +### Changed +- mRemoteNG now requires .NET Framework 3.0 instead of 2.0. +- Updated translations. +- 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. +### Fixed +- 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 + +## [1.70 Beta 1] - 2012-02-27 +### Added +- Added compatibility check for "Use FIPS compliant algorithms" security setting. +Improved reporting of errors when encrypting and decrypting connection files. +- Added partial Polish translation. +- Added the option to use a smart card for RD Gateway credentials. +- Added debugging symbols for VncSharpNG. +- A backup of the connection file is saved when it is loaded. The most recent ten backup copies are kept. +### Changed +- The panel tabs are now hidden if only one panel is open. +- Show changes live as connection tabs are being dragged around to change their order. +- Updated PuTTY to version 0.62. +- Made the use of CredSSP for RDP connections optional. +- Updated VncSharpNG to version 1.2.4440.36644. +### Fixed +- 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 +- Fix focus issue with RDP connections when changing tabs. +- Improved error handling when loading connection files. +- Fixed bugs with creating a new connection file. + +## [1.69] - 2011-12-09 +### Added +- Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable. +### Changed +- Updated PuTTY to version 0.61 +- Binaries are now digitally signed +### Deprecated +- Disabled automatic updates in the portable edition +### Fixed +- 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 +- Fixed file name in window title changing when exporting an XML file. +- Fixed Use only Notifications panel checkbox. + +## [1.68] - 2011-07-07 +### Fixed +- 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 +### Added +- 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. +- Added Thai translation to the installer. +- Added buttons for Add Connection, Add Folder, and Sort Ascending (A-Z) to the Connections panel toolbar. +- Added 15-bit Color RDP setting. +- Added Font Smoothing and Desktop Composition RDP settings. +- Added the mRemoteNG icon to the list of selectable icons for connection entries. +- Added confirmation before closing connection tabs. +### Changed +- Updated graphics in the installer to mRemoteNG logo. +- Moved the items under Tools in the Connections panel context menu up to the top level. +- Changed sorting to sort all subfolders below the selected folder. +- Allow sorting of connections if a connection entry is selected. +- Changed the Options page into a normal dialog. +- 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 +- 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. +- Fixed RD Gateway default properties and RDP reconnection count setting not being saved. +- Fixed bug 33 - IPv6 doesn't work in quick Connect box. +- Fixed rename edit control staying open when collapsing all folders. +- Fixed adding a connection entry if nothing is selected in the tree. +- Fixed loading of RDP Colors setting from SQL. +- Improved error handling when loading XML connection files. +- Fixed bug 42 - Maximized location not remembered with multiple monitors. +- Improved loading and saving of window location. +- Removed flickering on start up. +- Improved Reset Layout function. +- 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 +- Fixed connections not working + +## [1.65] - 2011-05-02 +### Added +- Added code to the installer to check that the user is in the 'Power Users' or 'Administrators' group +### Changed +- Ctrl-Tab and Ctrl-Shift-Tab no longer work to switch tabs within mRemoteNG +### Fixed +- Fixed Ctrl-Tab and Ctrl-Shift-Tab not working in any other applications while mRemoteNG is running +- 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) + +## [1.64] - 2011-04-27 +### Added +- 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 +- Added credit for the DockPanel Suite to the About page +### Changed +- Changed how new connection files are created +- Changed the internal namespace of the application to mRemoteNG instead of mRemote +- Updated DockPanel Suite to version 2.5 RC1 +- Updated VNCSharpNG to correct Ctrl and Alt key pass-through behavior +### Fixed +- 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 +- Fixed missing parameters in macro expansion for external tools +- Fixed RD Gateway and other inheritance bugs + +## [1.63] - 2010-02-02 +### Added +- Added View->Reset Layout menu item +- Added F11 shortcut key to View->Full Screen +- Added support for Credential Security Support Provider (CredSSP) which is required for Network Level Authentication (NLA) +- Added support for connecting through Remote Desktop Gateway servers +- Added PuTTY Settings item to tab context menu +### Changed +- New icon and logo +- Updated DockPanel Suite from 2.2.0 to 2.3.1 +- Popups can now be allowed in Internet Explorer by holding Ctrl+Alt when clicking a link +### Fixed +- 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 +- Fixed error if the mouse is clicked outside of the remote screen area of a VNC connection +- Fixed flashing and red lines at bottom of the window on first run +- Improved RDP error reporting + +## [1.62] - 2010-01-19 +### Added +- Switched to VncSharp, an open source VNC component +- VNC is supported again except for the following features: + - Windows authentication + - Setting the compression, encoding and color settings + - Connecting through a proxy server + - Free SmartSize mode (it does the same thing as Aspect SmartSize mode now) +- Added option to change how often updates are checked +- Added RDP, VNC and ICA version numbers to Components Check page +### Changed +- Rearranged the Options page and added an Updates tab +- Open Updates options tab before connecting for the first time +- No longer show About page on first run +- Renamed Quicky toolbar to Quick Connect toolbar +- Changed back to allowing toolbars to dock to the left or right of the menu bar and added gripper to move it around +### Fixed +- Fixed a bug with the inheritance buttons on the Config panel disappearing after awhile + +## [1.61] - 2010-01-14 +### Changed +- This version of mRemoteNG does not support VNC +### Removed +- Removed unlicensed SmartCode Solutions ViewerX VNC Viewer ActiveX + +## [1.60] - 2010-01-09 +### Added +- Added Report a Bug and Support Forum links to the Help menu +### Changed +- Changed name to mRemoteNG +- Changed filename delimiter in title bar from pipe to dash +- Changed default format for saving screenshot images to PNG +- Changed website addresses +- Changed website links in Help menu and About page to load within mRemoteNG instead of launching an external browser +- Moved Check for Updates to the Help menu +### Removed +- Removed snakes game Easter egg +- Removed references to visionapp Remote Desktop +### Fixed +- Fixed menu bar not staying docked to left side + +## [1.50] - 2010-01-06 +### Added +- Added the following formats to the "Save Connections As" function: + - mRemote CSV (standard CSV file with all properties) + - vRD 2008 CSV (standard CSV file with properties relevant for importing connections in vRD 2008) +### Fixed +- Fixed bug in inheritance code (SmartSize Mode and View Only properies were always shown when using VNC) + +## 1.49 +### Added +- Added features to the update function +- Added Announcement feature +### Changed +- mRemote and visionapp Remote Desktop 2008 merge! +- Read more here: ~~http://www.mremote.org/wiki/visionappMerge.ashx~~ +- or in the Announcement panel. +- Changed copyright notice in about screen and text when connecting via VNC +### Fixed +- Fixed some SQL-related problems + +## 1.48 +### Added +- Added startup components check with directions to fix component installation (also available in Tools - Components Check) +- Added "Try to integrate" option to Ext. Apps. If enabled mRemote will try to integrate the app into a tab container like any other connection protocol. +- Added Ext. App as protocol. Any Ext. App can be launched just like a normal connection. +- Added option to completely encrypt connection files (tools - options - advancecd) +- Added Rendering Engine option for HTTP/S protocols +- You can now use the Gecko (Firefox) rendering engine +``` +For this to work you need to download xulrunner (get it here: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/) +It must be the 1.8.1.3 release, 1.9.0.0 does NOT work! +Extract the contents to a path of your choice and set the correct path in Tools - Options - Advanced - XULrunner path +The interface is tab enabled and usage is generally very firefox-like. So you can open new tabs with Ctrl+T, jump to the location bar with Ctrl+L and so on... +``` +- Added "MAC Address", "User Field" fields and %MacAddress%, %UserField% variables to use in Ext. Apps +- Added descriptions for all fields in the config editor### Changed +### Changed +``` +ATTENTION! There is a bug in the automatic update code in 1.45 so you will have to download the new version manually from ~~http://www.mremote.org/wiki/Downloads.ashx~~ + +Example (DameWare Mini Remote Control): +Create a new Ext. App with the following properties: +Display Name: DameWare +Filename: c:\PathToYourDameWareInstallDir\DWRCC.exe +Arguments: -c: -h: -m:%hostname% -u:%username% -p:"%password%" -d:%domain% +Options: Try to integrate +Create a new connection and select Ext. App as protocol +Then choose DameWare in the Ext. App field +If you have problems with a particular app that takes a long time to start up consider setting a higher PuTTY/Ext. Apps wait time in Tools - Options - Advanced### Fixed +``` +``` +WARNING! There have been changes to the connections file/SQL tables +Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables +To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) +These are the added lines: +[RenderingEngine] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , +[MacAddress] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , +[UserField] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , +[ExtApp] [varchar] (256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL , +[InheritRenderingEngine] [bit] NOT NULL , +[InheritMacAddress] [bit] NOT NULL , +[InheritUserField] [bit] NOT NULL , +[InheritExtApp] [bit] NOT NULL , +``` +### Fixed +- Fixed bug in connections loading code when using SQL storage +- Fixed bug in reconnect code +- Fixed VNC sessions not refreshing screen automatically when switching between tabs or panels + +## 1.45 +### Added +- New german language build available +- Added support for RDP 6.1 (XP SP3/Vista SP1) features (Server Authentication, Console Session, TS Gateway not yet...) +- Added basic support for UltraVNC SingleClick (Tools - UltraVNC SingleClick); the listening port is configurable in the options +### Changed +``` +WARNING! There have been changes to the connections file/SQL tables +Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables +To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) +These are the added lines: +[RDPAuthenticationLevel] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL , +[InheritRDPAuthenticationLevel] [bit] NOT NULL , +``` +### Fixed +- Fixed VNC connections not working on x64 +- Fixed screenshots save all feature overwriting files with the same name (not actually a bug, but rather a new feature ;) +- Fixed ICA Encryption Strength not inheriting properly + +## 1.43 +### Fixed +- Added function to send either the main form or a connection panel to another screen + - To send the form to another screen, right click the titlebar or the taskbar button and select "Send to..." + - If you want to send a panel to another screen, right click the panel's tab and do the same +### Fixed +- Fixed PuTTY connections not supporting credentials with spaces +- Fixed form not opening on last position when using multiple screens +- Fixed kiosk mode not working on secondary screen + +## 1.42 +### Added +- Added minimize to tray option +- Added option to enable switching to open connections with a single click on the corresponding connection in the tree +- Added button to test proxy settings +### Changed + - IMPORTANT NEWS: Please read the page that opens when you first start this release or go to: ~~http://www.mRemote.org/wiki/MainPage.ashx#Commercial~~ +### Fixed +- Fixed: If the active connection tab is a PuTTY connection, Alt+Tab to mRemote now focuses the PuTTY window +- Fixed encoding problem with PuTTY sessions that included spaces +- Fixed problem that made mRemote inaccesible when closing it on a second monitor and then disabling this monitor +- Fixed: Inheritance defaults of some new VNC properties were not saved in the portable package + +## 1.41 +### Added +- Added complete support for SmartCode's ViewerX and removed VncSharp +``` +Many thx to everyone who donated to make this happen!!! I didn't think that it wouldn't even take a week! =) +I hope everyone will be satisfied by the functions and possibilities this new control provides +If you use one of the non-setup packages you must register the control yourself +Open a cmd and change to the directory you installed mRemote to +Type regsvr32 scvncctrl.dll and click ok +``` +### Changed +- Changed shortcuts and added buttons for them to the view menu under "Jump To" because they were causing several problems +``` +WARNING! There have been changes to the connections file/SQL tables and the Ext. Apps XML file +Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables +To get SQL working with the new version please update your tables like in the provided script (Info - Help - SQL Configuration) +``` + +## 1.40 +### Added +- Added (limited) support for the trial version of SmartCode's VNC ActiveX +``` +To enable it go to Options - Advanced and check "Try SmartCode VNC ActiveX" +When connecting a pop up will open, wait about 10 seconds, then click on "Trial" to continue +I will integrate this control fully into mRemote if I get enough Donations to buy the single developer license ($375,-) +So if you want to see better VNC support (All UltraVNC, TightVNC and RealVNC functions) in mRemote, please help me and donate some bucks +For donations either go to the mRemote Wiki (Info - Website) or click on Info - Donate to directly go to PayPal +I will announce the current donation amount every day (or as often as I can) on the Wiki main page +If you want to know more about the control go here: http://www.s-code.com/products/viewerx/ +``` +- Added feature to choose the panel a connection will open in when... + 1. no panel name was assigned in the properties + 2. you opened a connection with the option to choose the panel before connecting + 3. you checked "Always show panel selection dialog when opening connectins" in Options - Tabs & Panels +- Added Shortcuts to focus the standard panels + - Alt+C: Switch between Connections & Config panel + - Alt+S: Switch between Sessions & Screenshots panel + - Alt+E: Switch to Errors & Infos panel +- Added some new icons + +## 1.39 +### Added +- Added MagicLibrary.dll to the release again (forgot it in the 1.38 packages, sorry) +- Added auto-reconnect for ICA +- Added feature that automatically clears whitespaces in the Quicky Textfield +- Added special feature: Go to the set password dialog and type "ijustwannaplay" (without the quotes) in the password field... ;) + +## 1.38 +### Added +- Added automatic reconnect feature for RDP (Options - Advanced) +- Added connections drop-down to the quicky toolbar (same as the tray icon menu) +- Added setting in the options to enable/disable that double clicking on a connection tab closes it +- Added option to automatically set the hostname like the display name when creating new connections +### Fixed +- Fixed bug that caused the properties of a folder to be filled with "Object reference not set to an instance of an object." when adding a folder to the root with Default Inheritance enabled +- Fixed bug that made the properties of a newly added Connection to the root unavailable when Default Inheritance was enabled +- Fixed bug that the default settings for Pre/Post Ext. App, and their inheritance settings were not being saved +- Fixed bug in settings loading methods that caused the application to hang when an error occured +- Fixed bug in Ext. Apps panel that copied the properties of the previously selected Ext. App when "Wait for exit" was checked +- Fixed bug in the SQL Query that creates the tables needed by mRemote +- Attempt to fix the "Drop-Down on Screenshot" bug on some machines + +## 1.35 +### Added +- Added single instance mode (look in Options - Startup/Exit) - No cmd arguments supported yet! +- Added possibilty to start a Ext. App before connecting and on disconnect (e.g. for VPN/RAS) +- Added option to the Ext. Apps to tell mRemote to wait for the exit of the Ext. App +- Added encryption setting for ICA +### Changed +``` +WARNING! There have been changes to the connections file/SQL tables and the Ext. Apps XML file +Please always backup your whole config before updating to a new mRemote beta release, especially when there have been changes to the config files/SQL tables +Here's a list of new columns that need to be created before saving connections to an SQL server: +Name: ICAEncryptionStrength, Data-Type: varchar, Length: 64, Allow Nulls: No +Name: InheritICAEncryptionStrength, Data-Type: bit, Length: 1, Allow Nulls: No +Name: PreExtApp, Date-Type: varchar, Length: 512, Allow Nulls: Yes +Name: PostExtApp, Date-Type: varchar, Length: 512, Allow Nulls: Yes +Name: InheritPreExtApp, Date-Type: bit, Length: 1, Allow Nulls: No +Name: InheritPostExtApp, Date-Type: bit, Length: 1, Allow Nulls: No +``` + +## 1.33 +### Fixed +- Fixed problem that caused RDP connections not to initialize properly when using XP SP3 +- Fixed bug in Port Scan that prevented hosts with no hostname from being imported + +## 1.32 +### Added +- Added: Inheritance defaults can now be customized (look in the root properties of your connections tree) +### Changed +- Changed Target CPU to AnyCPU again as I think the x86 setting caused problems on x64 machines (although it shouldn't) +### Fixed +- Fixed bug that made password-secured connection files not load properly because the return value from the password screen was always null +- Fixed a lot of outdated code in the import functions (Import from XML, Import from AD, Import from RDP files) +- Fixed bug that caused properties with a ' character not to be saved properly when using SQL Server + +## 1.31 +### Fixed +- Small speed improvement to the port scanner +- Fixed bug that caused SQL live-update to not work when not using AD Authentication +- Fixed bug that caused Save As not to work + +## 1.30 +### Added +- Added experimental SQL Server with live-update (multi-user) support (see Help - Getting started - SQL Configuration) +- Added bunch of new icons to the UI, most of them by famfamfam.com +- Added dropdown button to Quicky Toolbar to choose protocol +- Many smaller changes and additions +### Fixed +- Fixed: Wrong default PuTTY session name +- Fixed bug in Port Scanner that caused an error when no DNS name could be resolved + +## 1.25 +### Added +- Added inheritance for folders +- Added port scan feature and possibility to import from a scan +- Added toolbar for Ext. Apps (see View - External Applications Toolbar) +- Added quick connect as toolbar +- Added code that creates a backup of the current connections file every time it is loaded (It's named YourConsFile.xml_BAK) +- Added description variable to Ext. Apps +### Fixed +- Fixed bug that allowed inheriting from root node +- Fixed bug that caused Ext. Apps launched from a connection tab to use the selected tree node instead of the current tab +- Fixed bug that caused mRemote not to save panel layout and Ext. Apps on exit + +## 1.24 +### Fixed +- Fixed a bug in connections loading mechanism that caused a corrupted connections file when upgrading from a previous version + +## 1.23 +### Added +- Added feature to remember which connections were opened on last runtime and reconnect to them on the next start (see Tools - Options - Startup/Exit) +- A command line switch is also available to cancel reconnecting (/noreconnect or /norc) +- Added Auto Save feature (Tools - Options - Connections - Auto Save every...) +- Added Ext. Apps to connection tab context menu +- Added better error handling for RDP connection creation +### Fixed +- Fixed problem with Sessions feature on 64bit systems +- Fixed Sessions feature not working when using global credentials +- Fixed several problems with the Active Directory OU picker control +- Fixed bug in Connection duplicate code that caused duplicated connection to still have previous tree node assigned + +## 1.20 +### Added +- Added External Applications feature (check the help section for more info) +- Added duplicate feature to Connections tree +### Fixed +- Fixed: MagicLibrary.dll was not included in the setup package + +## 1.16 +### Added +- New Domain: www.mRemote.org +- There's a new setting in the options to fine tune the time to wait until the window has been created +- Added reconnect feature in tab menu +### Fixed +- Fixed PuTTY connections appearing in a new window +- Fixed export not working + +## 1.15 +### Added +- Added: New portable package +- Added: Defaults for new connections can now be customized + - Click the root item and then the new Properties-like button with a small yellow star to get to the settings +### Fixed +- Fixed Import from Active Directory not working +- Fixed problem with single click connect not focusing correctly +- Fixed root node not being renamed after changing name in property grid + +## 1.10 +### Added +- Added support for setting a password to protect the connections file with (look in the root of your connections tree) +- Added RDP file import feature +- Added new command-line switch to reset panel's positions +- Added HTTPS as protocol +- Added HTTP/S basic authentication +- Added support for setting a Proxy server for automatic updates +### Changed +- Some changes in help section +### Fixed +- Fixed the bug that passwords stored in the options weren't decrypted when a connection was opened +- Fixed "bug" that prevented "Connect to console session" from working in RDC6.1 (Vista SP1 RC1/XP SP3 RC1) + +## 1.00 +Merry Christmas! =) +``` +1.00 is a (almost) complete rewrite of the whole application +The code base is now much cleaner and more (easily) extendable +New features include (but are not limited to): +Every part of the application is now integrated into panels which can be moved, docked and undocked, hidden, moved to another monitor, etc. +This makes many new and exciting ways to manage connection and application windows possible +You can for example open up 4 PuTTY sessions in 4 different panels and align them in the main application so you can use all 4 side by side - 2 on the upper side and 2 on the bottom for example +This can be done for EVERY part of the application, it's completely modular and customizable +Connection and folder (previously called containers) properties have moved to a new property grid control +Every setting (with the exclusion of the hostname, which wouldn't make any sense) can now be inherited from the parent folder +Connection file saving/loading is now handled a bit different (more in the help section) +Application restart is no longer nececary after changing options, they are active with a click of the OK button +Smart size can now be activated also if a connection is already open (in the right click menu of the active tab) +A panel name can be stored with every connection (or folder, if inherting) to always open the connection in the specified panel +And last but not least, many bugs have been fixed, though there are probably many new bugs aswell - Did I already mention this is a rewrite? ;) +I hope you like my work and if you do please consider donating on the mRemote website to support me a little. Any amount will do! Thx! +``` + +## 0.50 +### Added +- Added possibility to change resolution or display mode (Fit to window, Fullscreen, Smart size) +- Added new setting in options to show logon info on tab titles +- Added new feature that catches popup dialogs and puts them in a managed interface. This is another step to make mRemote a single window application. +- Added QuickConnect history and auto-complete functions +- Added a few new Icons (Linux, Windows, ESX, Log, Finance) +- Pressing escape switches back to the connection list +- There is a context menu that allows you to copy selected errors/warnings/infos to the clipboard (text only) or to delete them +- There also are settings in the option to change when to switch to the tab and to switch back to the normal behaviour of displaying message popups + +### Changed +- Connections file version is now 1.2 +### Removed +- Removed old Terminal (SSH, Telnet) control and embedded PuTTY instead +``` +This decision brings mostly good but also some bad news +The good news is that now everything that works in putty also works in mRemote +This means X11 forwarding, SSH port forwarding, session logging, appearance customization, etc. should be working fine now +It also brings some new protocols (Rlogin, RAW) +The bad news is that I cannot fully integrate Putty into mRemote because it is a standalone application and thus has it's own window handle +This means that you won't be able to use Ctrl+Tab to switch between tabs, catching errors or infos through the new Errors and Infos tab isn't possible, etc. +``` +### Fixed +- Improved options tab +- Fixed some form drawing bugs + +## 0.35 +### Added +- Added tab switching/closing hotkeys + - Switch to next tab: Ctrl+Tab + - Switch to previous tab: Ctrl+Shift+Tab + - Close active tab: Ctrl+W + - This does not and will probably never work with RDP connections! +### Changed +- Changed shortcuts to menu items in main menu as they interfered with some terminal key bindings +### Fixed +- Fixed bug in updating code that still displayed the current version in the old format (x.x.x.x instead of x.xx) +- Fixed bug where the colors setting was not correctly read after saving and reloading a connections file (only with 256 colors setting) +- Fixed bug that made connect to console session and fullscreen options not work +- Fixed bug that when opening options, update or about tab caused weird paddings next to the tab or other strange behaviour + +## 0.30 +### Added +- Added HTTP as protocol to allow for basic web-based administration +- Added new connections menu to the toolbar + - Left click on a connection connects + - Right click on a container or connection opens the config tab for the selected item +- Added two new connection context menu entries for quickly connecting to console session or connecting in fullscreen +- The connections tree can now be hidden + - To hide it right click on the splitter (the divider between the connections tree and the tabbing interface) +### Changed +- Changed "Redirect Key combinations (like in fullscreen)" to be disabled when in kiosk mode as it has no effect then anyway +### Fixed +Improved tray icon menu (just like the main connections menu) +- Several small bugfixes and code improvements +### Removed +- Removed overlay (RDP locking) feature in favor of simply grabbing input when clicking inside the control area + - I hope nobody is too sad that the nice looking overlay feature had to go, but..., well, it had to! ;-) + +## 0.20 +### Added +- Added Drag and Drop support for tabs +- Added tab context menu + - Switch to/from fullscreen + - Take a screenshot + - Transfer files via SCP/SFTP (SSH) + - Send special keys (VNC) + - Rename tabs + - Duplicate tabs (Create another instance of the connection) + - Show config + - Close tab (disconnect) +- Added middle click support for tabs (close/disconnect) +- Added SSH file transfer (SCP/SFTP) support +- Added Tools menu to the tree context menu +- Transfer files via SCP/SFTP (SSH) +- Import/Export features +- Sorting +### Changed +- Changed version format +### Removed +- Removed Fullscreen and Send special keys buttons from the main toolbar as they are now in the tab context menu +### Fixed +- Fixed the problem that caused mRemote to crash when dragging a parent node of the connections tree onto one of it's child nodes +- Fixed problem in importing mechanism that allowed importing connections including the root which resulted in multiple root items that couldn't be deleted +- Fixed problem with quick connect + +## 0.0.9.0 +### Added +- Added support for redirecting key combinations (Alt+Tab, Winkey, ...) +- Added Import/Export features +- Added Quick Connect Port support, just type the host you want to connect to followed by a ":" and then the port +- Added Connect/Disconnect buttons to connections context menu +- Added two new icons (Test Server | TST; Build Server | BS) +### Changed +- Many changes to the connections loading/saving mechanisms +- confCons version is now 1.0 +### Fixed +- Some code cleanup +- Fixed auto session info to only try to get session information when a RDP connection is selected +- Fixed AD Import feature (didn't care if imported items were computers, groups, users, ... ;) +- Fixed settings and connections not saving when installing updates from the auto-updater +- Fixed form size and location not saving properly when closing the application in minimized state or in maximized state on a secondary monitor + +## 0.0.8.2 +### Added +- Added SSH1 to Quick Connect GUI +### Changed +- Changed buffer size of terminal control, it's now 500 lines +### Fixed +- Fixed terminal connections not getting focus when changing tabs +- Fixed bug in terminal code that caused hitting "home" to show "~" instead of jumping to the start of the line +- Fixed bug that caused that hitting enter in mRemote wouldn't do anything when options was opened before + +## 0.0.8.0 +### Added +- Added code to check if the msrdp com control is registered +### Changed +- Many Improvements to the terminal control (ssh1(!), ssh2, telnet) +### Fixed +- Fixed bug that caused mRemote to crash when moving connection into root node (only with inheritance enabled) +- Fixed bug: Pressing delete when editing a node's name caused delete messagebox to show + +## 0.0.7.5 +### Added +- Added inheritance feature to inherit connection settings from parent container +### Changed +- Expanded/Collapsed state of tree nodes will now be saved +- Reduced auto session info delay to 700ms +- Some code maintainance +- Some corrections to connections tree and quick search behaviour +- Changed connections file version to 0.9 +### Fixed +- Fixed bug in TerminalControl that caused the error message "error loading string" +- Fixed: Settings saving on exit was broken in 0.0.7.0, this is fixed now +- Fixed connections context menu bug that made import from ad option inaccessible +- Fixed session info filling up with infos about hosts previously selected + +## 0.0.7.0 +### Changed +- Massive GUI redesign and changes, hope you like it! =) +### Fixed +- Fixed bug that made session info to query immediately after selecting a connection (when enabled), there is now a one second delay to prevent collecting session info for more than one host + +## 0.0.6.8 +### Added +- Added connection import feature for Active Directory +### Changed +- Tidied up project references +- Multiple changes to setup routine +### Fixed +- Improved error handling for auto-update +- Improved download handling for auto-update +- Fixed bug that made download finished/failed message box appear multiple times when update was canceled and re-downloaded +- Fixed bug where double-clicking a container opened all connections inside this container + +## 0.0.6.6 +### Changed +- Changed port textbox control to only allow digits +- Small changes to connection code for SSH +### Fixed +- Fixed port setting not saving (or always displaying default port for selected protocol) + +## 0.0.6.5 +### Added +- Added auto update feature +### Changed +- Changed: Multiple UI Changes (added shortcuts, rearranged menu items, ...) +### Fixed +- Fixed the problem where the connections file version was saved either with a dot or a comma, depending on system language +- Fixed not being able to connect to SSH2 hosts without specifying username and password +- Fixed several problems with Quick Connect +- Improved saving of config changes +- Fixed connections tab not closing when using SSH + +## 0.0.6.0 +### Added +- Added new protocols: SSH2 and Telnet +- Added first command line switch/parameter "/consfile" + - Ex.: mRemote.exe /consfile "%PathToYourConnectionsFile%" +- Added button to screenshots to delete a screenshot +- Added Host Status (Ping) feature +### Changed +- Many code rewrites and changes in almost every area +- Changed the way connections get loaded +- The default path for the connection file is no longer in the application directory but in the local application data folder. + - Ex.: c:\Documents and Settings\felix\Local Settings\Application Data\Felix_Deimel\mRemote\ + - If opening a connection file from a custom location (click on open link) saving will also occur in this file and not like in previous versions to the default connections file + - To import your old connection file please use the following procedure: start mRemote, click on "Open" and find your old connection file. Then click on "Save As" and save it with the default file name to the default location +- Changed the font and style of context menus +- Changed Quick Connect UI +### Fixed +- Fixed connection settings in config tab not saving when clicking another connection before jumping to another config field +- Fixed a bug where renaming a container caused the first connection in the same container to be renamed too + +## 0.0.5.0 R2 +### Fixed +- Fixed a bug that prevented connections from opening when icon files were assigned in a previous version of mRemote + +## 0.0.5.0 +### Added +- Added (Global) fullscreen / kiosk feature +- Added redirection settings for disk drives, printers, ports, smart cards and sound +- Added option to write a log file +- Added option to open new tabs on the right side of the currently selected tab +- Added possibility to connect to all nodes in a container +### Changed +- Changed session functions to work in background +- Changed icon choosing mechanism and added a bunch of default icons +- Changed: Containers with connection can now be deleted just like empty containers +- Changed screenshot functions to now collect all screenshots in one tab +- Changed: More settings can now be changed on container basis +- Changed config file version to 0.6 +- Changed: Small internal changes to the connection saving/creating and opening mechanisms +### Fixed +- Fixed "Display Wallpapers" and "Display Themes" settings, they are working now + +## 0.0.3.6 +### Added +- Added Feature to display an overlay when RDP connection tab has lost the focus, clicking on this gives the focus back to the control +- Added standard handlers for F2 (rename) and DEL (delete) keys in the treeview +- Added icon preview for connections in config tab +### Changed +- Changed the way new connections and containers are being created in the treeview. The pop up window will not be displayed any longer, instead everything is handled inplace by the treeview. +- Changed some minor UI related stuff +### Fixed +- Fixed bug in tab closing mechanism that caused icons (play/pause) to not be set on the correct tree nodes + +## 0.0.3.5 +### Added +- Added Feature to query and log off sessions on a remote machine and option to do this automatically +- Added Option to show icon in system tray with connection menu +### Changed +- Changed controls to flat style as I think this fits the whole application more than the old 3D look +- Multiple UI changes to eliminate annoying behaviour + +## 0.0.3.3 +### Added +- Added Feature to specify which login information to use when no info is provided in the config of a remote machine +### Fixed +- Fixed bug in Quick Find where trying to open a connection when no node was found caused an error +- Fixed bug where the main form was not rendered correctly when hiding top bar and using XP Themes +- Fixed bug in drag-drop routine that caused application to hang when trying to drop a node on one of it's child nodes +- Fixed bug where taskbar buttons for fullscreen rdp windows did not disappear after disconnecting + +## 0.0.3.2 +### Added +- Added new Save As Dialog with feature to only save specific connection settings +- Added Option to display Tooltips when hovering over host entries in the connection tree +- Added Option to ask at exit when there are open connections +### Fixed +- Fixed bug where saving connections file with spaces in the root node caused an error -> updated Connection File Version to 0.5 +- Fixed bug in options tab where the browse button for a custom connection file didn't do anything + +## 0.0.3.0 +### Added +- Added Options Tab + - Load connections file from different location + - 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 +- Added feature to send special keys (VNC) +### Changed +- Updated VncSharp Library to 0.88 (still pretty buggy) + +## 0.0.2.7 +### Added +- Added feature to save connection settings to all connections in the selected container +### Deprecated +- Disabled "Display Wallpaper" and "Display Themes" checkboxes as these features are not implemented +### Fixed +- Icon choosing bug fixed +- Taskbar button had no text when in fullscreen - fixed +- Fixed bug in Quick Connect GUI + +## 0.0.2.5 +### Added +- Added new connections toolstrip (same functions as context menu) +### Changed +- Splitter position is now saved on exit +### Fixed +- Quick connect button bug fixed +- Search field resize bug fixed + +## 0.0.2.4 +### Added +- Added Keep Alive Interval (1 Minute) +- Added Options to choose between RDP & VNC +- Added Port Setting for RDP +- Added Option to connect to console +- Added Menu Entries to move Connections & Containers up & down +### Changed +- Changed default color depth to 16bit +- Some small code improvements + +[Unreleased]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.20..HEAD +[1.76.20]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.19..v1.76.20 +[1.76.19]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.18..v1.76.19 +[1.76.18]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.17..v1.76.18 +[1.76.17]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.16..v1.76.17 +[1.76.16]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.15..v1.76.16 +[1.76.15]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.14..v1.76.15 +[1.76.14]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.13..v1.76.14 +[1.76.13]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.12...v1.76.13 +[1.76.12]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.11..v1.76.12 +[1.76.11]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.10..v1.76.11 +[1.76.10]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.9..v1.76.10 +[1.76.9]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.8..v1.76.9 +[1.76.8]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.7..v1.76.8 +[1.76.7]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.6..v1.76.7 +[1.76.6]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76.5..v1.76.6 +[1.76.5]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha6..v1.76.5 +[1.76.4 Alpha 6]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha5..v1.76Alpha6 +[1.76.3 Alpha 5]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha4..v1.76Alpha5 +[1.76.2 Alpha 4]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha3..v1.76Alpha4 +[1.76.1 Alpha 3]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha2..v1.76Alpha3 +[1.76.0 Alpha 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.76Alpha1..v1.76Alpha2 +[1.76.0 Alpha 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75.7012..v1.76Alpha1 +[1.75.7012]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75.7011..v1.75.7012 +[1.75.7011]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75.7010..v1.75.7011 +[1.75.7010]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75.7009..v1.75.7010 +[1.75.7009]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix8..v1.75.7009 +[1.75.7008]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix7..v1.75Hotfix8 +[1.75.7007]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix6..v1.75.Hotfix7 +[1.75.7006]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix5..v1.75Hotfix6 +[1.75.7005]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix4..v1.74Hotfix5 +[1.75.7004]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotfix3..v1.75Hotifx4 +[1.75.7003]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotifx2..v1.75Hotifx3 +[1.75.7002]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Hotifx1..v1.75Hotfix2 +[1.75.7001]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75..v1.75Hotfix1 +[1.75]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Beta3..v1.75 +[1.75 Beta 3]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Beta2..v1.75Beta3 +[1.75 Beta 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Beta1..v1.75Beta2 +[1.75 Beta 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Alpha3..v1.75Beta1 +[1.75 Alpha 3]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Alpha2..v1.75Alpha3 +[1.75 Alpha 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.75Alpha1..v1.75Alpha2 +[1.75 Alpha 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.74..v1.75Alpha1 +[1.74]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.74Beta2..v1.74 +[1.73 Beta 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.73Beta1..v1.73Beta2 +[1.73 Beta 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.72..v1.73Beta1 +[1.72]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71..v1.72 +[1.71]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71RC2..v1.71 +[1.71 Release Candidate 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71RC1..v1.71RC2 +[1.71 Release Candidate 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71Beta5..v1.71RC1 +[1.71 Beta 5]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71Beta4..1.71Beta5 +[1.71 Beta 4]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71Beta3..1.71Beta4 +[1.71 Beta 3]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71Beta2..v1.71Beta3 +[1.71 Beta 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.71Beta1..v1.71Beta2 +[1.71 Beta 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.70..v1.71Beta1 +[1.70]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.70RC2..v1.70 +[1.70 Release Candidate 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.70RC1..v1.70RC2 +[1.70 Release Candidate 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.70Beta2..v1.70RC1 +[1.70 Beta 2]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.70Beta1..v1.70Beta2 +[1.70 Beta 1]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.69..v1.70Beta1 +[1.69]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.68..v1.69 +[1.68]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.67..v1.68 +[1.67]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.66..v1.67 +[1.66]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.65..v1.66 +[1.65]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.64..v1.65 +[1.64]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.63..v1.64 +[1.63]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.62..v1.63 +[1.62]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.61..v1.62 +[1.61]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.60..v1.61 +[1.60]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.50..v1.60 +[1.50]: https://github.com/mRemoteNG/mRemoteNG/compare/v1.49..v1.50 diff --git a/CREDITS.TXT b/CREDITS.TXT deleted file mode 100644 index 9130a6d3..00000000 --- a/CREDITS.TXT +++ /dev/null @@ -1,152 +0,0 @@ -Contributors -============ - -Current mRemoteNG dev team: -David Sparer (github.com/sparerd) -Sean Kaim (github.com/kmscode) - -Thanks for the awesome new website! -Bennett Blodinger (github.com/benwa) - -Joe Cefoli (github.com/jcefoli) -countchappy (github.com/countchappy) -Tony Lambert -Julien Roncaglia (github.com/vbfox) -github.com/peterchenadded -Brandon Wulf (github.com/mrwulf) -Pedro Rodrigues (github.com/pedro2555) -github.com/dekelMP -Faryan Rezagholi (github.com/farosch) -Bruce (github.com/brucetp) -Camilo Alvarez (github.com/jotatsu) -github.com/DamianBis -github.com/pfjason -github.com/sirLoaf -github.com/Fyers -Vladimir Semenov (github.com/sli-pro) -Stephan (github.com/st-schuler) -Aleksey Reytsman (github.com/areytsman) -Cristian Abelleira (github.com/CrAbelleira) -github.com/MitchellBot -github.com/mjbnz -Bilal Korkmaz (github.com/bllkrkmz) - - -Past Contributors -================= - -Felix Deimel - mRemote original developer -Riley McArdle - mRemoteNG original developer - -Hayato Iriumi (github.com/hiriumi) -Jason Barbier -Wiktor Beryt -Lionel Caignec -Ruben d'Arco -Holger Henke -Tom Hiller -Apisitt Rattana -Andreas Rehm -David Vidmar -github.com/Brandhor -github.com/Kvarkas - - -Translators -=========== - -Eugenio "Ryo567" Martnez -Mathieu Pape -Emanuel Silva -Robert Siwiec -Hayato Iriumi -Sebastien Thieury (github.com/SebThieu) -Riza Emet -Lukas Plachy (github.com/rheingold) -Gyuha Shin -Stefan (github.com/polluks) -github.com/emazv72 -Vladimir Semenov (github.com/sli-pro) -Marco Sousa (github.com/marcomsousa) -github.com/wwj402 -github.com/Fyers -github.com/pablomh - - -Included Source Code -==================== - -Command Line Arguments Parser -Copyright 2002 Richard Lopes -MIT License -http://www.codeproject.com/KB/recipes/command_line.aspx - -FilteredPropertyGrid -Copyright 2006 Azuria -http://www.codeproject.com/KB/cs/FilteredPropertyGrid.aspx - -InputBox -Copyright 2016 Jan Slama -http://www.csharp-examples.net/inputbox/ - -IP TextBox -Copyright 2005 mawnkay -http://www.codeproject.com/Articles/11576/IP-TextBox - -PortableSettingsProvider -Copyright 2014 crdx -https://github.com/crdx/PortableSettingsProvider - - -Included Components -=================== - -ADTree -Copyright 2004 Marc Merritt -Copyright 2008 Felix Deimel -http://www.codeproject.com/KB/selection/ADPickerCtrl.aspx - -DockPanel Suite -Copyright 2018 @roken and @lextm (formerly Weifen Luo) -MIT License -https://github.com/dockpanelsuite/dockpanelsuite - -GeckoFX -Copyright 2016 Tom Hindle -Mozilla Public License -https://bitbucket.org/geckofx/ - -log4net -Copyright 2001-2015 The Apache Software Foundation -Apache License Version 2.0 -http://logging.apache.org/log4net/ - -Magic Library -Copyright 2002-2003 Crownwood Consulting, Ltd. -Freely redistributable with attribution -http://www.dotnetmagic.com/magic_download.html - -PuTTY -Copyright 1997-2017 Simon Tatham -MIT License -http://www.chiark.greenend.org.uk/~sgtatham/putty/ - -Silk Icon Set -Copyright 2005-2008 FAMFAMFAM -Creative Commons Attribution 2.5 License -http://www.famfamfam.com/ - -SSH.NET -Copyright 2016 -MIT License -https://github.com/sshnet/SSH.NET - -VncSharp -Copyright 2004-2009 David Humphrey -GNU General Public License (GPL) Version 2 -https://github.com/humphd/VncSharp - -ObjectListView -Copyright 2006-2016 Phillip Piper -GNU General Public License (GPL) Version 3 -https://sourceforge.net/projects/objectlistview/ \ No newline at end of file diff --git a/CREDITS.md b/CREDITS.md new file mode 100644 index 00000000..68a2bdc1 --- /dev/null +++ b/CREDITS.md @@ -0,0 +1,142 @@ +# Contributors +## Current mRemoteNG dev team +David Sparer (github.com/sparerd) +Sean Kaim (github.com/kmscode) +Faryan Rezagholi (github.com/farosch) + +Thanks for the awesome new website! +Bennett Blodinger (github.com/benwa) + +Joe Cefoli (github.com/jcefoli) +countchappy (github.com/countchappy) +Tony Lambert +Julien Roncaglia (github.com/vbfox) +github.com/peterchenadded +Brandon Wulf (github.com/mrwulf) +Pedro Rodrigues (github.com/pedro2555) +github.com/dekelMP +Bruce (github.com/brucetp) +Camilo Alvarez (github.com/jotatsu) +github.com/DamianBis +github.com/pfjason +github.com/sirLoaf +github.com/Fyers +Vladimir Semenov (github.com/sli-pro) +Stephan (github.com/st-schuler) +Aleksey Reytsman (github.com/areytsman) +Cristian Abelleira (github.com/CrAbelleira) +github.com/MitchellBot + +## Past Contributors +Felix Deimel - mRemote original developer +Riley McArdle - mRemoteNG original developer + +Hayato Iriumi (github.com/hiriumi) +Jason Barbier +Wiktor Beryt +Lionel Caignec +Ruben d'Arco +Holger Henke +Tom Hiller +Apisitt Rattana +Andreas Rehm +David Vidmar +github.com/Brandhor +Dimitrij (github.com/Kvarkas) + +## Translators +Eugenio "Ryo567" Martínez +Mathieu Pape +Emanuel Silva +Robert Siwiec +Hayato Iriumi +Sebastien Thieury (github.com/SebThieu) +Riza Emet +Lukas Plachy (github.com/rheingold) +Gyuha Shin +Stefan (github.com/polluks) +github.com/emazv72 +Vladimir Semenov (github.com/sli-pro) +Marco Sousa (github.com/marcomsousa) +github.com/wwj402 +github.com/Fyers +github.com/pablomh + +## Included Source Code +Command Line Arguments Parser +Copyright © 2002 Richard Lopes +MIT License +http://www.codeproject.com/KB/recipes/command_line.aspx + +FilteredPropertyGrid +Copyright © 2006 Azuria +http://www.codeproject.com/KB/cs/FilteredPropertyGrid.aspx + +InputBox +Copyright © 2016 Jan Slama +http://www.csharp-examples.net/inputbox/ + +IP TextBox +Copyright © 2005 mawnkay +http://www.codeproject.com/Articles/11576/IP-TextBox + +PortableSettingsProvider +Copyright © 2014 crdx +https://github.com/crdx/PortableSettingsProvider + + +## Included Components +ADTree +Copyright © 2004 Marc Merritt +Copyright © 2008 Felix Deimel +http://www.codeproject.com/KB/selection/ADPickerCtrl.aspx + +DockPanel Suite +Copyright © 2018 @roken and @lextm (formerly Weifen Luo) +MIT License +https://github.com/dockpanelsuite/dockpanelsuite + +GeckoFX +Copyright © 2016 Tom Hindle +Mozilla Public License +https://bitbucket.org/geckofx/ + +log4net +Copyright © 2001-2015 The Apache Software Foundation +Apache License Version 2.0 +http://logging.apache.org/log4net/ + +Magic Library +Copyright © 2002-2003 Crownwood Consulting, Ltd. +Freely redistributable with attribution +http://www.dotnetmagic.com/magic_download.html + +PuTTY +Copyright © 1997-2017 Simon Tatham +MIT License +http://www.chiark.greenend.org.uk/~sgtatham/putty/ + +Silk Icon Set +Copyright © 2005-2008 FAMFAMFAM +Creative Commons Attribution 2.5 License +http://www.famfamfam.com/ + +SSH.NET +Copyright © 2016 +MIT License +https://github.com/sshnet/SSH.NET + +VncSharp +Copyright © 2004-2009 David Humphrey +GNU General Public License (GPL) Version 2 +https://github.com/humphd/VncSharp + +ObjectListView +Copyright © 2006-2016 Phillip Piper +GNU General Public License (GPL) Version 3 +https://sourceforge.net/projects/objectlistview/ + +Markdig +Copyright © 2016-2019 Alexandre Mutel +BSD 2-Clause "Simplified" +https://github.com/lunet-io/markdig diff --git a/InstallerProjects/Installer/Fragments/MiscTextFilesFragment.wxs b/InstallerProjects/Installer/Fragments/MiscTextFilesFragment.wxs index b5b84a53..f0742055 100644 --- a/InstallerProjects/Installer/Fragments/MiscTextFilesFragment.wxs +++ b/InstallerProjects/Installer/Fragments/MiscTextFilesFragment.wxs @@ -3,10 +3,10 @@ - + - + diff --git a/InstallerProjects/Installer/Installer.wixproj b/InstallerProjects/Installer/Installer.wixproj index 8ea626b3..eb773f9a 100644 --- a/InstallerProjects/Installer/Installer.wixproj +++ b/InstallerProjects/Installer/Installer.wixproj @@ -134,6 +134,6 @@ set /p buildenv=<buildenv.tmp :: IF "%25APPVEYOR_BUILD_FOLDER"=="" ( set cert_pwd= ) :: Call the post build powershell script -powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)Tools\postbuild_installer.ps1" -SolutionDir "$(SolutionDir)\" -TargetDir "%25cd%25" -TargetFileName "mRemoteNG.exe" -ConfigurationName "%25buildenv%25" -CertificatePath "$(CertPath)" -CertificatePassword "%25cert_pwd%25" -ExcludeFromSigning "PuTTYNG.exe" +powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)Tools\postbuild_installer.ps1" -SolutionDir "$(SolutionDir)\" -TargetDir "%25cd%25" -TargetFileName "mRemoteNG.exe" -ConfigurationName "%25buildenv%25" -CertificatePath "$(CertPath)" -CertificatePassword "$(CertPassword)" -ExcludeFromSigning "PuTTYNG.exe" \ No newline at end of file diff --git a/InstallerProjects/Installer/Resources/License.rtf b/InstallerProjects/Installer/Resources/License.rtf index e1878024..0bbfa027 100644 --- a/InstallerProjects/Installer/Resources/License.rtf +++ b/InstallerProjects/Installer/Resources/License.rtf @@ -1,82 +1,329 @@ -{\rtf1\ansi\deff0{\fonttbl{\f0 \fswiss Helvetica;}{\f1 Courier;}} -{\colortbl;\red255\green0\blue0;\red0\green0\blue255;} -\widowctrl\hyphauto - -{\pard \ql \f0 \sa180 \li0 \fi0 \f1 GNU GENERAL PUBLIC LICENSE\line - Version 2, June 1991\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 \f1 Preamble\par} -{\pard \ql \f0 \sa180 \li0 \fi0 The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License instead.) You can apply it to your programs, too.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 The precise terms and conditions for copying, distribution and modification follow.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 \f1 GNU GENERAL PUBLIC LICENSE\par} -{\pard \ql \f0 \sa180 \li0 \fi0 TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION\par} -{\pard \ql \f0 \sa0 \li360 \fi-360 0.\tx360\tab This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.\par} -{\pard \ql \f0 \sa0 \li360 \fi-360 1.\tx360\tab You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 2.\tx360\tab You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 a)\tx360\tab You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 b)\tx360\tab You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 c)\tx360\tab If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)\sa180\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 3.\tx360\tab You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 a)\tx360\tab Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 b)\tx360\tab Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,\par} -{\pard \ql \f0 \sa180 \li720 \fi-360 c)\tx360\tab Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)\sa180\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 4.\tx360\tab You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 5.\tx360\tab You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 6.\tx360\tab Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 7.\tx360\tab If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 8.\tx360\tab If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 9.\tx360\tab The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 10.\tx360\tab If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.\par} -{\pard \ql \f0 \sa180 \li360 \fi0 \f1 NO WARRANTY\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 11.\tx360\tab BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.\par} -{\pard \ql \f0 \sa180 \li360 \fi-360 12.\tx360\tab IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.\par} -{\pard \ql \f0 \sa180 \li360 \fi0 \f1 END OF TERMS AND CONDITIONS\line -\line -How to Apply These Terms to Your New Programs\sa180\par} -{\pard \ql \f0 \sa180 \li0 \fi0 If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 \f1 \line -Copyright (C) \line -\line -This program is free software; you can redistribute it and/or modify\line -it under the terms of the GNU General Public License as published by\line -the Free Software Foundation; either version 2 of the License, or\line -(at your option) any later version.\line -\line -This program is distributed in the hope that it will be useful,\line -but WITHOUT ANY WARRANTY; without even the implied warranty of\line -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\line -GNU General Public License for more details.\line -\line -You should have received a copy of the GNU General Public License along\line -with this program; if not, write to the Free Software Foundation, Inc.,\line -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Also add information on how to contact you by electronic and paper mail.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 If the program is interactive, make it output a short notice like this when it starts in an interactive mode:\par} -{\pard \ql \f0 \sa180 \li0 \fi0 \f1 Gnomovision version 69, Copyright (C) year name of author\line -Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.\line -This is free software, and you are welcome to redistribute it\line -under certain conditions; type `show c' for details.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 The hypothetical commands {\f1 show w' and}show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than {\f1 show w' and}show c'; they could even be mouse-clicks or menu items--whatever suits your program.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:\par} -{\pard \ql \f0 \sa180 \li0 \fi0 Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.\par} -{\pard \ql \f0 \sa180 \li0 \fi0 , 1 April 1989 Ty Coon, President of Vice\par} -{\pard \ql \f0 \sa180 \li0 \fi0 This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License.\par} -} +{\rtf1\adeflang1025\ansi\ansicpg1252\uc1\adeff31507\deff0\stshfdbch31505\stshfloch31506\stshfhich31506\stshfbi31507\deflang1033\deflangfe1033\themelang1033\themelangfe0\themelangcs0{\fonttbl{\f0\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f4\fbidi \fswiss\fcharset0\fprq2{\*\panose 020b0604020202020204}Helvetica;} +{\f5\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070409020205020404}Courier;}{\f5\fbidi \fmodern\fcharset0\fprq1{\*\panose 02070409020205020404}Courier;}{\flomajor\f31500\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbmajor\f31501\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhimajor\f31502\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0302020204030204}Calibri Light;} +{\fbimajor\f31503\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\flominor\f31504\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;} +{\fdbminor\f31505\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\fhiminor\f31506\fbidi \fswiss\fcharset0\fprq2{\*\panose 020f0502020204030204}Calibri;} +{\fbiminor\f31507\fbidi \froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f40\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\f41\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\f43\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\f44\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\f45\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\f46\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\f47\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\f48\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\f80\fbidi \fswiss\fcharset238\fprq2 Helvetica CE;}{\f81\fbidi \fswiss\fcharset204\fprq2 Helvetica Cyr;} +{\f83\fbidi \fswiss\fcharset161\fprq2 Helvetica Greek;}{\f84\fbidi \fswiss\fcharset162\fprq2 Helvetica Tur;}{\f85\fbidi \fswiss\fcharset177\fprq2 Helvetica (Hebrew);}{\f86\fbidi \fswiss\fcharset178\fprq2 Helvetica (Arabic);} +{\f87\fbidi \fswiss\fcharset186\fprq2 Helvetica Baltic;}{\f88\fbidi \fswiss\fcharset163\fprq2 Helvetica (Vietnamese);}{\flomajor\f31508\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\flomajor\f31509\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\flomajor\f31511\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flomajor\f31512\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\flomajor\f31513\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\flomajor\f31514\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flomajor\f31515\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\flomajor\f31516\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fdbmajor\f31518\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbmajor\f31519\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fdbmajor\f31521\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fdbmajor\f31522\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbmajor\f31523\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fdbmajor\f31524\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fdbmajor\f31525\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbmajor\f31526\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fhimajor\f31528\fbidi \fswiss\fcharset238\fprq2 Calibri Light CE;}{\fhimajor\f31529\fbidi \fswiss\fcharset204\fprq2 Calibri Light Cyr;}{\fhimajor\f31531\fbidi \fswiss\fcharset161\fprq2 Calibri Light Greek;} +{\fhimajor\f31532\fbidi \fswiss\fcharset162\fprq2 Calibri Light Tur;}{\fhimajor\f31533\fbidi \fswiss\fcharset177\fprq2 Calibri Light (Hebrew);}{\fhimajor\f31534\fbidi \fswiss\fcharset178\fprq2 Calibri Light (Arabic);} +{\fhimajor\f31535\fbidi \fswiss\fcharset186\fprq2 Calibri Light Baltic;}{\fhimajor\f31536\fbidi \fswiss\fcharset163\fprq2 Calibri Light (Vietnamese);}{\fbimajor\f31538\fbidi \froman\fcharset238\fprq2 Times New Roman CE;} +{\fbimajor\f31539\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fbimajor\f31541\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbimajor\f31542\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;} +{\fbimajor\f31543\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fbimajor\f31544\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbimajor\f31545\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;} +{\fbimajor\f31546\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\flominor\f31548\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\flominor\f31549\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\flominor\f31551\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\flominor\f31552\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\flominor\f31553\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\flominor\f31554\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\flominor\f31555\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\flominor\f31556\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);} +{\fdbminor\f31558\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fdbminor\f31559\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;}{\fdbminor\f31561\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;} +{\fdbminor\f31562\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fdbminor\f31563\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);}{\fdbminor\f31564\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);} +{\fdbminor\f31565\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fdbminor\f31566\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}{\fhiminor\f31568\fbidi \fswiss\fcharset238\fprq2 Calibri CE;} +{\fhiminor\f31569\fbidi \fswiss\fcharset204\fprq2 Calibri Cyr;}{\fhiminor\f31571\fbidi \fswiss\fcharset161\fprq2 Calibri Greek;}{\fhiminor\f31572\fbidi \fswiss\fcharset162\fprq2 Calibri Tur;} +{\fhiminor\f31573\fbidi \fswiss\fcharset177\fprq2 Calibri (Hebrew);}{\fhiminor\f31574\fbidi \fswiss\fcharset178\fprq2 Calibri (Arabic);}{\fhiminor\f31575\fbidi \fswiss\fcharset186\fprq2 Calibri Baltic;} +{\fhiminor\f31576\fbidi \fswiss\fcharset163\fprq2 Calibri (Vietnamese);}{\fbiminor\f31578\fbidi \froman\fcharset238\fprq2 Times New Roman CE;}{\fbiminor\f31579\fbidi \froman\fcharset204\fprq2 Times New Roman Cyr;} +{\fbiminor\f31581\fbidi \froman\fcharset161\fprq2 Times New Roman Greek;}{\fbiminor\f31582\fbidi \froman\fcharset162\fprq2 Times New Roman Tur;}{\fbiminor\f31583\fbidi \froman\fcharset177\fprq2 Times New Roman (Hebrew);} +{\fbiminor\f31584\fbidi \froman\fcharset178\fprq2 Times New Roman (Arabic);}{\fbiminor\f31585\fbidi \froman\fcharset186\fprq2 Times New Roman Baltic;}{\fbiminor\f31586\fbidi \froman\fcharset163\fprq2 Times New Roman (Vietnamese);}} +{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0; +\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}{\*\defchp \fs22\loch\af31506\hich\af31506\dbch\af31505 }{\*\defpap \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 }\noqfpromote {\stylesheet{\ql \li0\ri0\sa160\sl259\slmult1\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 +\ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext0 \sqformat \spriority0 Normal;}{\*\cs10 \additive \ssemihidden \sunhideused \spriority1 Default Paragraph Font;}{\* +\ts11\tsrowd\trftsWidthB3\trpaddl108\trpaddr108\trpaddfl3\trpaddft3\trpaddfb3\trpaddfr3\trcbpat1\trcfpat1\tblind0\tblindtype3\tsvertalt\tsbrdrt\tsbrdrl\tsbrdrb\tsbrdrr\tsbrdrdgl\tsbrdrdgr\tsbrdrh\tsbrdrv \ql \li0\ri0\sa160\sl259\slmult1 +\widctlpar\wrapdefault\aspalpha\aspnum\faauto\adjustright\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\f31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 \snext11 \ssemihidden \sunhideused +Normal Table;}}{\*\rsidtbl \rsid472762\rsid14623029}{\mmathPr\mmathFont34\mbrkBin0\mbrkBinSub0\msmallFrac0\mdispDef1\mlMargin0\mrMargin0\mdefJc1\mwrapIndent1440\mintLim0\mnaryLim1}{\info{\operator Faryan Rezagholi}{\creatim\yr2019\mo4\dy25\hr3\min56} +{\revtim\yr2019\mo4\dy25\hr3\min57}{\version2}{\edmins1}{\nofpages5}{\nofwords2221}{\nofchars12664}{\nofcharsws14856}{\vern97}}{\*\xmlnstbl {\xmlns1 http://schemas.microsoft.com/office/word/2003/wordml}} +\paperw12240\paperh15840\margl1440\margr1440\margt1440\margb1440\gutter0\ltrsect +\widowctrl\ftnbj\aenddoc\trackmoves0\trackformatting1\donotembedsysfont0\relyonvml0\donotembedlingdata1\grfdocevents0\validatexml0\showplaceholdtext0\ignoremixedcontent0\saveinvalidxml0\showxmlerrors0\horzdoc\dghspace120\dgvspace120\dghorigin1701 +\dgvorigin1984\dghshow0\dgvshow3\jcompress\viewkind1\viewscale100\rsidroot14623029 \fet0{\*\wgrffmtfilter 2450}\ilfomacatclnup0\ltrpar \sectd \ltrsect\linex0\sectdefaultcl\sftnbj {\*\pnseclvl1\pnucrm\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl2 +\pnucltr\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl3\pndec\pnstart1\pnindent720\pnhang {\pntxta .}}{\*\pnseclvl4\pnlcltr\pnstart1\pnindent720\pnhang {\pntxta )}}{\*\pnseclvl5\pndec\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl6 +\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl7\pnlcrm\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl8\pnlcltr\pnstart1\pnindent720\pnhang {\pntxtb (}{\pntxta )}}{\*\pnseclvl9\pnlcrm\pnstart1\pnindent720\pnhang +{\pntxtb (}{\pntxta )}}\pard\plain \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 \rtlch\fcs1 \af31507\afs22\alang1025 \ltrch\fcs0 \fs22\lang1033\langfe1033\loch\af31506\hich\af31506\dbch\af31505\cgrid\langnp1033\langfenp1033 { +\rtlch\fcs1 \af5\afs24 \ltrch\fcs0 \f5\fs24\insrsid472762 \hich\af5\dbch\af31505\loch\f5 GNU GENERAL PUBLIC LICENSE\line Version 2, June 1991 +\par }{\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +Copyright (C) 1989, 1991 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. +\par }{\rtlch\fcs1 \af5\afs24 \ltrch\fcs0 \f5\fs24\insrsid472762 \hich\af5\dbch\af31505\loch\f5 Preamble +\par }{\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all it +\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4 + users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Lesser General Public License ins +\hich\af4\dbch\af31505\loch\f4 t\hich\af4\dbch\af31505\loch\f4 ead.) You can apply it to your programs, too. +\par \hich\af4\dbch\af31505\loch\f4 When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this +\hich\af4\dbch\af31505\loch\f4 service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. +\par \hich\af4\dbch\af31505\loch\f4 To protect your rights, we need to make restrictions tha\hich\af4\dbch\af31505\loch\f4 +t forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. +\par \hich\af4\dbch\af31505\loch\f4 For example, if you distribute copies of such a \hich\af4\dbch\af31505\loch\f4 +program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. +\par \hich\af4\dbch\af31505\loch\f4 We protect your rights wit\hich\af4\dbch\af31505\loch\f4 h two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. +\par \hich\af4\dbch\af31505\loch\f4 Also, for each author's protection and ours, we want to make certain that everyone understands that the\hich\af4\dbch\af31505\loch\f4 +re is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors +\hich\af4\dbch\af31505\loch\f4 '\hich\af4\dbch\af31505\loch\f4 reputations. +\par \hich\af4\dbch\af31505\loch\f4 +Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we +\hich\af4\dbch\af31505\loch\f4 have made it clear that any patent must be licensed for everyone's free use or not licensed at all. +\par \hich\af4\dbch\af31505\loch\f4 The precise terms and conditions for copying, distribution and modification follow. +\par }{\rtlch\fcs1 \af5\afs24 \ltrch\fcs0 \f5\fs24\insrsid472762 \hich\af5\dbch\af31505\loch\f5 GNU GENERAL PUBLIC LICENSE +\par }{\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 TERMS AND CONDITIONS FOR COPYING, DIS\hich\af4\dbch\af31505\loch\f4 TRIBUTION AND MODIFICATION +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 0.\tab \hich\af4\dbch\af31505\loch\f4 +This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such pro +\hich\af4\dbch\af31505\loch\f4 +gram or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another lan +\hich\af4\dbch\af31505\loch\f4 g\hich\af4\dbch\af31505\loch\f4 uage. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The a\hich\af4\dbch\af31505\loch\f4 +ct of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program +\hich\af4\dbch\af31505\loch\f4 d\hich\af4\dbch\af31505\loch\f4 oes. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 1.\tab +You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intac +\hich\af4\dbch\af31505\loch\f4 t all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 You may charge a fee for the physical act of transferring a copy, and you may at yo +\hich\af4\dbch\af31505\loch\f4 ur option offer warranty protection in exchange for a fee. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 2.\tab +You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 \hich\af4\dbch\af31505\loch\f4 +above, provided that you also meet all of these conditions: +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 a)\tab +You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. +\par \hich\af4\dbch\af31505\loch\f4 b)\tab You must cause any work that you distribute or publish, that in wh\hich\af4\dbch\af31505\loch\f4 +ole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. +\par \hich\af4\dbch\af31505\loch\f4 c)\tab If the modified program normally reads commands interactively when run, you must cau\hich\af4\dbch\af31505\loch\f4 +se it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that user +\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4 + may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not require +\hich\af4\dbch\af31505\loch\f4 d\hich\af4\dbch\af31505\loch\f4 to print an announcement.) +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, +\hich\af4\dbch\af31505\loch\f4 +and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License +,\hich\af4\dbch\af31505\loch\f4 whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. +\par \hich\af4\dbch\af31505\loch\f4 Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the in\hich\af4\dbch\af31505\loch\f4 +tent is to exercise the right to control the distribution of derivative or collective works based on the Program. +\par \hich\af4\dbch\af31505\loch\f4 In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a\hich\af4\dbch\af31505\loch\f4 + storage or distribution medium does not bring the other work under the scope of this License. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 3.\tab +You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sect\hich\af4\dbch\af31505\loch\f4 ions 1 and 2 above provided that you also do one of the following: +\par }\pard \ltrpar\ql \fi-360\li720\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin720\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 a)\tab +Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software i\hich\af4\dbch\af31505\loch\f4 nterchange; or, +\par \hich\af4\dbch\af31505\loch\f4 b)\tab +Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source co +\hich\af4\dbch\af31505\loch\f4 de, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, +\par \hich\af4\dbch\af31505\loch\f4 c)\tab Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allow\hich\af4\dbch\af31505\loch\f4 +ed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +The source code for a work means the preferred form of the work for making modifications t\hich\af4\dbch\af31505\loch\f4 +o it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a specia +\hich\af4\dbch\af31505\loch\f4 l\hich\af4\dbch\af31505\loch\f4 + exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that comp +\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 nent itself accompanies the executable. +\par \hich\af4\dbch\af31505\loch\f4 If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the sourc +\hich\af4\dbch\af31505\loch\f4 e code, even though third parties are not compelled to copy the source along with the object code. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 4.\tab +You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, su\hich\af4\dbch\af31505\loch\f4 +blicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties +\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 emain in full compliance. +\par \hich\af4\dbch\af31505\loch\f4 5.\tab +You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do n +\hich\af4\dbch\af31505\loch\f4 +ot accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or w +\hich\af4\dbch\af31505\loch\f4 o\hich\af4\dbch\af31505\loch\f4 rks based on it. +\par \hich\af4\dbch\af31505\loch\f4 6.\tab +Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You ma +\hich\af4\dbch\af31505\loch\f4 y not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. +\par \hich\af4\dbch\af31505\loch\f4 7.\tab If, as a consequence of a court judgment or allegation of patent infringem\hich\af4\dbch\af31505\loch\f4 +ent or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you c +\hich\af4\dbch\af31505\loch\f4 a\hich\af4\dbch\af31505\loch\f4 +nnot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redist +\hich\af4\dbch\af31505\loch\f4 r\hich\af4\dbch\af31505\loch\f4 +ibution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 If any portion of this section is held in\hich\af4\dbch\af31505\loch\f4 +valid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. +\par \hich\af4\dbch\af31505\loch\f4 It is not the purpose of this section to induce you to infringe any patents or\hich\af4\dbch\af31505\loch\f4 + other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generou +\hich\af4\dbch\af31505\loch\f4 s\hich\af4\dbch\af31505\loch\f4 + contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a license +\hich\af4\dbch\af31505\loch\f4 e\hich\af4\dbch\af31505\loch\f4 cannot impose that choice. +\par \hich\af4\dbch\af31505\loch\f4 This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 8.\tab +If the distribution and/or use of the Program is restricted in certain countries either by patents or by copy\hich\af4\dbch\af31505\loch\f4 +righted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. +\hich\af4\dbch\af31505\loch\f4 \hich\af4\dbch\af31505\loch\f4 In such case, this License incorporates the limitation as if written in the body of this License. +\par \hich\af4\dbch\af31505\loch\f4 9.\tab The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in \hich\af4\dbch\af31505\loch\f4 +spirit to the present version, but may differ in detail to address new problems or concerns. +\par }\pard \ltrpar\ql \li0\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin0\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 +Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you h\hich\af4\dbch\af31505\loch\f4 +ave the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by t +\hich\af4\dbch\af31505\loch\f4 h\hich\af4\dbch\af31505\loch\f4 e Free Software Foundation. +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 10.\tab +If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundati\hich\af4\dbch\af31505\loch\f4 +on, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software general +\hich\af4\dbch\af31505\loch\f4 l\hich\af4\dbch\af31505\loch\f4 y. +\par }\pard \ltrpar\ql \li360\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af5\afs24 \ltrch\fcs0 \f5\fs24\insrsid472762 \hich\af5\dbch\af31505\loch\f5 NO WARRANTY +\par }\pard \ltrpar\ql \fi-360\li360\ri0\sa180\widctlpar\tx360\wrapdefault\faauto\rin0\lin360\itap0 {\rtlch\fcs1 \af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 \hich\af4\dbch\af31505\loch\f4 11.\tab +BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGR +\hich\af4\dbch\af31505\loch\f4 +AM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH Y +\hich\af4\dbch\af31505\loch\f4 O\hich\af4\dbch\af31505\loch\f4 U. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. +\par \hich\af4\dbch\af31505\loch\f4 12.\tab IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDIS\hich\af4\dbch\af31505\loch\f4 +TRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDE +\hich\af4\dbch\af31505\loch\f4 R\hich\af4\dbch\af31505\loch\f4 +ED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. +\par }\pard \ltrpar\ql \li360\ri0\sa180\widctlpar\wrapdefault\faauto\rin0\lin360\itap0\pararsid14623029 {\rtlch\fcs1 \af5\afs24 \ltrch\fcs0 \f5\fs24\insrsid472762 \hich\af5\dbch\af31505\loch\f5 END OF TERMS AND CONDITIONS\line \line }{\rtlch\fcs1 +\af4\afs24 \ltrch\fcs0 \f4\fs24\insrsid472762 +\par }{\*\themedata 504b030414000600080000002100e9de0fbfff0000001c020000130000005b436f6e74656e745f54797065735d2e786d6cac91cb4ec3301045f748fc83e52d4a +9cb2400825e982c78ec7a27cc0c8992416c9d8b2a755fbf74cd25442a820166c2cd933f79e3be372bd1f07b5c3989ca74aaff2422b24eb1b475da5df374fd9ad +5689811a183c61a50f98f4babebc2837878049899a52a57be670674cb23d8e90721f90a4d2fa3802cb35762680fd800ecd7551dc18eb899138e3c943d7e503b6 +b01d583deee5f99824e290b4ba3f364eac4a430883b3c092d4eca8f946c916422ecab927f52ea42b89a1cd59c254f919b0e85e6535d135a8de20f20b8c12c3b0 +0c895fcf6720192de6bf3b9e89ecdbd6596cbcdd8eb28e7c365ecc4ec1ff1460f53fe813d3cc7f5b7f020000ffff0300504b030414000600080000002100a5d6 +a7e7c0000000360100000b0000005f72656c732f2e72656c73848fcf6ac3300c87ef85bd83d17d51d2c31825762fa590432fa37d00e1287f68221bdb1bebdb4f +c7060abb0884a4eff7a93dfeae8bf9e194e720169aaa06c3e2433fcb68e1763dbf7f82c985a4a725085b787086a37bdbb55fbc50d1a33ccd311ba548b6309512 +0f88d94fbc52ae4264d1c910d24a45db3462247fa791715fd71f989e19e0364cd3f51652d73760ae8fa8c9ffb3c330cc9e4fc17faf2ce545046e37944c69e462 +a1a82fe353bd90a865aad41ed0b5b8f9d6fd010000ffff0300504b0304140006000800000021006b799616830000008a0000001c0000007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c0ccc4d0ac3201040e17da17790d93763bb284562b2cbaebbf600439c1a41c7a0d29fdbd7e5e38337cedf14d59b +4b0d592c9c070d8a65cd2e88b7f07c2ca71ba8da481cc52c6ce1c715e6e97818c9b48d13df49c873517d23d59085adb5dd20d6b52bd521ef2cdd5eb9246a3d8b +4757e8d3f729e245eb2b260a0238fd010000ffff0300504b03041400060008000000210007b740aaca0600008f1a0000160000007468656d652f7468656d652f +7468656d65312e786d6cec595b8bdb46147e2ff43f08bd3bbe49be2cf1065bb69336bb49889d943cceda636bb2238dd18c776342a0244f7d2914d2d28706fad6 +87521a68a0a12ffd310b1bdaf447f4cc489667ec71f6420aa1640d8b34face996fce39face48ba7aed51449d239c70c2e2965bbe52721d1c8fd898c4d3967b6f +d82f345c870b148f1165316eb90bccdd6bbb9f7e7215ed881047d801fb98efa0961b0a31db2916f9088611bfc26638866b13964448c069322d8e13740c7e235a +ac944ab5628448ec3a318ac0ededc9848cb033942edddda5f31e85d358703930a2c940bac68685c28e0fcb12c1173ca089738468cb8579c6ec78881f09d7a188 +0bb8d0724beacf2dee5e2da29dcc888a2db69a5d5ffd657699c1f8b0a2e64ca607f9a49ee77bb576ee5f01a8d8c4f5eabd5aaf96fb5300341ac14a532eba4fbf +d3ec74fd0cab81d2438bef6ebd5b2d1b78cd7f758373db973f03af40a97f6f03dfef07104503af4029dedfc07b5ebd1278065e81527c6d035f2fb5bb5eddc02b +5048497cb8812ef9b56ab05c6d0e99307ac30a6ffa5ebf5ec99caf50500d7975c929262c16db6a2d420f59d2078004522448ec88c50c4fd008aa3840941c24c4 +d923d3100a6f8662c661b85429f54b55f82f7f9e3a5211413b1869d6921730e11b43928fc34709998996fb39787535c8e9ebd7274f5f9d3cfdfde4d9b393a7bf +66732b5786dd0d144f75bbb73f7df3cf8b2f9dbf7ffbf1edf36fd3a9d7f15cc7bff9e5ab377ffcf92ef7b0e255284ebf7bf9e6d5cbd3efbffeebe7e716efed04 +1de8f0218930776ee163e72e8b608116fef820b998c5304444b768c7538e622467b1f8ef89d040df5a208a2cb80e36e3783f01a9b101afcf1f1a8407613217c4 +e2f1661819c07dc6688725d628dc947369611ecee3a97df264aee3ee2274649b3b40b191e5de7c061a4b6c2e83101b34ef50140b34c531168ebcc60e31b6acee +0121465cf7c928619c4d84f380381d44ac21199203a39a56463748047959d80842be8dd8ecdf773a8cda56ddc5472612ee0d442de487981a61bc8ee602453697 +4314513de07b48843692834532d2713d2e20d3534c99d31b63ce6d36b71358af96f49b2033f6b4efd345642213410e6d3ef710633ab2cb0e831045331b7640e2 +50c77ec60fa144917387091b7c9f9977883c873ca0786bbaef136ca4fb6c35b8070aab535a1588bc324f2cb9bc8e9951bf83059d20aca4061a80a1eb1189cf14 +f93579f7ff3b7907113dfde1856545ef47d2ed8e8d7c5c50ccdb09b1de4d37d6247c1b6e5db803968cc987afdb5d348fef60b855369bd747d9fe28dbeeff5eb6 +b7ddcfef5fac57fa0cd22db7ade9765d6ddea3ad7bf709a174201614ef71b57de7d095c67d189476eab915e7cf72b3100ee59d0c1318b86982948d9330f10511 +e1204433d8e3975de964ca33d753eecc1887adbf1ab6fa96783a8ff6d9387d642d97e5e3692a1e1c89d578c9cfc7e17143a4e85a7df51896bb576ca7ea717949 +40da5e8484369949a26a21515f0eca20a98773089a85845ad97b61d1b4b06848f7cb546db0006a795660dbe4c066abe5fa1e9880113c55218ac7324f69aa97d9 +55c97c9f99de164ca302600fb1ac8055a69b92ebd6e5c9d5a5a5768e4c1b24b4723349a8c8a81ec64334c65975cad1f3d0b868ae9bab941af46428d47c505a2b +1af5c6bb585c36d760b7ae0d34d69582c6ce71cbad557d2899119ab5dc093cfac3613483dae172bb8be814de9f8d4492def097519659c24517f1300db8129d54 +0d222270e25012b55cb9fc3c0d34561aa2b8952b20081f2cb926c8ca87460e926e26194f267824f4b46b2332d2e929287caa15d6abcafcf26069c9e690ee4138 +3e760ee83cb98ba0c4fc7a5906704c38bc012aa7d11c1378a5990bd9aafed61a5326bbfa3b455543e938a2b310651d4517f314aea43ca7a3cef2186867d99a21 +a05a48b2467830950d560faad14df3ae9172d8da75cf369291d34473d5330d55915dd3ae62c60ccb36b016cbcb35798dd532c4a0697a874fa57b5d729b4bad5b +db27e45d02029ec7cfd275cfd110346aabc90c6a92f1a60c4bcdce46cddeb15ce019d4ced32434d5af2dddaec52def11d6e960f0529d1fecd6ab168626cb7da5 +8ab4faf6a17f9e60070f413cbaf022784e0557a9848f0f09820dd140ed4952d9805be491c86e0d3872e60969b98f4b7edb0b2a7e502835fc5ec1ab7aa542c36f +570b6ddfaf967b7eb9d4ed549e4063116154f6d3ef2e7d780d4517d9d71735bef105265abe69bb32625191a92f2c45455c7d812957b67f81710888cee35aa5df +ac363bb542b3daee17bc6ea7516806b54ea15b0beadd7e37f01bcdfe13d7395260af5d0dbc5aaf51a89583a0e0d54a927ea359a87b954adbabb71b3daffd24db +c6c0ca53f9c86201e155bc76ff050000ffff0300504b0304140006000800000021000dd1909fb60000001b010000270000007468656d652f7468656d652f5f72 +656c732f7468656d654d616e616765722e786d6c2e72656c73848f4d0ac2301484f78277086f6fd3ba109126dd88d0add40384e4350d363f2451eced0dae2c08 +2e8761be9969bb979dc9136332de3168aa1a083ae995719ac16db8ec8e4052164e89d93b64b060828e6f37ed1567914b284d262452282e3198720e274a939cd0 +8a54f980ae38a38f56e422a3a641c8bbd048f7757da0f19b017cc524bd62107bd5001996509affb3fd381a89672f1f165dfe514173d9850528a2c6cce0239baa +4c04ca5bbabac4df000000ffff0300504b01022d0014000600080000002100e9de0fbfff0000001c0200001300000000000000000000000000000000005b436f +6e74656e745f54797065735d2e786d6c504b01022d0014000600080000002100a5d6a7e7c0000000360100000b00000000000000000000000000300100005f72 +656c732f2e72656c73504b01022d00140006000800000021006b799616830000008a0000001c00000000000000000000000000190200007468656d652f746865 +6d652f7468656d654d616e616765722e786d6c504b01022d001400060008000000210007b740aaca0600008f1a00001600000000000000000000000000d60200 +007468656d652f7468656d652f7468656d65312e786d6c504b01022d00140006000800000021000dd1909fb60000001b01000027000000000000000000000000 +00d40900007468656d652f7468656d652f5f72656c732f7468656d654d616e616765722e786d6c2e72656c73504b050600000000050005005d010000cf0a00000000} +{\*\colorschememapping 3c3f786d6c2076657273696f6e3d22312e302220656e636f64696e673d225554462d3822207374616e64616c6f6e653d22796573223f3e0d0a3c613a636c724d +617020786d6c6e733a613d22687474703a2f2f736368656d61732e6f70656e786d6c666f726d6174732e6f72672f64726177696e676d6c2f323030362f6d6169 +6e22206267313d226c743122207478313d22646b3122206267323d226c743222207478323d22646b322220616363656e74313d22616363656e74312220616363 +656e74323d22616363656e74322220616363656e74333d22616363656e74332220616363656e74343d22616363656e74342220616363656e74353d22616363656e74352220616363656e74363d22616363656e74362220686c696e6b3d22686c696e6b2220666f6c486c696e6b3d22666f6c486c696e6b222f3e} +{\*\latentstyles\lsdstimax371\lsdlockeddef0\lsdsemihiddendef0\lsdunhideuseddef0\lsdqformatdef0\lsdprioritydef99{\lsdlockedexcept \lsdqformat1 \lsdpriority0 \lsdlocked0 Normal;\lsdqformat1 \lsdpriority9 \lsdlocked0 heading 1; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 2;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 3;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 4; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 5;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 6;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 7; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 8;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority9 \lsdlocked0 heading 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 5; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 6;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index 9; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 1;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 2;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 3; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 4;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 5;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 6; +\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 7;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 8;\lsdsemihidden1 \lsdunhideused1 \lsdpriority39 \lsdlocked0 toc 9;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 header;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footer; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 index heading;\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority35 \lsdlocked0 caption;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of figures; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 envelope return;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 footnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation reference; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 line number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 page number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote reference;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 endnote text; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 table of authorities;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 macro;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 toa heading;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Bullet 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Number 5;\lsdqformat1 \lsdpriority10 \lsdlocked0 Title;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Closing; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Signature;\lsdsemihidden1 \lsdunhideused1 \lsdpriority1 \lsdlocked0 Default Paragraph Font;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 4; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 List Continue 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Message Header;\lsdqformat1 \lsdpriority11 \lsdlocked0 Subtitle;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Salutation; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Date;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text First Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Note Heading; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Body Text Indent 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Block Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Hyperlink;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 FollowedHyperlink;\lsdqformat1 \lsdpriority22 \lsdlocked0 Strong; +\lsdqformat1 \lsdpriority20 \lsdlocked0 Emphasis;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Document Map;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Plain Text;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 E-mail Signature; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Top of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Bottom of Form;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal (Web);\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Acronym; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Address;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Cite;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Code;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Definition; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Keyboard;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Preformatted;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Sample;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Typewriter; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 HTML Variable;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Normal Table;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 annotation subject;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 No List; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Outline List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 1; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Simple 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Classic 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Colorful 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 3; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Columns 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Grid 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 4;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 5;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 6; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 7;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table List 8;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table 3D effects 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Contemporary;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Elegant;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Professional; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Subtle 2;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 1;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 2; +\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Web 3;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Balloon Text;\lsdpriority39 \lsdlocked0 Table Grid;\lsdsemihidden1 \lsdunhideused1 \lsdlocked0 Table Theme;\lsdsemihidden1 \lsdlocked0 Placeholder Text; +\lsdqformat1 \lsdpriority1 \lsdlocked0 No Spacing;\lsdpriority60 \lsdlocked0 Light Shading;\lsdpriority61 \lsdlocked0 Light List;\lsdpriority62 \lsdlocked0 Light Grid;\lsdpriority63 \lsdlocked0 Medium Shading 1;\lsdpriority64 \lsdlocked0 Medium Shading 2; +\lsdpriority65 \lsdlocked0 Medium List 1;\lsdpriority66 \lsdlocked0 Medium List 2;\lsdpriority67 \lsdlocked0 Medium Grid 1;\lsdpriority68 \lsdlocked0 Medium Grid 2;\lsdpriority69 \lsdlocked0 Medium Grid 3;\lsdpriority70 \lsdlocked0 Dark List; +\lsdpriority71 \lsdlocked0 Colorful Shading;\lsdpriority72 \lsdlocked0 Colorful List;\lsdpriority73 \lsdlocked0 Colorful Grid;\lsdpriority60 \lsdlocked0 Light Shading Accent 1;\lsdpriority61 \lsdlocked0 Light List Accent 1; +\lsdpriority62 \lsdlocked0 Light Grid Accent 1;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 1;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 1;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 1;\lsdsemihidden1 \lsdlocked0 Revision; +\lsdqformat1 \lsdpriority34 \lsdlocked0 List Paragraph;\lsdqformat1 \lsdpriority29 \lsdlocked0 Quote;\lsdqformat1 \lsdpriority30 \lsdlocked0 Intense Quote;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 1;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 1; +\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 1;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 1;\lsdpriority70 \lsdlocked0 Dark List Accent 1;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 1;\lsdpriority72 \lsdlocked0 Colorful List Accent 1; +\lsdpriority73 \lsdlocked0 Colorful Grid Accent 1;\lsdpriority60 \lsdlocked0 Light Shading Accent 2;\lsdpriority61 \lsdlocked0 Light List Accent 2;\lsdpriority62 \lsdlocked0 Light Grid Accent 2;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 2; +\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 2;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 2;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 2;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 2;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 2; +\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 2;\lsdpriority70 \lsdlocked0 Dark List Accent 2;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 2;\lsdpriority72 \lsdlocked0 Colorful List Accent 2;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 2; +\lsdpriority60 \lsdlocked0 Light Shading Accent 3;\lsdpriority61 \lsdlocked0 Light List Accent 3;\lsdpriority62 \lsdlocked0 Light Grid Accent 3;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 3;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 3; +\lsdpriority65 \lsdlocked0 Medium List 1 Accent 3;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 3;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 3;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 3;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 3; +\lsdpriority70 \lsdlocked0 Dark List Accent 3;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 3;\lsdpriority72 \lsdlocked0 Colorful List Accent 3;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 3;\lsdpriority60 \lsdlocked0 Light Shading Accent 4; +\lsdpriority61 \lsdlocked0 Light List Accent 4;\lsdpriority62 \lsdlocked0 Light Grid Accent 4;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 4;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 4;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 4; +\lsdpriority66 \lsdlocked0 Medium List 2 Accent 4;\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 4;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 4;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 4;\lsdpriority70 \lsdlocked0 Dark List Accent 4; +\lsdpriority71 \lsdlocked0 Colorful Shading Accent 4;\lsdpriority72 \lsdlocked0 Colorful List Accent 4;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 4;\lsdpriority60 \lsdlocked0 Light Shading Accent 5;\lsdpriority61 \lsdlocked0 Light List Accent 5; +\lsdpriority62 \lsdlocked0 Light Grid Accent 5;\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 5;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 5;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 5;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 5; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 5;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 5;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 5;\lsdpriority70 \lsdlocked0 Dark List Accent 5;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 5; +\lsdpriority72 \lsdlocked0 Colorful List Accent 5;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 5;\lsdpriority60 \lsdlocked0 Light Shading Accent 6;\lsdpriority61 \lsdlocked0 Light List Accent 6;\lsdpriority62 \lsdlocked0 Light Grid Accent 6; +\lsdpriority63 \lsdlocked0 Medium Shading 1 Accent 6;\lsdpriority64 \lsdlocked0 Medium Shading 2 Accent 6;\lsdpriority65 \lsdlocked0 Medium List 1 Accent 6;\lsdpriority66 \lsdlocked0 Medium List 2 Accent 6; +\lsdpriority67 \lsdlocked0 Medium Grid 1 Accent 6;\lsdpriority68 \lsdlocked0 Medium Grid 2 Accent 6;\lsdpriority69 \lsdlocked0 Medium Grid 3 Accent 6;\lsdpriority70 \lsdlocked0 Dark List Accent 6;\lsdpriority71 \lsdlocked0 Colorful Shading Accent 6; +\lsdpriority72 \lsdlocked0 Colorful List Accent 6;\lsdpriority73 \lsdlocked0 Colorful Grid Accent 6;\lsdqformat1 \lsdpriority19 \lsdlocked0 Subtle Emphasis;\lsdqformat1 \lsdpriority21 \lsdlocked0 Intense Emphasis; +\lsdqformat1 \lsdpriority31 \lsdlocked0 Subtle Reference;\lsdqformat1 \lsdpriority32 \lsdlocked0 Intense Reference;\lsdqformat1 \lsdpriority33 \lsdlocked0 Book Title;\lsdsemihidden1 \lsdunhideused1 \lsdpriority37 \lsdlocked0 Bibliography; +\lsdsemihidden1 \lsdunhideused1 \lsdqformat1 \lsdpriority39 \lsdlocked0 TOC Heading;\lsdpriority41 \lsdlocked0 Plain Table 1;\lsdpriority42 \lsdlocked0 Plain Table 2;\lsdpriority43 \lsdlocked0 Plain Table 3;\lsdpriority44 \lsdlocked0 Plain Table 4; +\lsdpriority45 \lsdlocked0 Plain Table 5;\lsdpriority40 \lsdlocked0 Grid Table Light;\lsdpriority46 \lsdlocked0 Grid Table 1 Light;\lsdpriority47 \lsdlocked0 Grid Table 2;\lsdpriority48 \lsdlocked0 Grid Table 3;\lsdpriority49 \lsdlocked0 Grid Table 4; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 1; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 1;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 1;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 1; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 1;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 2;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 2; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 2;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 2; +\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 3;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 3;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 3;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 3; +\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 3;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 4; +\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 4;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 4;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 4;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 4; +\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 4;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 5; +\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 5;\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 5;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 5; +\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 5;\lsdpriority46 \lsdlocked0 Grid Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 Grid Table 2 Accent 6;\lsdpriority48 \lsdlocked0 Grid Table 3 Accent 6; +\lsdpriority49 \lsdlocked0 Grid Table 4 Accent 6;\lsdpriority50 \lsdlocked0 Grid Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 Grid Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 Grid Table 7 Colorful Accent 6; +\lsdpriority46 \lsdlocked0 List Table 1 Light;\lsdpriority47 \lsdlocked0 List Table 2;\lsdpriority48 \lsdlocked0 List Table 3;\lsdpriority49 \lsdlocked0 List Table 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful;\lsdpriority52 \lsdlocked0 List Table 7 Colorful;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 1;\lsdpriority47 \lsdlocked0 List Table 2 Accent 1;\lsdpriority48 \lsdlocked0 List Table 3 Accent 1; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 1;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 1;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 1;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 1; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 2;\lsdpriority47 \lsdlocked0 List Table 2 Accent 2;\lsdpriority48 \lsdlocked0 List Table 3 Accent 2;\lsdpriority49 \lsdlocked0 List Table 4 Accent 2; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 2;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 2;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 2;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 3; +\lsdpriority47 \lsdlocked0 List Table 2 Accent 3;\lsdpriority48 \lsdlocked0 List Table 3 Accent 3;\lsdpriority49 \lsdlocked0 List Table 4 Accent 3;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 3; +\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 3;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 3;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 4;\lsdpriority47 \lsdlocked0 List Table 2 Accent 4; +\lsdpriority48 \lsdlocked0 List Table 3 Accent 4;\lsdpriority49 \lsdlocked0 List Table 4 Accent 4;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 4;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 4; +\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 4;\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 5;\lsdpriority47 \lsdlocked0 List Table 2 Accent 5;\lsdpriority48 \lsdlocked0 List Table 3 Accent 5; +\lsdpriority49 \lsdlocked0 List Table 4 Accent 5;\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 5;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 5;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 5; +\lsdpriority46 \lsdlocked0 List Table 1 Light Accent 6;\lsdpriority47 \lsdlocked0 List Table 2 Accent 6;\lsdpriority48 \lsdlocked0 List Table 3 Accent 6;\lsdpriority49 \lsdlocked0 List Table 4 Accent 6; +\lsdpriority50 \lsdlocked0 List Table 5 Dark Accent 6;\lsdpriority51 \lsdlocked0 List Table 6 Colorful Accent 6;\lsdpriority52 \lsdlocked0 List Table 7 Colorful Accent 6;}}{\*\datastore 010500000200000018000000 +4d73786d6c322e534158584d4c5265616465722e362e3000000000000000000000060000 +d0cf11e0a1b11ae1000000000000000000000000000000003e000300feff090006000000000000000000000001000000010000000000000000100000feffffff00000000feffffff0000000000000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +fffffffffffffffffdfffffffeffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff +ffffffffffffffffffffffffffffffff52006f006f007400200045006e00740072007900000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016000500ffffffffffffffffffffffff0c6ad98892f1d411a65f0040963251e500000000000000000000000030c4 +1a380afbd401feffffff00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff00000000000000000000000000000000000000000000000000000000 +00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff0000000000000000000000000000000000000000000000000000 +000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000ffffffffffffffffffffffff000000000000000000000000000000000000000000000000 +0000000000000000000000000000000000000000000000000105000000000000}} \ No newline at end of file diff --git a/README.MD b/README.MD index 5d3795bd..d9f82a0d 100644 --- a/README.MD +++ b/README.MD @@ -7,6 +7,7 @@ [![Github Releases](https://img.shields.io/github/downloads/mRemoteNG/mRemoteNG/total.svg?style=flat-square)](https://github.com/mRemoteNG/mRemoteNG/releases/) [![CII Best Practices](https://bestpractices.coreinfrastructure.org/projects/529/badge)](https://bestpractices.coreinfrastructure.org/projects/529) +[![Documentation Status](https://readthedocs.org/projects/mremoteng/badge/?version=latest)](https://mremoteng.readthedocs.io/en/latest/?badge=latest) | Update Channel | Build Status | Downloads | | ---------------|--------------|-----------| diff --git a/Tools/copy_tiles.ps1 b/Tools/copy_tiles.ps1 index 52c73630..318de91b 100644 --- a/Tools/copy_tiles.ps1 +++ b/Tools/copy_tiles.ps1 @@ -12,8 +12,6 @@ Write-Output "===== Beginning $($PSCmdlet.MyInvocation.MyCommand) =====" Write-Output "Copying TILES folder to output" $sourceFiles = [io.path]::combine($SolutionDir , 'mRemoteV1\Resources\Tiles' ) -$DestinationDir = $TargetDir - -robocopy $sourceFiles $DestinationDir *.* +robocopy $sourceFiles $TargetDir *.* Write-Output "" \ No newline at end of file diff --git a/Tools/create_upg_chk_files.ps1 b/Tools/create_upg_chk_files.ps1 index acf2e88a..dc90448f 100644 --- a/Tools/create_upg_chk_files.ps1 +++ b/Tools/create_upg_chk_files.ps1 @@ -30,7 +30,7 @@ function New-MsiUpdateFileContent { $fileContents = ` "Version: $version dURL: https://github.com/mRemoteNG/mRemoteNG/releases/download/$TagName/$($MsiFile.Name) -clURL: https://raw.githubusercontent.com/mRemoteNG/mRemoteNG/$TagName/CHANGELOG.TXT +clURL: https://raw.githubusercontent.com/mRemoteNG/mRemoteNG/$TagName/CHANGELOG.md CertificateThumbprint: $certThumbprint Checksum: $hash" Write-Output $fileContents diff --git a/Tools/postbuild_mremotev1.ps1 b/Tools/postbuild_mremotev1.ps1 index 0c1e545d..d167be3a 100644 --- a/Tools/postbuild_mremotev1.ps1 +++ b/Tools/postbuild_mremotev1.ps1 @@ -42,7 +42,7 @@ Format-Table -AutoSize -Wrap -InputObject @{ & "$PSScriptRoot\copy_puttyng.ps1" -SolutionDir $SolutionDir -TargetDir $TargetDir & "$PSScriptRoot\copy_themes.ps1" -SolutionDir $SolutionDir -TargetDir $TargetDir & "$PSScriptRoot\copy_tiles.ps1" -SolutionDir $SolutionDir -TargetDir $TargetDir -& "$PSScriptRoot\move_help_files.ps1" -TargetDir $TargetDir +& "$PSScriptRoot\sphinx_docs.ps1" -SolutionDir $SolutionDir -TargetDir $TargetDir & "$PSScriptRoot\set_LargeAddressAware.ps1" -TargetDir $TargetDir -TargetFileName $TargetFileName & "$PSScriptRoot\verify_LargeAddressAware.ps1" -TargetDir $TargetDir -TargetFileName $TargetFileName & "$PSScriptRoot\tidy_files_for_release.ps1" -TargetDir $TargetDir -ConfigurationName $ConfigurationName diff --git a/Tools/move_help_files.ps1 b/Tools/sphinx_docs.ps1 similarity index 52% rename from Tools/move_help_files.ps1 rename to Tools/sphinx_docs.ps1 index dc63866f..ac747672 100644 --- a/Tools/move_help_files.ps1 +++ b/Tools/sphinx_docs.ps1 @@ -1,23 +1,23 @@ -param ( - [string] +param ( + [string] + [Parameter(Mandatory=$true)] + $SolutionDir, + + [string] [Parameter(Mandatory=$true)] $TargetDir ) Write-Output "===== Beginning $($PSCmdlet.MyInvocation.MyCommand) =====" +Write-Output "Building HTML-Documentation with Sphinx" + $path_HelpFilesDir = Join-Path -Path $TargetDir -ChildPath "Help" - -Write-Output "Moving Help files to correct directory" - +$path_SphinxSourceDir = Join-Path -Path $SolutionDir -ChildPath "mremoteV1\Documentation" # Remove stale Help files, if they exist if (Test-Path -Path $path_HelpFilesDir) { Remove-Item -Path $path_HelpFilesDir -Recurse -Force } - -# Move Help files -Move-Item -Path (Join-Path -Path $TargetDir -ChildPath "Resources\Help") -Destination $path_HelpFilesDir -Force -Start-Sleep -Seconds 2 -Remove-Item -Path (Join-Path -Path $TargetDir -ChildPath "Resources") -Recurse -Force +sphinx-build $path_SphinxSourceDir $path_HelpFilesDir Write-Output "" \ No newline at end of file diff --git a/Tools/tidy_files_for_release.ps1 b/Tools/tidy_files_for_release.ps1 index 543247c6..1d6d8459 100644 --- a/Tools/tidy_files_for_release.ps1 +++ b/Tools/tidy_files_for_release.ps1 @@ -13,7 +13,12 @@ Write-Output "===== Beginning $($PSCmdlet.MyInvocation.MyCommand) =====" # Remove unnecessary files from Release versions if ($ConfigurationName -match "Release") { Write-Output "Removing unnecessary files from Release versions" - Remove-Item -Path (Join-Path -Path $TargetDir -ChildPath "app.publish") -Recurse -Force + + $test = Join-Path -Path $TargetDir -ChildPath "app.publish" + if (Test-Path $test -PathType Container) { + Remove-Item -Path (Join-Path -Path $TargetDir -ChildPath "app.publish") -Recurse -Force + } + $filesToDelete = Get-ChildItem -Path $TargetDir -Recurse -Include @( "*.publish", "*.xml", diff --git a/appveyor.yml b/appveyor.yml deleted file mode 100644 index bffd4c97..00000000 --- a/appveyor.yml +++ /dev/null @@ -1,46 +0,0 @@ -version: 1.76.{build} -pull_requests: - do_not_increment_build_number: true -skip_tags: true -skip_branch_with_pr: true -image: Visual Studio 2017 -configuration: -- Release -- Release Portable -- Release Installer -platform: x86 -shallow_clone: true -clone_depth: 1 -install: -- ps: >- - date - - mRemoteV1\Resources\CitrixReceiver.exe ENABLE_SSON="No" /silent /noreboot /EnableCEIP=false /AutoUpdateCheck=disabled /EnableTracing=false | out-null - - date -before_build: -- cmd: >- - echo %TIME% - - nuget restore - - echo %TIME% -build: - project: mRemoteV1.sln - parallel: true - verbosity: normal -after_build: -- ps: "if([string]::IsNullOrEmpty($Env:APPVEYOR_BUILD_FOLDER)) {\n Write-Output \"NOT running via Appveyor - Exiting\"\n Exit\n}\n\n$appvDir = $Env:APPVEYOR_BUILD_FOLDER\n\nWrite-Output \"Appveyor Build Dir: '$($appvDir)'\"\n$ConfigurationName = $Env:CONFIGURATION.Trim()\nWrite-Output \"Config Name (tirmmed): '$($ConfigurationName)'\"\n\n\n$SIGCHECK=\"Tools\\exes\\sigcheck.exe\"\n$SEVENZIP=\"Tools\\7zip\\7za.exe\"\n\nif ($ConfigurationName -eq \"Release Portable\") {\n Write-Output \"Packaging Release Portable ZIP\"\n \n $version = & $SIGCHECK /accepteula -q -n \"mRemoteV1\\bin\\$($ConfigurationName)\\mRemoteNG.exe\"\n\n Write-Output \"Version is $($version)\"\n\n $PortableZip=\"Release\\mRemoteNG-Portable-$($version).zip\"\n\n Remove-Item -Recurse \"mRemoteV1\\bin\\package\" -ErrorAction SilentlyContinue | Out-Null\n New-Item \"mRemoteV1\\bin\\package\" -ItemType \"directory\" | Out-Null\n \n Copy-Item \"mRemoteV1\\Resources\\PuTTYNG.exe\" -Destination \"mRemoteV1\\bin\\package\"\n\n Copy-Item \"mRemoteV1\\bin\\$ConfigurationName\\*\" -Destination \"mRemoteV1\\bin\\package\" -Recurse -Force -Exclude *.pdb\n Copy-Item \"*.txt\" -Destination \"mRemoteV1\\bin\\package\"\n\n Write-Output \"Creating portable ZIP file $($PortableZip)\"\n Remove-Item -Force $PortableZip -ErrorAction SilentlyContinue\n & $SEVENZIP a -bt -bd -bb1 -mx=9 -tzip -y -r $PortableZip \".\\mRemoteV1\\bin\\package\\*.*\"\n}\nelse {\n Write-Output \"We will not zip anything - this isnt a portable release build.\"\n}\n\nWrite-Output \"\"\nWrite-Output \"\"\n\nif ($ConfigurationName -match \"Release\" -And $ConfigurationName -ne \"Release Installer\") {\n Write-Output \"Packaging debug symbols\"\n \n $version = & $SIGCHECK /accepteula -q -n \"mRemoteV1\\bin\\$($ConfigurationName)\\mRemoteNG.exe\"\n\n Write-Output \"Version is $($version)\"\n\n if ($ConfigurationName -match \"Portable\") {\n $zipFilePrefix = \"mRemoteNG-Portable-symbols\"\n } else {\n $zipFilePrefix = \"mRemoteNG-symbols\"\n }\n\n $outputZipPath=\"Release\\$zipFilePrefix-$($version).zip\"\n\n Write-Output \"Creating debug symbols ZIP file $($outputZipPath)\"\n Remove-Item -Force $outputZipPath -ErrorAction SilentlyContinue\n $SymPath = (Join-Path -Path mRemoteV1\\bin\\$($ConfigurationName) -ChildPath \"*.pdb\")\n if(Test-Path \"$SymPath\") {\n & $SEVENZIP a -bt -bd -bb1 -mx=9 -tzip -y -r $outputZipPath \"$SymPath\"\n } else {\n Write-Output \"No Debugging Symbols Found...\"\n }\n \n}\nelse {\n Write-Output \"We will not package debug symbols for this configuration $($ConfigurationName)\"\n}\n\nWrite-Output \"\"" -test: - assemblies: - only: - - mRemoteNGTests\bin\$(configuration)\mRemoteNGTests.dll -artifacts: -- path: Release\*.msi - name: mRemoteNG-installer.msi -- path: Release\mRemoteNG-Portable-1.*.zip - name: mRemoteNG-portable.zip -- path: Release\mRemoteNG-Portable-symbols*.zip - name: mRemoteNG-Portable-symbols.zip -- path: Release\mRemoteNG-symbols*.zip - name: mRemoteNG-symbols.zip \ No newline at end of file diff --git a/mRemoteV1/.editorconfig b/mRemoteV1/.editorconfig index 6071b846..37639125 100644 --- a/mRemoteV1/.editorconfig +++ b/mRemoteV1/.editorconfig @@ -13,6 +13,15 @@ indent_size = 4 trim_trailing_whitespace = true charset = utf-8-bom +# reStructuredText +[*.rst] +charset = utf-8 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true +indent_size = 3 +max_line_length = 120 + # Organize usings dotnet_sort_system_directives_first = true @@ -41,4 +50,4 @@ csharp_space_after_colon_in_inheritance_clause = true csharp_space_around_binary_operators = before_and_after csharp_space_between_method_declaration_empty_parameter_list_parentheses = false csharp_space_between_method_call_name_and_opening_parenthesis = false -csharp_space_between_method_call_empty_parameter_list_parentheses = false \ No newline at end of file +csharp_space_between_method_call_empty_parameter_list_parentheses = false diff --git a/mRemoteV1/App/CompatibilityChecker.cs b/mRemoteV1/App/CompatibilityChecker.cs index a5a4d281..a2b69803 100644 --- a/mRemoteV1/App/CompatibilityChecker.cs +++ b/mRemoteV1/App/CompatibilityChecker.cs @@ -1,11 +1,11 @@ -using Microsoft.Win32; -using mRemoteNG.App.Info; -using mRemoteNG.UI.TaskDialog; -using System; +using System; using System.Diagnostics; using System.Windows.Forms; +using Microsoft.Win32; +using mRemoteNG.App.Info; using mRemoteNG.Messages; using mRemoteNG.UI.Forms; +using mRemoteNG.UI.TaskDialog; namespace mRemoteNG.App { @@ -55,21 +55,18 @@ namespace mRemoteNG.App private static bool FipsPolicyEnabledForServer2003() { - var regKey = Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control\\Lsa"); - var fipsPolicy = regKey?.GetValue("FIPSAlgorithmPolicy"); - if (fipsPolicy == null) return false; - fipsPolicy = Convert.ToInt32(fipsPolicy); - return (int)fipsPolicy != 0; + var regKey = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\Control\Lsa"); + if (!(regKey?.GetValue("FIPSAlgorithmPolicy") is int fipsPolicy)) + return false; + return fipsPolicy != 0; } private static bool FipsPolicyEnabledForServer2008AndNewer() { - var regKey = - Registry.LocalMachine.OpenSubKey("System\\CurrentControlSet\\Control\\Lsa\\FIPSAlgorithmPolicy"); - var fipsPolicy = regKey?.GetValue("Enabled"); - if (fipsPolicy == null) return false; - fipsPolicy = Convert.ToInt32(fipsPolicy); - return (int)fipsPolicy != 0; + var regKey = Registry.LocalMachine.OpenSubKey(@"System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy"); + if (!(regKey?.GetValue("Enabled") is int fipsPolicy)) + return false; + return fipsPolicy != 0; } private static void CheckLenovoAutoScrollUtility(MessageCollector messageCollector) diff --git a/mRemoteV1/Connection/ConnectionInitiator.cs b/mRemoteV1/Connection/ConnectionInitiator.cs index 635ccaed..958e227e 100644 --- a/mRemoteV1/Connection/ConnectionInitiator.cs +++ b/mRemoteV1/Connection/ConnectionInitiator.cs @@ -1,14 +1,14 @@ -using mRemoteNG.App; +using System; +using System.Collections.Generic; +using System.Windows.Forms; +using mRemoteNG.App; using mRemoteNG.Connection.Protocol; using mRemoteNG.Container; using mRemoteNG.Messages; using mRemoteNG.UI.Forms; using mRemoteNG.UI.Panels; -using mRemoteNG.UI.Window; -using System; -using System.Collections.Generic; -using System.Windows.Forms; using mRemoteNG.UI.Tabs; +using mRemoteNG.UI.Window; using WeifenLuo.WinFormsUI.Docking; @@ -63,7 +63,7 @@ namespace mRemoteNG.Connection #region Private - private void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, Form conForm) + private void OpenConnection(ContainerInfo containerInfo, ConnectionInfo.Force force, ConnectionWindow conForm) { var children = containerInfo.Children; if (children.Count == 0) return; @@ -76,7 +76,7 @@ namespace mRemoteNG.Connection } } - private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, Form conForm) + private void OpenConnection(ConnectionInfo connectionInfo, ConnectionInfo.Force force, ConnectionWindow conForm) { try { @@ -162,52 +162,33 @@ namespace mRemoteNG.Connection private static string SetConnectionPanel(ConnectionInfo connectionInfo, ConnectionInfo.Force force) { - string connectionPanel; - if (connectionInfo.Panel == "" || force.HasFlag(ConnectionInfo.Force.OverridePanel) || - Settings.Default.AlwaysShowPanelSelectionDlg) - { - var frmPnl = new FrmChoosePanel(); - if (frmPnl.ShowDialog() == DialogResult.OK) - { - connectionPanel = frmPnl.Panel; - } - else - { - return null; - } - } - else - { - //Return the current panel if exist, if not return default panel - if (TabHelper.Instance.CurrentPanel != null) - { - connectionPanel = TabHelper.Instance.CurrentPanel.TabText; - } - else - { - connectionPanel = connectionInfo.Panel; - } - } + if (connectionInfo.Panel != "" && + !force.HasFlag(ConnectionInfo.Force.OverridePanel) && + !Settings.Default.AlwaysShowPanelSelectionDlg) + return connectionInfo.Panel; - return connectionPanel; + var frmPnl = new FrmChoosePanel(); + return frmPnl.ShowDialog() == DialogResult.OK + ? frmPnl.Panel + : null; } - private Form SetConnectionForm(Form conForm, string connectionPanel) + private ConnectionWindow SetConnectionForm(ConnectionWindow conForm, string connectionPanel) { - var connectionForm = conForm ?? Runtime.WindowList.FromString(connectionPanel); + var connectionForm = conForm ?? Runtime.WindowList.FromString(connectionPanel) as ConnectionWindow; if (connectionForm == null) connectionForm = _panelAdder.AddPanel(connectionPanel); else - ((ConnectionWindow)connectionForm).Show(FrmMain.Default.pnlDock); + connectionForm.Show(FrmMain.Default.pnlDock); connectionForm.Focus(); return connectionForm; } - private static Control SetConnectionContainer(ConnectionInfo connectionInfo, Form connectionForm) + private static Control SetConnectionContainer(ConnectionInfo connectionInfo, ConnectionWindow connectionForm) { - Control connectionContainer = ((ConnectionWindow)connectionForm).AddConnectionTab(connectionInfo); + Control connectionContainer = connectionForm.AddConnectionTab(connectionInfo); if (connectionInfo.Protocol != ProtocolType.IntApp) return connectionContainer; diff --git a/mRemoteV1/Documentation/about.rst b/mRemoteV1/Documentation/about.rst new file mode 100644 index 00000000..520372c1 --- /dev/null +++ b/mRemoteV1/Documentation/about.rst @@ -0,0 +1,23 @@ +############### +About mRemoteNG +############### + +mRemoteNG is an open source, multi-protocol, multi-remote connections manager +that aims at providing you with a clutter-free, +unstressful platform to manage all your remote connections in one place. +The application is released under the GPLv2_ and is being managed on GitHub_. + +.. _GitHub: http://github.com/mRemoteNG/mRemoteNG +.. _GPLv2: http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + +As of now mRemoteNG supports the following protocols: + +RDP - SSH - VNC - ICA - Telnet - RAW - RLogin - HTTP/S + +.. toctree:: + :maxdepth: 2 + + about/features.rst + about/versions.rst + about/release_channels.rst + about/license.rst diff --git a/mRemoteV1/Documentation/about/features.rst b/mRemoteV1/Documentation/about/features.rst new file mode 100644 index 00000000..d9442892 --- /dev/null +++ b/mRemoteV1/Documentation/about/features.rst @@ -0,0 +1,22 @@ +************ +Key Features +************ + +- Free and Open Source, released under the GPL +- Organizing connections into panels and tabs +- Multiple supported protocols (RDP, VNC, ICA, SSH, Telnet, RAW, Rlogin and HTTP/S) +- Easy to organize and maintain list of connections +- Inheritance makes it possible to store properties on folder basis and let the underlying connections inherit this info +- Importing connections from Active Directory +- Creating nested folder structures to categorize connections +- "Quick Connect" feature to quickly open a connection without creating an entry +- "Quick Search" feature to quickly find a connection while typing +- Support for SCP/SFTP (SSH) file transfers +- Assign icons to connections for quick identification +- A screenshot manager to create screenshots of running connections +- "Auto-Update" feature +- Minimize to system tray +- Fullscreen (Kiosk) mode +- Assign global credentials to use when no information is provided on connection basis +- Host Indication on each connection to show if host responds to ping requests +- ... diff --git a/mRemoteV1/Documentation/about/license.rst b/mRemoteV1/Documentation/about/license.rst new file mode 100644 index 00000000..e791ac16 --- /dev/null +++ b/mRemoteV1/Documentation/about/license.rst @@ -0,0 +1,19 @@ +******* +License +******* + +mRemoteNG is written under the GNU GPLv2_ license and is a free software. + +.. _GPLv2: http://www.gnu.org/licenses/old-licenses/gpl-2.0-standalone.html + +Free software is referred to freedom, not price. The General Public Licenses are designed to make sure +that you have the freedom to distribute copies of free software (and charge for the service if you wish), +that you receive source code or can get it if you want it, that you can change the software or use pieces +of it in new free programs; and that you know you can do these things. + +For example, if you distribute copies of such a program, whether gratis or for a fee, +you must give the recipients all the rights that you have. You must make sure that they, too, +receive or can get the source code. And you must show them these terms so they know their rights. + +To understand and read more of the license that mRemoteNG is using. Please follow the link here to know more: +GPL (V2) `GNU Project website `_ diff --git a/mRemoteV1/Documentation/about/release_channels.rst b/mRemoteV1/Documentation/about/release_channels.rst new file mode 100644 index 00000000..4354c2b0 --- /dev/null +++ b/mRemoteV1/Documentation/about/release_channels.rst @@ -0,0 +1,46 @@ +**************** +Release Channels +**************** + +.. note:: + + We currently do not offer a nightly build channel. To get the absolute bleeding-edge updates, you will need to build mRemoteNG from source. Instructions on setting up your development environment can be found here: + + +Stable +====== +The **Stable** channel includes only officially released versions of mRemoteNG. This channel +receives updates much less often than the others, but has the least chance for bugs. + +These releases will be marked as a normal release on GitHub and may use terms like **Final** or +**Stable** in the release. + +This is the recommended and default channel for all users. + + +Beta +==== +The **Beta** channel includes pre-release versions in addition to what the **Stable** channel offers. +This includes any version marked as **beta** or **rc** (release candidate). This channel is meant to +give users an advanced look at features and fixes that are done but not fully tested, yet. + +While these versions are generally stable, there is still a higher chance of encountering bugs. +**Beta** channel users are highly encouraged to enter bug reports for any issues that arise during their +use of the program. + +Use this channel if you can accept a higher rate of bugs and would like early access to releases. + + +Development +=========== +The **Development** channel includes the pre-release **alpha** versions in addition to what the **Beta** +and **Stable** channels offer. At this level, you will receive every version of the program that we publish +on GitHub. + +This channel is meant for users that would like to help us test and develop the program. While we try +to ensure that no serious bugs get out even in these early versions, we cannot make any guarantees to the +stability of the application. Users of this channel are highly encouraged to enter bug reports and +provide feedback to how development is progressing. + +Use this channel only if you can accept potentially serious bugs and would like to help us test early +versions of the program. \ No newline at end of file diff --git a/mRemoteV1/Documentation/about/versions.rst b/mRemoteV1/Documentation/about/versions.rst new file mode 100644 index 00000000..1a09468a --- /dev/null +++ b/mRemoteV1/Documentation/about/versions.rst @@ -0,0 +1,29 @@ +***************** +Version Numbering +***************** + +.. note:: + + We are currently rethinking our version numbering scheme and are considering `Semantic Versioning `_ + but will need to discuss it further. + +**Our versions follow the format:** ``Major.Minor.Patch.Build`` + ++-----------+--------------+-----------------------------------------------------------------------+ +| Name | Incremented | Description | ++===========+==============+=======================================================================+ +| ``Major`` | Manually | We currently don't increment this number | ++-----------+--------------+-----------------------------------------------------------------------+ +| ``Minor`` | manually | | We currently use this number to indicate releases that include new | +| | | | functionality and bug fixes | ++-----------+--------------+-----------------------------------------------------------------------+ +| ``Patch`` | Manually | This number represents the current patch level. | +| | | | +| | | Patches are typically released to resolve bugs | ++-----------+--------------+-----------------------------------------------------------------------+ +| ``Build`` | Manually | This number represents | +| | | ``(number of seconds since midnight)/2`` | +| | | | +| | | It exists to help prevent version | +| | | collisions during development | ++-----------+--------------+-----------------------------------------------------------------------+ diff --git a/mRemoteV1/Documentation/command_line_switches.rst b/mRemoteV1/Documentation/command_line_switches.rst new file mode 100644 index 00000000..a67b5523 --- /dev/null +++ b/mRemoteV1/Documentation/command_line_switches.rst @@ -0,0 +1,40 @@ +********************* +Command-Line Switches +********************* + +The following commandlline switches are supported by mRemoteNG: + +``/cons: PathToConnectionsFile`` +``/c: PathToConnectionsFile`` + + Loads the connections file from the given path. This path can be a: + - full file path + - path relative to the current directory + - path relative to the mRemoteNG application directory + - path relative to the mRemoteNG default connection file directory + +``/reset`` + + Resets window position, panels and toolbars + +``/resetpos`` +``/rp`` + + Reset the windows position + +``/resetpanels`` +``/rpnl`` + + Resets all panel positions. Use this if you have troubles with panel layouts + +``/resettoolbar`` +``/rtbr`` + + Resets the positions of all toolbars + +``/noreconnect`` +``/norc`` + + Temporary disables reconnect to previously opened sessions. + Use this if you have problems opening mRemoteNG after you + enabled the setting and restarted mRemoteNG diff --git a/mRemoteV1/Documentation/conf.py b/mRemoteV1/Documentation/conf.py new file mode 100644 index 00000000..19dbbe76 --- /dev/null +++ b/mRemoteV1/Documentation/conf.py @@ -0,0 +1,224 @@ +# -*- coding: utf-8 -*- +# +# Configuration file for the Sphinx documentation builder. +# +# This file does only contain a selection of the most common options. For a +# full list see the documentation: +# http://www.sphinx-doc.org/en/master/config +# -- Path setup -------------------------------------------------------------- + +# If extensions (or modules to document with autodoc) are in another directory, +# add these directories to sys.path here. If the directory is relative to the +# documentation root, use os.path.abspath to make it absolute, like shown here. +# +# import os +# import sys +# sys.path.insert(0, os.path.abspath('.')) + + +# -- Project information ----------------------------------------------------- + +project = 'mRemoteNG' +copyright = '2019 The mRemoteNG Team' +author = 'The mRemoteNG Team' + +# The short X.Y version +version = '0.0' +# The full version, including alpha/beta/rc tags +release = '0.0.alpha' + + + +######################### Begin mRemoteNG Stuff ############################### + +import re + +# Load assembly information +try: + file = open("..\\Properties\\AssemblyInfo.cs", "r") + + for line in file: + if re.match(r'(\[assembly: AssemblyTitle.*)', line): + project = line + elif re.match(r'(\[assembly: AssemblyCompany.*)', line): + author = line + elif re.match(r'(\[assembly: AssemblyVersion.*)', line): + version = line + release = line + elif re.match(r'(\[assembly: AssemblyCopyright.*)', line): + copyright = line + + project = re.search(r'\".*\"', project) + project = project.group(0).replace('\"', '') + + author = re.search(r'\".*\"', author) + author = author.group(0).replace('\"', '') + + version = re.search(r'\".*\"', version) + version = re.search(r'\"[\d].[\d].', version.group(0)) + version = version.group(0).replace('\"', '') + + release = re.search(r'\".*\"', release) + release = release.group(0).replace('\"', '') + + copyright = re.search(r'\".*\"', copyright) + copyright = copyright.group(0).replace('\"', '') +except: + print("Assembly file cannot be found, using default values") + +########################### End mRemoteNG Stuff ############################### + + + +# -- General configuration --------------------------------------------------- + +# If your documentation needs a minimal Sphinx version, state it here. +# +# needs_sphinx = '1.0' + +# Add any Sphinx extension module names here, as strings. They can be +# extensions coming with Sphinx (named 'sphinx.ext.*') or your custom +# ones.For a full list see the documentation: +# http://www.sphinx-doc.org/en/master/usage/extensions/index.html +#extensions = [ +#] + +# Add any paths that contain templates here, relative to this directory. +templates_path = ['_templates'] + +# The suffix(es) of source filenames. +# You can specify multiple suffix as a list of string: +# +# source_suffix = ['.rst', '.md'] +source_suffix = '.rst' + +# The master toctree document. +master_doc = 'index' + +# The language for content autogenerated by Sphinx. Refer to documentation +# for a list of supported languages. +# +# This is also used if you do content translation via gettext catalogs. +# Usually you set "language" from the command line for these cases. +language = None + +# List of patterns, relative to source directory, that match files and +# directories to ignore when looking for source files. +# This pattern also affects html_static_path and html_extra_path. +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +# The name of the Pygments (syntax highlighting) style to use. +pygments_style = None + + +# -- Options for HTML output ------------------------------------------------- + +# The theme to use for HTML and HTML Help pages. See the documentation for +# a list of builtin themes. +# +html_theme = 'sphinx_rtd_theme' + +# Theme options are theme-specific and customize the look and feel of a theme +# further. For a list of options available for each theme, see the +# documentation. +# +# html_theme_options = {} + +# Add any paths that contain custom static files (such as style sheets) here, +# relative to this directory. They are copied after the builtin static files, +# so a file named "default.css" will overwrite the builtin "default.css". +html_static_path = ['_static'] + +# Custom sidebar templates, must be a dictionary that maps document names +# to template names. +# +# The default sidebars (for documents that don't match any pattern) are +# defined by theme itself. Builtin themes are using these templates by +# default: ``['localtoc.html', 'relations.html', 'sourcelink.html', +# 'searchbox.html']``. + +# Remove page source editing +html_show_sourcelink = False + + +# -- Options for HTMLHelp output --------------------------------------------- + +# Output file base name for HTML help builder. +htmlhelp_basename = 'mRemoteNGdoc' + + +# -- Options for LaTeX output ------------------------------------------------ + +latex_elements = { + # The paper size ('letterpaper' or 'a4paper'). + # + # 'papersize': 'letterpaper', + + # The font size ('10pt', '11pt' or '12pt'). + # + # 'pointsize': '10pt', + + # Additional stuff for the LaTeX preamble. + # + # 'preamble': '', + + # Latex figure (float) alignment + # + # 'figure_align': 'htbp', +} + +# Grouping the document tree into LaTeX files. List of tuples +# (source start file, target name, title, +# author, documentclass [howto, manual, or own class]). +latex_documents = [ + (master_doc, 'mRemoteNG.tex', 'mRemoteNG Documentation', + 'The mRemoteNG Team', 'manual'), +] + + +# -- Options for manual page output ------------------------------------------ + +# One entry per manual page. List of tuples +# (source start file, name, description, authors, manual section). +man_pages = [ + (master_doc, 'mremoteng', 'mRemoteNG Documentation', + [author], 1) +] + + +# -- Options for Texinfo output ---------------------------------------------- + +# Grouping the document tree into Texinfo files. List of tuples +# (source start file, target name, title, author, +# dir menu entry, description, category) +texinfo_documents = [ + (master_doc, 'mRemoteNG', 'mRemoteNG Documentation', + author, 'mRemoteNG', 'One line description of project.', + 'Miscellaneous'), +] + + +# -- Options for Epub output ------------------------------------------------- + +# Bibliographic Dublin Core info. +epub_title = project + +# The unique identifier of the text. This can be a ISBN number +# or the project homepage. +# +# epub_identifier = '' + +# A unique identification for the text. +# +# epub_uid = '' + +# A list of files that should not be packed into the epub file. +epub_exclude_files = ['search.html'] + + +# -- Extension configuration ------------------------------------------------- + +# -- Options for todo extension ---------------------------------------------- + +# If true, `todo` and `todoList` produce output, else they produce nothing. +todo_include_todos = True diff --git a/mRemoteV1/Documentation/contact_mail.rst b/mRemoteV1/Documentation/contact_mail.rst new file mode 100644 index 00000000..17489691 --- /dev/null +++ b/mRemoteV1/Documentation/contact_mail.rst @@ -0,0 +1,12 @@ +**** +Mail +**** + +If you want to contact the mRemoteNG project maintainers +use the following address: support@mremoteng.org + +If you have found a security vulnerability, that you feel shouldn't be made public, +please report this to the following address: security@mremoteng.org +We will work together to determine public disclosure. +If you do not recieve a response within 48 hours to the e-mail file an issue on +GitHub and tag @sparerd and @kmscode within the issue. diff --git a/mRemoteV1/Documentation/external_tools_cheat_sheet.rst b/mRemoteV1/Documentation/external_tools_cheat_sheet.rst new file mode 100644 index 00000000..b302e40e --- /dev/null +++ b/mRemoteV1/Documentation/external_tools_cheat_sheet.rst @@ -0,0 +1,132 @@ +*********************************** +Common External Tool Configurations +*********************************** + +The list below of various examples is by no means a full list of ways to use +**External Tools** but gives you a idea of how it can be used in different ways. + +Ping +==== +Ping a server via cmdline. + +- Filename: %COMSPEC% +- Arguments: /c ping -t %HostName% +- Can integrate: Unknown + +Traceroute +========== +Run a traceroute via cmdline. + +- Filename: %COMSPEC% +- Arguments: /c set /P = | tracert %HostName% +- Can integrate: Unknown + +`WinSCP `_ +============================================ +WinSCP is a free GUI Secure Copy program. + +- Filename: C:\\Program Files\\WinSCP\\WinSCP.exe (example path) +- Arguments: scp://%Username%:%Password%@%Hostname%/ +- Can integrate: Unknown + +`FileZilla S/FTP `_ +=================================================== +Free and open source FTP client for most platforms. + +- Filename: C:\\Program Files\\FileZilla FTP Client\\filezilla.exe (example path) +- Arguments (FTP): ftp://%Username%:%Password%@%Hostname% +- Arguments (SFTP): sftp://%Username%:%Password%@%Hostname% +- Can integrate: Unknown + +`Firefox `_ +======================================================= +Don't like the built-in browser support? Integrate with the Mozilla Firefox browser directly! + +- Filename: C:\\Program Files\\Mozilla Firefox\\firefox.exe (example path) +- Arguments: %Hostname% +- Can integrate: Unknown + +`Google Chrome `_ +=========================================================================== +Google Chrome is a freeware web browser developed by Google. + +- Filename: C:\\Program Files (x86)\\Google\\Chrome\\Application\\chrome.exe (example path) +- Arguments: %Hostname% +- Can integrate: Unknown + +`Internet Explorer `_ +============================================== +Description + +- Filename: C:\\Program Files\\Internet Explorer\\iexplore.exe +- Arguments: %Hostname% +- Can integrate: Unknown + +`MySql Workbench `_ +============================================================= +MySQL Workbench provides data modeling, SQL development, and comprehensive administration tools for server configuration, user administration, backup, and much more. You will be prompted for a password when starting the connection. + +- Filename: C:\\Program Files\\MySQL\\MySQL Workbench 6.3 CE\\MySQLWorkbench.exe (example path) +- Arguments: -query %USERNAME%@%HOSTNAME% +- Can integrate: Unknown + +`VNC Viewer `_ +========================================================= + +- Filename: C:\\Program Files\\RealVNC\\VNC Viewer\\vncviewer.exe (example path) +- Arguments: %HostName% +- Can integrate: Unknown + +Windows Computer Manager +======================== + +- Filename: %WINDIR%\\system32\\compmgmt.msc +- Arguments: /Computer=%HostName% +- Can integrate: Unknown + +`Zenmap GUI `_ +======================================== +Zenmap is a GUI front-end for nmap. + +- Filename: C:\\Program Files\\Nmap\\zenmap.exe (example path) +- Arguments: -p "Quick scan plus" -t %Hostname% +- Can integrate: Unknown + +`UltraVNC `_ +====================================== +UltraVNC is a free and open source program for connection to remote machines using the VNC protocol. + +- Filename: C:\\Program Files\\UltraVNC\\vncviewer.exe (example path) +- Arguments: %HostName%:%port% -password %PASSWORD% +- Can integrate: Unknown + +COM Serial Port +=============== +This will allow you to connect to a specific COM serial port using PuTTY. + +- Filename: putty.exe (example path) +- Arguments: -serial com%Port% +- Can integrate: Yes + +Create a new connection entry with the following information: + +- Name: Serial COM***X*** +- Protocol: Ext. App +- External Tool: COM Serial Port +- Port: your desired COM port # here + +`Windows PowerShell (ISE) `_ +========================================================================================================================================================================= +Windows PowerShell is a task-based command-line shell and scripting language designed especially for system administration. + +- Filename: %WINDIR%\\system32\\WindowsPowerShell\\v1.0\\PowerShell_ISE.exe +- Arguments: args here +- Can integrate: Yes + +PowerShell, Enter-PSSession +=========================== +This will allow you to right-click a Windows connection entry and use the hostname and user/password entry to begin a remote PowerShell session. + +- Filename: %WINDIR%\\system32\\WindowsPowerShell\\v1.0\\PowerShell.exe +- Arguments: -NoExit -Command "$password = ConvertTo-SecureString '%PASSWORD%' -AsPlainText -Force; $cred = New-Object System.Management.Automation.PSCredential -ArgumentList @('%Domain%\\%Username%', $password); Enter-PSSession -ComputerName %Hostname% -Credential $cred" +- Can integrate: No diff --git a/mRemoteV1/Documentation/faq.rst b/mRemoteV1/Documentation/faq.rst new file mode 100644 index 00000000..35226e05 --- /dev/null +++ b/mRemoteV1/Documentation/faq.rst @@ -0,0 +1,18 @@ +************************** +Frequently Asked Questions +************************** + +PuTTY sometimes displays icons in the terminal +============================================== + +You sometimes see PuTTY icons on the side of the terminal (example below). + +.. figure:: /images/putty.png + +This is a new security feature in PuTTY 0.71. It is meant to signify that PuTTY itself is outputting those lines and not some remote server. +Full details are available `here `_. + +How can I edit or creat connections in bulk? +============================================ + +Currently, mRemoteNG does not have a feature to support editing or creating connections in bulk. See :ref:`bulk_connections` for more info on this. diff --git a/mRemoteV1/Documentation/folders_and_inheritance.rst b/mRemoteV1/Documentation/folders_and_inheritance.rst new file mode 100644 index 00000000..f9345fdb --- /dev/null +++ b/mRemoteV1/Documentation/folders_and_inheritance.rst @@ -0,0 +1,59 @@ +*********************** +Folders and Inheritance +*********************** + +Folders on mRemoteNG cannot only be used to categorize connections but also to inherit +properties to underlying connections. + +Example +======= +You have ten Remote Desktop enabled servers in one domain and 15 in another domain. +Normally you would spend a lot of time creating all those connections and setting +the individual properties like username, password, etc. + +In mRemoteNG there is an easier way. You just create two folders +(one for domain A and one for domain B) and set all properties there. +Then create the connections itself and let it inherit every property. +The only properties left to set on the connection itself are the connection name and hostname. +Everything else will be inherited from the parent folder. + +**Here is how you do this:** +Add the folder. This can be done like this: + +- Right click on connections and click on **New Folder** +- :menuselection:`File --> New Folder` +- Or with keybinding: :kbd:`Ctrl+Shift+N` + +.. figure:: /images/folders_and_inheritance_01.png + +Then give it a name and fill all the properties you need (like you did with the test connection). + +.. figure:: /images/folders_and_inheritance_02.png + +When you have filled in the settings and values you can either +just drag the test Connection inside the folder or create a new one. + +.. figure:: /images/folders_and_inheritance_03.png + +Right now nothing has changed and nothing will be inherited. +To enable inheritance switch to the inheritance view by clicking the dedicated button. +(Marked with a red arrow below) + +.. figure:: /images/folders_and_inheritance_04.png + +The properties that show up now are almost the same as before, +but you only select yes or no to enable or disable a inheritance. + +.. figure:: /images/folders_and_inheritance_05.png + +When no is selected the property will not be inherited, yes indicates an inherited property. +For this test set Inherit Everything to Yes. +Now if you switch back to the properties view (the button left of the inheritance button) +you should see that not much is left of all those properties. + +.. figure:: /images/folders_and_inheritance_06.png + +Only the Name and Hostname/IP properties are left over, +everything else will be inherited from the parent folder. +Of course you can also only let some of the properties be inherited. +Just play around with this a bit and you'll get the hang of it. diff --git a/mRemoteV1/Documentation/howtos/bulk_connections.rst b/mRemoteV1/Documentation/howtos/bulk_connections.rst new file mode 100644 index 00000000..74dfafb1 --- /dev/null +++ b/mRemoteV1/Documentation/howtos/bulk_connections.rst @@ -0,0 +1,18 @@ +.. _bulk_connections: + +************************* +Creating Bulk Connections +************************* + +Currently, mRemoteNG does not have a feature to support editing or creating connections in bulk. +Since this is a common issue, it would be useful to have a work around while a more user-friendly feature is developed. +The best way to create bulk connections is to generate XML with a PowerShell script. + +Since you likely don't want to spend your own time reading through XML files, we have provided an official script for doing this. +You can find the most recent version `here `_. + +A few notes about using this script: + +- While much of the setup has been done for you, you will still need to know some PowerShell in order to use this effectively. Some examples have been provided, but you will need to modify the bottom portion of the script to suite your needs. +- The script works with mRemoteNG v1.75 and will produce XML formatted for use with confCons v2.6 files. This script may need to be updated for future versions of mRemoteNG. +- As always, feel free to reach out to us in a `GitHub Issue `_ or on `Gitter `_ if you have issues. diff --git a/mRemoteV1/Documentation/howtos/external_tools.rst b/mRemoteV1/Documentation/howtos/external_tools.rst new file mode 100644 index 00000000..0fa573ac --- /dev/null +++ b/mRemoteV1/Documentation/howtos/external_tools.rst @@ -0,0 +1,76 @@ +************** +External Tools +************** + +Start External Application +========================== + +This example will create a entry that will launch and login to server using filezilla and sftp. +Start with opening up external tools from: :menuselection:`Tools --> External Tools` And create a *New* entry. +Change *Display Name* to **FileZilla** and *Filename* to **C:\\Program Files\\FileZilla FTP Client\\filezilla.exe**. See image below: + +.. figure:: /images/example_et_start_application_01.png + +We then need to arguments to use for filezilla, which we can find out either by searching for it on the great wide +internet or by called the `-h` parameter to filezilla.exe in powershell: + +:code:`& 'C:\Program Files\FileZilla FTP Client\filezilla.exe' -h` + +This will open a small dialog showing the various input parameters. +What we are going to use is the following for our entry: + +- Application: FileZilla +- Protocol - sftp:// +- Input Parameters (variables) - %HOSTNAME%, %USERNAME%,%PASSWORD% and %PORT% + +All of the variables are parsed from mRemoteNG connection item to the filezilla command line. +So lets build this entry up in **External Tools** where we add all these items. + +.. figure:: /images/example_et_start_application_02.png + +Try the launch the FileZilla based external tool now against the server you want to login too +and you will notice that the application is launched with the variables. + +Traceroute +========== + +This example will create a traceroute which you can call on for a connection to get the traceroute to the +connection. Start with opening up external tools from: :menuselection:`Tools --> External Tools` +And create a *New* entry. See :doc:`/user_interface/external_tools` +Change *Display Name* to **Traceroute** and *Filename* to **cmd**. + +See image below: + +.. figure:: /images/example_et_traceroute_01.png + + Figure 1.0: Showing traceroute init settings + +Now comes the interesting part where we fill in arguments that tells the console what to launch. +Here are the parts we need: + +- Keep the console open - /K +- Program to run - tracert +- Variable to use - %HOSTNAME% + +So lets fill these options in to the arguments like so: + +.. figure:: /images/example_et_traceroute_02.png + +This is all we really need in order to do a traceroute. Right click on a connection in the connection +list and go to :menuselection:`External Tools --> Traceroute` which will open a cmd prompt and run a +tracert against the host using hostname variable. + +.. figure:: /images/example_et_traceroute_03.png + +A console like below will appear that show the traceroute and will not exit until you close the window. + +.. figure:: /images/example_et_traceroute_04.png + +If you want to use **powershell** instead. Then follow information below: + +- Filename - powershell.exe +- Arguments - -NoExit tracert %HOSTNAME% + +Notice that we replaced the /K with -NoExit and changed **cmd** with **powershell.exe**. See image below: + +.. figure:: /images/example_et_traceroute_05.png diff --git a/mRemoteV1/Documentation/howtos/jumpservers.rst b/mRemoteV1/Documentation/howtos/jumpservers.rst new file mode 100644 index 00000000..920feafe --- /dev/null +++ b/mRemoteV1/Documentation/howtos/jumpservers.rst @@ -0,0 +1,32 @@ +.. HowTo - Jump server / Bastion host with mRemoteNG + +.. Need more information here to explain and work with hosts for jumps + +************************** +Jump server / Bastion host +************************** + +Introduction +============ +This document will not go into details on what a bastion host or a jump server really is. Instead +it will give you a howto for setting up the hosts so you can do the jump with mRemoteNG. If you need +more information regarding the function of bastion host and jump server then see links mentioned below. + +.. note:: + + The information below could probably be a lot better. If you have a better idea or easier + way to work with bastion host and jump server, then please let us know. + +References +========== +`Wikipedia Bastion host `_ + +`Wikipedia Jump server `_ + +Linux Server to target host +=========================== +In this section we will use a Ubuntu 18.04 LTS to jump to another host both RDP and SSH. + +Windows Server to target host +============================= +In this section we will use a Windows 2016 Server to jump to another host both RDP and SSH. diff --git a/mRemoteV1/Resources/Help/Screenshots/Config/main_top_bar.png b/mRemoteV1/Documentation/images/config_top_bar.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Config/main_top_bar.png rename to mRemoteV1/Documentation/images/config_top_bar.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/config_panel_01.png b/mRemoteV1/Documentation/images/connections_config.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/config_panel_01.png rename to mRemoteV1/Documentation/images/connections_config.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Config/main_window.png b/mRemoteV1/Documentation/images/connections_main.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Config/main_window.png rename to mRemoteV1/Documentation/images/connections_main.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/open_connection.png b/mRemoteV1/Documentation/images/connections_open.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/open_connection.png rename to mRemoteV1/Documentation/images/connections_open.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/new_connection.png b/mRemoteV1/Documentation/images/connections_rightclick_menu.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/new_connection.png rename to mRemoteV1/Documentation/images/connections_rightclick_menu.png diff --git a/mRemoteV1/Documentation/images/connections_status.png b/mRemoteV1/Documentation/images/connections_status.png new file mode 100644 index 00000000..ceaf83c4 Binary files /dev/null and b/mRemoteV1/Documentation/images/connections_status.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/new_connection_test_item.png b/mRemoteV1/Documentation/images/connections_test_item.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/new_connection_test_item.png rename to mRemoteV1/Documentation/images/connections_test_item.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Connections/menu_top_bar.png b/mRemoteV1/Documentation/images/connections_top_bar.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Connections/menu_top_bar.png rename to mRemoteV1/Documentation/images/connections_top_bar.png diff --git a/mRemoteV1/Resources/Help/Screenshots/CommonProblemsRDP/credssp-error.png b/mRemoteV1/Documentation/images/credssp-error.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/CommonProblemsRDP/credssp-error.png rename to mRemoteV1/Documentation/images/credssp-error.png diff --git a/mRemoteV1/Documentation/images/example_et_start_application_01.png b/mRemoteV1/Documentation/images/example_et_start_application_01.png new file mode 100644 index 00000000..8ea1f1d6 Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_start_application_01.png differ diff --git a/mRemoteV1/Documentation/images/example_et_start_application_02.png b/mRemoteV1/Documentation/images/example_et_start_application_02.png new file mode 100644 index 00000000..26aecc7a Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_start_application_02.png differ diff --git a/mRemoteV1/Documentation/images/example_et_traceroute_01.png b/mRemoteV1/Documentation/images/example_et_traceroute_01.png new file mode 100644 index 00000000..593b4fa0 Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_traceroute_01.png differ diff --git a/mRemoteV1/Documentation/images/example_et_traceroute_02.png b/mRemoteV1/Documentation/images/example_et_traceroute_02.png new file mode 100644 index 00000000..134acba0 Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_traceroute_02.png differ diff --git a/mRemoteV1/Documentation/images/example_et_traceroute_03.png b/mRemoteV1/Documentation/images/example_et_traceroute_03.png new file mode 100644 index 00000000..dc3c8422 Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_traceroute_03.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/08.png b/mRemoteV1/Documentation/images/example_et_traceroute_04.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/External Tools/08.png rename to mRemoteV1/Documentation/images/example_et_traceroute_04.png diff --git a/mRemoteV1/Documentation/images/example_et_traceroute_05.png b/mRemoteV1/Documentation/images/example_et_traceroute_05.png new file mode 100644 index 00000000..4c3dcb72 Binary files /dev/null and b/mRemoteV1/Documentation/images/example_et_traceroute_05.png differ diff --git a/mRemoteV1/Documentation/images/external_tools_external_tool_properties_01.png b/mRemoteV1/Documentation/images/external_tools_external_tool_properties_01.png new file mode 100644 index 00000000..321de595 Binary files /dev/null and b/mRemoteV1/Documentation/images/external_tools_external_tool_properties_01.png differ diff --git a/mRemoteV1/Documentation/images/external_tools_main_ui_01.png b/mRemoteV1/Documentation/images/external_tools_main_ui_01.png new file mode 100644 index 00000000..404a170b Binary files /dev/null and b/mRemoteV1/Documentation/images/external_tools_main_ui_01.png differ diff --git a/mRemoteV1/Documentation/images/external_tools_toolbar_01.png b/mRemoteV1/Documentation/images/external_tools_toolbar_01.png new file mode 100644 index 00000000..d6d56a23 Binary files /dev/null and b/mRemoteV1/Documentation/images/external_tools_toolbar_01.png differ diff --git a/mRemoteV1/Documentation/images/external_tools_tools_list_01.png b/mRemoteV1/Documentation/images/external_tools_tools_list_01.png new file mode 100644 index 00000000..0a49430a Binary files /dev/null and b/mRemoteV1/Documentation/images/external_tools_tools_list_01.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/add_new_folder.png b/mRemoteV1/Documentation/images/folders_and_inheritance_01.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/add_new_folder.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_01.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_02.png b/mRemoteV1/Documentation/images/folders_and_inheritance_02.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/example_02.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_02.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_03.png b/mRemoteV1/Documentation/images/folders_and_inheritance_03.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/example_03.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_03.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_04.png b/mRemoteV1/Documentation/images/folders_and_inheritance_04.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/example_04.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_04.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_05.png b/mRemoteV1/Documentation/images/folders_and_inheritance_05.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/example_05.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_05.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_06.png b/mRemoteV1/Documentation/images/folders_and_inheritance_06.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Reference/example_06.png rename to mRemoteV1/Documentation/images/folders_and_inheritance_06.png diff --git a/mRemoteV1/Resources/Help/Screenshots/ImportExport/export_dialog.png b/mRemoteV1/Documentation/images/import_export_dialog.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/ImportExport/export_dialog.png rename to mRemoteV1/Documentation/images/import_export_dialog.png diff --git a/mRemoteV1/Documentation/images/import_from_active_directory.png b/mRemoteV1/Documentation/images/import_from_active_directory.png new file mode 100644 index 00000000..e267b3bf Binary files /dev/null and b/mRemoteV1/Documentation/images/import_from_active_directory.png differ diff --git a/mRemoteV1/Documentation/images/import_from_port_scan.png b/mRemoteV1/Documentation/images/import_from_port_scan.png new file mode 100644 index 00000000..bb49ab7f Binary files /dev/null and b/mRemoteV1/Documentation/images/import_from_port_scan.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Main Menu/Main_Menu.png b/mRemoteV1/Documentation/images/menus_main_menu.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Main Menu/Main_Menu.png rename to mRemoteV1/Documentation/images/menus_main_menu.png diff --git a/mRemoteV1/Documentation/images/mremoteng_favicon_32.png b/mRemoteV1/Documentation/images/mremoteng_favicon_32.png new file mode 100644 index 00000000..3e8fd49d Binary files /dev/null and b/mRemoteV1/Documentation/images/mremoteng_favicon_32.png differ diff --git a/mRemoteV1/Documentation/images/mremoteng_logo.png b/mRemoteV1/Documentation/images/mremoteng_logo.png new file mode 100644 index 00000000..78f40a6b Binary files /dev/null and b/mRemoteV1/Documentation/images/mremoteng_logo.png differ diff --git a/mRemoteV1/Documentation/images/mremoteng_main_ui.png b/mRemoteV1/Documentation/images/mremoteng_main_ui.png new file mode 100644 index 00000000..9f70fdb4 Binary files /dev/null and b/mRemoteV1/Documentation/images/mremoteng_main_ui.png differ diff --git a/mRemoteV1/Documentation/images/mremoteng_main_ui_connect_win_server.png b/mRemoteV1/Documentation/images/mremoteng_main_ui_connect_win_server.png new file mode 100644 index 00000000..49b98e97 Binary files /dev/null and b/mRemoteV1/Documentation/images/mremoteng_main_ui_connect_win_server.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Notifications/notification_warning.png b/mRemoteV1/Documentation/images/notifications_panel.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Notifications/notification_warning.png rename to mRemoteV1/Documentation/images/notifications_panel.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Notifications/popup_warning.png b/mRemoteV1/Documentation/images/notifications_popup.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Notifications/popup_warning.png rename to mRemoteV1/Documentation/images/notifications_popup.png diff --git a/mRemoteV1/Resources/Help/Screenshots/CommonProblemsRDP/oracle_remediation_setting.png b/mRemoteV1/Documentation/images/oracle_remediation_setting.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/CommonProblemsRDP/oracle_remediation_setting.png rename to mRemoteV1/Documentation/images/oracle_remediation_setting.png diff --git a/mRemoteV1/Documentation/images/putty.png b/mRemoteV1/Documentation/images/putty.png new file mode 100644 index 00000000..7bbd3382 Binary files /dev/null and b/mRemoteV1/Documentation/images/putty.png differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Quick Connect/01.png b/mRemoteV1/Documentation/images/quick_connect_01.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Quick Connect/01.png rename to mRemoteV1/Documentation/images/quick_connect_01.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Quick Connect/02.png b/mRemoteV1/Documentation/images/quick_connect_02.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Quick Connect/02.png rename to mRemoteV1/Documentation/images/quick_connect_02.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Quick Connect/03.png b/mRemoteV1/Documentation/images/quick_connect_03.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Quick Connect/03.png rename to mRemoteV1/Documentation/images/quick_connect_03.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Screenshot Manager/screenshot_manager.png b/mRemoteV1/Documentation/images/screenshot_manager_overview.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Screenshot Manager/screenshot_manager.png rename to mRemoteV1/Documentation/images/screenshot_manager_overview.png diff --git a/mRemoteV1/Resources/Help/Screenshots/Screenshot Manager/rightclick_screenshot.png b/mRemoteV1/Documentation/images/screenshot_manager_rightclick_menu.png similarity index 100% rename from mRemoteV1/Resources/Help/Screenshots/Screenshot Manager/rightclick_screenshot.png rename to mRemoteV1/Documentation/images/screenshot_manager_rightclick_menu.png diff --git a/mRemoteV1/Documentation/images/ssh_file_transfer_01.png b/mRemoteV1/Documentation/images/ssh_file_transfer_01.png new file mode 100644 index 00000000..d9facb2f Binary files /dev/null and b/mRemoteV1/Documentation/images/ssh_file_transfer_01.png differ diff --git a/mRemoteV1/Documentation/images/user_interface_overview.png b/mRemoteV1/Documentation/images/user_interface_overview.png new file mode 100644 index 00000000..a7bbc0d5 Binary files /dev/null and b/mRemoteV1/Documentation/images/user_interface_overview.png differ diff --git a/mRemoteV1/Documentation/images/user_interface_panels_01.png b/mRemoteV1/Documentation/images/user_interface_panels_01.png new file mode 100644 index 00000000..c61a3d38 Binary files /dev/null and b/mRemoteV1/Documentation/images/user_interface_panels_01.png differ diff --git a/mRemoteV1/Documentation/images/user_interface_panels_02.png b/mRemoteV1/Documentation/images/user_interface_panels_02.png new file mode 100644 index 00000000..16573163 Binary files /dev/null and b/mRemoteV1/Documentation/images/user_interface_panels_02.png differ diff --git a/mRemoteV1/Documentation/images/user_interface_panels_03.png b/mRemoteV1/Documentation/images/user_interface_panels_03.png new file mode 100644 index 00000000..877b5623 Binary files /dev/null and b/mRemoteV1/Documentation/images/user_interface_panels_03.png differ diff --git a/mRemoteV1/Documentation/index.rst b/mRemoteV1/Documentation/index.rst new file mode 100644 index 00000000..ee1bc978 --- /dev/null +++ b/mRemoteV1/Documentation/index.rst @@ -0,0 +1,52 @@ +************************************* +Welcome to mRemoteNG's documentation! +************************************* + +.. toctree:: + :maxdepth: 2 + :caption: Introduction + + about.rst + installation.rst + +.. toctree:: + :maxdepth: 2 + :caption: Application Handling + + user_interface.rst + folders_and_inheritance.rst + keyboard_shortcuts.rst + sql_configuration.rst + command_line_switches.rst + +.. toctree:: + :maxdepth: 2 + :caption: Support + + troubleshooting.rst + known_issues.rst + faq.rst + +.. toctree:: + :maxdepth: 2 + :caption: HowTos + + howtos/jumpservers.rst + howtos/external_tools.rst + howtos/bulk_connections.rst + +.. toctree:: + :maxdepth: 2 + :caption: Miscellaneous + + external_tools_cheat_sheet.rst + migrate.rst + Contribute + +.. toctree:: + :maxdepth: 2 + :caption: Contact Us + + Chat + Reddit + contact_mail.rst diff --git a/mRemoteV1/Documentation/installation.rst b/mRemoteV1/Documentation/installation.rst new file mode 100644 index 00000000..fe9e684f --- /dev/null +++ b/mRemoteV1/Documentation/installation.rst @@ -0,0 +1,11 @@ +#################### +Installing mRemoteNG +#################### + +.. toctree:: + :maxdepth: 2 + + installation/supported_operating_systems.rst + installation/minimum_requirements.rst + installation/install.rst + installation/uninstall.rst diff --git a/mRemoteV1/Documentation/installation/install.rst b/mRemoteV1/Documentation/installation/install.rst new file mode 100644 index 00000000..33cf9135 --- /dev/null +++ b/mRemoteV1/Documentation/installation/install.rst @@ -0,0 +1,90 @@ +******* +Install +******* + +Downloads are provided in three different packages, binary package, portable package and +source package. They are described further down this page. + + +Binary package +============== +The binary package of mRemoteNG is a compiled version of mRemoteNG which comes in an MSI installer. +This is the most common way to install mRemoteNG and get up and running. For more custom and advanced +installs of mRemoteNG then continue reading further down this page. + +On the `mRemoteNG main website download page `_ choose +(**MSI**) from the downloads to get the binary package. + + +Portable package +================ +The portable package consists of the same files as the binary package but contains a modified version +of the executable which stores and loads all your settings from files in the application's directory. +This package can be used to run mRemoteNG from a USB stick and preserve your configuration wherever +you go. + +On the `mRemoteNG main website download page `_ choose +(**ZIP**) from the downloads to get the portable package. + + +Source package +============== +This package is a package provided to be launched within Visual Studio. The only way to launch +mRemoteNG using this package is by compiling it from inside Visual Studio. + + +Command line install +==================== +There is also the possibility to install mRemoteNG through command line with the binary package. + +For example: + +:code:`msiexec /i C:\Path\To\mRemoteNG-Installer.exe PROPERTY1=value PROPERTY2=value` + +To explain the properties that can be set during install we will go into details of them below. + +Extend Installer Properties +--------------------------- +The following extended properties can be provided to the installer when running it from the +command line. + ++---------------------+-----------------------+------------------------------------------------------+ +| Property | Accepted Values | Description | ++=====================+=======================+======================================================+ +| INSTALLDIR | Any valid folder path | | This allows you to set the installation directory | +| | | | from the command line. For paths that contain | +| | | | spaces, enclose the path in double quotes (""). | +| | | | This overrides any value found in the registry. | +| | | | Introduced in v1.75 beta 2. | ++---------------------+-----------------------+------------------------------------------------------+ +| IGNOREPREREQUISITES | ``0`` or ``1`` | | When the ``IGNOREPREREQUISITES`` property is set | +| | | | to ``1``, the installer will not be halted if any | +| | | | prerequisite check is not met. You must still run | +| | | | the installer as Admin - this flag will not remove | +| | | | that requirement. Introduced in v1.74. | ++---------------------+-----------------------+------------------------------------------------------+ + + +Examples +-------- +**Install to a custom folder** + + :code:`msiexec /i C:\Path\To\mRemoteNG-Installer.msi INSTALLDIR="D:\Work Apps\mRemoteNG"` + +**Ignore prerequisites during a normal install** + + :code:`msiexec /i C:\Path\To\mRemoteNG-Installer.msi IGNOREPREREQUISITES=1` + +**Ignore prerequisites during a silent install** + + :code:`msiexec /i C:\Path\To\mRemoteNG-Installer.msi /qn IGNOREPREREQUISITES=1` + + +Troubleshooting installation +============================ +If you find the installer is not working as expected, there are several things you can do +to troubleshoot. + +- Turn on verbose logging by using the ``/lv* `` argument at the command line. + + :code:`msiexec /i C:\Path\To\mRemoteNG-Installer.msi /l*v C:\mremoteng_install.log` diff --git a/mRemoteV1/Documentation/installation/minimum_requirements.rst b/mRemoteV1/Documentation/installation/minimum_requirements.rst new file mode 100644 index 00000000..97c780ba --- /dev/null +++ b/mRemoteV1/Documentation/installation/minimum_requirements.rst @@ -0,0 +1,50 @@ +.. _requirements: + +******************** +Minimum Requirements +******************** + +.. note:: + + In recent versions of Windows 10 and Windows Server 2016 the below requirements are already provided by the system. + +However they are listed below just in case you need to know what mRemoteNG actually needs for different protocols and +error searching on troubles with installing. + +- `Microsoft .NET Framework 4.0 `_ + +- Microsoft Terminal Service Client 8.0 or later + - Needed if you use RDP, mstscax.dll and/or msrdp.ocx be registered. + - Included with newer Windows versions `KB2574819 `_ + AND either `KB2592687 `_ or + `KB2923545 `_ is required for Windows 7/Windows Server 2008 R2 + +- `PuTTY `_ + - Needed if you use Telnet, SSH, Rlogin or RAW. Included in all packages. + - An appropriate and integrated version is included with mRemoteNG. + +- `Citrix ICA Client `_ + - Needed if you use ICA. wfica.ocx must be registered. + +Windows 7 and Windows 2008 R2 Clients +------------------------------------- +.. tip:: + + You can use powershell to check if the hotfixes are installed. Example: ``Get-HotFix | where {$_.HotFixID -eq "KB2574819" -and $_.HotFixID -eq "KB2592687"}`` + +The following updates, **must be** present on any Windows 7 or Windows Server 2008 client that will be running +mRemoteNG. (They must have been installed in the order provided below): + +- `KB2574819 `_ - Adds support for DTLS in Windows 7 SP1 and Windows Server 2008 R2 SP1 +- `KB2592687 `_ - RDP 8.0 update for Windows 7 and Windows Server 2008 R2 + +The following are suggested (but not required) for Windows 7 / Windows Server 2008 clients: + +- `KB2857650 `_ - Update that improves the RemoteApp and Desktop Connections features is available for Windows 7 +- `KB2830477 `_ - Update for RemoteApp and Desktop Connections feature is available for Windows +- `KB2913751 `_ - Smart card redirection in remote sessions fails in a Windows 7 SP1-based RDP 8.1 client +- `KB2923545 `_ - Update for RDP 8.1 is available for Windows 7 SP1 +- `KB2965788 `_ - MS14-030: Description of the security update for Remote Desktop Security Release for Windows: June 10, 2014 +- `KB2985461 `_ - Error 0x800401f0when you update RemoteApp and Desktop Connections feeds in Windows 7 or Windows Server 2008 R2 +- `KB2984972 `_ - Update for RDC 7.1to support restricted administration logons on Windows 7 and Windows Server 2008 R2 +- `KB2984976 `_ - RDP 8.0 update for restricted administration on Windows 7 or Windows Server 2008 R2 diff --git a/mRemoteV1/Documentation/installation/supported_operating_systems.rst b/mRemoteV1/Documentation/installation/supported_operating_systems.rst new file mode 100644 index 00000000..43098154 --- /dev/null +++ b/mRemoteV1/Documentation/installation/supported_operating_systems.rst @@ -0,0 +1,13 @@ +*************************** +Supported Operating Systems +*************************** + +These are the supported and tested operating systems that mRemoteNG can run on: + +- `Windows 10 `_ +- `Windows 8.1 `_ +- `Windows 7 `_ (See: :ref:`requirements`) +- `Windows Server 2016 `_ +- `Windows Server 2012 R2 `_ +- `Windows Server 2012 `_ +- `Windows Server 2008 R2 `_ (See: :ref:`requirements`) diff --git a/mRemoteV1/Documentation/installation/uninstall.rst b/mRemoteV1/Documentation/installation/uninstall.rst new file mode 100644 index 00000000..b4483fdc --- /dev/null +++ b/mRemoteV1/Documentation/installation/uninstall.rst @@ -0,0 +1,28 @@ +********* +Uninstall +********* + +Standard Uninstall +================== +mRemoteNG basic binary package can be uninstalled with Windows Control Panel. If for some reason it does not work please +follow information provided below for Manual Uninstall. + +Manual Uninstall +================ +If for some reason you cannot uninstall mRemoteNG from the Windows Control Panel, +you can manually uninstall the program using the following steps: + +.. note:: + + If you are using the Portable version, simply deleting the folder that contains mRemoteNG should be sufficient. These uninstall instructions are only necessary for the normal binary .MSI installed version of mRemoteNG + +#. Delete the folder where mRemoteNG was installed. By default, this is: + ``C:\Program Files(x86)\mRemoteNG`` + +#. Delete all mRemoteNG custom registry entries (See above table for locations) + +#. Delete the mRemoteNG install entry from one of the following locations. Search for "mRemoteNG" in the DisplayName field: + - x86: ``HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\`` + - x64: ``HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall\`` + +#. (Optional) If you would also like to delete user data, delete the folders mentioned here: diff --git a/mRemoteV1/Documentation/keyboard_shortcuts.rst b/mRemoteV1/Documentation/keyboard_shortcuts.rst new file mode 100644 index 00000000..6bbf01ef --- /dev/null +++ b/mRemoteV1/Documentation/keyboard_shortcuts.rst @@ -0,0 +1,75 @@ +****************** +Keyboard Shortcuts +****************** + +General +======= + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Keybinding + - Action + * - F1 + - Help + + +File +==== + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Keybinding + - Action + * - Ctrl+N + - New Connection + * - Ctrl+Shift+N + - New Folder + * - Ctrl+O + - Open Connection File... + * - Ctrl+S + - Save Connection FIle + * - Ctrl+Shift+S + - Save Connection File As... + + +View +==== + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Keybinding + - Action + * - Ctrl+Alt+C + - Jump to (Connections and Config) + * - Ctrl+Alt+E + - Jump to (Notifications) + * - F11 + - Fullscreen + +Connections +=========== + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Keybinding + - Action + * - Ctrl+Shift+C + - Connect + * - Ctrl+D + - Duplicate + * - F2 + - Rename + * - Del + - Delete + * - Ctrl+Up + - Move Up + * - Ctrl+Down + - Move Down diff --git a/mRemoteV1/Documentation/known_issues.rst b/mRemoteV1/Documentation/known_issues.rst new file mode 100644 index 00000000..6ab90d04 --- /dev/null +++ b/mRemoteV1/Documentation/known_issues.rst @@ -0,0 +1,139 @@ +############ +Known Issues +############ + +CredSSP - CVE-2018-0886 - Authentication error +============================================== + +mRemoteNG uses the Microsoft Terminal Services Client (MSTSC) libraries +in order to make Remote Desktop connections. + +.. note:: + + mRemoteNG has no control over the functionality changes implemented by Microsoft. + +Please refer to `Microsoft's Documentation `_ for full details regarding this problem. +Patched clients attempting to connect to Unpatched servers will fail with the following error: + +.. figure:: /images/credssp-error.png + +The same error will occur with MSTSC directly on a patched +client attempting to connect to an unpatched server. + +Per the MS documentation, the only way around this is to do the following: + +- Patch the servers +- set the "Encryption Oracle Remediation" policy to "Vulnerable" - refer to the MS documentation above for details: + + .. figure:: /images/oracle_remediation_setting.png + +- Uninstall `KB4103727 `_ + +I can't open more than X number of RDP sessions. New sessions fail with error code 3334 +======================================================================================= +The issue here is likely the amount of resources available to the RDP component to open the connection. This was alleviated in `MR-714 `_ and `MR-864 `_ + +Other things you can do to help reduce the issue: + +- On your RDP connections, set CacheBitmaps to False (this reduces the memory usage of each connection) +- Consider removing KB2830477 if you have it installed. This seems to increase the likelyhood of getting 3334 error codes. + +RDP connections fail with error code 264 +======================================== +This issue is often caused by trying to retrieve session information. + +Try doing the following: + +- Disable "Automatically get session information" (Tools -> Options -> Advanced) + +ATI Tray Tools +============== +mRemoteNG is not compatible with ATI Tray Tools. We are aware of the issue and +hope to have it fixed in a future version. We recommend that you disable or +uninstall ATI Tray Tools while using mRemoteNG. + +mRemoteNG crashes with the error "Class not registered" when trying to connect using RDP +======================================================================================== +You may also see a message like "System.Runtime.InteropServices.COMException (0x80040154)" + +If you are running mRemoteNG on Windows 7 or Server 2008: + +- You may be missing one or more required windows updates (See: :ref:`requirements`.). +- A common issue is that `KB2574819 `_ is either missing or has been installed after `KB2592687 `_. They must be installed in the correct order. If you do not have KB2574819, follow these instructions: + - Uninstall `KB2592687 `_ + - Install `KB2574819 `_ + - (Re)Install `KB2592687 `_ + - Reboot your machine + +If you are running mRemoteNG on Windows 8/10 or Server 2012+: + +- Try to repair the mRemoteNG installation using the installer or uninstall/reinstall. Receiving this error on these OS's is just an install fluke (or you've fiddled with your registry). + +VNC connections fail with the error "The server is using an unsupported version of the RFB protocol. The server is using version 4.1 but only version 3.x is supported." +======================================================================================================================================================================== +RFB version 4.0 and higher is a proprietary version owned by `RealVNC Limited `_. Building support for newer versions will likely result in licensing fees. Therefore, it is unlikely that mRemoteNG will have support for version 4.0+ anytime soon. + +Unfortunately, the only way around this limitation is to use an open source +implementation of VNC server such as `TightVNC `_ +or `UltraVNC `_ + +Cannot click some UI elements in an RDP connection window. +========================================================== +It may seem like some elements are not clickable along the top +and left sides of your RDP connection window. More information can be found in issue #210 + +This is likely due to non-standard (>100%) DPI scaling on your local machine. + +To turn this off: + +On Windows 7 / 8 + +- Start menu -> Control Panel -> Display +- Ensure the option **Smaller - 100% (default)** is selected + +On Windows 10 + +- Start menu -> Settings -> Display +- Ensure the slider under **Change the size of text, apps, and other items** is all the way to the left (at 100%) + +SSH login fails when password contains extended ASCII characters +================================================================ +Initial login to SSH (or WinSCP) fails when the password contains +extended ASCII characters (such as: €šœ£ÁØë). +Typing the password into the SSH session directly works. + +Investigation suggests that there is an issue in character encoding +when mRemoteNG passes the value to the cmd line, which then invokes PuTTY. +This was investigated in issue `#186 `_ + +The only resolution for this issue is to not use extended ASCII characters +in passwords that will be sent to PuTTY or similar tools. + +RDP tries to reconnect whenever I resize the window +=================================================== +Your RDP connection reconnects after resizing mRemoteNG or the connection panel. + +This will occur anytime the connection window changes size and +the following connection options are set: + +- Resolution: **Fit to Panel** +- Automatic Resize: **Yes** + +To prevent reconnecting, you can do one of several things: + +- Change the resolution to Smart Size. This will scale the original connection area when the view window size changes. This does not preserve aspect ratio. +- Turn off Automatic Resize. When the view window size changes, you will see scroll bars or dead space. + +There is no way to update the view window size without a reconnect. +This is an RDP protocol limitation. + +AltGr key combinations stop working in other apps when connected to RDP +======================================================================= +When connected to an RDP session AltGr, keyboard combinations sometimes stop working. + +This is a known issue with The Microsoft RDP library that cannot be solved by mRemoteNG. +There are three known work arounds for this issue: + +- Disconnect the RDP session which caused the issue. Since it can be difficult to determine which connection is to blame, you may need to disconnect all RDP sessions. Once you have confirmed AltGr combinations are working again, you may reconnect your RDP session(s). +- When the issue occurs, hold/press the Ctrl key. This is known to release the AltGr key from the RDP session. +- Use :kbd:`Ctrl` + :kbd:`Alt` instead of :kbd:`AltGr`. diff --git a/mRemoteV1/Documentation/migrate.rst b/mRemoteV1/Documentation/migrate.rst new file mode 100644 index 00000000..6c0b4d77 --- /dev/null +++ b/mRemoteV1/Documentation/migrate.rst @@ -0,0 +1,38 @@ +***************************** +Migrate Settings from mRemote +***************************** + +mRemoteNG does not automatically migrate settings from old (non-NG) versions of mRemote. +You will manually need to copy your settings files from mRemote to mRemoteNG. + +On Windows XP / Windows Home Server / Windows Server 2003 +========================================================= +Copy all the files in this folder: + +:: + + C:\Documents and Settings\[username]\Local Settings\Application Data\Felix_Deimel\mRemote + +To this folder: + +:: + + C:\Documents and Settings\[username]\Local Settings\Application Data\mRemoteNG + +On Windows Vista / Windows 7 / Windows Server 2008 +================================================== + +Copy all the files in this folder: + +:: + + C:\Users\[username]\AppData\Local\Felix_Deimel\mRemote + +To this folder: + +:: + + C:\Users\[username]\AppData\Local\mRemoteNG + +If you keep both programs installed on your computer, +changes within one program will not affect the other. diff --git a/mRemoteV1/Documentation/sql_configuration.rst b/mRemoteV1/Documentation/sql_configuration.rst new file mode 100644 index 00000000..6b4c23aa --- /dev/null +++ b/mRemoteV1/Documentation/sql_configuration.rst @@ -0,0 +1,381 @@ +.. _sql_configuration: + +***************** +SQL Configuration +***************** + +.. warning:: + + The SQL feature is in an early beta stage and not intended for use in an productive environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server. + +Supported Databases +=================== + +The list below includes databases that are officially supported. Others may already work and this list may expand with future updates. + +- MSSQL +- MySQL + +Steps to configure your SQL Server +================================== +- Create a new Database called "mRemoteNG" on your SQL Server. +- Run the SQL Script for your DB type listed below in topic (SQL Table creation Scripts) on the newly created Database. +- Give the users that you want to grant access to the mRemoteNG Connections Database Read/Write permissions on the Database. + +Steps to configure mRemoteNG for SQL +==================================== +- Start mRemoteNG if it's not already running. +- Go to Tools - Options - SQL Server +- Check the box that says "Use SQL Server to load & save connections". +- Fill in your SQL Server hostname or ip address. +- If you do not use your Windows logon info to authenticate against the SQL Server fill in the correct Username and Password. +- Click OK to apply the changes. The main window title should now change to "mRemoteNG | SQL Server". +- 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't work yet) +- You should now be able to do everything you were able to do with the XML storage plus see the changes live on another mRemoteNG instance that is connected to the same Database. + +SQL Table creation Scripts +========================== + +MSSQL +----- + +.. code-block:: sql + + if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) + drop table [dbo].[tblCons] + GO + + if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) + drop table [dbo].[tblRoot] + GO + + if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) + drop table [dbo].[tblUpdate] + GO + + CREATE TABLE [dbo].[tblCons] ( + [ID] [int] IDENTITY (1001, 1) NOT NULL , + [ConstantID] [varchar] (128) NULL , + [PositionID] [int] NOT NULL , + [ParentID] [varchar] (128) NULL , + [LastChange] [datetime] NOT NULL , + [Name] [varchar] (128) NOT NULL , + [Type] [varchar] (32) NOT NULL , + [Expanded] [bit] NOT NULL , + [Description] [varchar] (1024) NULL , + [Icon] [varchar] (128) NOT NULL , + [Panel] [varchar] (128) NOT NULL , + [Username] [varchar] (512) NULL , + [DomainName] [varchar] (512) NULL , + [Password] [varchar] (1024) NULL , + [Hostname] [varchar] (512) NULL , + [Protocol] [varchar] (32) NOT NULL , + [PuttySession] [varchar] (128) NULL , + [Port] [int] NOT NULL , + [ConnectToConsole] [bit] NOT NULL , + [UseCredSsp] [bit] NOT NULL , + [RenderingEngine] [varchar] (10) NULL , + [ICAEncryptionStrength] [varchar] (32) NOT NULL , + [RDPAuthenticationLevel] [varchar] (32) NOT NULL , + [RDPMinutesToIdleTimeout] [int] NOT NULL, + [RDPAlertIdleTimeout] [bit] NOT NULL, + [Colors] [varchar] (32) NOT NULL , + [Resolution] [varchar] (32) 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 , + [RedirectPrinters] [bit] NOT NULL , + [RedirectSmartCards] [bit] NOT NULL , + [RedirectSound] [varchar] (64) NOT NULL , + [SoundQuality] [varchar] (20) NOT NULL, + [RedirectAudioCapture] [bit] NOT NULL, + [RedirectKeys] [bit] NOT NULL , + [Connected] [bit] NOT NULL , + [PreExtApp] [varchar] (256) NULL , + [PostExtApp] [varchar] (256) NULL , + [MacAddress] [varchar] (32) NULL , + [UserField] [varchar] (256) NULL , + [ExtApp] [varchar] (256) NULL , + [VNCCompression] [varchar] (10) NULL , + [VNCEncoding] [varchar] (20) NULL , + [VNCAuthMode] [varchar] (10) NULL , + [VNCProxyType] [varchar] (20) NULL , + [VNCProxyIP] [varchar] (128) NULL , + [VNCProxyPort] [int] NULL , + [VNCProxyUsername] [varchar] (512) NULL , + [VNCProxyPassword] [varchar] (1024) NULL , + [VNCColors] [varchar] (10) NULL , + [VNCSmartSizeMode] [varchar] (20) NULL , + [VNCViewOnly] [bit] NOT NULL , + [RDGatewayUsageMethod] [varchar] (32) NOT NULL , + [RDGatewayHostname] [varchar] (512) NULL , + [RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL , + [RDGatewayUsername] [varchar] (512) NULL , + [RDGatewayPassword] [varchar] (1024) NULL , + [RDGatewayDomain] [varchar] (512) NULL , + [InheritCacheBitmaps] [bit] NOT NULL , + [InheritColors] [bit] NOT NULL , + [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 , + [InheritPassword] [bit] NOT NULL , + [InheritPort] [bit] NOT NULL , + [InheritProtocol] [bit] NOT NULL , + [InheritPuttySession] [bit] NOT NULL , + [InheritRedirectDiskDrives] [bit] NOT NULL , + [InheritRedirectKeys] [bit] NOT NULL , + [InheritRedirectPorts] [bit] NOT NULL , + [InheritRedirectPrinters] [bit] NOT NULL , + [InheritRedirectSmartCards] [bit] NOT NULL , + [InheritRedirectSound] [bit] NOT NULL , + [InheritSoundQuality] [bit] NOT NULL, + [InheritRedirectAudioCapture] [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 , + [InheritRDPMinutesToIdleTimeout] [bit] NOT NULL, + [InheritRDPAlertIdleTimeout] [bit] NOT NULL, + [InheritUsername] [bit] NOT NULL , + [InheritPreExtApp] [bit] NOT NULL , + [InheritPostExtApp] [bit] NOT NULL , + [InheritMacAddress] [bit] NOT NULL , + [InheritUserField] [bit] NOT NULL , + [InheritExtApp] [bit] NOT NULL , + [InheritVNCCompression] [bit] NOT NULL, + [InheritVNCEncoding] [bit] NOT NULL , + [InheritVNCAuthMode] [bit] NOT NULL , + [InheritVNCProxyType] [bit] NOT NULL , + [InheritVNCProxyIP] [bit] NOT NULL , + [InheritVNCProxyPort] [bit] NOT NULL , + [InheritVNCProxyUsername] [bit] NOT NULL , + [InheritVNCProxyPassword] [bit] NOT NULL , + [InheritVNCColors] [bit] NOT NULL , + [InheritVNCSmartSizeMode] [bit] NOT NULL , + [InheritVNCViewOnly] [bit] NOT NULL , + [InheritRDGatewayUsageMethod] [bit] NOT NULL , + [InheritRDGatewayHostname] [bit] NOT NULL , + [InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL , + [InheritRDGatewayUsername] [bit] NOT NULL , + [InheritRDGatewayPassword] [bit] NOT NULL , + [InheritRDGatewayDomain] [bit] NOT NULL , + [LoadBalanceInfo] [varchar] (1024) NULL , + [AutomaticResize] [bit] NOT NULL DEFAULT 1 , + [InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 , + [InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 , + [RedirectClipboard] [bit] NOT NULL DEFAULT 0 , + [InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0 + ) ON [PRIMARY] + GO + + CREATE TABLE [dbo].[tblRoot] ( + [Name] [varchar] (2048) NOT NULL , + [Export] [bit] NOT NULL , + [Protected] [varchar] (4048) NOT NULL , + [ConfVersion] [float] NOT NULL + ) ON [PRIMARY] + GO + + CREATE TABLE [dbo].[tblUpdate] ( + [LastUpdate] [datetime] NULL + ) ON [PRIMARY] + GO + +MYSQL +----- + +.. code-block:: sql + + /*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; + /*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; + /*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; + /*!40101 SET NAMES utf8 */; + /*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; + /*!40103 SET TIME_ZONE='+00:00' */; + /*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; + /*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; + /*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; + /*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; + + -- + -- Table structure for table `tblCons` + -- + + DROP TABLE IF EXISTS `tblCons`; + /*!40101 SET @saved_cs_client = @@character_set_client */; + /*!40101 SET character_set_client = utf8 */; + CREATE TABLE `tblCons` ( + `ID` int(11) NOT NULL AUTO_INCREMENT, + `ConstantID` varchar(128) DEFAULT NULL, + `PositionID` int(11) NOT NULL, + `ParentID` varchar(128) DEFAULT NULL, + `LastChange` datetime NOT NULL, + `Name` varchar(128) NOT NULL, + `Type` varchar(32) NOT NULL, + `Expanded` tinyint(1) NOT NULL, + `Description` varchar(1024) DEFAULT NULL, + `Icon` varchar(128) NOT NULL, + `Panel` varchar(128) NOT NULL, + `Username` varchar(512) DEFAULT NULL, + `DomainName` varchar(512) DEFAULT NULL, + `Password` varchar(1024) DEFAULT NULL, + `Hostname` varchar(512) DEFAULT NULL, + `Protocol` varchar(32) NOT NULL, + `PuttySession` varchar(128) DEFAULT NULL, + `Port` int(11) NOT NULL, + `ConnectToConsole` tinyint(1) NOT NULL, + `UseCredSsp` tinyint(1) NOT NULL, + `RenderingEngine` varchar(10) DEFAULT NULL, + `ICAEncryptionStrength` varchar(32) NOT NULL, + `RDPAuthenticationLevel` varchar(32) NOT NULL, + `RDPMinutesToIdleTimeout` int(11) NOT NULL, + `RDPAlertIdleTimeout` tinyint(1) NOT NULL, + `Colors` varchar(32) NOT NULL, + `Resolution` varchar(32) NOT NULL, + `DisplayWallpaper` tinyint(1) NOT NULL, + `DisplayThemes` tinyint(1) NOT NULL, + `EnableFontSmoothing` tinyint(1) NOT NULL, + `EnableDesktopComposition` tinyint(1) NOT NULL, + `CacheBitmaps` tinyint(1) NOT NULL, + `RedirectDiskDrives` tinyint(1) NOT NULL, + `RedirectPorts` tinyint(1) NOT NULL, + `RedirectPrinters` tinyint(1) NOT NULL, + `RedirectSmartCards` tinyint(1) NOT NULL, + `RedirectSound` varchar(64) NOT NULL, + `SoundQuality` varchar(20) NOT NULL, + `RedirectAudioCapture` tinyint(1) NOT NULL, + `RedirectKeys` tinyint(1) NOT NULL, + `Connected` tinyint(1) NOT NULL, + `PreExtApp` varchar(256) DEFAULT NULL, + `PostExtApp` varchar(256) DEFAULT NULL, + `MacAddress` varchar(32) DEFAULT NULL, + `UserField` varchar(256) DEFAULT NULL, + `ExtApp` varchar(256) DEFAULT NULL, + `VNCCompression` varchar(10) DEFAULT NULL, + `VNCEncoding` varchar(20) DEFAULT NULL, + `VNCAuthMode` varchar(10) DEFAULT NULL, + `VNCProxyType` varchar(20) DEFAULT NULL, + `VNCProxyIP` varchar(128) DEFAULT NULL, + `VNCProxyPort` int(11) DEFAULT NULL, + `VNCProxyUsername` varchar(512) DEFAULT NULL, + `VNCProxyPassword` varchar(1024) DEFAULT NULL, + `VNCColors` varchar(10) DEFAULT NULL, + `VNCSmartSizeMode` varchar(20) DEFAULT NULL, + `VNCViewOnly` tinyint(1) NOT NULL, + `RDGatewayUsageMethod` varchar(32) NOT NULL, + `RDGatewayHostname` varchar(512) DEFAULT NULL, + `RDGatewayUseConnectionCredentials` varchar(32) NOT NULL, + `RDGatewayUsername` varchar(512) DEFAULT NULL, + `RDGatewayPassword` varchar(1024) DEFAULT NULL, + `RDGatewayDomain` varchar(512) DEFAULT NULL, + `InheritCacheBitmaps` tinyint(1) NOT NULL, + `InheritColors` tinyint(1) NOT NULL, + `InheritDescription` tinyint(1) NOT NULL, + `InheritDisplayThemes` tinyint(1) NOT NULL, + `InheritDisplayWallpaper` tinyint(1) NOT NULL, + `InheritEnableFontSmoothing` tinyint(1) NOT NULL, + `InheritEnableDesktopComposition` tinyint(1) NOT NULL, + `InheritDomain` tinyint(1) NOT NULL, + `InheritIcon` tinyint(1) NOT NULL, + `InheritPanel` tinyint(1) NOT NULL, + `InheritPassword` tinyint(1) NOT NULL, + `InheritPort` tinyint(1) NOT NULL, + `InheritProtocol` tinyint(1) NOT NULL, + `InheritPuttySession` tinyint(1) NOT NULL, + `InheritRedirectDiskDrives` tinyint(1) NOT NULL, + `InheritRedirectKeys` tinyint(1) NOT NULL, + `InheritRedirectPorts` tinyint(1) NOT NULL, + `InheritRedirectPrinters` tinyint(1) NOT NULL, + `InheritRedirectSmartCards` tinyint(1) NOT NULL, + `InheritRedirectSound` tinyint(1) NOT NULL, + `InheritSoundQuality` tinyint(1) NOT NULL, + `InheritRedirectAudioCapture` tinyint(1) NOT NULL, + `InheritResolution` tinyint(1) NOT NULL, + `InheritUseConsoleSession` tinyint(1) NOT NULL, + `InheritUseCredSsp` tinyint(1) NOT NULL, + `InheritRenderingEngine` tinyint(1) NOT NULL, + `InheritICAEncryptionStrength` tinyint(1) NOT NULL, + `InheritRDPAuthenticationLevel` tinyint(1) NOT NULL, + `InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL, + `InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL, + `InheritUsername` tinyint(1) NOT NULL, + `InheritPreExtApp` tinyint(1) NOT NULL, + `InheritPostExtApp` tinyint(1) NOT NULL, + `InheritMacAddress` tinyint(1) NOT NULL, + `InheritUserField` tinyint(1) NOT NULL, + `InheritExtApp` tinyint(1) NOT NULL, + `InheritVNCCompression` tinyint(1) NOT NULL, + `InheritVNCEncoding` tinyint(1) NOT NULL, + `InheritVNCAuthMode` tinyint(1) NOT NULL, + `InheritVNCProxyType` tinyint(1) NOT NULL, + `InheritVNCProxyIP` tinyint(1) NOT NULL, + `InheritVNCProxyPort` tinyint(1) NOT NULL, + `InheritVNCProxyUsername` tinyint(1) NOT NULL, + `InheritVNCProxyPassword` tinyint(1) NOT NULL, + `InheritVNCColors` tinyint(1) NOT NULL, + `InheritVNCSmartSizeMode` tinyint(1) NOT NULL, + `InheritVNCViewOnly` tinyint(1) NOT NULL, + `InheritRDGatewayUsageMethod` tinyint(1) NOT NULL, + `InheritRDGatewayHostname` tinyint(1) NOT NULL, + `InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL, + `InheritRDGatewayUsername` tinyint(1) NOT NULL, + `InheritRDGatewayPassword` tinyint(1) NOT NULL, + `InheritRDGatewayDomain` tinyint(1) NOT NULL, + `LoadBalanceInfo` varchar(1024) DEFAULT NULL, + `AutomaticResize` tinyint(1) NOT NULL DEFAULT 1, + `InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0, + `InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0, + `RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, + `InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, + PRIMARY KEY (`ID`) + ) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1; + /*!40101 SET character_set_client = @saved_cs_client */; + + -- + -- Table structure for table `tblRoot` + -- + + DROP TABLE IF EXISTS `tblRoot`; + /*!40101 SET @saved_cs_client = @@character_set_client */; + /*!40101 SET character_set_client = utf8 */; + CREATE TABLE `tblRoot` ( + `Name` varchar(2048) NOT NULL, + `Export` tinyint(1) NOT NULL, + `Protected` varchar(4048) NOT NULL, + `ConfVersion` double NOT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=latin1; + /*!40101 SET character_set_client = @saved_cs_client */; + + -- + -- Table structure for table `tblUpdate` + -- + + DROP TABLE IF EXISTS `tblUpdate`; + /*!40101 SET @saved_cs_client = @@character_set_client */; + /*!40101 SET character_set_client = utf8 */; + CREATE TABLE `tblUpdate` ( + `LastUpdate` datetime(3) DEFAULT NULL + ) ENGINE=InnoDB DEFAULT CHARSET=latin1; + /*!40101 SET character_set_client = @saved_cs_client */; + + + /*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; + + /*!40101 SET SQL_MODE=@OLD_SQL_MODE */; + /*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; + /*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; + /*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; + /*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; + /*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; + /*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; diff --git a/mRemoteV1/Documentation/troubleshooting.rst b/mRemoteV1/Documentation/troubleshooting.rst new file mode 100644 index 00000000..ee504a7f --- /dev/null +++ b/mRemoteV1/Documentation/troubleshooting.rst @@ -0,0 +1,69 @@ +*************** +Troubleshooting +*************** + +Logfile +======= + +The mRemoteNG.log is located in the following location: + +MSI/Installed version +--------------------- + +:: + + %APPDATA%\mRemoteNG\mRemoteNG.log + (example: `C:\Users\[username]\AppData\Roaming\mRemoteNG\mRemoteNG.log`) + +Portable version +---------------- + +:: + + [location of mRemoteNG.exe]\mRemoteNG.log + +Crash at Startup +================ + +Try deleting your `user.config `_ file, see https://support.microsoft.com/en-us/kb/956762 + +Crash Information +================= + +- Provide the Stack Trace from the crash prompt or from the Windows Application Event Log `example `_) +- Check `C:\Users\All Users\Microsoft\Windows\WER\Report*` folders for any reports related to mRemoteNG +- Check `%LOCALAPPDATA%\CrashDumps `_ for any mRemoteNG.exe.*.dmp files +- Attach the Error Reports, Dumps and mRemoteNG.log to a new `Issue `_ + +Backup and Recovery +=================== + +By default, your connections file is backed up every time it is saved. +These backup files are normal/valid connections file - they have only been renamed to avoid being overwritten. +mRemoteNG will save the 10 most recent backups. + +Files and Locations +------------------- + +Your backup files are located in the same place as your normal connections file. +This could be one of three places: + +- Normal version: `%AppData%\mRemoteNG` +- Portable version: In the same location as mRemoteNG.exe +- If you have saved your confCons.xml to a custom location, go there. + +There are 2 different backup naming schemes: + +- `confCons.xml.backup` is the most recent backup that was taken. +- `confCons.xml.YYYYMMDD-HHmmssxxxx.backup` is a rolling backup that was moved to a rolling backup file on the date specified in the file name. + +Recovering corrupted connections file +------------------------------------- + +If you find that your confCons.xml file has corrupted or has lost its data, +you will need to revert to a previous version. + +- Locate your confCons.xml file +- Find the most recent backup file that appears to have data (>1KB in size). +- Rename or delete the corrupted `confCons.xml` file. +- Rename the chosen backup file to remove the date stamp and .backup suffix. Unless you set a custom path, your backup file should now be named `confCons.xml`. diff --git a/mRemoteV1/Documentation/user_interface.rst b/mRemoteV1/Documentation/user_interface.rst new file mode 100644 index 00000000..3a472350 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface.rst @@ -0,0 +1,21 @@ +############## +User Interface +############## + +.. figure:: /images/user_interface_overview.png + +.. toctree:: + :maxdepth: 1 + + user_interface/main_window.rst + user_interface/panels.rst + user_interface/menus.rst + user_interface/connections.rst + user_interface/quick_connect.rst + user_interface/port_scan.rst + user_interface/screenshot_manager.rst + user_interface/notifications.rst + user_interface/import_export.rst + user_interface/ssh_file_transfer.rst + user_interface/external_tools.rst + user_interface/options.rst diff --git a/mRemoteV1/Documentation/user_interface/connections.rst b/mRemoteV1/Documentation/user_interface/connections.rst new file mode 100644 index 00000000..9fa9b269 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/connections.rst @@ -0,0 +1,147 @@ +*********** +Connections +*********** + +The connections dialog is the main collection of all connections that inside mRemoteNG. +This document will explain the details of the connections dialog. + +Connection Tree +=============== + +Menu Items +---------- + +.. figure:: /images/connections_top_bar.png + +- **Red** - New Connection +- **Green** - New Folder +- **Blue** - View (Expand/Collapse all folders) +- **Yellow** - Ascending sort + +New Connection +-------------- + +.. tip:: + + You can also duplicate an already created connection if you want to follow some sort of template of a connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large. + +Creates a new connection item in the connections dialog after where cursor is present. + +New Folder +---------- + +.. tip:: + + Folders can help to make adding connections easier. By setting a folder with some values that can be inheritaded down to the connections. + +Creates a new folder in connections dialog after where cursor is present. + +View +---- +Collapses or expands all directories in the connection dialog. +Useful when working with a lot of connections sorted in different directories. + +Ascending +--------- +Works like a sort or a refresh to get connection in ascending order. +(Descending order is note supported yet) When you have been moving around in the tree of connections, +just click this item to refresh the list and get everything in ascending ordering. + +Configuration +============= + +.. figure:: /images/connections_main.png + +Config dialog to setup the connection specific properties. +This includes inheritance from other items before the item and more. +Details below is about how to work with this dialog to get the most out of connections and configuration. + +Menu Items +---------- + +.. figure:: /images/config_top_bar.png + +- **Red** - Sort values Categories or Alphabetical +- **Green** - Show Properties, Inheritance values +- **Blue** - Connection icon +- **Yellow** - Host status (based on ICMP ping) + +Sort Values +----------- +Sorts the values in properties either by Categories or Alphabetically. + +- Categories sort - Shows values in categories with expanding options. +- Alphabetical sort - Expands everything and shows values in alphabetical order instead + +Icon +---- + +.. note:: + + Don't forget that mRemoteNG will save the change on exit auto unless you have unchecked this setting in options. + +The icon indicates the visual identifier for the connection. +Clicking the icon will let you set a different icon for the connection. + +Status +------ + +.. note:: + + In order for this to work you have to open up ICMP. On windows servers this is also disabled in windows firewall. + +Is a indicator that will glow red or green depending on the status of the host. +The status is based on ICMP ping to the host. + + +Creating a connection +===================== + +.. tip:: + + You can see an indicator in the properties window that is glowing green: + + .. figure:: /images/connections_status.png + + This icon does a ICMP ping on to check response from the server. If it glows green it indicates a connection response can be made using ping to the host. However this is turned off on windows by default. You have to enable ICMP and allow the firewall access for it. + + +Right click on the root item (the little blue globe named **Connections**) +in the Connections panel and select **New Connection**. + +.. figure:: /images/connections_rightclick_menu.png + +A new item shows up under the root item. You can give it a name now (or rename it later). +We'll just call this connection "Test" for the moment. + +.. figure:: /images/connections_test_item.png + +Now lets look at the config panel in the bottom left, just under the connections panel. +As you may notice this is where you configure all the properties of connections and folders. + +.. figure:: /images/connections_config.png + +Fill in the necessary properties and you have just created your first connection! +You can now connect to the server with a simple double-click on the "Test"-connection! + +Opening and Closing Connections +=============================== + +.. note:: + + If the connecting fails, the notifications panel will pop up and show an error message describing the problem. + +There are multiple ways to open a connection in mRemoteNG, +but the easiest way is to double click the connection in the Connections panel. +If you double click the connection you will notice that the connection is going +to try and open in a new panel called "General" and under a tab called "Test". +If all goes well you should see the remote desktop without any problems. + +.. figure:: /images/connections_open.png + +To close the connection you can do any of the following: + +- Log off in the start menu (Closes the connection and logs you out completely from RDP) +- Close the panel with the (Which leaves your session active on server but closes connection in mRemoteNG) +- Close the connection tab with (Also keeps your login active on server but closes RDP connection in mRemoteNG) +- Double click the connection tab (Same as above where the connection is active on server but closes RDP connection in mRemoteNG) diff --git a/mRemoteV1/Documentation/user_interface/external_tools.rst b/mRemoteV1/Documentation/user_interface/external_tools.rst new file mode 100644 index 00000000..c9bd34e4 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/external_tools.rst @@ -0,0 +1,198 @@ +.. _external_tools: + +************** +External Tools +************** + +External Tools can help you get things done that can't be done in mRemoteNG. + +For example you can: + +- Start a command +- Launch your favorite FTP tool + +This might not make much sense by itself because you can already launch your applications by using the Windows Start Menu, +Quick Launch or whatever you prefer to start your apps. + +But from within mRemoteNG you can launch applications and tell them what to do with the use of arguments, parameters and variables +of the currently selected Connection. You can, for example, select your home router's SSH connection entry and do a traceroute (tracert) +on that host. This is much quicker and more powerful than opening the console and typing ``tracert yourhost``. + +Main UI +======= +The below image will show the main UI of *External Tools*. You may find the interface a bit confusing in the beginning but +we will explain the various items in more details below. + +:Menu: :menuselection:`Tools --> External Tools` + +.. figure:: /images/external_tools_main_ui_01.png + + External Tools open with one new entry + + Toolbar (red), Tools/Items List (blue), External Tool Properties (green) + +Toolbar +------- + +.. figure:: /images/external_tools_toolbar_01.png + + External Tools - Toolbar + +New ``Shift-F4`` + Create a new external tool. + +Delete ``Del`` + Delete selected tool item in list. + +Launch + Run the current selected tool on currently selected connection. + +.. hint:: + + All items can be accessed with right click menu and with a keyboard shortcut except for the Launch action. + +Tools/Items List +---------------- + +.. figure:: /images/external_tools_tools_list_01.png + + External Tools - Tools/Items list + +Basically shows the list of Tools/Items that you have created with the arguments and options. + +External Tool Properties +------------------------ + +.. figure:: /images/external_tools_external_tool_properties_01.png + + External Tools - External Tool Properties + +Is where you do most of the work to setup the Tool/Item for External Tools. We will explain each item further down this page. + +Display Name + Name of the tool, this can be any type of name. + + **For example:** + + :code:`Open in FileZilla`, :code:`FileZilla`, :code:`Traceroute` + +Filename + Application/Command to run. + + **For example:** + + :code:`cmd`, :code:`powershell`, :code:`C:\WINDOWS\system32\compmgmt.msc`, + :code:`C:\Program Files(x86)\FileZilla FTP Client\filezilla.exe` + +Arguments + Sometimes also called switches and parameters. This is where you tell the application in the previous (filename) input what to run. + And also which variables from mRemoteNG to use for the arguments. + + **For Example:** + + :code:`sftp://%USERNAME%:%PASSWORD%@%HOSTNAME%:%PORT%`, :code:`/K tracert %HOSTNAME%`, :code:`-NoExit tracert %HOSTNAME%` + +Working directory + From where should this Tool/Item be ran. + +Variables +========= + +Variables and arguments can be used to tell the external tool what to do. + +This is the list of variables supported by mRemoteNG: + +- %NAME% +- %HOSTNAME% +- %PORT% +- %USERNAME% +- %PASSWORD% +- %DOMAIN% +- %DESCRIPTION% +- %MACADDRESS% +- %USERFIELD% + +mRemoteNG will also expand environment variables such as %PATH% and %USERPROFILE%. If you need to use an environment +variable with the same name as an mRemoteNG variable, use \\% instead of %. The most common use of this is for the +USERNAME environment variable. %USERNAME% will be expanded to the username set in the currently selected connection. +\\%USERNAME\\% will be expanded to the value set in the USERNAME environment variable. + +If you need to send a variable name to a program without mRemoteNG expanding it, use ^% instead of %. +mRemoteNG will remove the caret (^) and leave the rest unchanged. +For example, ^%USERNAME^% will be sent to the program as %USERNAME% and will not be expanded. + +Rules for variables +------------------- +- Variables always refer to the currently selected connection. +- Variable names are case-insensitive. +- Variables can be used in both the Filename and Arguments fields. + + +Special Character Escaping +========================== +Expanded variables will be escaped using the rules below. There are two levels of escaping that are done. + +1. Is escaping for standard argument splitting (C/C++ argv, CommandLineToArgvW, etc) +2. Is escaping shell metacharacters for ShellExecute. + +Argument splitting escaping +--------------------------- + +- Each quotation mark will be escaped by a backslash +- One or more backslashes (\\) followed by a quotation mark ("): + - Each backslash will be escaped by another backslash + - The quotation mark will be escaped by a backslash + - If the connection's user field contains ``"This"`` is a ``\"test\"`` + - Then %USERFIELD% is replaced with ``\"This\"`` is a ``\\\"test\\\"`` +- A variable name followed by a quotation mark (for example, %USERFIELD%") with a value ending in one or more backslashes: + - Each backslash will be escaped by another backslash + - Example: + - If the connection's user field contains ``c:\Example\`` + - Then "%USERFIELD%" is replaced with ``"c:\Example\\"`` + +To disable argument splitting escaping for a variable, precede its name with a minus (-) sign. For example: %-USERFIELD% + +Shell metacharacter escaping +---------------------------- + +- The shell metacharacters are ( ) % ! ^ " < > & | +- Each shell metacharacter will be escaped by a caret (^) + +To disable both argument splitting and shell metacharacter escaping for a variable, precede its name with an exclamation point (!). +For example, %!USERFIELD%. This is not recommended and may cause unexpected results. + +Only variables that have been expanded will be escaped. It is up to you to escape the rest of the arguments. + + +Variable Examples +================= + ++-------------------+----------------+------------------------+ +| Arguments | User Field | Result | ++===================+================+========================+ +| %USERFIELD% | "Example" Text | | ++-------------------+----------------+------------------------+ +| %-USERFIELD% | "Example" Text | | ++-------------------+----------------+------------------------+ +| %!USERFIELD% | "Example" Text | | ++-------------------+----------------+------------------------+ +| ^%USERFIELD^% | "Example" Text | | ++-------------------+----------------+------------------------+ +| ^^%USERFIELD^^% | "Example" Text | | ++-------------------+----------------+------------------------+ +| -d "%USERFIELD%" | c:\\Example\\ | | ++-------------------+----------------+------------------------+ +| -d "%-USERFIELD%" | c:\\Example\\ | | ++-------------------+----------------+------------------------+ +| -d "%USERFIELD%" | Left & Right | | ++-------------------+----------------+------------------------+ +| -d "%!USERFIELD%" | Left & Right | | ++-------------------+----------------+------------------------+ +| %WINDIR% | N/A | | ++-------------------+----------------+------------------------+ +| \\%WINDIR\\% | N/A | | ++-------------------+----------------+------------------------+ +| \\^%WINDIR\\^% | N/A | | ++-------------------+----------------+------------------------+ +| \\%WINDIR\\% | N/A | | ++-------------------+----------------+------------------------+ diff --git a/mRemoteV1/Documentation/user_interface/import_export.rst b/mRemoteV1/Documentation/user_interface/import_export.rst new file mode 100644 index 00000000..58b3463d --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/import_export.rst @@ -0,0 +1,76 @@ +************* +Import/Export +************* + +You can import or export your connections to mRemoteNG. Imports can be done in various +different ways. See below for more information. + +Import +====== + +Import from File +---------------- +Opens a normal file load dialog to open a exported xml or csv file for mRemoteNG. +See Export to file further down this page for information on exporting your connections. + +Import from Active Directory +---------------------------- +.. TODO: Needs even more information and testing (new image with a actual import of server from AD) + +This option can be used to import computers from a specific OU from you Arctive Directory. + +.. figure:: /images/import_from_active_directory.png + + Import from Active Directory dialog + +#. Go to: :menuselection:`File --> Import --> Import from Active Directory` +#. Choose the domain to check for computers available + +.. note:: Check the **Import sub OUs** checkbox if you want to import OUs recursively. + +Import from Port Scan +--------------------- +This option opens a dialog to import connections from a port scan. +Both network and port range can be specified. + +.. important:: Port Scan uses nmap to scan the ports. Be carefull on how you scan your network, as this can be considered a brute force attack. + + +.. figure:: /images/import_from_port_scan.png + + Import from Port Scan dialog + +- **First IP** - Start of ip to scan from +- **Last IP** - Stop of ip to scan to +- **First Port** (Optional) - Start port to scan from +- **Last Port** (Optional) - Stop port to scan to +- **Timeout [seconds]** - Seconds to wait until continuing scan + +Once the scan is done you can select connections to import with some options on the lower part of the dialog: + +- **Protocol to import** - Which protocol to use for the import of the connection(s) + +Export to file +============== +Here you can export your settings to a file to share or backup. +The dialog shown below is the dialog of which you chose the options to export. + +.. figure:: /images/import_export_dialog.png + + Export to file dialog example + +Export options: +--------------- +Here is a detailed explanation of the export dialog. + +- **Filename** - The output filename for which to save the export +- **File Format** - Currently supports xml and comma seperated csv output file format +- **Export Items** - Options to what you want to save + - **Export everything** - Will export all the connections + - **Export the currently selected folder** *[nameoffolder]* - Is used to only export all connections + in the folder selected. Note! the *[nameoffolder]* is the name to which you have selected in the connection tree. + - **Export the currently selected connection** *[nameofconnection]* - Same as before with folder but uses the currently + selected connection for export. +- **Export Properties** - Properties of the specific connections to export + +.. note:: Options do change based on what is selected in the connection tree. You can try this out by right clicking on a folder and selecting **Export to file** on a connection to understand more diff --git a/mRemoteV1/Documentation/user_interface/main_window.rst b/mRemoteV1/Documentation/user_interface/main_window.rst new file mode 100644 index 00000000..d556571a --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/main_window.rst @@ -0,0 +1,55 @@ +*********** +Main Window +*********** +After launching mRemoteNG for the first time you will be see +the main interface window looking similar to what is being shown below. + +.. figure:: /images/mremoteng_main_ui.png + + mRemoteNG 1.77 first launch + +In the next part we will start to explore the interface of mRemoteNG. + + +Default Screen +============== +The default screen of mRemoteNG + +- Menubar - Main menu, Quick Connect +- Sidebar - Connections, Config +- Work area - Remote Connections +- Footer - Notifications + +.. figure:: /images/mremoteng_main_ui_connect_win_server.png + + mRemoteNG default Screen, RDP to a Windows 2012 R2 host + +The default interface is very basic in that it will show the most important +part to get started with mRemoteNG. We will explain more details of the interface +further on this document. + + +Customization +============= +.. seealso:: + + :doc:`/keyboard_shortcuts` - For keybindings in mRemoteNG + +mRemoteNG supports themes and keyboard shortcuts. + +.. note:: + + Keyboard shortcuts can be overwritten when a connection is active. Since the connection might use the same shortcut + +The mRemoteNG shortcuts will work when the interface is in focus but not so often when the remote connection is active. + +Themes +------ +These can be chosen from the :menuselection:`Tools --> Options`. +There are also possibilities to create your own themes inside the settings for themes. +By default mRemoteNG has turned off the themes but they are easily +enabled by choosing another theme rather then the default (vs2015light) one. + +.. warning:: + + In order for the theme to load, mRemoteNG needs to be restarted diff --git a/mRemoteV1/Documentation/user_interface/menus.rst b/mRemoteV1/Documentation/user_interface/menus.rst new file mode 100644 index 00000000..7cf4807e --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/menus.rst @@ -0,0 +1,126 @@ +***** +Menus +***** + +.. figure:: /images/menus_main_menu.png + +In this section we are going to explain the menus located in mRemoteNG. The above screenshot shows the main menu with colors. + +- **Red** - Anchor to move menu around the interface +- **Green** - The menu items + +File Menu +========= +Contains standard commands for the application. + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Item + - Description + * - New Connection + - Will add a new connection to the Connections dialog after where the cursor is positioned. + * - New Folder + - Add a new folder in the Connections dialog tree where the cursor is positioned. + * - New Connection File + - Create a new connection file. Dialog will come up asking about: filename and where to place the new connection file. + * - Open Connection File + - Open a connection file. Dialog comes up asking about which file to open. For security reasons, this also shows a dialog to ask if you want to save the current file before continuing. + * - Save Connection File + - Saves the currently opened connection file. If you are using a SQL server connection instead it will send a save to the SQL server. + * - Save Connection File As... + - Saves the current connection file to a specific location on disk. + * - Delete... + - Delete currently selected item in connections dialog. + * - Rename + - Rename current selected item in connections dialog. + * - Duplicate + - Duplicate current selected item in connections dialog. + * - Reconnect All Open Connections + - Sends a reconnect to all the open connections in mRemoteNG. + * - Exit + - Exit mRemoteNG application + +View Menu +========= +Menu for additional dialogs for mRemoteNG. + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Item + - Description + * - Add Connection Panel + - Create a new and empty panel. + * - Connection Panels + - Jump to panel. + * - Connections + - Show connections dialog + * - Config + - Show config dialog + * - Notifications + - Show notifications dialog + * - Screenshots + - Open Screenshots Manager (See: :ref:`screenshot_manager`) + * - Jump To + - Place focus on "Connections", "Config" or "Notifications" panel based on selection. + * - Reset layout + - Resets the layout of panels and dialogs. Warning will come up about the action before continuing. + * - Lock toolbar positions + - Locks the toolbars at the top of the application so you do not move around items by mistake. + * - Quick Connect Toolbar + - Show quick connect toolbar + * - External Tools Toolbar + - Show external tools toolbar + * - Multi SSH Toolbar + - Show multi ssh toolbar + * - Fullscreen + - Fullscreen mRemoteNG (will not fullscreen connection window but only the mRemoteNG application) + +Tools Menu +========== +Additional tools that can be used and triggered in mRemoteNG. + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Item + - Description + * - SSH File Transfer + - Show SSH file transer panel (See: :ref:`ssh_file_transfer`) + * - External Tools + - Show external tools dialog (See: :ref:`external_tools`) + * - Port Scan + - Show port scan dialog (See: :ref:`port_scan`) + * - Components Check + - Show installed components requirements test + * - Options + - Opens mRemoteNG global settings and options dialog + +Help Menu +========= +Get more information for the application. + +.. list-table:: + :widths: 30 70 + :header-rows: 1 + + * - Item + - Description + * - mRemoteNG Help + - Show help panel (this panel) + * - Website + - Go to mRemoteNG website + * - Donate + - Go to mRemoteNG donation page + * - Support Forum + - Go to mRemoteNG suport forum + * - Report a Bug + - Go to github page to report a bug + * - Check for Updates + - Opens dialog to check for any updates of mRemoteNG + * - About + - Open about dialog for mRemoteNG (Shows contributors, changelog and more) diff --git a/mRemoteV1/Documentation/user_interface/notifications.rst b/mRemoteV1/Documentation/user_interface/notifications.rst new file mode 100644 index 00000000..d3946303 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/notifications.rst @@ -0,0 +1,43 @@ +************* +Notifications +************* + +The notifications panel contains any errors or informational messages that mRemoteNG triggers. +Some example errors can be if there is a problem to connect, information on lost connection and so much more. +Notification settings can be found in (Tools > Options > Notifications) +below we will explain what can be set and how they do affect for various troubleshooting. + +Notifications general settings +============================== + +.. tip:: + + If you dont want the panel to show at all. Then unmark all options inSwitch to Notification panel on. Then the panel will not come up automatically. + +.. figure:: /images/notifications_panel.png + +This will tell mRemoteNG what type of messages and the level of messages to send to the panel. It does not the level for the log that mRemoteNG has but only for panel output. + +There is also 2 different options mentioned below: + +- Show these message types - Level of messages to show in panel. (default: Warnings and Errors) +- Switch to Notifications panel on - If interface should switch to the panel when a level of message occurs (default: all enabled) + +Logging settings +================ +Here you define the logging of messages. +That is a continues log which can be used to backtrack any error that has occurred. +Good when for example reporting issues about mRemoteNG or to check more details about problems. + +Log path - Choose where the log should recide (default: Log to application directory) +Log these message types - Level of logging to logfile (default: Informations, Warnings, Errors) + +Popups settings +=============== + +.. figure:: /images/notifications_popup.png + +When items are selected here you will recieve a popup on the error that occurrs +based on level chosen in settings here. +This can be useful if you do not want to use the notification area +and only get a popup if error occurs. (**default**: all off) diff --git a/mRemoteV1/Documentation/user_interface/options.rst b/mRemoteV1/Documentation/user_interface/options.rst new file mode 100644 index 00000000..7b9d2db1 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/options.rst @@ -0,0 +1,242 @@ +******* +Options +******* + +Options window which can also be named settings is the window +where you can personalize your options for all of mRemoteNG. +This includes how to set logging, credentials and so on. +Continue reading for the details of the different options here. + +Startup/Exit +============ +Options below are for the various settings for Startup/Exit of mRemoteNG. + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Save connection on exit + - On + - Save to connection file/database on exit of mRemoteNG + * - Reconnect to previously opened sessions on startup + - Off + - This option will allow you to open the connection from which you where connected to after last exit of application + * - Allow only a single instance of the application (mRemoteNG restart required) + - Off + - Enforces and makes sure only a single instance of mRemoteNG is running on the computer + * - Check proper installation of components at startup + - Off + - Opens the panel for Components Check on every startup + +Appearance +========== +Various options for mRemoteNG appearance. + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Language + - (Automatically Detect) + - Which language to use for the interface of mRemoteNG + * - Show description tooltips in connection tree + - Off + - Holding mouse over a item in connection tree will show a popout from mouse with information + * - Show full connections file path in window title + - Off + - Adds the complete path to the title of mRemoteNG to where the connection file is located + * - Always show notification area icon + - Off + - Adds mRemoteNG to the taskbar in the OS + * - Minimize to notification area + - Off + - Will place mRemoteNG in taskbar on minimize + +Tabs & Panels +============= +Various settings for how tabs & panels should work in mRemoteNG. + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Always show panel tabs + - Off + - Will always show the tabs & panels in mRemoteNG + * - Open new tab to the right of the currently selected tab + - On + - When active then open next tab on the right of the active selection in mRemoteNG. Turn this off and next tab will open the next connection at the end of all tabs + * - Show logon information on tab names + - Off + - Show your login in the connection tab + * - Show protocols on tab names + - Off + - When active then in the tab show what protocol is used for the connection + * - Identify quick connect tabs by adding the prefix "Quick:" + - Off + - When active shows Quick: before the connection name in the tab connection to easier identify what is a quick connection and what is a non quick connection + * - Double click on tab closes it + - On + - When double clicking a tab it will close the connection but does not log you out from the server. The connection in this case is active on the destination server + * - Always show panel selection dialog when opening connections + - Off + - Option to allow you to always select what panel to place the connection on. If this is off it will create a General panel where the connection is placed or use the connections set panel from the connection options + * - Create a empty panel when mRemoteNG starts + - Off + - On startup if this is active mRemoteNG will create a panel mentioned under Panel Name + +Connections +=========== +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Single click on connections opens it + - Off + - In connection tree when this is active will try to connect on single click. By default this is turned off to use double click to open connection. + * - Single click on opened connection in Connection Tree switches to the opened Connection Tab + - Off + - Allows you to single click on a active connection in the connection tree to go to that open connection in the tabs faster. + * - Set hostname like display name when creating or renaming connections + - Off + - Will make mRemoteNG try to use the remote host hostname to set the title of the tab in mRemoteNG. + * - Save connections after every exit + - On + - When active mRemoteNG will save the connection tree to the active config after every exit. If inactive then you have to save using **File > Save Connection File** or keyboard shortcut Ctrl+S + * - Filter search matches in connection tree + - Off + - Allows you to filter out the connections to which does not match your filter search in the connection tree. If not active the search will only select the filter to which you do search. + * - RDP Reconnect count + - 5 + - Value in seconds + * - RDP Connection Timeout + - 20 + - Value in seconds + * - Auto save time in minutes (0 means disabled) + - 0 + - Value in minutes + * - When closing connections + - Warn me when closing connections + - Various options of how mRemoteNG should act when you close connections. The different options are listed below: + :: + + - Warn me when closing connections + - Warn me only when closing multiple connections + - Warn me only when exiting mRemoteNG + - Do not warn me when closing connections + By default a warning will come up on closing a connection. Change this value based on your prefered settings. + +Credentials +=========== +Options for credentials in mRemoteNG. The main purpose here is that when you have empty username, password or domain field then use below information. + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - None + - On + - Use no specific settings on login + * - My Current credentials (Windows logon information) + - Off + - This option will use the logon information for the OS. This is useful if you are in a domain that uses specific credentials and want to login to servers with those credentials + * - The following + - Off + - Use one or two of the options below for the empty login or all of them. For example if you have a different domain that you login to the servers with + +SQL Server +========== + +.. note:: + + To understand more about SQL Server connection please see here: :ref:`sql_configuration` + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Use SQL Server to load & save connections + - Off + - Enable to fetch connections from a database. + +Updates +======= +Options for how mRemoteNG should check for updates from the website. + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Check for updates at startup + - On (Every 14 days) + - Here you can choose how often mRemoteNG checks for updates. Standard is every 14 days + * - Release Channel + - Stable + - The main channel to use for mRemoteNG. Note that the channels are described under the selection. Stable is suggested for normal usage but its always good to get feedback on upcoming releases + * - Use a proxy server to connect + - Off + - Proxy to connect through to check for updates. This is not a proxy connection for when you connect to a server but more to check for updates + +Theme +===== +This is not enabled by default but can be used inside mRemoteNG. +To enable themes you have to first enable it in the checkbox at the bottom of the options. +Then restart mRemoteNG in order for it to work. + +.. note:: + + Default theme is: vs2015light + +.. note:: + + To know more about themes and how to create your own See Here + +Advanced +======== + +.. list-table:: + :widths: 30 70 70 + :header-rows: 1 + + * - Option + - Default + - Description + * - Automatically get session information + - Off + - + * - Automatically try to reconnect when disconnected from server (RDP & ICA only) + - Off + - + * - Use UTF8 encoding for RDP "Load Balance info" property + - Off + - + * - Use custom PuTTY path + - Off + - + * - To configure PuTTY sessions click this button + - Launch PuTTY + - Will launch the putty agent so you can edit the sessions + * - Maximum PuTTY and integrated external tools wait time + - 2 seconds + - diff --git a/mRemoteV1/Documentation/user_interface/panels.rst b/mRemoteV1/Documentation/user_interface/panels.rst new file mode 100644 index 00000000..96ddcdb3 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/panels.rst @@ -0,0 +1,62 @@ +****** +Panels +****** + +mRemoteNG is using tabs and panels to stay organized but also to create +a better view of all multitasking that is being done inside the application. + + +Explanation +============ + +Panels are used to organize tabbed conections. This might seem a bit confusing +at first glance but is a great way to stay organized. Below is a few examples +of how to use panels to give you a hands on better view of them: + +- *Test and Production* - You can add 2 panels where you have test servers in one panel and production connections in the other + +- *Datacenters* - Maybe you want to divide panels into different datacenters + +- *Temp project* - To see all servers you work on for a temporary project + +- *Home vs Work* - Or divide them up into where home connections are and work connections are located + +As you can see the panels organization do have benefits to it. +Below you will see a screenshot of a organized view where Domain A +is in panel 1 and Domain B is in panel 2. + +.. figure:: /images/user_interface_panels_01.png + + Example two panels created with Domain A and Domain B + +The function of a panel works as a sort of workspace. + + +Creating Panels +=============== + +Usually panels are created using connections and folders to stay organized +automatic when making connections. However you can also create panels manually. + +.. figure:: /images/user_interface_panels_02.png + + Menu items for panels under **View** + +Creating manual panels will make you able to organize tabs manually in mRemoteNG. +To then open a connection to the new panel, right click on the connection and use +:menuselection:`Connect (with options) --> Choose panel before connecting` + +The other option in the menu name **Connection Panels** will list all panels +that are available in mRemoteNG window. + + +More Options +============ +If you right click on the panel there are a few more options that can be set: + +.. figure:: /images/user_interface_panels_03.png + + Right click context menu for panel + +- **Rename** - Rename the panel +- **Send to...** - Send the whole panel to monitor/screen *[number]*. Note this is not a real window but a detachable panel. If you double click the title then the panel will go back to mRemoteNG window and not fullscreen the window. diff --git a/mRemoteV1/Documentation/user_interface/port_scan.rst b/mRemoteV1/Documentation/user_interface/port_scan.rst new file mode 100644 index 00000000..b7476585 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/port_scan.rst @@ -0,0 +1,20 @@ +.. _port_scan: + +********* +Port Scan +********* + +The Port Scan feature (under Tools > Port Scan) is similar to a nmap port scan. +It will scan a range of IP addresses and to determine if specific mRemoteNG supported protocols are active. Hosts can then be bulk imported into mRemoteNG. + +.. tip:: + + If you leave this at the default of 0 & 0, the test will be for the default protocol ports that mRemoteNG supports. + +- Start the Port Scan feature by clicking Tools > Port Scan in the menu bar. +- Input your Start IP and End IP of the range you'd like to scan. +- Enter the Start Port and End Port that mRemoteNG should test for. +- Click Scan +- Wait. Possibly a long time. +- The table will populate, and eventually you'll get a notification that the scan has completed. Alternatively, you can press Stop to end the scan at any time. +- Change the dropdown to the protocol you'd like to import and click Import. \ No newline at end of file diff --git a/mRemoteV1/Documentation/user_interface/quick_connect.rst b/mRemoteV1/Documentation/user_interface/quick_connect.rst new file mode 100644 index 00000000..fa819597 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/quick_connect.rst @@ -0,0 +1,26 @@ +************* +Quick Connect +************* + +The Quick Connect functionality of mRemoteNG allows you to quickly connect to a remote host using a variety of network protocols. + +Prerequisites +============= +- Knowledge of a DNS host name or IP address +- Knowledge of an appropriate protocol to communicate with remote host +- A predefined mRemoteNG connection + +Using QuickConnect +================== +To use Quick Connect, ensure the Quick Connect toolbar is enabled by selecting View and then Quick Connect Toolbar. +Next, input a DNS host name or IP address into the box labeled "Connect". This box will also save previous entries during your session. + +.. figure:: /images/quick_connect_01.png + +.. figure:: /images/quick_connect_02.png + +Select the appropriate network protocol by clicking the arrow next to the Connect box. + +.. figure:: /images/quick_connect_03.png + +If you wish to use an existing connection, select the globe icon next to the protocol button and select the appropriate connection. \ No newline at end of file diff --git a/mRemoteV1/Documentation/user_interface/screenshot_manager.rst b/mRemoteV1/Documentation/user_interface/screenshot_manager.rst new file mode 100644 index 00000000..a4af8ed5 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/screenshot_manager.rst @@ -0,0 +1,35 @@ +.. _screenshot_manager: + +****************** +Screenshot Manager +****************** + +The screenshot manager is a panel and tool that can be used to organize +and take screenshots inside mRemoteNG. + +Take a screenshot +================= +To take a screenshot of a instance its as easy as to right click on +the connection tab and press Screenshot and it will open the screenshot manager. + +.. figure:: /images/screenshot_manager_rightclick_menu.png +.. figure:: /images/screenshot_manager_overview.png + +On the first image you can see the right click menu of the connection tab. +Clicking the screenshot there will allow mRemoteNG to create a screenshot. + +The second image is where the screenshots are stored in mRemoteNG. +Here you can store and then decide what to do with the images after you are done taking screenshots. + +Editing +======= +The manager is a simple tool for saving and deleting screenshots. +If you need to do more with the screenshots then the suggestion is to open them in a third party app. +Here is what the manager allows you to do: + +- Save +- Save All +- Delete +- Delete All + +Once you press save, a window to save the files will come up where you want to save the screenshots. diff --git a/mRemoteV1/Documentation/user_interface/ssh_file_transfer.rst b/mRemoteV1/Documentation/user_interface/ssh_file_transfer.rst new file mode 100644 index 00000000..27346f96 --- /dev/null +++ b/mRemoteV1/Documentation/user_interface/ssh_file_transfer.rst @@ -0,0 +1,67 @@ +.. _ssh_file_transfer: + +***************** +SSH File Transfer +***************** + +SSH File Transfer functionality allows you to securely transfer files to a +remote host over an encrypted tunnel using either **SFTP** or **SCP**. + +Prerequisites +============= +- SSH File Transfer requires an SSH service to listen on an available network port (default 22) on a remote host. +- A username and password must be supplied to connect with the remote host. +- The remote host must have a writeable folder on its filesystem to place the transferred files. + +Configuration Options +===================== +- **Host** - The remote host you connect to. Can be DNS name or IP address. +- **Port** - Remote network port listening for SSH/SFTP/SCP traffic. +- **User** - Username for account to log on to remote host. +- **Password** - Password for account to log on to remote host. +- **Protocol** - Choice of SCP or SFTP protocol used for communication. +- **Local File** - Path of file to transfer from local host. +- **Remote File** - Path where file will be transferred on remote host. (e.g. "/home/John/Documents") + +Using SSH File Transfer +======================= +Begin by going to :menuselection:`Tools --> SSH File Transfer`. + +The tool will open a new panel inside mRemoteNG which allows you to configure +some options for the SSH File Transfer. Each option is needed in order to +complete a file transfer over SSH. + +.. figure:: /images/ssh_file_transfer_01.png + + Main SSH File Transfer panel + +- To populate the **Local File** option, select the **Browse** button and navigate to + the desired file on the local filesystem. + +- To populate the **Remote File** option, manually type desired filesystem path, + including the desired file name. + +Once all options are populated, select **Transfer** and the progress bar at +the bottom of the window will show the progress of the transfer. + +Troubleshooting SSH File Transfer +================================= +To troubleshoot issues with SSH File Transfer, consult the log under +:code:`%AppData%\mRemoteNG\mRemoteNG.log`. +This log provides verbose information about successful and failed connections. + +Common Issues +------------- +ERROR - Please fill all fields + This issue was likely encountered because you did not provide all + information needed to establish the connection. + +ERROR- SSH background transfer failed! + This issue was likely encountered due to a permissions issue. + Ensure you have appropriate access to write to the specified Remote File. + +System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it + This issue was likely encountered because the local host could not contact the remote + host specified on the remote port specified. + The issue may be caused by improperly configured firewall rules or a + SSH service not listening properly on the remote host. diff --git a/mRemoteV1/Properties/AssemblyInfo.cs b/mRemoteV1/Properties/AssemblyInfo.cs index 2f15b6a7..a78739d7 100644 --- a/mRemoteV1/Properties/AssemblyInfo.cs +++ b/mRemoteV1/Properties/AssemblyInfo.cs @@ -1,4 +1,4 @@ -using System.Reflection; +using System.Reflection; using System.Resources; using System.Runtime.InteropServices; @@ -11,9 +11,9 @@ using System.Runtime.InteropServices; [assembly: AssemblyTitle("mRemoteNG")] [assembly: AssemblyDescription("Multi-protocol remote connections manager")] -[assembly: AssemblyCompany("")] +[assembly: AssemblyCompany("The mRemoteNG Team")] [assembly: AssemblyProduct("mRemoteNG")] -[assembly: AssemblyCopyright("Copyright © 2019 mRemoteNG Dev Team; 2010-2013 Riley McArdle; 2007-2009 Felix Deimel")] +[assembly: AssemblyCopyright("2019 mRemoteNG Dev Team, 2010-2013 Riley McArdle, 2007-2009 Felix Deimel")] [assembly: AssemblyTrademark("")] [assembly: ComVisible(false)] diff --git a/mRemoteV1/Resources/Fonts/HandelGotD.ttf b/mRemoteV1/Resources/Fonts/HandelGotD.ttf deleted file mode 100644 index 02424466..00000000 Binary files a/mRemoteV1/Resources/Fonts/HandelGotD.ttf and /dev/null differ diff --git a/mRemoteV1/Resources/Fonts/HandelGotDBol.ttf b/mRemoteV1/Resources/Fonts/HandelGotDBol.ttf deleted file mode 100644 index b9bd98a4..00000000 Binary files a/mRemoteV1/Resources/Fonts/HandelGotDBol.ttf and /dev/null differ diff --git a/mRemoteV1/Resources/Fonts/HandelGotDLig.ttf b/mRemoteV1/Resources/Fonts/HandelGotDLig.ttf deleted file mode 100644 index 56e05894..00000000 Binary files a/mRemoteV1/Resources/Fonts/HandelGotDLig.ttf and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Index.htm b/mRemoteV1/Resources/Help/Index.htm deleted file mode 100644 index d1df19dc..00000000 --- a/mRemoteV1/Resources/Help/Index.htm +++ /dev/null @@ -1,87 +0,0 @@ - - - - - mRemoteNG Help - - - -

mRemoteNG Help

-
-

- mRemoteNG is a multi-protocol, multi-remote connections manager that aims at providing you with a clutter-free, unstressful platform to manage all your remote connections in one place. -
- The application is released under the GPLv2 and is being managed on Github. -
-
- As of now mRemoteNG supports the following protocols: -

    -
  • RDP
  • -
  • SSH
  • -
  • VNC
  • -
  • ICA
  • -
  • Telnet
  • -
  • RAW
  • -
  • RLogin
  • -
  • HTTP/S
  • -
-

-

Table of Contents

-
- -

Features

-
-

-

    -
  • Free and Open Source, released under the GPL
  • -
  • Organizing connections into panels and tabs
  • -
  • Multiple supported protocols (RDP, VNC, ICA, SSH, Telnet, RAW, Rlogin and HTTP/S)
  • -
  • Easy to organize and maintain list of connections
  • -
  • Inheritance makes it possible to store properties on folder basis and let the underlying connections inherit this info
  • -
  • Importing connections from Active Directory
  • -
  • Creating nested folder structures to categorize connections
  • -
  • "Quick Connect" feature to quickly open a connection without creating an entry
  • -
  • "Quick Search" feature to quickly find a connection while typing
  • -
  • Support for SCP/SFTP (SSH) file transfers
  • -
  • Assign icons to connections for quick identification
  • -
  • A screenshot manager to create screenshots of running connections
  • -
  • "Auto-Update" feature
  • -
  • Minimize to system tray
  • -
  • Fullscreen (Kiosk) mode
  • -
  • Assign global credentials to use when no information is provided on connection basis
  • -
  • Host Indication on each connection to show if host responds ti ping requests
  • -
-

- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/MSSQLScript.txt b/mRemoteV1/Resources/Help/MSSQLScript.txt deleted file mode 100644 index dff03270..00000000 --- a/mRemoteV1/Resources/Help/MSSQLScript.txt +++ /dev/null @@ -1,151 +0,0 @@ -if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblCons]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) -drop table [dbo].[tblCons] -GO - -if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblRoot]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) -drop table [dbo].[tblRoot] -GO - -if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblUpdate]') and OBJECTPROPERTY(id, N'IsUserTable') = 1) -drop table [dbo].[tblUpdate] -GO - -CREATE TABLE [dbo].[tblCons] ( - [ID] [int] IDENTITY (1001, 1) NOT NULL , - [ConstantID] [varchar] (128) NULL , - [PositionID] [int] NOT NULL , - [ParentID] [varchar] (128) NULL , - [LastChange] [datetime] NOT NULL , - [Name] [varchar] (128) NOT NULL , - [Type] [varchar] (32) NOT NULL , - [Expanded] [bit] NOT NULL , - [Description] [varchar] (1024) NULL , - [Icon] [varchar] (128) NOT NULL , - [Panel] [varchar] (128) NOT NULL , - [Username] [varchar] (512) NULL , - [DomainName] [varchar] (512) NULL , - [Password] [varchar] (1024) NULL , - [Hostname] [varchar] (512) NULL , - [Protocol] [varchar] (32) NOT NULL , - [PuttySession] [varchar] (128) NULL , - [Port] [int] NOT NULL , - [ConnectToConsole] [bit] NOT NULL , - [UseCredSsp] [bit] NOT NULL , - [RenderingEngine] [varchar] (10) NULL , - [ICAEncryptionStrength] [varchar] (32) NOT NULL , - [RDPAuthenticationLevel] [varchar] (32) NOT NULL , - [RDPMinutesToIdleTimeout] [int] NOT NULL, - [RDPAlertIdleTimeout] [bit] NOT NULL, - [Colors] [varchar] (32) NOT NULL , - [Resolution] [varchar] (32) 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 , - [RedirectPrinters] [bit] NOT NULL , - [RedirectSmartCards] [bit] NOT NULL , - [RedirectSound] [varchar] (64) NOT NULL , - [SoundQuality] [varchar] (20) NOT NULL, - [RedirectAudioCapture] [bit] NOT NULL, - [RedirectKeys] [bit] NOT NULL , - [Connected] [bit] NOT NULL , - [PreExtApp] [varchar] (256) NULL , - [PostExtApp] [varchar] (256) NULL , - [MacAddress] [varchar] (32) NULL , - [UserField] [varchar] (256) NULL , - [ExtApp] [varchar] (256) NULL , - [VNCCompression] [varchar] (10) NULL , - [VNCEncoding] [varchar] (20) NULL , - [VNCAuthMode] [varchar] (10) NULL , - [VNCProxyType] [varchar] (20) NULL , - [VNCProxyIP] [varchar] (128) NULL , - [VNCProxyPort] [int] NULL , - [VNCProxyUsername] [varchar] (512) NULL , - [VNCProxyPassword] [varchar] (1024) NULL , - [VNCColors] [varchar] (10) NULL , - [VNCSmartSizeMode] [varchar] (20) NULL , - [VNCViewOnly] [bit] NOT NULL , - [RDGatewayUsageMethod] [varchar] (32) NOT NULL , - [RDGatewayHostname] [varchar] (512) NULL , - [RDGatewayUseConnectionCredentials] [varchar] (32) NOT NULL , - [RDGatewayUsername] [varchar] (512) NULL , - [RDGatewayPassword] [varchar] (1024) NULL , - [RDGatewayDomain] [varchar] (512) NULL , - [InheritCacheBitmaps] [bit] NOT NULL , - [InheritColors] [bit] NOT NULL , - [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 , - [InheritPassword] [bit] NOT NULL , - [InheritPort] [bit] NOT NULL , - [InheritProtocol] [bit] NOT NULL , - [InheritPuttySession] [bit] NOT NULL , - [InheritRedirectDiskDrives] [bit] NOT NULL , - [InheritRedirectKeys] [bit] NOT NULL , - [InheritRedirectPorts] [bit] NOT NULL , - [InheritRedirectPrinters] [bit] NOT NULL , - [InheritRedirectSmartCards] [bit] NOT NULL , - [InheritRedirectSound] [bit] NOT NULL , - [InheritSoundQuality] [bit] NOT NULL, - [InheritRedirectAudioCapture] [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 , - [InheritRDPMinutesToIdleTimeout] [bit] NOT NULL, - [InheritRDPAlertIdleTimeout] [bit] NOT NULL, - [InheritUsername] [bit] NOT NULL , - [InheritPreExtApp] [bit] NOT NULL , - [InheritPostExtApp] [bit] NOT NULL , - [InheritMacAddress] [bit] NOT NULL , - [InheritUserField] [bit] NOT NULL , - [InheritExtApp] [bit] NOT NULL , - [InheritVNCCompression] [bit] NOT NULL, - [InheritVNCEncoding] [bit] NOT NULL , - [InheritVNCAuthMode] [bit] NOT NULL , - [InheritVNCProxyType] [bit] NOT NULL , - [InheritVNCProxyIP] [bit] NOT NULL , - [InheritVNCProxyPort] [bit] NOT NULL , - [InheritVNCProxyUsername] [bit] NOT NULL , - [InheritVNCProxyPassword] [bit] NOT NULL , - [InheritVNCColors] [bit] NOT NULL , - [InheritVNCSmartSizeMode] [bit] NOT NULL , - [InheritVNCViewOnly] [bit] NOT NULL , - [InheritRDGatewayUsageMethod] [bit] NOT NULL , - [InheritRDGatewayHostname] [bit] NOT NULL , - [InheritRDGatewayUseConnectionCredentials] [bit] NOT NULL , - [InheritRDGatewayUsername] [bit] NOT NULL , - [InheritRDGatewayPassword] [bit] NOT NULL , - [InheritRDGatewayDomain] [bit] NOT NULL , - [LoadBalanceInfo] [varchar] (1024) NULL , - [AutomaticResize] [bit] NOT NULL DEFAULT 1 , - [InheritLoadBalanceInfo] [bit] NOT NULL DEFAULT 0 , - [InheritAutomaticResize] [bit] NOT NULL DEFAULT 0 , - [RedirectClipboard] [bit] NOT NULL DEFAULT 0 , - [InheritRedirectClipboard] [bit] NOT NULL DEFAULT 0 -) ON [PRIMARY] -GO - -CREATE TABLE [dbo].[tblRoot] ( - [Name] [varchar] (2048) NOT NULL , - [Export] [bit] NOT NULL , - [Protected] [varchar] (4048) NOT NULL , - [ConfVersion] [float] NOT NULL -) ON [PRIMARY] -GO - -CREATE TABLE [dbo].[tblUpdate] ( - [LastUpdate] [datetime] NULL -) ON [PRIMARY] -GO - diff --git a/mRemoteV1/Resources/Help/Main.css b/mRemoteV1/Resources/Help/Main.css deleted file mode 100644 index 4980a15d..00000000 --- a/mRemoteV1/Resources/Help/Main.css +++ /dev/null @@ -1,140 +0,0 @@ -/* COMMON STUFF */ - -body { -background-color: #FFFFFF; -margin-left: 10px; -margin-top: 10px; -margin-right: 10px; -margin-bottom: 10px; -font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif; -font-size: 0.75em; -color: #333333; -} - -img { border: none; } - -hr { -display: block; -height: 1px; -border: 0; -border-top: 1px solid #ccc; -margin: 1em 0; -padding: 0; -} - -/* HEADINGS */ - -h1 { -font-size: 2.0em; -color: #000000; -padding-top: 20px; -} - -h2 { -font-size: 1.5em; -color: #000000; -padding-top: 20px; -} - -h3 { -font-size: 1.17em; -color: #000000; -padding-top: 20px; -} - -h4 { -font-size: 1em; -color: #000000; -padding-top: 20px; -} - -h5 { -font-size: .83em; -color: #000000; -padding-top: 20px; -} - - -/* LINKS */ - -a:link { -color: #5d6b70; -text-decoration: none; -text-decoration: underline; -} - -a:visited { -color: #5d6b70; -text-decoration: none; -} - -a:hover { -color: Black; -text-decoration: underline; -} - -/* TABLES */ - -table { -font-family: arial, sans-serif; -border-collapse: collapse; -} - -td, th { -border: 1px solid #dddddd; -text-align: left; -padding: 8px; -} - -tr:nth-child(even) { background-color: #f2f2f2; } - - -/* MISC STYLES */ - -.Code { -padding-right: 5px; -padding-left: 5px; -color: #000000; -font-family: 'Courier New', Monospace; -background-color: #C1C1C1; -} - -.monospace { -white-space: nowrap; -font-family: 'Courier New', monospace; -} - -.nowrap { white-space: nowrap } - -.isa_info, .isa_success, .isa_warning, .isa_error { -margin: 10px 0px; -padding: 12px; -} - -.isa_info { -color: #00529B; -background-color: #BDE5F8; -} - -.isa_success { -color: #4F8A10; -background-color: #DFF2BF; -} - -.isa_warning { -color: #9F6000; -background-color: #FEEFB3; -} - -.isa_error { -color: #D8000C; -background-color: #FFD2D2; -} - -.lvl1 { padding-left: 20px; } - -.lvl2 { padding-left: 40px; } - -.lvl3 { padding-left: 60px; } - -.lvl4 { padding-left: 80px; } diff --git a/mRemoteV1/Resources/Help/MySQLScript.txt b/mRemoteV1/Resources/Help/MySQLScript.txt deleted file mode 100644 index 1af6b391..00000000 --- a/mRemoteV1/Resources/Help/MySQLScript.txt +++ /dev/null @@ -1,183 +0,0 @@ - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8 */; -/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */; -/*!40103 SET TIME_ZONE='+00:00' */; -/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */; -/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */; -/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */; -/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */; - --- --- Table structure for table `tblCons` --- - -DROP TABLE IF EXISTS `tblCons`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tblCons` ( - `ID` int(11) NOT NULL AUTO_INCREMENT, - `ConstantID` varchar(128) DEFAULT NULL, - `PositionID` int(11) NOT NULL, - `ParentID` varchar(128) DEFAULT NULL, - `LastChange` datetime NOT NULL, - `Name` varchar(128) NOT NULL, - `Type` varchar(32) NOT NULL, - `Expanded` tinyint(1) NOT NULL, - `Description` varchar(1024) DEFAULT NULL, - `Icon` varchar(128) NOT NULL, - `Panel` varchar(128) NOT NULL, - `Username` varchar(512) DEFAULT NULL, - `DomainName` varchar(512) DEFAULT NULL, - `Password` varchar(1024) DEFAULT NULL, - `Hostname` varchar(512) DEFAULT NULL, - `Protocol` varchar(32) NOT NULL, - `PuttySession` varchar(128) DEFAULT NULL, - `Port` int(11) NOT NULL, - `ConnectToConsole` tinyint(1) NOT NULL, - `UseCredSsp` tinyint(1) NOT NULL, - `RenderingEngine` varchar(10) DEFAULT NULL, - `ICAEncryptionStrength` varchar(32) NOT NULL, - `RDPAuthenticationLevel` varchar(32) NOT NULL, - `RDPMinutesToIdleTimeout` int(11) NOT NULL, - `RDPAlertIdleTimeout` tinyint(1) NOT NULL, - `Colors` varchar(32) NOT NULL, - `Resolution` varchar(32) NOT NULL, - `DisplayWallpaper` tinyint(1) NOT NULL, - `DisplayThemes` tinyint(1) NOT NULL, - `EnableFontSmoothing` tinyint(1) NOT NULL, - `EnableDesktopComposition` tinyint(1) NOT NULL, - `CacheBitmaps` tinyint(1) NOT NULL, - `RedirectDiskDrives` tinyint(1) NOT NULL, - `RedirectPorts` tinyint(1) NOT NULL, - `RedirectPrinters` tinyint(1) NOT NULL, - `RedirectSmartCards` tinyint(1) NOT NULL, - `RedirectSound` varchar(64) NOT NULL, - `SoundQuality` varchar(20) NOT NULL, - `RedirectAudioCapture` tinyint(1) NOT NULL, - `RedirectKeys` tinyint(1) NOT NULL, - `Connected` tinyint(1) NOT NULL, - `PreExtApp` varchar(256) DEFAULT NULL, - `PostExtApp` varchar(256) DEFAULT NULL, - `MacAddress` varchar(32) DEFAULT NULL, - `UserField` varchar(256) DEFAULT NULL, - `ExtApp` varchar(256) DEFAULT NULL, - `VNCCompression` varchar(10) DEFAULT NULL, - `VNCEncoding` varchar(20) DEFAULT NULL, - `VNCAuthMode` varchar(10) DEFAULT NULL, - `VNCProxyType` varchar(20) DEFAULT NULL, - `VNCProxyIP` varchar(128) DEFAULT NULL, - `VNCProxyPort` int(11) DEFAULT NULL, - `VNCProxyUsername` varchar(512) DEFAULT NULL, - `VNCProxyPassword` varchar(1024) DEFAULT NULL, - `VNCColors` varchar(10) DEFAULT NULL, - `VNCSmartSizeMode` varchar(20) DEFAULT NULL, - `VNCViewOnly` tinyint(1) NOT NULL, - `RDGatewayUsageMethod` varchar(32) NOT NULL, - `RDGatewayHostname` varchar(512) DEFAULT NULL, - `RDGatewayUseConnectionCredentials` varchar(32) NOT NULL, - `RDGatewayUsername` varchar(512) DEFAULT NULL, - `RDGatewayPassword` varchar(1024) DEFAULT NULL, - `RDGatewayDomain` varchar(512) DEFAULT NULL, - `InheritCacheBitmaps` tinyint(1) NOT NULL, - `InheritColors` tinyint(1) NOT NULL, - `InheritDescription` tinyint(1) NOT NULL, - `InheritDisplayThemes` tinyint(1) NOT NULL, - `InheritDisplayWallpaper` tinyint(1) NOT NULL, - `InheritEnableFontSmoothing` tinyint(1) NOT NULL, - `InheritEnableDesktopComposition` tinyint(1) NOT NULL, - `InheritDomain` tinyint(1) NOT NULL, - `InheritIcon` tinyint(1) NOT NULL, - `InheritPanel` tinyint(1) NOT NULL, - `InheritPassword` tinyint(1) NOT NULL, - `InheritPort` tinyint(1) NOT NULL, - `InheritProtocol` tinyint(1) NOT NULL, - `InheritPuttySession` tinyint(1) NOT NULL, - `InheritRedirectDiskDrives` tinyint(1) NOT NULL, - `InheritRedirectKeys` tinyint(1) NOT NULL, - `InheritRedirectPorts` tinyint(1) NOT NULL, - `InheritRedirectPrinters` tinyint(1) NOT NULL, - `InheritRedirectSmartCards` tinyint(1) NOT NULL, - `InheritRedirectSound` tinyint(1) NOT NULL, - `InheritSoundQuality` tinyint(1) NOT NULL, - `InheritRedirectAudioCapture` tinyint(1) NOT NULL, - `InheritResolution` tinyint(1) NOT NULL, - `InheritUseConsoleSession` tinyint(1) NOT NULL, - `InheritUseCredSsp` tinyint(1) NOT NULL, - `InheritRenderingEngine` tinyint(1) NOT NULL, - `InheritICAEncryptionStrength` tinyint(1) NOT NULL, - `InheritRDPAuthenticationLevel` tinyint(1) NOT NULL, - `InheritRDPMinutesToIdleTimeout` tinyint(1) NOT NULL, - `InheritRDPAlertIdleTimeout` tinyint(1) NOT NULL, - `InheritUsername` tinyint(1) NOT NULL, - `InheritPreExtApp` tinyint(1) NOT NULL, - `InheritPostExtApp` tinyint(1) NOT NULL, - `InheritMacAddress` tinyint(1) NOT NULL, - `InheritUserField` tinyint(1) NOT NULL, - `InheritExtApp` tinyint(1) NOT NULL, - `InheritVNCCompression` tinyint(1) NOT NULL, - `InheritVNCEncoding` tinyint(1) NOT NULL, - `InheritVNCAuthMode` tinyint(1) NOT NULL, - `InheritVNCProxyType` tinyint(1) NOT NULL, - `InheritVNCProxyIP` tinyint(1) NOT NULL, - `InheritVNCProxyPort` tinyint(1) NOT NULL, - `InheritVNCProxyUsername` tinyint(1) NOT NULL, - `InheritVNCProxyPassword` tinyint(1) NOT NULL, - `InheritVNCColors` tinyint(1) NOT NULL, - `InheritVNCSmartSizeMode` tinyint(1) NOT NULL, - `InheritVNCViewOnly` tinyint(1) NOT NULL, - `InheritRDGatewayUsageMethod` tinyint(1) NOT NULL, - `InheritRDGatewayHostname` tinyint(1) NOT NULL, - `InheritRDGatewayUseConnectionCredentials` tinyint(1) NOT NULL, - `InheritRDGatewayUsername` tinyint(1) NOT NULL, - `InheritRDGatewayPassword` tinyint(1) NOT NULL, - `InheritRDGatewayDomain` tinyint(1) NOT NULL, - `LoadBalanceInfo` varchar(1024) DEFAULT NULL, - `AutomaticResize` tinyint(1) NOT NULL DEFAULT 1, - `InheritLoadBalanceInfo` tinyint(1) NOT NULL DEFAULT 0, - `InheritAutomaticResize` tinyint(1) NOT NULL DEFAULT 0, - `RedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, - `InheritRedirectClipboard` tinyint(1) NOT NULL DEFAULT 0, - PRIMARY KEY (`ID`) -) ENGINE=InnoDB AUTO_INCREMENT=3324 DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `tblRoot` --- - -DROP TABLE IF EXISTS `tblRoot`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tblRoot` ( - `Name` varchar(2048) NOT NULL, - `Export` tinyint(1) NOT NULL, - `Protected` varchar(4048) NOT NULL, - `ConfVersion` double NOT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - --- --- Table structure for table `tblUpdate` --- - -DROP TABLE IF EXISTS `tblUpdate`; -/*!40101 SET @saved_cs_client = @@character_set_client */; -/*!40101 SET character_set_client = utf8 */; -CREATE TABLE `tblUpdate` ( - `LastUpdate` datetime(3) DEFAULT NULL -) ENGINE=InnoDB DEFAULT CHARSET=latin1; -/*!40101 SET character_set_client = @saved_cs_client */; - - -/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */; - -/*!40101 SET SQL_MODE=@OLD_SQL_MODE */; -/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */; -/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */; -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; -/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */; diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/01.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/01.png deleted file mode 100644 index 2cbd401e..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/01.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/02.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/02.png deleted file mode 100644 index 2f25956d..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/02.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/03.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/03.png deleted file mode 100644 index 3a7a8ed2..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/03.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/04.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/04.png deleted file mode 100644 index e8ac720d..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/04.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/05.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/05.png deleted file mode 100644 index 9e719ca3..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/05.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/06.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/06.png deleted file mode 100644 index a5e90d29..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/06.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/External Tools/07.png b/mRemoteV1/Resources/Help/Screenshots/External Tools/07.png deleted file mode 100644 index 52f96e91..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/External Tools/07.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Navigation/basic_panels.png b/mRemoteV1/Resources/Help/Screenshots/Navigation/basic_panels.png deleted file mode 100644 index 73f4b9d4..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Navigation/basic_panels.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Navigation/panel_context_menu.png b/mRemoteV1/Resources/Help/Screenshots/Navigation/panel_context_menu.png deleted file mode 100644 index 990bbc20..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Navigation/panel_context_menu.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Navigation/rdp_context_menu.png b/mRemoteV1/Resources/Help/Screenshots/Navigation/rdp_context_menu.png deleted file mode 100644 index 6a6da860..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Navigation/rdp_context_menu.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Navigation/ssh_context_menu.png b/mRemoteV1/Resources/Help/Screenshots/Navigation/ssh_context_menu.png deleted file mode 100644 index 7f851f8b..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Navigation/ssh_context_menu.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Navigation/view_menu.png b/mRemoteV1/Resources/Help/Screenshots/Navigation/view_menu.png deleted file mode 100644 index 71d9a1c5..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Navigation/view_menu.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/01.png b/mRemoteV1/Resources/Help/Screenshots/Reference/01.png deleted file mode 100644 index 50f2ee19..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Reference/01.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/example_01.png b/mRemoteV1/Resources/Help/Screenshots/Reference/example_01.png deleted file mode 100644 index 68413d73..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Reference/example_01.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/Screenshots/Reference/status_icon.png b/mRemoteV1/Resources/Help/Screenshots/Reference/status_icon.png deleted file mode 100644 index efdfbfe9..00000000 Binary files a/mRemoteV1/Resources/Help/Screenshots/Reference/status_icon.png and /dev/null differ diff --git a/mRemoteV1/Resources/Help/gs_command_line_switches.htm b/mRemoteV1/Resources/Help/gs_command_line_switches.htm deleted file mode 100644 index e6c8c6f8..00000000 --- a/mRemoteV1/Resources/Help/gs_command_line_switches.htm +++ /dev/null @@ -1,81 +0,0 @@ - - - - - Command-Line Switches - - - -

Command-Line Switches

-
-

The following commandlline switches are supported by mRemoteNG.

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
CommandDescription
- /cons: - PathToConnectionsFile -
-
- /c: - PathToConnectionsFile -
Loads the connections file from the given path.
-
This path can be a:
    -
  • full file path
  • -
  • path relative to the current directory
  • -
  • path relative to the mRemoteNG application directory
  • -
  • path relative to the mRemoteNG default connection file directory
  • -
-
- /reset - Resets window position, panels and toolbars
- /resetpos -
-
- /rp -
Reset the windows position
- /resetpanels -
-
- /rpnl -
Resets all panel positions. Use this if you have troubles with panel layouts
- /resettoolbar -
-
- /rtbr -
Resets the positions of all toolbars
- /noreconnect -
-
- /norc -
Temporary disables reconnect to previously opened sessions. Use this if you have problems opening mRemoteNG after you enabled the setting and restarted mRemoteNG
-
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/gs_installation.htm b/mRemoteV1/Resources/Help/gs_installation.htm deleted file mode 100644 index 53b4e6b1..00000000 --- a/mRemoteV1/Resources/Help/gs_installation.htm +++ /dev/null @@ -1,34 +0,0 @@ - - - - - Installation - - - -

Installation

-

- Downloads are provided in four different packages: A setup package, a binary package, a portable package and the source package. -
- These are described below. -

-
-

Setup Package

-

- The setup package is the compiled version of mRemoteNG which comes in an MSI installer. -
- -> The common way to get mRemoteNG up and running -

-

Portable Package

-

- The portable package contains a modified version of the executable which stores and loads all your settings from files in the application's directory. -
- This package can be used to run mRemoteNG off a portable device (a USB stick for example) and preserve your configuration wherever you go. -

-

Source Package

-

- The source package contains the source code as a zip file in form of a Visual Studio solution. -

-
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/gs_prerequisites.htm b/mRemoteV1/Resources/Help/gs_prerequisites.htm deleted file mode 100644 index 996a242b..00000000 --- a/mRemoteV1/Resources/Help/gs_prerequisites.htm +++ /dev/null @@ -1,100 +0,0 @@ - - - - - Prerequisites - - - -

Prerequisites

-
-
    -
  • - Microsoft .NET Framework 4.0 -
  • -
  • Microsoft Terminal Services Client 8.0 or later.
      -
    • Needed if you use RDP. mstscax.dll and/or msrdp.ocx must be registered.
    • -
    • Included with newer Windows versions.KB2574819 AND eitherKB2592687 orKB2923545is required for Windows 7/Windows Server 2008 R2
    • -
    -
  • -
  • - PuTTY -
      -
    • Needed if you use Telnet, SSH, Rlogin or RAW. Included in all packages.
    • -
    • An appropriate and integrated version is included with mRemoteNG.
    • -
    -
  • -
  • - Citrix ICA Client -
      -
    • Needed if you use ICA. wfica.ocx must be registered.
    • -
    -
  • -
-

Supported Operating Systems

-
- - -

Windows™ 7/Windows Server 2008 R2 clients (requirements)

-
-
- TIP! You can use powershell to fetch if the hotfixes are installed. Try using example:
-
- Get-HotFix | where {$_.HotFixID -eq "KB2574819" -and $_.HotFixID -eq "KB2592687"} -
-

The following updates must be present on any Windows 7 or Server 2008 client that will be running mRemoteNG. (They must have been installed in the order provided below):

- -

The following are suggested (but not required) for Windows 7 / Server 2008 clients:

- - - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/gs_running_mremoteng.htm b/mRemoteV1/Resources/Help/gs_running_mremoteng.htm deleted file mode 100644 index fbb81634..00000000 --- a/mRemoteV1/Resources/Help/gs_running_mremoteng.htm +++ /dev/null @@ -1,93 +0,0 @@ - - - - - Running mRemoteNG - - - -

Running mRemoteNG

-
- -

Creating a connection

-
-

Right click on the root item (the little blue globe named "Connections") in the Connections panel and select "New Connection".

- -

A new item shows up under the root item. You can give it a name now (or rename it later). We'll just call this connection "Test" for the moment.

- -

Now lets look at the config panel in the bottom left, just under the connections panel. As you may notice this is where you configure all the properties of connections and folders.

- -

Fill in the necessary properties and you have just created your first connection!
You can now connect to the server with a simple double-click on the "Test"-connection!

-
- TIP! You can see an indicator in the properties window that is glowing green. -
-
This icon does a ICMP ping on to check response from the server. If it glows green it indicates a connection response can be made using ping to the host. However this is turned off on windows by default. You have to enable ICMP and allow the firewall access for it. -
-

Opening and Closing Connections

-
-

- There are multiple ways to open a connection in mRemoteNG, but the easiest way is to double click the connection in the Connections panel. -
- If you double click the connection you will notice that the connection is going to try and open in a new panel called "General" and under a tab called "Test". -
- If all goes well you should see the remote desktop without any problems. -

- -
- NOTE! If the connecting fails, the notifications panel will pop up and show an error message describing the problem. -
-

To close the connection you can do any of the following:

    -
  • Log off in the start menu - Closes the connection and logs you out completely from RDP
  • -
  • Close the panel with the - Which leaves your session active on server but closes connection in mRemoteNG
  • -
  • Close the connection tab with - Also keeps your login active on server but closes RDP connection in mRemoteNG
  • -
  • Double click the connection tab - Same as above where the connection is active on server but closes RDP connection in mRemoteNG
  • -
-

-

Folders and Inheritance

-
-

Folders on mRemoteNG cannot only be used to categorize connections but also to inherit properties to underlying connections.

-
-

Example

-

You have ten Remote Desktop enabled servers in one domain and 15 in another domain. -
- Normally you would spend a lot of time creating all those connections and setting the individual properties like username, password, etc. -
- In mRemoteNG there is an easier way. You just create two folders (one for domain A and one for domain B) and set all properties there. -
- Then create the connections itself and let it inherit every property. The only properties left to set on the connection itself are the connection name and hostname. Everything else will be inherited from the parent folder. -

- Here is how you do this: -
- Add the folder. This can be done like this: -

    -
  • - Right click on connections and click on New Folder -
  • -
  • - File > New Folder -
  • -
  • - Or with keybinding: Ctrl+Shift+N -
  • -
-

- -

Then give it a name and fill all the properties you need (like you did with the test connection).

- -
- -

When you have filled in the settings and values you can either just drag the test Connection inside the folder or create a new one.

- -

Right now nothing has changed and nothing will be inherited.
To enable inheritance switch to the inheritance view by clicking the dedicated button. (Marked with a red arrow below)

- -

The properties that show up now are almost the same as before, but you only select yes or no to enable or disable a inheritance.

- -

When no is selected the property will not be inherited, yes indicates an inherited property.

-

For this test set Inherit Everything to Yes.

-

Now if you switch back to the properties view (the button left of the inheritance button) you should see that not much is left of all those properties.

- -

Only the Name and Hostname/IP properties are left over, everything else will be inherited from the parent folder.

-

Of course you can also only let some of the properties be inherited. Just play around with this a bit and you'll get the hang of it.

-
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/st_common_problems_rdp.htm b/mRemoteV1/Resources/Help/st_common_problems_rdp.htm deleted file mode 100644 index c0fbd589..00000000 --- a/mRemoteV1/Resources/Help/st_common_problems_rdp.htm +++ /dev/null @@ -1,49 +0,0 @@ - - - - - Common Problems (RDP) - - - -

Common Problems (RDP)

-
-

Its hard to make a document on all problems that can occur with connections but here at least we are trying to list some of the most common problems for RDP that has been noticed.

- -
-

Quick Reference

- -
- - -

CredSSP - CVE-2018-0886 - Authentication error

-
-

mRemoteNG uses the Microsoft Terminal Services Client (MSTSC) libraries in order to make Remote Desktop connections. mRemoteNG has no control over the functionality changes implemented by Microsoft. -
-
- Relevant line of code that shows our "RDP Client" connection "object": private MsRdpClient8NotSafeForScripting _rdpClient -
- Relevant MS documentation for this .NET class: MsRdpClient8NotSafeForScripting class -
-
- Please refer to Microsoft's documentationfor full details regarding this problem. - Patched clients attempting to connect to Unpatched servers will fail with the following error:

- -

The same error will occur with MSTSC directly on a patched client attempting to connect to an unpatched server.

-

Per the MS documentation, the only way around this is to do the following:

-
    -
  • Patch the servers
  • -
  • set the "Encryption Oracle Remediation" policy to "Vulnerable" - refer to the MS documentation above for details:
    - -
  • -
  • Uninstall KB4103727 -
  • -
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_config.htm b/mRemoteV1/Resources/Help/ui_config.htm deleted file mode 100644 index 4e881905..00000000 --- a/mRemoteV1/Resources/Help/ui_config.htm +++ /dev/null @@ -1,57 +0,0 @@ - - - - - Config - - - - -

Config

-
- -

- Config dialog to setup the connection specific properties. -
- This includes inheritance from other items before the item and more. -
- Details below is about how to work with this dialog to get the most out of connections and configuration. -

-
-

Quick Reference

- -
- - -

Top Bar

-
-
-

-
- Red - Sort values Categories or Alphabetical
- Green - Show Properties, Inheritance values
- Blue - Connection icon
- Yellow - Host status (based on ICMP ping) -

-

Sort Values

-

Sorts the values in properties either by Categories or Alphabetically.

- Categories sort - Shows values in categories with expanding options.
- Alphabetical sort - Expands everything and shows values in alphabetical order instead

-

-

Icon

-

The icon indicates the visual identifier for the connection. Clicking the icon will let you set a different icon for the connection.

-
- NOTE! Don't forget that mRemoteNG will save the change on exit auto unless you have unchecked this setting in options.
-

Status

-

Is a indicator that will glow red or green depending on the status of the host. The status is based on ICMP ping to the host.

-
- IMPORTANT! In order for this to work you have to open up ICMP. On windows servers this is also disabled in windows firewall.
-
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_connections.htm b/mRemoteV1/Resources/Help/ui_connections.htm deleted file mode 100644 index b0271682..00000000 --- a/mRemoteV1/Resources/Help/ui_connections.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - Connections - - - -

Connections

-
-

The connections dialog is the main collection of all connections that inside mRemoteNG. This document will explain the details of the connections dialog.

- -

Top Menu Bar

-
-

-
- Red - New Connection
- Green - New Folder
- Blue - View (Expand/Collapse all folders)
- Yellow - Ascending sort -

-
-

Quick Reference

- -
- - -

New Connection

-
-

Creates a new connection item in the connections dialog after where cursor is present.

-
- TIP! You can also duplicate an already created connection if you want to follow some sort of template of a connection. Just right click on folder or connection to duplicate the item. The information is then carried over for editing. This can save a lot of time when the connection list is large.
- - -

New Folder

-
-

Creates a new folder in connections dialog after where cursor is present.

-
- TIP! Folders can help to make adding connections easier. By setting a folder with some values that can be inheritaded down to the connections. Read more about this inConfiguration -
- - -

View

-
-

Collapses or expands all directories in the connection dialog. Useful when working with a lot of connections sorted in different directories.

- - -

Ascending

-
-

Works like a sort or a refresh to get connection in ascending order. (Descending order is note supported yet) When you have been moving around in the tree of connections, just click this item to refresh the list and get everything in ascending ordering.

- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_external_tools.htm b/mRemoteV1/Resources/Help/ui_external_tools.htm deleted file mode 100644 index a86aad3c..00000000 --- a/mRemoteV1/Resources/Help/ui_external_tools.htm +++ /dev/null @@ -1,167 +0,0 @@ - - - - - External Tools - - - -

External Tools

-
-

- External Tools allow you to integrate external command-line tools or applications into mRemoteNG. -
- The external tools configuration is stored in %APPDATA%\mRemoteNG\extApps.xml -

-

Variables

-
-

Variables and arguments can be used to tell the external tool what to do.

-

This is the list of variables supported by mRemoteNG:

-
    -
  • %NAME%
  • -
  • %HOSTNAME%
  • -
  • %PORT%
  • -
  • %USERNAME%
  • -
  • %PASSWORD%
  • -
  • %DOMAIN%
  • -
  • %DESCRIPTION%
  • -
  • %MACADDRESS%
  • -
  • %USERFIELD%
  • -
-

Variables always refer to the currently selected connection. Variable names are case-insensitive. Variables can be used in both the Filename and Arguments fields.

-

mRemoteNG will also expand environment variables such as %PATH% and %USERPROFILE%. If you need to use an environment variable with the same name as an mRemoteNG variable, use \% instead of %. The most common use of this is for the USERNAME environment variable. %USERNAME% will be expanded to the username set in the currently selected connection. \%USERNAME\% will be expanded to the value set in the USERNAME environment variable.

-

If you need to send a variable name to a program without mRemoteNG expanding it, use ^% instead of %. mRemoteNG will remove the caret (^) and leave the rest unchanged. For example, ^%USERNAME^% will be sent to the program as %USERNAME% and will not be expanded.

-

Special Character Escaping

-
-

Expanded variables will be escaped using the rules below. There are two levels of escaping that are done. The first is escaping for standard argument splitting (C/C++ argv, CommandLineToArgvW, etc). The second is escaping shell metacharacters for ShellExecute.

-
-

Argument splitting escaping:

-
    -
  • Each quotation mark will be escaped by a backslash.
  • -
  • One or more backslashes (\) followed by a quotation mark ("):
      -
    • Each backslash will be escaped by another backslash.
    • -
    • The quotation mark will be escaped by a backslash.
    •      If the connection's user field contains "This" is a \"test\".
           Then %USERFIELD% is replaced with \"This\" is a \\\"test\\\".
    -
  • -
  • A variable name followed by a quotation mark (for example, %USERFIELD%") with a value ending in one or more backslashes:
      -
    • Each backslash will be escaped by another backslash.
    • -
    • Example:
    •      If the connection's user field contains c:\Example\
           Then "%USERFIELD%" is replaced with "c:\Example\\"
    -
  • -
-

To disable argument splitting escaping for a variable, precede its name with a minus (-) sign. For example, %-USERFIELD%.

-

Shell metacharacter escaping:

-
    -
  • The shell metacharacters are ( ) % ! ^ " < > & |
  • -
  • Each shell metacharacter will be escaped by a caret (^).
  • -
-

To disable both argument splitting and shell metacharacter escaping for a variable, precede its name with an exclamation point (!). For example, %!USERFIELD%. This is not recommended and may cause unexpected results.

-

Only variables that have been expanded will be escaped. It is up to you to escape the rest of the arguments.

-

Variable Examples

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ArgumentsUser FieldResult
%USERFIELD%"Example" Text\^"Example\^" Text
%-USERFIELD%"Example" Text^"Example^" Text
%!USERFIELD%"Example" Text"Example" Text
^%USERFIELD^%"Example" Text%USERFIELD%
^^%USERFIELD^^%"Example" Text^%USERFIELD^%
-d "%USERFIELD%"c:\Example\-d "c:\Example\\"
-d "%-USERFIELD%"c:\Example\-d "c:\Example\"
-d "%USERFIELD%"Left & Right-d "Left ^& Right"
-d "%!USERFIELD%"Left & Right-d "Left & Right"
%WINDIR%N/Ac:\Windows\
\%WINDIR\%N/Ac:\Windows\
\^%WINDIR\^%N/A\%WINDIR\%
\\%WINDIR\\%N/A\\%WINDIR\\%
-
-

Example

-
-

First of all, start the external tools editor. To do this, click Tools in the main menu and select External Tools.
You will see a screen like on the following screenshot.

-

- -

-

The fields below the list are greyed out because you haven't created an external tool entry yet.
To create one, right click the blank area in the list and select Add, as in the screenshot below.

-

- -

-

This is what you'll get:

-

- -

-

So the three fields are now available and need to be filled.
The Display Name is simply the name you will see when you want to launch that tool, so give it a descriptive name.
I named mine Traceroute as I will create a external tool that will start the tracert command in the console.

-

- -

-

Ok, the next thing we'll need is a filename. This is the program that we want to be executed.
I simply type in cmd for a Windows cmd console.

-

- -

-

The Windows cmd has a command line argument that tells the console to launch the command followed by that argument and stay open.
It's /K. (There's also /C, this is useful when you want the console to close after the command was executed)
In this case, I'll use /K as I want to look through the result when the command completes.
After that, I just type tracert %HostName%. This tells the console to do a traceroute on the hostname of the currently selected Connection.

-

- -

-

Now right click one of you connections, click Tools, External Tools and select Traceroute.

-

- -

-

Voilà! A console window will popup and execute your tracert command.

-

- -

- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_file_transfer.htm b/mRemoteV1/Resources/Help/ui_file_transfer.htm deleted file mode 100644 index 390ba7d4..00000000 --- a/mRemoteV1/Resources/Help/ui_file_transfer.htm +++ /dev/null @@ -1,66 +0,0 @@ - - - - - SSH File Transfer - - - - -

SSH File Transfer

-
-

SSH File Transfer functionality allows you to securely transfer files to a remote host over an encrypted tunnel using either SFTP or SCP.

- - -

Prerequisites

-
-
    -
  • SSH File Transfer requires an SSH service to listen on an available network port (default 22) on a remote host.
  • -
  • A username and password must be supplied to connect with the remote host.
  • -
  • The remote host must have a writable folder on its filesystem to place the transferred files.
  • -
- - -

Configuration Options

-
-
    -
  • - Host - The remote host you connect to. Can be DNS name or IP address.
  • -
  • - Port - Remote network port listening for SSH/SFTP/SCP traffic.
  • -
  • - User - Username for account to log on to remote host.
  • -
  • - Password - Password for account to log on to remote host.
  • -
  • - Protocol - Choice of SCP or SFTP protocol used for communication.
  • -
  • - Local File - Path of file to transfer from local host.
  • -
  • - Remote File - Path where file will be transferred on remote host.
      -
    • Example: /home/John/Documents
    • -
    -
  • -
- -

Using SSH File Transfer

-
-

To begin, select Tools and then SSH File Transfer. The tool will fill the window and allow you to input the configuration options. Each piece of information is needed for a successful transfer.

-

To populate the Local File option, select the Browse button and navigate to the desired file on the local filesystem. To populate the Remote File option, manually type desired filesystem path, including the desired file name.

-

Once all options are populated, select Transfer and the progress bar at the bottom of the window will show the progress.

-

Troubleshooting SSH File Transfer

-
-

To troubleshoot issues with SSH File Transfer, consult the log under %AppData%\mRemoteNG\mRemoteNG.log. This log provides verbose information about successful and failed connections.

-
-

Common Issues

- ERROR- Please fill all fields -
This issue was likely encountered because you did not provide all information needed to establish the connection.
-
- System.Net.Sockets.SocketException (0x80004005): No connection could be made because the target machine actively refused it -
This issue was likely encountered because the local host could not contact the remote host specified on the remote port specified.
The issue may be caused by improperly configured firewall rules or a SSH service not listening properly on the remote host.
-
- [14] ERROR- SSH background transfer failed! -
This issue was likely encountered due to a permissions issue. Ensure you have appropriate access to write to the specified Remote File. -
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_import_and_export.htm b/mRemoteV1/Resources/Help/ui_import_and_export.htm deleted file mode 100644 index a88e7ecd..00000000 --- a/mRemoteV1/Resources/Help/ui_import_and_export.htm +++ /dev/null @@ -1,32 +0,0 @@ - - - - - Import/Export - - - - -

Import/Export

-
-

Import/Export is for importing or exporting your configuration of connections.

- - -

Import

-
-
-

Import from File

-

Opens a normal file load dialog to open a exported xml or csv file for mRemoteNG. See Export to file further down this page for information on exporting your connections.

-

Import from Active Directory

-

If you have servers that is located in a domain. Then this option can be used to fetch those servers to easily import them to mRemoteNG.

-

Import from Port Scan

-
- - -

Export to file

-
-

Here you can export your settings to a file to share or backup. The dialog shown below is the dialog of which you chose the options to export.

- - - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_keyboardshortcuts.htm b/mRemoteV1/Resources/Help/ui_keyboardshortcuts.htm deleted file mode 100644 index 8cd72399..00000000 --- a/mRemoteV1/Resources/Help/ui_keyboardshortcuts.htm +++ /dev/null @@ -1,132 +0,0 @@ - - - - - Keyboard Shortcuts - - - -

Keyboard Shortcuts

-
-
-

File

- - - - - - - - - - - - - - - - - - - - - - - - - -
KeybindingAction
- Ctrl+N - New Connection
- Ctrl+Shift+N - New Folder
- Ctrl+O - Open Connection File...
- Ctrl+S - Save Connection File
- Ctrl+Shift+S - Save Connection File As...
-

View

- - - - - - - - - - - - - - - - - -
KeybindingAction
- Ctrl+Alt+C - Jump to (Connections and Config)
- Ctrl+Alt+E - Jump to (Notifications)
- F11 - Fullscreen
-

Connections

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
KeybindingAction
- Ctrl+Shift+C - Connect
- Ctrl+D - Duplicate
- F2 - Rename
- Del - Delete...
- Ctrl+Up - Move Up
- Ctrl+Down - Move Down
-

Help

- - - - - - - - - -
KeybindingAction
- F1 - mRemoteNG Help
-
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_menus.htm b/mRemoteV1/Resources/Help/ui_menus.htm deleted file mode 100644 index e0757f48..00000000 --- a/mRemoteV1/Resources/Help/ui_menus.htm +++ /dev/null @@ -1,224 +0,0 @@ - - - - - Menus - - - - -

Menus

-
- -

In this section we are going to explain the menus located in mRemoteNG. The above screenshot shows the main menu with colors. Short color explanation:
- Red - Anchor to move menu around the interface
- Green - The menu items -

-
-

Quick Reference

- -
- - -

File Menu

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ItemDescription
New ConnectionWill add a new connection to the Connections dialog after where the cursor is positioned.
New FolderAdd a new folder in the Connections dialog tree where the cursor is positioned.
New Connection FileCreate a new connection file. Dialog will come up asking about: filename and where to place the new connection file.
Open Connection FileOpen a connection file. Dialog comes up asking about which file to open. For security reasons, this also shows a dialog to ask if you want to save the current file before continuing.
Save Connection FileSaves the currently opened connection file. If you are using a SQL server connection instead it will send a save to the SQL server.
Save Connection File As...Saves the current connection file to a specific location on disk.
Delete...Delete currently selected item in connections dialog.
RenameRename current selected item in connections dialog.
DuplicateDuplicate current selected item in connections dialog.
Reconnect All Open ConnectionsSends a reconnect to all the open connections in mRemoteNG.
ExitExit mRemoteNG application
- - -

View Menu

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ItemDescription
Add Connection PanelCreate a new and empty panel.
Connection PanelsJump to panel.
ConnectionsShow connections dialog
ConfigShow config dialog
NotificationsShow notifications dialog
ScreenshotsOpen Screenshots panel (See: ScreenshotManager for more information)
Jump ToPlace focus on "Connections and Config" or "Notifications" panel based on selection.
Reset layoutResets the layout of panels and dialogs. Warning will come up about the action before continuing.
Lock toolbar positionsLocks the toolbars at the top of the application so you do not move around items by mistake.
Quick Connect ToolbarShow quick connect toolbar
External Tools ToolbarShow external tools toolbar
Multi SSH ToolbarShow multi ssh toolbar
FullscreenFullscreen mRemoteNG (will not fullscreen connection window but only the mRemoteNG application)
- - -

Tools Menu

-
- - - - - - - - - - - - - - - - - - - - - - - - - -
ItemDescription
SSH File TransferShow SSH file transer panel (See: SSH File Transfer for more details)
External ToolsShow external tools dialog (See: External Tools for more details)
Port ScanShow port scan dialog (See: Port Scan for more details)
Components CheckShow installed components requirements test
OptionsOpens mRemoteNG global settings and options dialog
- - -

Help Menu

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ItemDescription
mRemoteNG HelpShow help panel (this panel)
WebsiteGo to mRemoteNG website
DonateGo to mRemoteNG donation page. (Please help keep mRemoteNG awesome!)
Support ForumGo to mRemoteNG suport forum (Best place is still chat for fast answers)
Report a BugGo to github page to report a bug found
Check for UpdatesOpens dialog to check for any updates of mRemoteNG
AboutOpen about dialog for mRemoteNG (Shows contributors, changelog and more)
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_navigation.htm b/mRemoteV1/Resources/Help/ui_navigation.htm deleted file mode 100644 index 9053710f..00000000 --- a/mRemoteV1/Resources/Help/ui_navigation.htm +++ /dev/null @@ -1,89 +0,0 @@ - - - - - Navigation - - - -

Navigation

-
-
-

Quick Reference

- -

Panels

-

Panels are used to organize tabbed connections. This might seem a bit confusing but its a great way to stay organized. Below is a few examples of how to use panels to give you a hands on better view of them.

-
    -
  • - Test and Production - You can add 2 panels where you have the test servers are located and the other where production servers are running.
  • -
  • - Datacenters - Maybe you divide them into datacenters.
  • -
  • - Temp project - To see all servers you work on for a temporary project.
  • -
  • - Home vs Work - Maybe you are sneaky at work and want to login at home to check you machine at home for something while keeping work in its own panel.
  • -
  • ...and many more
  • -
-

For this tutorial we will keep it simple with Domain A and Domain B. Where both have their own panels.

- -
-

Creating panels

-

Usually panels are created using connections and folders to stay organized automatic when making connections. However you can also create panels manually. See below:

- -

Creating manual panels will make you able to organize tabs manually in mRemoteNG. To then open a connection to the new panel then Right click on connection and use "Connect (with options)", then "Choose panel before connecting"

-

The other option in the menu named "Connection Panels" will list all panels in open in the current running mRemoteNG window.

-

More options"

-

Right click menu for panels will give you a few more options for the panels:

- -
    -
  • - Rename - Rename the panel
  • -
  • - Send To... - Send the whole panel to monitor/screen [number]. Note this is not a real window but a detachable panel. So if you double click the title the panel will go back to mRemoteNG and not fullscreen the window.
  • -
-
-

Tabs

-

Speaking plain the tabs are also the connections that is open in mRemoteNG. There are few tips and tricks regarding tabs and we will try to list them here. In the below examples we will give you examples of RDP and SSH connections.

-
-

Right click conext menu

-

The right click context menu allows you to trigger som additional actions on tabs for example: Rename Tab, Duplicate Tab, Reconnect, Disconnect etc. Below are the two context menus from RDP and SSH.

-
-

RDP context menu

- -
-
-

SSH context menu

- -
-

If you check the difference between the menus you can see that there are some actions that differ depending on the connection. This is intentional since its specific for the type of connection.

-

The default and always available menu items are: -

    -
  • - Screenshot - Create a screenshot to Screenshot Manager
  • -
  • - External Tools - Run external tool script/action
  • -
  • - Rename Tab - Rename current tab
  • -
  • - Duplicate Tab - Duplicate tab connection
  • -
  • - Reconnect - Reconnect the current tab
  • -
  • - Disconnect - Disconnect the current tab (Double clicking the tab will also disconnect the current tab. If you want to change this action then go to Tools > Options > Tabs & Panels and uncheck"Double click on tab closes it")
  • -
Click around and try it out. You will get the hang of it. -

-
-
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_notifications.htm b/mRemoteV1/Resources/Help/ui_notifications.htm deleted file mode 100644 index bfc489f6..00000000 --- a/mRemoteV1/Resources/Help/ui_notifications.htm +++ /dev/null @@ -1,51 +0,0 @@ - - - - - Notifications - - - - -

Notifications

-
-

- The notifications panel contains any errors or informational messages that mRemoteNG triggers. -
- Some example errors can be if there is a problem to connect, information on lost connection and so much more. -
Notification settings can be found in (Tools > Options > Notifications) below we will explain what can be set and how they do affect for various troubleshooting. -

- - -
-

Notifications general settings

- notification warning -

This will tell mRemoteNG what type of messages and the level of messages to send to the panel. It does not the level for the log that mRemoteNG has but only for panel output.

-

There is also 2 different options mentioned below:

-
    -
  • - Show these message types - Level of messages to show in panel. (default: Warnings and Errors)
  • -
  • - Switch to Notifications panel on - If interface should switch to the panel when a level of message occurs (default: all enabled)
    - TIP! If you dont want the panel to show at all. Then unmark all options inSwitch to Notification panel on. Then the panel will not come up automatic.
    -
  • -
- - -

Logging settings

-

Here you define the logging of messages. That is a continues log which can be used to backtrack any error that has occurred. Good when for example reporting issues about mRemoteNG or to check more details about problems.

-
    -
  • - Log path - Choose where the log should recide (default: Log to application directory)
  • -
  • - Log these message types - Level of logging to logfile (default: Informations, Warnings, Errors)
  • -
- - -

Popups settings

- popup warning -

When items are selected here you will recieve a popup on the error that occurrs based on level chosen in settings here. This can be useful if you do not want to use the notification area and only get a popup if error occurs. (default: all off)

- -
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_options.htm b/mRemoteV1/Resources/Help/ui_options.htm deleted file mode 100644 index 6f5de57a..00000000 --- a/mRemoteV1/Resources/Help/ui_options.htm +++ /dev/null @@ -1,412 +0,0 @@ - - - - - Options - - - - -

Options

-
-

- Options window which can also be named settings is the window where you can personalize your options for all of mRemoteNG. -
- This includes how to set logging, credentials and so on. Continue reading for the details of the different options here. -

-
-

Quick Reference

- -
- - -

Startup/Exit

-
-

Options below are for the various settings for Startup/Exit of mRemoteNG.

- - - - - - - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Save connection on exitOnSave to connection file/database on exit of mRemoteNG.
Reconnect to previously opened sessions on startupOffThis option will allow you to open the connection from which you where connected to after last exit of application.
Allow only a single instance of the application (mRemoteNG restart required)OffEnforces and makes sure only a single instance of mRemoteNG is running on the computer.
Check proper installation of components at startupOffOpens the panel for Components Check on every startup.
- - -

Appearance

-
-

Various options for mRemoteNG appearance.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Language(Automatically Detect)Which language to use for the interface of mRemoteNG.
Show description tooltips in connection treeOffHolding mouse over a item in connection tree will show a popout from mouse with information.
Show full connections file path in window titleOffAdds the complete path to the title of mRemoteNG to where the connection file is located.
Always show notification area iconOffAdds mRemoteNG to the taskbar in the OS.
Minimize to notification areaOffWill place mRemoteNG in taskbar on minimize.
- - -

Tabs & Panels

-
-

Various settings for how tabs & panels should work in mRemoteNG.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Always show panel tabsOffWill always show the tabs & panels in mRemoteNG
Open new tab to the right of the currently selected tabOnWhen active then open next tab on the right of the active selection in mRemoteNG. Turn this off and next tab will open the next connection at the end of all tabs.
Show logon information on tab namesOffShow your login in the connection tab.
Show protocols on tab namesOffWhen active then in the tab show what protocol is used for the connection.
Identify quick connect tabs by adding the prefix "Quick:"OffWhen active shows Quick: before the connection name in the tab connection to easier identify what is a quick connection and what is a non quick connection.
Double click on tab closes itOnWhen double clicking a tab it will close the connection but does not log you out from the server. The connection in this case is active on the destination server.
Always show panel selection dialog when opening connectionsOffOption to allow you to always select what panel to place the connection on. If this is off it will create a General panel where the connection is placed or use the connections set panel from the connection options.
Create a empty panel when mRemoteNG startsOffOn startup if this is active mRemoteNG will create a panel mentioned under Panel Name:
- - -

Connections

-
-

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Single click on connections opens itOffIn connection tree when this is active will try to connect on single click. By default this is turned off to use double click to open connection.
Single click on opened connection in Connection Tree switches to the opened Connection TabOffAllows you to single click on a active connection in the connection tree to go to that open connection in the tabs faster.
Set hostname like display name when creating or renaming connectionsOffWill make mRemoteNG try to use the remote host hostname to set the title of the tab in mRemoteNG.
Save connections after every exitOnWhen active mRemoteNG will save the connection tree to the active config after every exit. If inactive then you have to save usingFile > Save Connection File or keyboard shortcutCtrl+S -
Filter search matches in connection treeOffAllows you to filter out the connections to which does not match your filter search in the connection tree. If not active the search will only select the filter to which you do search.
RDP Reconnect count5Value in seconds
-
RDP Connection Timeout20Value in seconds
-
Auto save time in minutes (0 means disabled)0Value in minutes
-
When closing connectionsWarn me when closing connectionsVarious options of how mRemoteNG should act when you close connections. The different options are listed below:
    -
  • Warn me when closing connections
  • -
  • Warn me only when closing multiple connections
  • -
  • Warn me only when exiting mRemoteNG
  • -
  • Do not warn me when closing connections
  • -
By default a warning will come up on closing a connection. Change this value based on your prefered settings.
- - -

Credentials

-
-

Options for credentials in mRemoteNG. The main purpose here is that when you have empty username, password or domain field then use below information.

- - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
NoneOnUse no specific settings on login
My Current credentials (Windows logon information)OffThis option will use the logon information for the OS. This is useful if you are in a domain that uses specific credentials and want to login to servers with those credentials.
The following:OffUse one or two of the options below for the empty login or all of them. For example if you have a different domain that you login to the servers with.
- - - -

SQL Server

-
-
- NOTE! To understand more about SQL Server connection please - See here - -
- - - - - - - - - - - -
- Option - - Default - - Description -
Use SQL Server to load & save connectionsOffEnable to fetch connections from a database.
- - -

Updates

-
-

Options for how mRemoteNG should check for updates from the website.

- - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Check for updates at startupOn (Every 14 days)Here you can choose how often mRemoteNG checks for updates. Standard is every 14 days
Release Channel:StableThe main channel to use for mRemoteNG. Note that the channels are described under the selection. Stable is suggested for normal usage but its always good to get feedback on upcoming releases.
Use a proxy server to connectOffProxy to connect through to check for updates. This is not a proxy connection for when you connect to a server but more to check for updates.
- - - -

Theme

-
-

UI themes. This is not enabled by default but can be used inside mRemoteNG. To enable themes you have to first enable it in the checkbox at the bottom of the options. Then restart mRemoteNG in order for it to work.

-

Default theme is: vs2015light

-
- NOTE! To know more about themes and how to create your own - See Here - -
- - - - -

Advanced

-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- Option - - Default - - Description -
Automatically get session informationOff -
Automatically try to reconnect when disconnected from server (RDP & ICA only)Off -
Use UTF8 encoding for RDP "Load Balance info" propertyOff -
Use custom PuTTY path:Off -
To configure PuTTY sessions click this button:Launch PuTTYWill launch the putty agent so you can edit the sessions.
Maximum PuTTY and integrated external tools wait time:2 seconds -
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_port_scan.htm b/mRemoteV1/Resources/Help/ui_port_scan.htm deleted file mode 100644 index be58b3fc..00000000 --- a/mRemoteV1/Resources/Help/ui_port_scan.htm +++ /dev/null @@ -1,43 +0,0 @@ - - - - - Port Scan - - - - -

Port Scan

-
-

- The Port Scan feature (under Tools > Port Scan) is similar to a nmap port scan. -
- It will scan a range of IP addresses and to determine if specific mRemoteNG supported protocols are active. Hosts can then be bulk imported into mRemoteNG. -

- - -

Use Case

-
-

- You've just inherited a new network with little to no documentation. Inputting a range of IP addresses and scanning your entire network should give you a good idea of what is currently online. -
- Importing those devices will then give you a quick (relatively, scanning a large subnet will take a while) way to get into those devices. -

- - -

How to use

-
-
    -
  1. Start the Port Scan feature by clicking Tools > Port Scan in the menu bar.
  2. -
  3. Input your Start IP and End IP of the range you'd like to scan.
  4. -
  5. Enter the Start Port and End Port that mRemoteNG should test for.
    - TIP! If you leave this at the default of 0 & 0, the test will be for the default protocol ports that mRemoteNG supports.
    -
  6. -
  7. Click Scan
  8. -
  9. Wait. Possibly a long time.
  10. -
  11. The table will populate, and eventually you'll get a notification that the scan has completed. Alternatively, you can press Stop to end the scan at any time.
  12. -
  13. Change the dropdown to the protocol you'd like to import and click Import.
  14. -
- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_quick_connect.htm b/mRemoteV1/Resources/Help/ui_quick_connect.htm deleted file mode 100644 index ecb370c3..00000000 --- a/mRemoteV1/Resources/Help/ui_quick_connect.htm +++ /dev/null @@ -1,35 +0,0 @@ - - - - - Quick Connect - - - -

Quick Connect

-
-

The Quick Connect functionality of mRemoteNG allows you to quickly connect to a remote host using a variety of network protocols.

-

Prerequisites

-
-
    -
  • Knowledge of a DNS host name or IP address
  • -
  • Knowledge of an appropriate protocol to communicate with remote host
  • -
-

OR

-
    -
  • A predefined mRemoteNG connection
  • -
-

Using QuickConnect

-
-

To use Quick Connect, ensure the Quick Connect toolbar is enabled by selecting View and then Quick Connect Toolbar.
Next, input a DNS host name or IP address into the box labeled "Connect". This box will also save previous entries during your session.
- Quick Connect Toolbar -
-
- Quick Connect Toolbar -
-
Select the appropriate network protocol by clicking the arrow next to the Connect box.
- Quick Connect Toolbar -
-
If you wish to use an existing connection, select the globe icon next to the protocol button and select the appropriate connection.

- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_screenshot_manager.htm b/mRemoteV1/Resources/Help/ui_screenshot_manager.htm deleted file mode 100644 index f909be92..00000000 --- a/mRemoteV1/Resources/Help/ui_screenshot_manager.htm +++ /dev/null @@ -1,35 +0,0 @@ - - - - - Screenshot Manager - - - -

Screenshot Manager

-
-

The screenshot manager is a panel and tool that can be used to organize and take screenshots inside mRemoteNG.

- -

Take a screenshot

-
-

To take a screenshot of a instance its as easy as to right click on the connection tab and press Screenshot and it will open the screenshot manager.

- - -

On the left image you will see the right click menu for the connection tab. Clicking the screenshot there will allow mRemoteNG to create a screenshot.

-

The right image is where the screenshots are stored in mRemoteNG. Here you can store and then decide what to do with the images after you are done taking screenshots.

- - -

Editing

-
-

The manager is a simple tool for saving and deleting screenshots. If you need to do more with the screenshots then the suggestion is to open them in a third party app. Here is what the manager allows you to do:

    -
  • Save
  • -
  • Save All
  • -
  • Delete
  • -
  • Delete All
  • -
-

-

Once you press save, a window to save the files will come up where you want to save the screenshots.

-

Short summary of screenshot manager is that you can sit and create screenshots without having to open a different manager all the time and instead let mRemoteNG create the main screenshot which can be edited later on.

- - - \ No newline at end of file diff --git a/mRemoteV1/Resources/Help/ui_sql_configuration.htm b/mRemoteV1/Resources/Help/ui_sql_configuration.htm deleted file mode 100644 index 47040c33..00000000 --- a/mRemoteV1/Resources/Help/ui_sql_configuration.htm +++ /dev/null @@ -1,62 +0,0 @@ - - - - - SQL Configuration - - - -

SQL Configuration

-
-
The SQL feature is in an early beta stage and not intended for use in an productive environment! I recommend you to do a full backup of your connections and settings before switching to SQL Server.
-

Supported Databases

-
-

The list below are databases which have been tested on for support. Note that other databases may be supported in the future.

-
    -
  • Microsoft™ SQL Server
  • - -
-

Steps to configure your SQL Server

-
-
    -
  1. Create a new Database called "mRemoteNG" on your SQL Server.
  2. -
  3. Run the SQL Script for your DB type listed below in topic (SQL Table creation Scripts) on the newly created Database.
  4. -
  5. Give the users that you want to grant access to the mRemoteNG Connections Database Read/Write permissions on the Database.
  6. -
-

Steps to configure mRemoteNG for SQL

-
-
    -
  1. Start mRemoteNG if it's not already running.
  2. -
  3. Go to Tools - Options - SQL Server -
  4. -
  5. Check the box that says "Use SQL Server to load & save connections".
  6. -
  7. Fill in your SQL Server hostname or ip address.
  8. -
  9. If you do not use your Windows logon info to authenticate against the SQL Server fill in the correct Username and Password.
  10. -
  11. Click OK to apply the changes. The main window title should now change to "mRemoteNG | SQL Server".
  12. -
  13. 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't work yet)
  14. -
  15. You should now be able to do everything you were able to do with the XML storage plus see the changes live on another mRemoteNG instance that is connected to the same Database.
  16. -
-

SQL Table creation Scripts

-
-
- - - - - - - - - - - - - -
Script (click on script below for your db type)Description
- Microsoft™ SQL script - Microsoft™ SQL Server
- MySQL™ script - MySQL™ Server
-
- - \ No newline at end of file diff --git a/mRemoteV1/Resources/Images/Collapse.png b/mRemoteV1/Resources/Images/Collapse.png index 4b979506..045bec35 100644 Binary files a/mRemoteV1/Resources/Images/Collapse.png and b/mRemoteV1/Resources/Images/Collapse.png differ diff --git a/mRemoteV1/Resources/Images/Expand.png b/mRemoteV1/Resources/Images/Expand.png index d8aac503..b5f775c1 100644 Binary files a/mRemoteV1/Resources/Images/Expand.png and b/mRemoteV1/Resources/Images/Expand.png differ diff --git a/mRemoteV1/Resources/Language/Language.ru.resx b/mRemoteV1/Resources/Language/Language.ru.resx index d382ddb9..69e7681a 100644 --- a/mRemoteV1/Resources/Language/Language.ru.resx +++ b/mRemoteV1/Resources/Language/Language.ru.resx @@ -1,6 +1,6 @@  - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + О программе - + Активно - + Активность - + Новое подключение - + Новая папка - + AddNodeFromXML не удалось! - + AddNodesFromSQL не удалось! - + Разрешить только один экземпляр приложения (требуется перезапуск mRemoteNG) - + Всегда - + Подключаться, даже если не прошел проверку - + Всегда показывать диалог выбора панели при открытии подключения - + Всегда показывать панель закладок - + Всегда показывать значок в системном трее - + Спросить позже - + Настроить параметры сейчас - + Использовать рекомендуемые параметры - + {0} автоматически проверяет наличие обновлений с новыми возможностями и исправлениями ошибок. Рекомендуется разрешить {0} еженедельную проверку обновлений. - + Параметры автоматического обновления - + Вид - + Автоматически получать информацию о сессии - + Автосохранение каждые: - + минут (0 означает отключено) - + Текущая версия - + &Обзор... - + &Отменить - + Изменить - + &Закрыть - + Наследовать по умолчанию - + Свойства по умолчанию - + Отключиться - + Значок - + &Импорт - + Наследование - + Запуск PuTTY - + &Новая - + &Да - + Свойства - + &Сканировать - + &Стоп - + Проверка прокси - + Вы не можете импортировать обычный файл подключения. Для обычных файлов подключений используйте Файл - Открыть подключение! - + Не удается запустить сканирование портов, неверный формат IP! - + Внешний вид - + Подключение - + Учетные данные - + Вид - + Шлюз - + Общие - + Разное - + Протокол - + Локальные ресурсы - + Всегда показывать это окно при запуске - + Обновление - + Ошибка проверки! - + Успешно проверено! - + Для (RDP) сессий должна быть зарегистрирована в системе eolwtscom.dll. mRemoteNG загрузится с этим компонентом, но не зарегистрирует его автоматически. Чтобы зарегистрировать его вручную: Откройте (Пуск - Выполнить) и введите следующую команду: regsvr32 "C:\Program Files\mRemoteNG\eolwtscom.dll" (где C:\Program Files\mRemoteNG\ это путь к установленному mRemoteNG). Если у вас все же не получается зарегистрировать компонент для RDP - обратитесь на {0}. - + EOLWTSCOM был найден и зарегистрирован. - + Для использования движка 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. Если у вас ничего не получилось обратитесь на {0}. - + GeckoFx был найден и установлен правильно. - + ICA требуется установленный XenDesktop Online Plugin и зарегистрированная библиотека wfica.ocx. Вы можете скачать клиент здесь: http://www.citrix.com/download/ Если у вас есть установленный XenDesktop Online Plugin и ничего не работает, попробуйте зарегистрировать wfica.ocx вручную. Для этого откройте (Пуск - Выполнить) и введите следующую команду: regsvr32 "C:\Program Files\Citrix\ICA Client\wfica.ocx" (где C:\Program Files\Citrix \ICA Client\ это путь к XenDesktop Online Plugin). Если у вас все же не работает ICA в mRemoteNG обратитесь на {0}. - + Все компоненты ICA были найдены и зарегистрированы. Citrix ICA Client Control версии {0} - + установлен неправильно - + SSH, Telnet, Rlogin и RAW протоколам нужен для работы PuTTY. PuTTY поставляется с каждым mRemoteNG и находится в папке с программой. Убедитесь, что putty.exe есть в папке с mRemoteNG (по умолчанию: C:\Program Files\mRemoteNG\), или что вы указали правильный путь к исполняемому файлу PuTTY в Инструменты - Опции - Дополнительно - Путь к PuTTY) - + Исполняемый файл PuTTY найден и готов к использованию. - + Для правильной работы RDP необходимо иметь установленный Remote Desktop Connection (Terminal Services Client) 8.0. Вы можете получить его здесь: https://support.microsoft.com/kb/2592687 Если у вас есть установленный RDP 8.0 и подключиться не удается, попробуйте зарегистрироваться mstscax.dll вручную. Для этого откройте (Пуск - Выполнить) и введите следующую команду: regsvr32 "C:\Windows\system32\mstscax.dll" (где C:\ваш системный диск). Если у вас возникли проблемы при работе с RDP обратитесь на {0}. - + Все RDP компоненты были найдены и зарегистрированы. Remote Desktop Connection, Control Version {0} - + VNC требуется VncSharp.dll который находится в папке с mRemoteNG. Убедитесь, что у вас есть VncSharp.dll в папке mRemoteNG (обычно C:\Program Files\mRemoteNG\). Если у вас все же не работает VNC в mRemoteNG обратитесь на {0}. - + Все VNC компоненты были найдены и зарегистрированы. VncSharp Control Version {0} - + Автоматически пытаться восстановить связь при отключении от сервера (только RDP и ICA) - + Домен - + Больше не показывать это сообщение. - + Наследование - + Пароль - + Требуется авторизация - + Использовать собственный путь к PuTTY: - + Переподключиться, когда будет готово - + Использовать прокси-сервер - + Пользователь - + Ждать выхода - + Проверить - + Проверять наличие обновлений при запуске - + Проверить - + При запуске проверять правильность установки компонентов - + Выбрать панель перед подключением - + Закрытые порты - + Свернуть все папки - + Аргументы - + Отображаемое имя - + Имя файла - + Имя хоста/IP - + Сообщение - + Пользователь - + Ждать выхода - + Невозможно разобрать аргументы командной строки! - + {0} обнаружено что на этой системе работает утилита Lenovo Auto Scroll. Известно, что эта утилита вызывает проблемы с {0}. Рекомендуется отключить или удалить ее. - + Обнаружена проблема совместимости - + Проверка компонентов - + Ошибка btnIcon_Click! - + Ошибка ShowHideGridItems! - + Ошибка IconMenu_Click! - + Ошибка свойства Grid opject! - + Ошибка SetHostStatus! - + Ошибка pGrid_PopertyValueChanged! - + Ошибка загрузки Config UI! - + Хотите закрыть подключение: "{0}"? - + Хотите закрыть панель "{0}"? Все ее подключения также будут закрыты. - + Хотите удалить внешний инструмент, "{0}"? - + Хотите удалить {0} выбранные внешние инструменты? - + Хотите удалить подключение, "{0}"? - + Хотите удалить пустую папку, "{0}"? - + Хотите удалить папку "{0}"? Любые папки или подключения, которые она содержит также будут удалены. - + Хотите закрыть все открытые подключения? - + Вы действительно хотите сбросить панели в настройки по умолчанию? - + Подключиться - + Подключение в полноэкранном режиме - + Подключение... - + Журнал подключений - + Подключение к системе "{0}" через "{1}" созданого пользователя "{2}" (Описание: "{3}"; Пользователь: "{4}") - + Подключиться не удалось! - + Журнал событий ErrorOccured - + Открыть подключение не удалась! - + Невозможно открыть подключение: имя хоста не указано! - + Ошибка RDP! Код ошибки: {0} Описание ошибки: {1} - + Подключения - + Не удается установить порт по умолчанию! - + Не удалось создать резервную копию файла подключений! - + Не удалось импортировать подключения в файл! - + Файл подключений "{0}" невозможно загрузить! - + Файл подключений "{0}" невозможно загрузить! Создайте новый файл подключений. - + Невозможно сохранить файл подключений! - + Невозможно сохранить файл в качестве подключения "{0}"! - + Подключение к сеансу пользователя (Сеанс консоли) - + Подключение (с параметрами) - + Подключение к {0} по {1} закрыто пользователем {2}. - + Подключение к {0} по {1} закрыто пользователем {2}. (Описание: "{3}"; Пользователь: "{4}") - + Подключение закрыто - + Подключение закрыть не удалось! - + Не удается создать новый файл подключений! - + Не удалось найти элемент управления ToolStrip в FilteredPropertyGrid. - + Установленная версия - + Тема по умолчанию - + Обнаружение - + Не подключать без проверки - + Двойной щелчок для закрытия вкладки - + Загрузка и установка - + Дублировать - + Хотите продолжить без пароля? - + Использовать пустое имя пользователя пароль или домен: - + 128-бит - + 128-бит (только при входе) - + 40-бит - + 56-бит - + Основное - + Шифровать файл подключения - + Конечный IP - + Конечный порт - + Ошибка добавления внешнего приложения на Панель (frmMain). {0} - + Ошибка AddFolder (UI.Window.Tree). {0} - + Версия базы данных {0} не совместима с этой версией {1}. - + Ошибка CloneNode (Tree.Node). {0} - + Код ошибки {0}. - + Невозможно сохранить список подключений. - + Не удалось расшифровать. {0} - + Не удалось зашифровать. {0} - + Ошибки - + Ошибка загрузки файла соединения.{0}{0}{2}{0}{3}{0}{0}Для предотвращения потери данных, {1} будет выполнен выход. - + Ошибка VerifyDatabaseVersion (Config.Connections.Save). {0} - + Раскрыть все папки - + Экспериментально - + Экспорт - + Экспорт mRemote/mRemoteNG XML - + Внешнее Приложение - + Использованы значки [FAMFAMFAM] - + Все файлы (*.*) - + Файлы приложений (*. EXE) - + mRemote CSV-файлы (*. CSV) - + mRemote XML-файлы (*. XML) - + RDP-файлы (*. RDP) - + visionapp Remote Desktop 2008 CSV-файлы (*. CSV) - + Наследовать {0} - + Описание наследованного свойства: {0} - + Свободный - + Во весь экран - + Главная - + Получить информацию о подключении из SQL не удалось - + Ошибка при загрузке подключения "{0}" на "{1}". {2} - + Автопереподключение - + Соединение - + Свойства внешнего инструмента - + Файлы - + Хост - + Ошибка HTTP подключения! - + Не удается создать новое подключение HTTP! - + Изменение HTTP документа не удалось! - + Не удалось задать параметры HTTP! - + Не удается создать новое подключение ICA! - + Не удалось загрузить ICA-плагин! - + Ошибка установки учетных данных ICA! - + Не удалось установить обработчик событий ICA! - + Не удалось задать параметры ICA! - + Ошибка установки разрешений ICA! - + Определить вкладки быстрых подключений, добавляя префикс «Quick:» - + Импорт из Active Directory - + Импорт/Экспорт - + Импорт mRemote/mRemoteNG XML - + Импорт из просканированных портов - + Импорт из RDP-файла (ов) - + Неактивный - + Информация - + mRemoteNG в актуальном состоянии - + Подключение не удалось! - + Не удалось завершить процесс внутреннего приложения! - + Внутренний инструмент: Ошибка получения фокуса! - + Обработчик Внутр. инструментов: {0} - + Не удалось завершить процесс внутреннего приложения! - + Панель обработчика событий: {0} - + Внутренний инструмент: Ошибка изменения размера! - + --- Внутреннее приложение --- - + Заголовок внешнего инструмента: {0} - + CTRL+ALT+DEL - + CTRL-ESC - + Адрес: - + Аргументы: - + История версий: - + При закрытии подключений: - + &Подключение: - + Отображаемое имя: - + Домен: - + Имя файла: - + Имя хоста: - + Опции: - + Пароль: - + Порт: - + Портативная версия - + Протокол: - + Нажмите на эту кнопку для настройки сессий PuTTY: - + Максимальное время ожидание PuTTY и внешнего приложения: - + Выпущено под лицензией GNU General Public License (GPL) - + Секунд - + Выберите панель из списка или нажмите кнопку Новая, чтобы создать новую. Нажмите кнопку OK, чтобы продолжить. - + Состояние сервера: - + База данных: - + База данных: - + Пользователь: - + Проверка: - + Язык - + (Автоопределение) - + {0} необходимо перезапустить, чтобы изменения языка вступили в силу. - + Загрузить из SQL не удалось! - + Загрузить из XML не удалось! - + Локальный файл - + Локальный файл не существует! - + Выход - + Записать в файл отчета не удалось! - + Невозможно сохранить отчет в папке назначения. - + Использовано Magic library от [Crownwood Software] - + О программе - + Добавить Панель подключения - + Проверка наличия обновлений - + Конфигурация - + Подключаться - + Панель подключений - + Подключения - + Подключения и конфигурация - + Копировать - + Ctrl-Alt-Del - + Ctrl-Esc - + Удалить... - + Удалить подключение... - + Удалить внешний инструмент... - + Удалить папку... - + Отключить - + Помочь проекту - + Дублировать - + Дубликат подключения - + Дублировать папку - + Дублировать вкладку - + Выход - + Внешние инструменты - + Внешние инструменты - + &Файл - + Во весь экран - + Во весь экран (RDP) - + &Справка - + Справка mRemoteNG - + Перейти к - + Запуск внешних инструментов - + Новый файл подключения - + Новый внешний инструмент - + Уведомления - + Скопировать все - + Удалить - + Удалить все - + Открыть файл подключения... - + Опции - + Вставить - + Сканер портов - + Панель Быстрое подключение - + Переподключение - + Обновить экран (VNC) - + Переименовать - + Переименовать подключение - + Переименовать папку - + Переименовать закладку - + Сообщить об ошибке - + Сброс - + Сохранить подключение - + Сохранить подключение как... - + Скриншот - + Менеджер скриншотов - + Отправить спец. клавиши (VNC) - + Сессии - + Сессии и скриншоты - + Показать текст справки - + Показать текст - + SmartSize (RDP/VNC) - + Передача файлов по SSH - + Начать чат (VNC) - + Форум поддержки - + &Инструменты - + Передача файлов (SSH) - + &Вид - + Просмотр (VNC) - + Веб-сайт - + Минимизировать в системный трей - + Вниз - + Вверх - + Мои текущие учетные данные (Windows учетные данные) - + Никогда - + Новое подключение - + Новая папка - + Новая панель - + Новый корень - + Новое название - + Нет - + Без сжатия - + Не указано внешнее приложение. - + + Нет данных + + ничто - - ничто - - + Нормальный - + SmartSize недоступен - + Нет доступных обновлений - + Вы пытаетесь загрузить файл подключения, созданного с помощью очень ранней версии mRemote, это может привести к ошибке выполнения. Пожалуйста, создайте новый файл подключения! - + Открытие новой вкладки справа от выбранной вкладки - + Открытые порты - + Тема - + &Удалить - + &Новая - + Название группы - + Защита паролем - + Пожалуйста, заполните все поля - + Не удалось загрузить панель Сканера портов! - + (Эти свойства будут сохранены только если вы выберете mRemote/mRemoteNG XML в качестве выходного формата файлов!) - + Введите имя хоста или IP к которому вы хотите подключиться. - + Переключить все наследуемые параметры. - + Выберите используемый уровень авторизации. - + Выберите способ авторизации на сервере VNC. - + Выберите использовать или нет, кэширование графики. - + Выберите качество цвета, которое будет использоваться. - + Выберите значение сжатия, которое будет использоваться. - + Введите здесь заметки или описания для подключения. - + Выберите Да, если хотите использовать тему Рабочего стола на удаленном хоста. - + Выберите Да, если хотите использовать обои Рабочего стола на удаленном хосте. - + Введите имя домена. - + Использование композиции Рабочего стола на удаленном хосте. - + Использование сглаживания шрифтов. - + Режим кодирования. - + Шифрование на удаленном хосте. - + Внешний инструмент, который нужно запустить. - + Внешний инструмент, который нужно запустить на удаленном компьютере после отключения. - + Внешний инструмент, который нужно запустить на удаленном компьютере до подключения. - + Значок, который будет отображаться при подключении к хосту. - + Введите МАС-адрес удаленного хоста, если вы хотите использовать его во внешнем инструменте. - + Это имя, которое будет отображаться в дереве подключений. - + Установить панель, в которой будет открыто подключение. - + Введите пароль. - + Введите порт выбранного протокола. - + Выберите протокол, который должен использоваться для подключения. - + Выберите сессию PuTTY, которая будет использоваться при подключении. - + Определите доменное имя, для подключения к шлюзу Служб терминалов. - + Определите имя хоста шлюза Служб терминалов. - + Укажите, когда использовать шлюз Служб терминалов. - + Укажите, следует ли войти на шлюз, использующий то же имя пользователя и пароль подключения. - + Укажите имя пользователя, которому разрешено подключаться к шлюзу Служб терминалов. - + Укажите, будут ли доступны локальные диски на удаленном хосте. - + Укажите, будут ли перенаправлены локальные комбинации клавиш (например, Alt-Tab) на удаленный хост. - + Укажите, будут ли доступны локальные порты (т.е. COM, LPT) на удаленном хосте. - + Укажите, будут ли локальные принтеры доступны на удаленном хосте. - + Укажите, будут ли локальные смарт-карты доступны на удаленном хосте. - + Укажите, будет ли перенаправлен удаленный звук на локальный компьютер. - + Выберите один из доступных движков рендеринга, который будет использоваться для отображения HTML. - + Выберите разрешение экрана в дюймах или режим отображения для этого подключения - + Выберите SmartSize. - + Подключение к текущему сеансу удаленного пользователя. - + Использовать поставщика поддержки безопасности (CredSSP) для проверки подлинности учетных данных, если он доступен. - + Введите любую информацию. - + Введите имя пользователя. - + Если вы хотите установить режим Просмотра - выберите Да. - + Введите адрес прокси-сервера. - + Введите пароль для авторизации на прокси-сервере. - + Введите порт прокси-сервера. - + Если вы используете прокси для туннелирования VNC подключений, выберите тип туннелирования. - + Введите имя пользователя для авторизации на прокси-сервере. - + Имя хоста / IP - + Все - + Авторизация - + Режим авторизации - + Кэш графики - + Цвета - + Сжатие - + Описание - + Показать темы - + Показать обои - + Домен - + Композиция рабочего стола - + Шрифты - + Кодирование - + Шифрование - + Внешний инструмент - + Внеш. Инстр. После - + Внеш. Инстр. До - + Значок - + MAC-адрес - + Имя - + Имя вкладки - + Пароль - + Порт - + Протокол - + Сессии PuTTY - + Шлюз Домена - + Хост Шлюза - + Пароль шлюза Служб терминалов - + Шлюз - + Учетные данные шлюза - + Имя пользователя шлюза - + Диски - + Комбинации клавиш - + Порты - + Принтеры - + Смарт-карты - + Звуки - + Рендеринг - + Размер экрана - + SmartSize режим - + Сеанс консоли - + Использовать проверку подлинности CredSSP - + Дополнительно - + Пользователь - + Только Просмотр - + Адрес прокси - + Пароль Прокси - + Порт Прокси - + Тип Прокси - + Пользователь Прокси - + Протокол событий Отключен. Сообщение: {0} - + Протокол событий Отключение не удалось. {0} - + Протокол импорта - + Проверка прокси - неудачна! - + Проверка Прокси - удачна! - + Подключение не удалось! - + Завершить Putty - не удалось! - + Не удается установить фокус! - + Получить сессию Putty не удалось! - + Обработчик Putty: {0} - + Убить процесс Putty не удалось! - + Панель обработчиков: {0} - + Ошибка изменения размера окна Putty! - + Сохраненные сессии PuTTY - + Настройки PuTTY - + Показать настройки PuTTY не удалось! - + Не удалось запустить Putty! - + --- PuTTY --- - + Заголовок PuTTY: {0} - + Быстрое: {0} - + Быстрое подключение - + Ошибка добавления Быстрого подключения! - + Создать быстрое подключение не удалось - + Предупреждать при закрытии подключений - + Предупреждать меня только при выходе из mRemoteNG - + Предупреждать меня только при закрытии нескольких подключений - + Не предупреждать при закрытии подключений - + RAW - + RDP - + 16777216 цв. (24-бит) - + 256 цв. (8-бит) - + 32768 цв. (15-бит) - + 16777216 цв. (32-бит) - + 65536 цв. (16-бит) - + RDP Добавить разрешение не удалось! - + RDP Добавить разрешение не удалось! - + Добавить сессию не удалось - + Закрыть подключение RDP не удалось! - + Не удается создать RDP подключение, пожалуйста, проверьте настройки mRemoteNG. - + Отключить мигание курсора - + Отключить тень курсора - + Отключить отображение окна при перетаскивании - + Отключить Анимацию - + Отключить Темы - + Отключить обои Рабочего стола - + RDP отключен! - + RDP не удалось отключить, попробуйте закрыть его! - + Внутренняя ошибка: код 1. - + Внутренняя ошибка: код 2. - + Внутренняя ошибка: код 3. Это недопустимый режим. - + Внутренняя ошибка: код 4. - + Произошла неисправимая ошибка во время подключения клиента. - + Невозможно получить GetError (Критическая ошибка) - + Произошла неизвестная критическая ошибка RDP. Код ошибки {0}. - + Произошла ошибка из-за нехватки памяти. - + Неизвестная ошибка. - + При создании окна произошла ошибка. - + Ошибка инициализации Winsock. - + Не удалось импортировать RDP файл! - + В окне - + RDP: Ошибка получения фокуса! - + Шлюз Служб терминалов поддерживается. - + Шлюз Служб терминалов не поддерживается! - + Ошибка сессии! - + Количество переподключений RDP: - + RDP: Установить уровень проверки подлинности не удалась! - + RDP: Не удалось использовать консольную сессию! - + Настройка переключения консолей для RDC {0}. - + Ошибка установки учетных данных RDP! - + Ошибка RDP SetEventHandlers! - + Ошибка установки шлюза RDP! - + Ошибка RDP SetPerformanceFlags! - + Не удалось задать порт RDP! - + Не удалось задать параметры RDP! - + Установить перенаправление в RDP не удалось! - + Установить перенаправление клавиш в RDP не удалось! - + Ошибка установки разрешения RDP! - + Smart Size - + Передать на этот компьютер - + Не воспроизводить - + Оставить на удаленном компьютере - + Не удалось переключить RDP в режим Fullscreen! - + Не удалось переключить RDP в режим SmartSize! - + При запуске подключаться к предыдущим сессиям - + Обновление - + Удалить файл - + Удалить все - + Переименовать - + Rlogin - + Сохранить - + Сохранить все - + Перед загрузкой нового подключения, хотите сохранить текущий файл подключения? - + Сохранять подключения при выходе - + Файл Graphics Interchange Format (GIF.) | *. GIF | Файл Joint Photographic Experts Group (JPEG.) | *. JPEG | Файл Joint Photographic Experts Group (JPG.) | *. JPG | Файл Portable Network Graphics (PNG). | *. PNG - + Экран - + Скриншот - + Скриншоты - + Поиск - + Отправить... - + Получить фоновую сессию не удалось - + Завершение фоновой сессии не удалось - + Установить имя хоста, как отображаемое имя при создании новых подключений - + Настройка основной текстовой формы не удалось - + Не удалось сохранить настройки, или разместить значок в системном трее! - + Показывать подсказки в дереве подключений - + Показывать в заголовке окна полный путь к файлу подключений - + Показать сведения о входе в названии вкладок - + Показывать протокол в названии вкладок - + Один клик по подключению для его открытия - + Один клик по открытому подключению переключается на него - + Вид - + Свободный - + SmartSize недоступен - + Socks 5 - + Сортировать - + По возрастанию (A-Z) - + По убыванию (Z-A) - + Специальные клавиши - + Для дополнительной информации см. справку - Начало работы - конфигурация SQL! - + SQL Server - + Доступно обновление для SQL! Обновите подключения. - + SSH version 1 - + SSH version 2 - + Фоновая передача по SSH - не удалась! - + Передано успешно! - + Передача по SSH завершена с ошибкой (UI.Window.SSHTransfer)! - + SSH ошибка передачи. - + Начальный IP - + Начальный порт - + Запуск / Выход - + Статус - + Переключится на панель уведомлений: - + Дополнительно - + Внешний вид - + Вкладки и панели - + Обновления - + Telnet - + Установить вручную: - + Конфигурация - + Подключения - + Общие - + Цвет фона панели конфигурации. - + Цвет текста категории на панели конфигурации. - + Цвет линий сетки на панели конфигурации - + Цвет фона области справки панели конфигурации. - + Цвет текста в области справки панели конфигурации. - + Цвет текста в панели конфигурации. - + Цвет фона панели подключений. - + Цвет текста в панели подключений. - + Цвет линий дерева на панели подключений. - + Цвет фона меню. - + Цвет текста в меню. - + Цвет фона поля поиска. - + Цвет текста в поле поиска. - + Цвет текста подсказки в поле поиска. - + Цвет фона панели инструментов. - + Цвет текста в панели инструментов. - + Цвет фона главного окна. - + Цвет фона панели конфигурации - + Цвет текста категории панели конфигурации - + Цвет линий сетки панели конфигурации - + Цвет фона справки панели конфигурации - + Цвет текста справки панели конфигурации - + Цвет текста панели конфигурации - + Цвет фона панели подключений - + Цвет текста панели подключений - + Цвет линий дерева панели подключений - + Цвет фона меню - + Цвет текста меню - + Цвет фона поля поиска - + Цвет текста поля поиска - + Цвет текста подсказки поля поиска - + Цвет фона панели инструментов - + Цвет текста панели инструментов - + Цвет фона окна - + Ошибка ({0}) - + Информация ({0}) - + Пароль - + Выбор Панели - + Предупреждение ({0}) - + Передача - + Передача не удалась! - + Интеграция - + Тип - + Ultra VNC Repeater - + Порт UltraVNC SingleClick: - + Снимите свойства, которые не хотите сохранять! - + Безымянный тема - + Требуется обновление mRemoteNG - + mRemoteNG может периодически подключаться к сайту mRemoteNG для проверки наличия обновлений. - + Не удалось завершить проверку обновлений! - + Портативная версия mRemoteNG не поддерживает автообновление. - + Загрузка завершена! mRemoteNG сейчас прекратит работу и начнет процесс установки обновлений. - + Не удалось завершить загрузку! - + Не удалось скачать обновление! - + Каждые {0} дней - + Ежедневно - + Ежемесячно - + Еженедельно - + Использовать другое имя пользователя и пароль - + Пользователь - + Использовать те же имя пользователя и пароль - + Использовать смарт-карты - + Использовать SQL Server для загрузки и сохранения подключений - + Версия - + VNC - + Не удалось отключить VNC! - + Не удалось обновить экран VNC! - + Не удалось послать VNC спец. клавиши! - + Не удалось установить обработчик событий VNC! - + Не удалось задать параметры VNC! - + Не удалось начать VNC чат! - + Не удалось переключить VNC в SmartSize! - + Не удалось переключить VNC в режим Просмотра! - + Предупреждать, если не прошел проверку - + Предупреждения - + Использовано DockPanel Suite от [Weifen Luo] - + http://sourceforge.net/projects/dockpanelsuite/ - + Путь XULRunner: - + Да - + Переподключить все открытые соединения - + Рабочий каталог: - + &Запуск - + Выполнить с повышенными правами - + Выполнить с повышенными правами - + Отобразить на панели инструментов: - + Отобразить на панели инструментов - + Попробовать интегрировать - + Рабочий каталог - + Экспорт в файл... - + Импорт из &файла... - + &Импорт - + Закрепить позицию панели инструментов - + Панель инструментов SSH - + Назначенные учетные данные - + Экспортировать все - + Файл экспорта - + Пункт импорта - + Экспорт свойств - + Экспорт выбранного соединения - + Экспорт выбранной папки - + Формат файла: - + Импорт подразделений - + Используйте кодировку UTF8 для свойства RDP "Информация о балансе нагрузки" - + Время ожидания в секундах: - - Активный каталог - - - В&ыход {0} - - - &Открыть файл подключения - - - &Попробуй еще раз - - - Подключение без учетных данных - - - Не подключайтесь к сеансу консоли - - - PuTTY не может быть запущен. - - - Новый внешний инструмент - - - http://www.famfamfam.com/ - - - Все импортируемые файлы - - - Файлы диспетчера соединений PuTTY - - - Файлы диспетчера подключений удаленного рабочего стола (* .rdg) - - - HTTP - - - геккон (Firefox) - - - Интернет Эксплорер - - - HTTPS - - - ICA - - - Произошла ошибка при импорте файла "{0}". - - - Импортировать не удалось - - - Под корнем {0} {1} | Под выбранной папке {0} {2} - - - Где бы вы хотели разместить импортируемое содержимое? - - - Место импорта - - - Не удалось загрузить информацию о соединении с SQL-сервера. - - - http://www.dotnetmagic.com/ - - - Извлечь - - - mRemoteNG CSV - - - mRemoteNG XML - - - &Удалить - - - &Новый - - - &Восстановить значения по умолчанию - - - Сбросить &все по умолчанию - - - Вкладки - - - Новая вкладка - - - Предыдущая вкладка - - - Изменить ярлык - - - Горячие клавиши - - - Тестирование... - - - Клавиатура - - - Оба пароля должны совпадать. - - - Пароль должен содержать не менее 3 символов. - - - Сканирование портов завершено. - - - Выберите, следует ли автоматически изменять размер соединения при изменении размера окна или при переключении полноэкранного режима. Требуется RDC 8.0 или выше. - - - Задает информацию о балансировке нагрузки для использования маршрутизаторами балансировки нагрузки для выбора лучшего сервера. - - - Автоматическое изменение размера - - - Информация о балансе нагрузки - - - Настройки сеанса PuTTY - - - Пароль для {0} - - - Ошибка проверки - - - Проверка обновлений... - - - Журнал изменений не может быть загружен. - - - Время ожидания соединения RDP - - - Этот узел уже находится в этой папке. - - - Не удается перетащить узел на себя. - - - Не удается перетащить родительский узел на дочерний. - - - Этот узел не перетаскивается. - - - Режим блочного шифрования - - - Механизм шифрования - - - Безопасность - - - Инициирование функции вывода ключей - - - Динамический - - - Высокий - - - Cредний - - - Выберите Качество звука, предоставляемое протоколом: Динамический, Средний, Высокий - - - Качество звука - - - Скачивание завершено! - - - Скачать - - - Количество минут для сеанса RDP, чтобы сидеть без дела перед автоматическим отключением (для неограниченного использования 0) - - - Минуты в режим ожидания - - - Приминить - - - Добавить - - - Редактор учетных данных - - - Менеджер учетных данных - - - Номер - - - Удалить - - - Заглавие - - - Выберите, какие учетные данные использовать для этого подключения. - - - Вы действительно хотите удалить учетную запись, {0}? - - - Не удалось найти запись учетных данных с идентификатором соответствия "{0}" для записи соединения с именем "{1}". - - - Выберите, следует ли получать оповещение после отключения сеанса RDP из-за неактивности - - - Предупреждение о отключении питания - - - Пароль должен содержать не менее {0} следующих символов: {1} - - - Пароль должен содержать не менее {0} символов нижнего регистра - - - Пароль должен содержать не менее {0} номер (а) - - - Пароль должен содержать не менее {0} символ верхнего регистра - - - Длина пароля должна быть между {0} и {1} - - - Выберите путь для файла журнала mRemoteNG - - - Отладка - - - Показывать эти типы сообщений - - - Путь к файлу журнала - - - Зарегистрируйте эти типы сообщений - - - Выберите путь - - - Открыть файл - - - Использовать по умолчанию - - - Логирование - - - Всплывающие окна - - - Войдите в каталог приложений - - - Разрешить однократно - - - Разрешить однократно - - - Не разрешать - - - Разрешить небезопасный сертификат для ссылки: {0}? - - - Разрешить небезопасный сертификат? - - - Выбранный репозиторий разблокирован - - - неверный пароль - - - Источник - - - Разблокирование - - - Разблокировать репозиторий учетных данных - - - Разблокировать - - - Запрос на разблокирование учетных записей при запуске - - - Полномочия - - - Обновить - - - Назад - - - Путь к файлу подключения - - - Создание и открытие нового файла - - - Открыть другой файл - - - В v1.76 мы внедрили систему управления учетными данными. Эта функция требует значительных изменений в том, как мы храним и взаимодействуем с учетными данными в mRemoteNG. Вам потребуется выполнить одностороннее обновление файла соединений mRemoteNG. + + Активный каталог + + + В&ыход {0} + + + &Открыть файл подключения + + + &Попробуй еще раз + + + Подключение без учетных данных + + + Не подключайтесь к сеансу консоли + + + PuTTY не может быть запущен. + + + Новый внешний инструмент + + + http://www.famfamfam.com/ + + + Все импортируемые файлы + + + Файлы диспетчера соединений PuTTY + + + Файлы диспетчера подключений удаленного рабочего стола (* .rdg) + + + HTTP + + + геккон (Firefox) + + + Интернет Эксплорер + + + HTTPS + + + ICA + + + Произошла ошибка при импорте файла "{0}". + + + Импортировать не удалось + + + Под корнем {0} {1} | Под выбранной папке {0} {2} + + + Где бы вы хотели разместить импортируемое содержимое? + + + Место импорта + + + Не удалось загрузить информацию о соединении с SQL-сервера. + + + http://www.dotnetmagic.com/ + + + Извлечь + + + mRemoteNG CSV + + + mRemoteNG XML + + + &Удалить + + + &Новый + + + &Восстановить значения по умолчанию + + + Сбросить &все по умолчанию + + + Вкладки + + + Новая вкладка + + + Предыдущая вкладка + + + Изменить ярлык + + + Горячие клавиши + + + Тестирование... + + + Клавиатура + + + Оба пароля должны совпадать. + + + Пароль должен содержать не менее 3 символов. + + + Сканирование портов завершено. + + + Выберите, следует ли автоматически изменять размер соединения при изменении размера окна или при переключении полноэкранного режима. Требуется RDC 8.0 или выше. + + + Задает информацию о балансировке нагрузки для использования маршрутизаторами балансировки нагрузки для выбора лучшего сервера. + + + Автоматическое изменение размера + + + Информация о балансе нагрузки + + + Настройки сеанса PuTTY + + + Пароль для {0} + + + Ошибка проверки + + + Проверка обновлений... + + + Журнал изменений не может быть загружен. + + + Время ожидания соединения RDP + + + Этот узел уже находится в этой папке. + + + Не удается перетащить узел на себя. + + + Не удается перетащить родительский узел на дочерний. + + + Этот узел не перетаскивается. + + + Режим блочного шифрования + + + Механизм шифрования + + + Безопасность + + + Инициирование функции вывода ключей + + + Динамический + + + Высокий + + + Cредний + + + Выберите Качество звука, предоставляемое протоколом: Динамический, Средний, Высокий + + + Качество звука + + + Скачивание завершено! + + + Скачать + + + Количество минут для сеанса RDP, чтобы сидеть без дела перед автоматическим отключением (для неограниченного использования 0) + + + Минуты в режим ожидания + + + Приминить + + + Добавить + + + Редактор учетных данных + + + Менеджер учетных данных + + + Номер + + + Удалить + + + Заглавие + + + Выберите, какие учетные данные использовать для этого подключения. + + + Вы действительно хотите удалить учетную запись, {0}? + + + Не удалось найти запись учетных данных с идентификатором соответствия "{0}" для записи соединения с именем "{1}". + + + Выберите, следует ли получать оповещение после отключения сеанса RDP из-за неактивности + + + Предупреждение о отключении питания + + + Пароль должен содержать не менее {0} следующих символов: {1} + + + Пароль должен содержать не менее {0} символов нижнего регистра + + + Пароль должен содержать не менее {0} номер (а) + + + Пароль должен содержать не менее {0} символ верхнего регистра + + + Длина пароля должна быть между {0} и {1} + + + Выберите путь для файла журнала mRemoteNG + + + Отладка + + + Показывать эти типы сообщений + + + Путь к файлу журнала + + + Зарегистрируйте эти типы сообщений + + + Выберите путь + + + Открыть файл + + + Использовать по умолчанию + + + Логирование + + + Всплывающие окна + + + Войдите в каталог приложений + + + Разрешить однократно + + + Разрешить однократно + + + Не разрешать + + + Разрешить небезопасный сертификат для ссылки: {0}? + + + Разрешить небезопасный сертификат? + + + Выбранный репозиторий разблокирован + + + неверный пароль + + + Источник + + + Разблокирование + + + Разблокировать репозиторий учетных данных + + + Разблокировать + + + Запрос на разблокирование учетных записей при запуске + + + Полномочия + + + Обновить + + + Назад + + + Путь к файлу подключения + + + Создание и открытие нового файла + + + Открыть другой файл + + + В v1.76 мы внедрили систему управления учетными данными. Эта функция требует значительных изменений в том, как мы храним и взаимодействуем с учетными данными в mRemoteNG. Вам потребуется выполнить одностороннее обновление файла соединений mRemoteNG. На этой странице вы расскажете о процессе обновления файла подключений или предоставите возможность открыть другой файл подключений, если вы не хотите выполнять обновление. - - - Учетные данные недоступны - - - Вы действительно хотите удалить тему? - - - Включить темы - - - Новое название темы - - - Невозможно создать тему, имя уже присутствующее или специальные символы в названии - - - Введите новое название темы - - - Темы не загружены, проверьте, существуют ли по умолчанию темы mRemoteNG в папке «Темы» - - - Не удалось найти внешний инструмент с именем "{0}" - - - Создать новый файл подключения - - - Файл подключения не найден. - - - Импорт существующего файла - - - Использовать настраиваемый путь к файлу - - - Тестирование соединения - - - Сервер '{0}' не был доступен. - - - Соединение успешно - - - Ошибка входа для пользователя '{0}'. - - - База данных '{0}' недоступна. - - - Сохранять соединения после каждого редактирования - - - Фильтрация совпадений поиска в дереве соединений - - - Тестовое соединение - - - Только чтение: - - - Использовать кодировку UTF8 для свойства RDP «Информация о балансе загрузки» - - - Заблокировать позиции панели инструментов - - - Панель инструментов Multi SSH - - - Расширенные параметры безопасности - - - Параметры mRemoteNG - - - Создайте пустую панель при запуске mRemoteNG - - + + + Учетные данные недоступны + + + Вы действительно хотите удалить тему? + + + Включить темы + + + Новое название темы + + + Невозможно создать тему, имя уже присутствующее или специальные символы в названии + + + Введите новое название темы + + + Темы не загружены, проверьте, существуют ли по умолчанию темы mRemoteNG в папке «Темы» + + + Не удалось найти внешний инструмент с именем "{0}" + + + Создать новый файл подключения + + + Файл подключения не найден. + + + Импорт существующего файла + + + Использовать настраиваемый путь к файлу + + + Тестирование соединения + + + Сервер '{0}' не был доступен. + + + Соединение успешно + + + Ошибка входа для пользователя '{0}'. + + + База данных '{0}' недоступна. + + + Сохранять соединения после каждого редактирования + + + Фильтрация совпадений поиска в дереве соединений + + + Тестовое соединение + + + Только чтение: + + + Использовать кодировку UTF8 для свойства RDP «Информация о балансе загрузки» + + + Заблокировать позиции панели инструментов + + + Панель инструментов Multi SSH + + + Расширенные параметры безопасности + + + Параметры mRemoteNG + + + Создайте пустую панель при запуске mRemoteNG + + Отключить вкладки справа - + Хотите закрыть все подключения, кроме "{0}"? - + Хотите закрыть все подключения справа от "{0}"? - - Параметр безопасности Windows «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания» включен. + + Параметр безопасности Windows «Системная криптография: использовать FIPS-совместимые алгоритмы для шифрования, хеширования и подписывания» включен. См. Статью поддержки Microsoft по адресу http://support.microsoft.com/kb/811833 для получения дополнительной информации. {0} не является полностью FIPS совместимый. Нажмите OK, чтобы продолжить по своему усмотрению, или Отмена, чтобы выйти. - - - Укажите, будут ли буфер обмена должен использоваться совместно. - - - буфер обмена - - - Предупреждение: перезагрузка требуется для принятия каких-либо изменений конфигурации темы. - - - Должно быть от 0 до 255 - - - Вне зоны доступа - - - Удалять... - - - Переподключить все соединения - - - UltraVNC SingleClick - - - Отключите все Но этот - - - Произошла ошибка при попытке переподключиться к узлу RDP '{0}' - - - Произошла ошибка при попытке изменить разрешение соединения для размещения «{0}» - - - Трассировка стека - - - Сообщение исключения - - - mRemoteNG необработанное исключение - - - Произошло необработанное исключение - - - Это исключение заставит mRemoteNG закрыться - - - Копировать имя хоста - - - Разместите панель поиска над деревом соединений - - - Для сканирования одного порта, выберите «Первый порт» только. - - - Отслеживать активное соединение в дереве соединений - - - Всегда показывать вкладки подключения - - - Канал выпуска - - - Стабильный канал включает только финальные релизы. + + + Укажите, будут ли буфер обмена должен использоваться совместно. + + + буфер обмена + + + Предупреждение: перезагрузка требуется для принятия каких-либо изменений конфигурации темы. + + + Должно быть от 0 до 255 + + + Вне зоны доступа + + + Удалять... + + + Переподключить все соединения + + + UltraVNC SingleClick + + + Отключите все Но этот + + + Произошла ошибка при попытке переподключиться к узлу RDP '{0}' + + + Произошла ошибка при попытке изменить разрешение соединения для размещения «{0}» + + + Трассировка стека + + + Сообщение исключения + + + mRemoteNG необработанное исключение + + + Произошло необработанное исключение + + + Это исключение заставит mRemoteNG закрыться + + + Копировать имя хоста + + + Разместите панель поиска над деревом соединений + + + Для сканирования одного порта, выберите «Первый порт» только. + + + Отслеживать активное соединение в дереве соединений + + + Всегда показывать вкладки подключения + + + Канал выпуска + + + Стабильный канал включает только финальные релизы. Бета-канал включает в себя Betas и релиз кандидатов. Канал разработки включает в себя Альф, Betas и релиз кандидатов. - - - Подать заявление - - - Proxy - + + + Приминить + + + Proxy + \ No newline at end of file diff --git a/mRemoteV1/UI/Controls/IPTextBox.cs b/mRemoteV1/UI/Controls/IPTextBox.cs index b3f31ad7..034a926a 100644 --- a/mRemoteV1/UI/Controls/IPTextBox.cs +++ b/mRemoteV1/UI/Controls/IPTextBox.cs @@ -1,4 +1,4 @@ -/* Source modified from here: +/* Source modified from here: * http://www.codeproject.com/Articles/11576/IP-TextBox * Original Author: mawnkay */ @@ -70,6 +70,19 @@ namespace mRemoteNG.UI.Controls { // This call is required by the Windows.Forms Form Designer. InitializeComponent(); + SetTabSTopProperties(); + } + + private void SetTabSTopProperties() + { + Octet1.TabIndex = 0; + Octet2.TabIndex = 1; + Octet3.TabIndex = 2; + Octet4.TabIndex = 3; + Octet1.TabStop = true; + Octet2.TabStop = true; + Octet3.TabStop = true; + Octet4.TabStop = true; } protected override void OnLoad(EventArgs e) diff --git a/mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.Designer.cs index 9078921e..ab104898 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/AdvancedPage.Designer.cs @@ -49,7 +49,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkAutomaticallyGetSessionInfo // - this.chkAutomaticallyGetSessionInfo._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAutomaticallyGetSessionInfo._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkAutomaticallyGetSessionInfo.AutoSize = true; this.chkAutomaticallyGetSessionInfo.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkAutomaticallyGetSessionInfo.Location = new System.Drawing.Point(3, 3); @@ -61,16 +61,16 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // lblMaximumPuttyWaitTime // - this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(3, 175); + this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(3, 168); this.lblMaximumPuttyWaitTime.Name = "lblMaximumPuttyWaitTime"; - this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(364, 13); + this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(364, 20); this.lblMaximumPuttyWaitTime.TabIndex = 7; this.lblMaximumPuttyWaitTime.Text = "Maximum PuTTY wait time:"; - this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // chkAutomaticReconnect // - this.chkAutomaticReconnect._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAutomaticReconnect._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkAutomaticReconnect.AutoSize = true; this.chkAutomaticReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkAutomaticReconnect.Location = new System.Drawing.Point(3, 26); @@ -83,14 +83,14 @@ namespace mRemoteNG.UI.Forms.OptionsPages // numPuttyWaitTime // this.numPuttyWaitTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.numPuttyWaitTime.Location = new System.Drawing.Point(373, 173); + this.numPuttyWaitTime.Location = new System.Drawing.Point(373, 166); this.numPuttyWaitTime.Maximum = new decimal(new int[] { 999, 0, 0, 0}); this.numPuttyWaitTime.Name = "numPuttyWaitTime"; - this.numPuttyWaitTime.Size = new System.Drawing.Size(49, 22); + this.numPuttyWaitTime.Size = new System.Drawing.Size(60, 22); this.numPuttyWaitTime.TabIndex = 7; this.numPuttyWaitTime.Value = new decimal(new int[] { 5, @@ -100,12 +100,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkUseCustomPuttyPath // - this.chkUseCustomPuttyPath._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkUseCustomPuttyPath._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkUseCustomPuttyPath.AutoSize = true; this.chkUseCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkUseCustomPuttyPath.Location = new System.Drawing.Point(3, 72); this.chkUseCustomPuttyPath.Name = "chkUseCustomPuttyPath"; - this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(146, 17); + this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(148, 17); this.chkUseCustomPuttyPath.TabIndex = 3; this.chkUseCustomPuttyPath.Text = "Use custom PuTTY path:"; this.chkUseCustomPuttyPath.UseVisualStyleBackColor = true; @@ -113,24 +113,24 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // lblConfigurePuttySessions // - this.lblConfigurePuttySessions.Location = new System.Drawing.Point(3, 144); + this.lblConfigurePuttySessions.Location = new System.Drawing.Point(3, 132); this.lblConfigurePuttySessions.Name = "lblConfigurePuttySessions"; - this.lblConfigurePuttySessions.Size = new System.Drawing.Size(364, 13); + this.lblConfigurePuttySessions.Size = new System.Drawing.Size(364, 25); this.lblConfigurePuttySessions.TabIndex = 5; this.lblConfigurePuttySessions.Text = "To configure PuTTY sessions click this button:"; - this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // numUVNCSCPort // this.numUVNCSCPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.numUVNCSCPort.Location = new System.Drawing.Point(373, 218); + this.numUVNCSCPort.Location = new System.Drawing.Point(373, 194); this.numUVNCSCPort.Maximum = new decimal(new int[] { 65535, 0, 0, 0}); this.numUVNCSCPort.Name = "numUVNCSCPort"; - this.numUVNCSCPort.Size = new System.Drawing.Size(72, 22); + this.numUVNCSCPort.Size = new System.Drawing.Size(60, 22); this.numUVNCSCPort.TabIndex = 8; this.numUVNCSCPort.Value = new decimal(new int[] { 5500, @@ -143,6 +143,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // this.txtCustomPuttyPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; this.txtCustomPuttyPath.Enabled = false; + this.txtCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.txtCustomPuttyPath.Location = new System.Drawing.Point(21, 95); this.txtCustomPuttyPath.Name = "txtCustomPuttyPath"; this.txtCustomPuttyPath.Size = new System.Drawing.Size(346, 22); @@ -151,12 +152,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // btnLaunchPutty // - this.btnLaunchPutty._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; + this.btnLaunchPutty._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; this.btnLaunchPutty.Image = global::mRemoteNG.Resources.PuttyConfig; this.btnLaunchPutty.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnLaunchPutty.Location = new System.Drawing.Point(373, 138); + this.btnLaunchPutty.Location = new System.Drawing.Point(373, 132); this.btnLaunchPutty.Name = "btnLaunchPutty"; - this.btnLaunchPutty.Size = new System.Drawing.Size(110, 25); + this.btnLaunchPutty.Size = new System.Drawing.Size(122, 25); this.btnLaunchPutty.TabIndex = 6; this.btnLaunchPutty.Text = "Launch PuTTY"; this.btnLaunchPutty.TextAlign = System.Drawing.ContentAlignment.MiddleRight; @@ -165,18 +166,18 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // lblUVNCSCPort // - this.lblUVNCSCPort.Location = new System.Drawing.Point(3, 220); + this.lblUVNCSCPort.Location = new System.Drawing.Point(3, 197); this.lblUVNCSCPort.Name = "lblUVNCSCPort"; - this.lblUVNCSCPort.Size = new System.Drawing.Size(364, 13); + this.lblUVNCSCPort.Size = new System.Drawing.Size(364, 19); this.lblUVNCSCPort.TabIndex = 10; this.lblUVNCSCPort.Text = "UltraVNC SingleClick Listening Port:"; - this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight; this.lblUVNCSCPort.Visible = false; // // lblSeconds // this.lblSeconds.AutoSize = true; - this.lblSeconds.Location = new System.Drawing.Point(428, 175); + this.lblSeconds.Location = new System.Drawing.Point(439, 172); this.lblSeconds.Name = "lblSeconds"; this.lblSeconds.Size = new System.Drawing.Size(49, 13); this.lblSeconds.TabIndex = 9; @@ -184,11 +185,11 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // btnBrowseCustomPuttyPath // - this.btnBrowseCustomPuttyPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; + this.btnBrowseCustomPuttyPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; this.btnBrowseCustomPuttyPath.Enabled = false; - this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(373, 93); + this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(373, 94); this.btnBrowseCustomPuttyPath.Name = "btnBrowseCustomPuttyPath"; - this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(75, 23); + this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(122, 25); this.btnBrowseCustomPuttyPath.TabIndex = 5; this.btnBrowseCustomPuttyPath.Text = "Browse..."; this.btnBrowseCustomPuttyPath.UseVisualStyleBackColor = true; @@ -196,7 +197,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLoadBalanceInfoUseUtf8 // - this.chkLoadBalanceInfoUseUtf8._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLoadBalanceInfoUseUtf8._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLoadBalanceInfoUseUtf8.AutoSize = true; this.chkLoadBalanceInfoUseUtf8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(3, 49); @@ -223,7 +224,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.Controls.Add(this.lblUVNCSCPort); this.Controls.Add(this.lblSeconds); this.Controls.Add(this.btnBrowseCustomPuttyPath); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "AdvancedPage"; this.Size = new System.Drawing.Size(610, 490); ((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit(); diff --git a/mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.Designer.cs index 20aeadfd..7b6c309c 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/ConnectionsPage.Designer.cs @@ -150,7 +150,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkSingleClickOnOpenedConnectionSwitchesToIt.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkSingleClickOnOpenedConnectionSwitchesToIt.Location = new System.Drawing.Point(3, 26); this.chkSingleClickOnOpenedConnectionSwitchesToIt.Name = "chkSingleClickOnOpenedConnectionSwitchesToIt"; - this.chkSingleClickOnOpenedConnectionSwitchesToIt.Size = new System.Drawing.Size(490, 17); + this.chkSingleClickOnOpenedConnectionSwitchesToIt.Size = new System.Drawing.Size(492, 17); this.chkSingleClickOnOpenedConnectionSwitchesToIt.TabIndex = 1; this.chkSingleClickOnOpenedConnectionSwitchesToIt.Text = global::mRemoteNG.Language.strSingleClickOnOpenConnectionSwitchesToIt; this.chkSingleClickOnOpenedConnectionSwitchesToIt.UseVisualStyleBackColor = true; @@ -310,7 +310,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkConnectionTreeTrackActiveConnection.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkConnectionTreeTrackActiveConnection.Location = new System.Drawing.Point(3, 49); this.chkConnectionTreeTrackActiveConnection.Name = "chkConnectionTreeTrackActiveConnection"; - this.chkConnectionTreeTrackActiveConnection.Size = new System.Drawing.Size(261, 17); + this.chkConnectionTreeTrackActiveConnection.Size = new System.Drawing.Size(262, 17); this.chkConnectionTreeTrackActiveConnection.TabIndex = 10; this.chkConnectionTreeTrackActiveConnection.Text = "Track active connection in the connection tree"; this.chkConnectionTreeTrackActiveConnection.UseVisualStyleBackColor = true; diff --git a/mRemoteV1/UI/Forms/OptionsPages/CredentialsPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/CredentialsPage.Designer.cs index 67ca5202..6098637a 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/CredentialsPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/CredentialsPage.Designer.cs @@ -29,45 +29,130 @@ private void InitializeComponent() { this.pnlDefaultCredentials = new System.Windows.Forms.Panel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); + this.txtCredentialsUsername = new mRemoteNG.UI.Controls.Base.NGTextBox(); + this.txtCredentialsPassword = new mRemoteNG.UI.Controls.Base.NGTextBox(); + this.txtCredentialsDomain = new mRemoteNG.UI.Controls.Base.NGTextBox(); + this.lblCredentialsDomain = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.lblCredentialsUsername = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.lblCredentialsPassword = new mRemoteNG.UI.Controls.Base.NGLabel(); this.radCredentialsCustom = new mRemoteNG.UI.Controls.Base.NGRadioButton(); this.lblDefaultCredentials = new mRemoteNG.UI.Controls.Base.NGLabel(); this.radCredentialsNoInfo = new mRemoteNG.UI.Controls.Base.NGRadioButton(); this.radCredentialsWindows = new mRemoteNG.UI.Controls.Base.NGRadioButton(); - this.txtCredentialsDomain = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.lblCredentialsUsername = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.txtCredentialsPassword = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.lblCredentialsPassword = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.txtCredentialsUsername = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.lblCredentialsDomain = new mRemoteNG.UI.Controls.Base.NGLabel(); this.pnlDefaultCredentials.SuspendLayout(); + this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // pnlDefaultCredentials // + this.pnlDefaultCredentials.Controls.Add(this.tableLayoutPanel1); this.pnlDefaultCredentials.Controls.Add(this.radCredentialsCustom); this.pnlDefaultCredentials.Controls.Add(this.lblDefaultCredentials); this.pnlDefaultCredentials.Controls.Add(this.radCredentialsNoInfo); this.pnlDefaultCredentials.Controls.Add(this.radCredentialsWindows); - this.pnlDefaultCredentials.Controls.Add(this.txtCredentialsDomain); - this.pnlDefaultCredentials.Controls.Add(this.lblCredentialsUsername); - this.pnlDefaultCredentials.Controls.Add(this.txtCredentialsPassword); - this.pnlDefaultCredentials.Controls.Add(this.lblCredentialsPassword); - this.pnlDefaultCredentials.Controls.Add(this.txtCredentialsUsername); - this.pnlDefaultCredentials.Controls.Add(this.lblCredentialsDomain); this.pnlDefaultCredentials.Location = new System.Drawing.Point(3, 3); this.pnlDefaultCredentials.Name = "pnlDefaultCredentials"; - this.pnlDefaultCredentials.Size = new System.Drawing.Size(604, 175); + this.pnlDefaultCredentials.Size = new System.Drawing.Size(604, 167); this.pnlDefaultCredentials.TabIndex = 0; // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 160F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.txtCredentialsUsername, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.txtCredentialsPassword, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.txtCredentialsDomain, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.lblCredentialsDomain, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.lblCredentialsUsername, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.lblCredentialsPassword, 0, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(23, 85); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 3; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.Size = new System.Drawing.Size(332, 82); + this.tableLayoutPanel1.TabIndex = 1; + // + // txtCredentialsUsername + // + this.txtCredentialsUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtCredentialsUsername.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtCredentialsUsername.Enabled = false; + this.txtCredentialsUsername.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtCredentialsUsername.Location = new System.Drawing.Point(163, 3); + this.txtCredentialsUsername.Name = "txtCredentialsUsername"; + this.txtCredentialsUsername.Size = new System.Drawing.Size(166, 22); + this.txtCredentialsUsername.TabIndex = 5; + // + // txtCredentialsPassword + // + this.txtCredentialsPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtCredentialsPassword.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtCredentialsPassword.Enabled = false; + this.txtCredentialsPassword.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtCredentialsPassword.Location = new System.Drawing.Point(163, 29); + this.txtCredentialsPassword.Name = "txtCredentialsPassword"; + this.txtCredentialsPassword.Size = new System.Drawing.Size(166, 22); + this.txtCredentialsPassword.TabIndex = 7; + this.txtCredentialsPassword.UseSystemPasswordChar = true; + // + // txtCredentialsDomain + // + this.txtCredentialsDomain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtCredentialsDomain.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtCredentialsDomain.Enabled = false; + this.txtCredentialsDomain.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtCredentialsDomain.Location = new System.Drawing.Point(163, 55); + this.txtCredentialsDomain.Name = "txtCredentialsDomain"; + this.txtCredentialsDomain.Size = new System.Drawing.Size(166, 22); + this.txtCredentialsDomain.TabIndex = 9; + // + // lblCredentialsDomain + // + this.lblCredentialsDomain.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lblCredentialsDomain.Enabled = false; + this.lblCredentialsDomain.Location = new System.Drawing.Point(3, 57); + this.lblCredentialsDomain.Name = "lblCredentialsDomain"; + this.lblCredentialsDomain.Size = new System.Drawing.Size(154, 19); + this.lblCredentialsDomain.TabIndex = 8; + this.lblCredentialsDomain.Text = "Domain:"; + this.lblCredentialsDomain.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // lblCredentialsUsername + // + this.lblCredentialsUsername.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lblCredentialsUsername.Enabled = false; + this.lblCredentialsUsername.Location = new System.Drawing.Point(3, 3); + this.lblCredentialsUsername.Name = "lblCredentialsUsername"; + this.lblCredentialsUsername.Size = new System.Drawing.Size(154, 19); + this.lblCredentialsUsername.TabIndex = 4; + this.lblCredentialsUsername.Text = "Username:"; + this.lblCredentialsUsername.TextAlign = System.Drawing.ContentAlignment.TopRight; + // + // lblCredentialsPassword + // + this.lblCredentialsPassword.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Left | System.Windows.Forms.AnchorStyles.Right))); + this.lblCredentialsPassword.Enabled = false; + this.lblCredentialsPassword.Location = new System.Drawing.Point(3, 29); + this.lblCredentialsPassword.Name = "lblCredentialsPassword"; + this.lblCredentialsPassword.Size = new System.Drawing.Size(154, 19); + this.lblCredentialsPassword.TabIndex = 6; + this.lblCredentialsPassword.Text = "Password:"; + this.lblCredentialsPassword.TextAlign = System.Drawing.ContentAlignment.TopRight; + // // radCredentialsCustom // this.radCredentialsCustom.AutoSize = true; + this.radCredentialsCustom.BackColor = System.Drawing.Color.Transparent; this.radCredentialsCustom.Location = new System.Drawing.Point(3, 62); this.radCredentialsCustom.Name = "radCredentialsCustom"; this.radCredentialsCustom.Size = new System.Drawing.Size(98, 17); this.radCredentialsCustom.TabIndex = 3; this.radCredentialsCustom.Text = "the following:"; - this.radCredentialsCustom.UseVisualStyleBackColor = true; + this.radCredentialsCustom.UseVisualStyleBackColor = false; this.radCredentialsCustom.CheckedChanged += new System.EventHandler(this.radCredentialsCustom_CheckedChanged); // // lblDefaultCredentials @@ -82,6 +167,7 @@ // radCredentialsNoInfo // this.radCredentialsNoInfo.AutoSize = true; + this.radCredentialsNoInfo.BackColor = System.Drawing.Color.Transparent; this.radCredentialsNoInfo.Checked = true; this.radCredentialsNoInfo.Location = new System.Drawing.Point(3, 16); this.radCredentialsNoInfo.Name = "radCredentialsNoInfo"; @@ -89,86 +175,31 @@ this.radCredentialsNoInfo.TabIndex = 1; this.radCredentialsNoInfo.TabStop = true; this.radCredentialsNoInfo.Text = "no information"; - this.radCredentialsNoInfo.UseVisualStyleBackColor = true; + this.radCredentialsNoInfo.UseVisualStyleBackColor = false; // // radCredentialsWindows // this.radCredentialsWindows.AutoSize = true; + this.radCredentialsWindows.BackColor = System.Drawing.Color.Transparent; this.radCredentialsWindows.Location = new System.Drawing.Point(3, 39); this.radCredentialsWindows.Name = "radCredentialsWindows"; this.radCredentialsWindows.Size = new System.Drawing.Size(252, 17); this.radCredentialsWindows.TabIndex = 2; this.radCredentialsWindows.Text = "my current credentials (windows logon info)"; - this.radCredentialsWindows.UseVisualStyleBackColor = true; - // - // txtCredentialsDomain - // - this.txtCredentialsDomain.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtCredentialsDomain.Enabled = false; - this.txtCredentialsDomain.Location = new System.Drawing.Point(126, 138); - this.txtCredentialsDomain.Name = "txtCredentialsDomain"; - this.txtCredentialsDomain.Size = new System.Drawing.Size(150, 22); - this.txtCredentialsDomain.TabIndex = 9; - // - // lblCredentialsUsername - // - this.lblCredentialsUsername.Enabled = false; - this.lblCredentialsUsername.Location = new System.Drawing.Point(20, 88); - this.lblCredentialsUsername.Name = "lblCredentialsUsername"; - this.lblCredentialsUsername.Size = new System.Drawing.Size(100, 13); - this.lblCredentialsUsername.TabIndex = 4; - this.lblCredentialsUsername.Text = "Username:"; - this.lblCredentialsUsername.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // txtCredentialsPassword - // - this.txtCredentialsPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtCredentialsPassword.Enabled = false; - this.txtCredentialsPassword.Location = new System.Drawing.Point(126, 112); - this.txtCredentialsPassword.Name = "txtCredentialsPassword"; - this.txtCredentialsPassword.Size = new System.Drawing.Size(150, 22); - this.txtCredentialsPassword.TabIndex = 7; - this.txtCredentialsPassword.UseSystemPasswordChar = true; - // - // lblCredentialsPassword - // - this.lblCredentialsPassword.Enabled = false; - this.lblCredentialsPassword.Location = new System.Drawing.Point(20, 115); - this.lblCredentialsPassword.Name = "lblCredentialsPassword"; - this.lblCredentialsPassword.Size = new System.Drawing.Size(100, 13); - this.lblCredentialsPassword.TabIndex = 6; - this.lblCredentialsPassword.Text = "Password:"; - this.lblCredentialsPassword.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // txtCredentialsUsername - // - this.txtCredentialsUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtCredentialsUsername.Enabled = false; - this.txtCredentialsUsername.Location = new System.Drawing.Point(126, 86); - this.txtCredentialsUsername.Name = "txtCredentialsUsername"; - this.txtCredentialsUsername.Size = new System.Drawing.Size(150, 22); - this.txtCredentialsUsername.TabIndex = 5; - // - // lblCredentialsDomain - // - this.lblCredentialsDomain.Enabled = false; - this.lblCredentialsDomain.Location = new System.Drawing.Point(20, 142); - this.lblCredentialsDomain.Name = "lblCredentialsDomain"; - this.lblCredentialsDomain.Size = new System.Drawing.Size(100, 13); - this.lblCredentialsDomain.TabIndex = 8; - this.lblCredentialsDomain.Text = "Domain:"; - this.lblCredentialsDomain.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.radCredentialsWindows.UseVisualStyleBackColor = false; // // CredentialsPage // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.Controls.Add(this.pnlDefaultCredentials); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Margin = new System.Windows.Forms.Padding(4); this.Name = "CredentialsPage"; this.Size = new System.Drawing.Size(610, 490); this.pnlDefaultCredentials.ResumeLayout(false); this.pnlDefaultCredentials.PerformLayout(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); this.ResumeLayout(false); } @@ -185,5 +216,6 @@ internal Controls.Base.NGLabel lblCredentialsPassword; internal Controls.Base.NGTextBox txtCredentialsUsername; internal Controls.Base.NGLabel lblCredentialsDomain; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; } } diff --git a/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.Designer.cs index adc7a3fb..295b3fd0 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/NotificationsPage.Designer.cs @@ -79,10 +79,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkSwitchToMCInformation // - this.chkSwitchToMCInformation._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkSwitchToMCInformation._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkSwitchToMCInformation.AutoSize = true; this.chkSwitchToMCInformation.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkSwitchToMCInformation.Location = new System.Drawing.Point(195, 67); + this.chkSwitchToMCInformation.Location = new System.Drawing.Point(195, 64); this.chkSwitchToMCInformation.Name = "chkSwitchToMCInformation"; this.chkSwitchToMCInformation.Size = new System.Drawing.Size(87, 17); this.chkSwitchToMCInformation.TabIndex = 6; @@ -91,10 +91,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkSwitchToMCErrors // - this.chkSwitchToMCErrors._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkSwitchToMCErrors._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkSwitchToMCErrors.AutoSize = true; this.chkSwitchToMCErrors.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkSwitchToMCErrors.Location = new System.Drawing.Point(195, 113); + this.chkSwitchToMCErrors.Location = new System.Drawing.Point(195, 110); this.chkSwitchToMCErrors.Name = "chkSwitchToMCErrors"; this.chkSwitchToMCErrors.Size = new System.Drawing.Size(51, 17); this.chkSwitchToMCErrors.TabIndex = 8; @@ -103,10 +103,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkSwitchToMCWarnings // - this.chkSwitchToMCWarnings._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkSwitchToMCWarnings._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkSwitchToMCWarnings.AutoSize = true; this.chkSwitchToMCWarnings.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkSwitchToMCWarnings.Location = new System.Drawing.Point(195, 90); + this.chkSwitchToMCWarnings.Location = new System.Drawing.Point(195, 87); this.chkSwitchToMCWarnings.Name = "chkSwitchToMCWarnings"; this.chkSwitchToMCWarnings.Size = new System.Drawing.Size(71, 17); this.chkSwitchToMCWarnings.TabIndex = 7; @@ -126,7 +126,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.groupBoxNotifications.Controls.Add(this.chkShowDebugInMC); this.groupBoxNotifications.Location = new System.Drawing.Point(6, 2); this.groupBoxNotifications.Name = "groupBoxNotifications"; - this.groupBoxNotifications.Size = new System.Drawing.Size(601, 141); + this.groupBoxNotifications.Size = new System.Drawing.Size(601, 132); this.groupBoxNotifications.TabIndex = 0; this.groupBoxNotifications.TabStop = false; this.groupBoxNotifications.Text = "Notifications Panel"; @@ -142,10 +142,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowErrorInMC // - this.chkShowErrorInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowErrorInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowErrorInMC.AutoSize = true; this.chkShowErrorInMC.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowErrorInMC.Location = new System.Drawing.Point(20, 113); + this.chkShowErrorInMC.Location = new System.Drawing.Point(20, 110); this.chkShowErrorInMC.Name = "chkShowErrorInMC"; this.chkShowErrorInMC.Size = new System.Drawing.Size(51, 17); this.chkShowErrorInMC.TabIndex = 4; @@ -154,10 +154,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowWarningInMC // - this.chkShowWarningInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowWarningInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowWarningInMC.AutoSize = true; this.chkShowWarningInMC.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowWarningInMC.Location = new System.Drawing.Point(20, 90); + this.chkShowWarningInMC.Location = new System.Drawing.Point(20, 87); this.chkShowWarningInMC.Name = "chkShowWarningInMC"; this.chkShowWarningInMC.Size = new System.Drawing.Size(71, 17); this.chkShowWarningInMC.TabIndex = 3; @@ -166,10 +166,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowInfoInMC // - this.chkShowInfoInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowInfoInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowInfoInMC.AutoSize = true; this.chkShowInfoInMC.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowInfoInMC.Location = new System.Drawing.Point(20, 67); + this.chkShowInfoInMC.Location = new System.Drawing.Point(20, 64); this.chkShowInfoInMC.Name = "chkShowInfoInMC"; this.chkShowInfoInMC.Size = new System.Drawing.Size(87, 17); this.chkShowInfoInMC.TabIndex = 2; @@ -178,10 +178,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowDebugInMC // - this.chkShowDebugInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowDebugInMC._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowDebugInMC.AutoSize = true; this.chkShowDebugInMC.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkShowDebugInMC.Location = new System.Drawing.Point(20, 44); + this.chkShowDebugInMC.Location = new System.Drawing.Point(20, 41); this.chkShowDebugInMC.Name = "chkShowDebugInMC"; this.chkShowDebugInMC.Size = new System.Drawing.Size(61, 17); this.chkShowDebugInMC.TabIndex = 1; @@ -198,9 +198,9 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.groupBoxLogging.Controls.Add(this.labelLogTheseMsgTypes); this.groupBoxLogging.Controls.Add(this.labelLogFilePath); this.groupBoxLogging.Controls.Add(this.textBoxLogPath); - this.groupBoxLogging.Location = new System.Drawing.Point(6, 149); + this.groupBoxLogging.Location = new System.Drawing.Point(6, 140); this.groupBoxLogging.Name = "groupBoxLogging"; - this.groupBoxLogging.Size = new System.Drawing.Size(601, 158); + this.groupBoxLogging.Size = new System.Drawing.Size(601, 173); this.groupBoxLogging.TabIndex = 1; this.groupBoxLogging.TabStop = false; this.groupBoxLogging.Text = "Logging"; @@ -216,7 +216,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.tblLogging.Controls.Add(this.chkLogInfoMsgs, 1, 0); this.tblLogging.Controls.Add(this.chkLogWarningMsgs, 2, 0); this.tblLogging.Controls.Add(this.chkLogErrorMsgs, 3, 0); - this.tblLogging.Location = new System.Drawing.Point(9, 124); + this.tblLogging.Location = new System.Drawing.Point(9, 138); this.tblLogging.Name = "tblLogging"; this.tblLogging.RowCount = 1; this.tblLogging.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); @@ -226,7 +226,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLogDebugMsgs // - this.chkLogDebugMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLogDebugMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLogDebugMsgs.AutoSize = true; this.chkLogDebugMsgs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLogDebugMsgs.Location = new System.Drawing.Point(3, 3); @@ -238,7 +238,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLogInfoMsgs // - this.chkLogInfoMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLogInfoMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLogInfoMsgs.AutoSize = true; this.chkLogInfoMsgs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLogInfoMsgs.Location = new System.Drawing.Point(149, 3); @@ -250,7 +250,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLogWarningMsgs // - this.chkLogWarningMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLogWarningMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLogWarningMsgs.AutoSize = true; this.chkLogWarningMsgs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLogWarningMsgs.Location = new System.Drawing.Point(295, 3); @@ -262,7 +262,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLogErrorMsgs // - this.chkLogErrorMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLogErrorMsgs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLogErrorMsgs.AutoSize = true; this.chkLogErrorMsgs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLogErrorMsgs.Location = new System.Drawing.Point(441, 3); @@ -274,7 +274,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkLogToCurrentDir // - this.chkLogToCurrentDir._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkLogToCurrentDir._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkLogToCurrentDir.AutoSize = true; this.chkLogToCurrentDir.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkLogToCurrentDir.Location = new System.Drawing.Point(9, 18); @@ -287,10 +287,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // buttonRestoreDefaultLogPath // - this.buttonRestoreDefaultLogPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; - this.buttonRestoreDefaultLogPath.Location = new System.Drawing.Point(495, 83); + this.buttonRestoreDefaultLogPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; + this.buttonRestoreDefaultLogPath.Location = new System.Drawing.Point(9, 85); this.buttonRestoreDefaultLogPath.Name = "buttonRestoreDefaultLogPath"; - this.buttonRestoreDefaultLogPath.Size = new System.Drawing.Size(99, 23); + this.buttonRestoreDefaultLogPath.Size = new System.Drawing.Size(179, 25); this.buttonRestoreDefaultLogPath.TabIndex = 5; this.buttonRestoreDefaultLogPath.Text = "Use Default"; this.buttonRestoreDefaultLogPath.UseVisualStyleBackColor = true; @@ -298,10 +298,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // buttonOpenLogFile // - this.buttonOpenLogFile._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; - this.buttonOpenLogFile.Location = new System.Drawing.Point(273, 82); + this.buttonOpenLogFile._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; + this.buttonOpenLogFile.Location = new System.Drawing.Point(378, 85); this.buttonOpenLogFile.Name = "buttonOpenLogFile"; - this.buttonOpenLogFile.Size = new System.Drawing.Size(105, 23); + this.buttonOpenLogFile.Size = new System.Drawing.Size(105, 25); this.buttonOpenLogFile.TabIndex = 3; this.buttonOpenLogFile.Text = "Open File"; this.buttonOpenLogFile.UseVisualStyleBackColor = true; @@ -309,10 +309,10 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // buttonSelectLogPath // - this.buttonSelectLogPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; - this.buttonSelectLogPath.Location = new System.Drawing.Point(384, 82); + this.buttonSelectLogPath._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; + this.buttonSelectLogPath.Location = new System.Drawing.Point(489, 85); this.buttonSelectLogPath.Name = "buttonSelectLogPath"; - this.buttonSelectLogPath.Size = new System.Drawing.Size(105, 23); + this.buttonSelectLogPath.Size = new System.Drawing.Size(105, 25); this.buttonSelectLogPath.TabIndex = 4; this.buttonSelectLogPath.Text = "Choose Path"; this.buttonSelectLogPath.UseVisualStyleBackColor = true; @@ -321,7 +321,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // labelLogTheseMsgTypes // this.labelLogTheseMsgTypes.AutoSize = true; - this.labelLogTheseMsgTypes.Location = new System.Drawing.Point(6, 108); + this.labelLogTheseMsgTypes.Location = new System.Drawing.Point(6, 122); this.labelLogTheseMsgTypes.Name = "labelLogTheseMsgTypes"; this.labelLogTheseMsgTypes.Size = new System.Drawing.Size(137, 13); this.labelLogTheseMsgTypes.TabIndex = 6; @@ -339,6 +339,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // textBoxLogPath // this.textBoxLogPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.textBoxLogPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.textBoxLogPath.Location = new System.Drawing.Point(9, 57); this.textBoxLogPath.Name = "textBoxLogPath"; this.textBoxLogPath.ReadOnly = true; @@ -349,7 +350,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // this.groupBoxPopups.Controls.Add(this.tblPopups); this.groupBoxPopups.Controls.Add(this.labelPopupShowTypes); - this.groupBoxPopups.Location = new System.Drawing.Point(6, 313); + this.groupBoxPopups.Location = new System.Drawing.Point(6, 319); this.groupBoxPopups.Name = "groupBoxPopups"; this.groupBoxPopups.Size = new System.Drawing.Size(601, 74); this.groupBoxPopups.TabIndex = 2; @@ -372,12 +373,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.tblPopups.RowCount = 1; this.tblPopups.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100F)); this.tblPopups.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 25F)); - this.tblPopups.Size = new System.Drawing.Size(585, 25); + this.tblPopups.Size = new System.Drawing.Size(584, 25); this.tblPopups.TabIndex = 1; // // chkPopupDebug // - this.chkPopupDebug._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkPopupDebug._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkPopupDebug.AutoSize = true; this.chkPopupDebug.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkPopupDebug.Location = new System.Drawing.Point(3, 3); @@ -389,7 +390,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkPopupError // - this.chkPopupError._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkPopupError._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkPopupError.AutoSize = true; this.chkPopupError.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkPopupError.Location = new System.Drawing.Point(441, 3); @@ -401,7 +402,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkPopupInfo // - this.chkPopupInfo._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkPopupInfo._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkPopupInfo.AutoSize = true; this.chkPopupInfo.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkPopupInfo.Location = new System.Drawing.Point(149, 3); @@ -413,7 +414,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkPopupWarning // - this.chkPopupWarning._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkPopupWarning._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkPopupWarning.AutoSize = true; this.chkPopupWarning.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkPopupWarning.Location = new System.Drawing.Point(295, 3); @@ -439,7 +440,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.Controls.Add(this.groupBoxPopups); this.Controls.Add(this.groupBoxLogging); this.Controls.Add(this.groupBoxNotifications); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); this.Name = "NotificationsPage"; this.Size = new System.Drawing.Size(610, 490); this.groupBoxNotifications.ResumeLayout(false); diff --git a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs index 86318aa4..ef4c347b 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/SecurityPage.Designer.cs @@ -36,13 +36,15 @@ this.groupAdvancedSecurityOptions = new mRemoteNG.UI.Controls.Base.NGGroupBox(); this.numberBoxKdfIterations = new mRemoteNG.UI.Controls.Base.NGNumericUpDown(); this.labelKdfIterations = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); this.groupAdvancedSecurityOptions.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // chkEncryptCompleteFile // - this.chkEncryptCompleteFile._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkEncryptCompleteFile._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkEncryptCompleteFile.AutoSize = true; this.chkEncryptCompleteFile.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkEncryptCompleteFile.Location = new System.Drawing.Point(3, 3); @@ -55,65 +57,67 @@ // comboBoxEncryptionEngine // this.comboBoxEncryptionEngine._mice = mRemoteNG.UI.Controls.Base.NGComboBox.MouseState.HOVER; + this.comboBoxEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill; this.comboBoxEncryptionEngine.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxEncryptionEngine.FormattingEnabled = true; - this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(191, 25); + this.comboBoxEncryptionEngine.Location = new System.Drawing.Point(223, 3); this.comboBoxEncryptionEngine.Name = "comboBoxEncryptionEngine"; - this.comboBoxEncryptionEngine.Size = new System.Drawing.Size(123, 21); + this.comboBoxEncryptionEngine.Size = new System.Drawing.Size(131, 21); this.comboBoxEncryptionEngine.Sorted = true; this.comboBoxEncryptionEngine.TabIndex = 1; // // labelEncryptionEngine // this.labelEncryptionEngine.AutoSize = true; - this.labelEncryptionEngine.Location = new System.Drawing.Point(9, 28); + this.labelEncryptionEngine.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelEncryptionEngine.Location = new System.Drawing.Point(3, 0); this.labelEncryptionEngine.Name = "labelEncryptionEngine"; - this.labelEncryptionEngine.Size = new System.Drawing.Size(101, 13); + this.labelEncryptionEngine.Size = new System.Drawing.Size(214, 26); this.labelEncryptionEngine.TabIndex = 0; this.labelEncryptionEngine.Text = "Encryption Engine"; + this.labelEncryptionEngine.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // labelBlockCipher // this.labelBlockCipher.AutoSize = true; - this.labelBlockCipher.Location = new System.Drawing.Point(9, 60); + this.labelBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelBlockCipher.Location = new System.Drawing.Point(3, 26); this.labelBlockCipher.Name = "labelBlockCipher"; - this.labelBlockCipher.Size = new System.Drawing.Size(105, 13); + this.labelBlockCipher.Size = new System.Drawing.Size(214, 26); this.labelBlockCipher.TabIndex = 2; this.labelBlockCipher.Text = "Block Cipher Mode"; + this.labelBlockCipher.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // comboBoxBlockCipher // this.comboBoxBlockCipher._mice = mRemoteNG.UI.Controls.Base.NGComboBox.MouseState.HOVER; + this.comboBoxBlockCipher.Dock = System.Windows.Forms.DockStyle.Fill; this.comboBoxBlockCipher.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.comboBoxBlockCipher.FormattingEnabled = true; - this.comboBoxBlockCipher.Location = new System.Drawing.Point(191, 57); + this.comboBoxBlockCipher.Location = new System.Drawing.Point(223, 29); this.comboBoxBlockCipher.Name = "comboBoxBlockCipher"; - this.comboBoxBlockCipher.Size = new System.Drawing.Size(123, 21); + this.comboBoxBlockCipher.Size = new System.Drawing.Size(131, 21); this.comboBoxBlockCipher.TabIndex = 3; // // groupAdvancedSecurityOptions // - this.groupAdvancedSecurityOptions.Controls.Add(this.numberBoxKdfIterations); - this.groupAdvancedSecurityOptions.Controls.Add(this.labelKdfIterations); - this.groupAdvancedSecurityOptions.Controls.Add(this.comboBoxEncryptionEngine); - this.groupAdvancedSecurityOptions.Controls.Add(this.comboBoxBlockCipher); - this.groupAdvancedSecurityOptions.Controls.Add(this.labelBlockCipher); - this.groupAdvancedSecurityOptions.Controls.Add(this.labelEncryptionEngine); + this.groupAdvancedSecurityOptions.Controls.Add(this.tableLayoutPanel1); this.groupAdvancedSecurityOptions.Location = new System.Drawing.Point(3, 30); this.groupAdvancedSecurityOptions.Name = "groupAdvancedSecurityOptions"; - this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 128); + this.groupAdvancedSecurityOptions.Size = new System.Drawing.Size(604, 112); this.groupAdvancedSecurityOptions.TabIndex = 1; this.groupAdvancedSecurityOptions.TabStop = false; this.groupAdvancedSecurityOptions.Text = "Advanced Security Options"; // // numberBoxKdfIterations // + this.numberBoxKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill; this.numberBoxKdfIterations.Increment = new decimal(new int[] { 1000, 0, 0, 0}); - this.numberBoxKdfIterations.Location = new System.Drawing.Point(191, 88); + this.numberBoxKdfIterations.Location = new System.Drawing.Point(223, 55); this.numberBoxKdfIterations.Maximum = new decimal(new int[] { 50000, 0, @@ -125,7 +129,7 @@ 0, 0}); this.numberBoxKdfIterations.Name = "numberBoxKdfIterations"; - this.numberBoxKdfIterations.Size = new System.Drawing.Size(90, 22); + this.numberBoxKdfIterations.Size = new System.Drawing.Size(131, 22); this.numberBoxKdfIterations.TabIndex = 5; this.numberBoxKdfIterations.ThousandsSeparator = true; this.numberBoxKdfIterations.Value = new decimal(new int[] { @@ -137,11 +141,34 @@ // labelKdfIterations // this.labelKdfIterations.AutoSize = true; - this.labelKdfIterations.Location = new System.Drawing.Point(9, 90); + this.labelKdfIterations.Dock = System.Windows.Forms.DockStyle.Fill; + this.labelKdfIterations.Location = new System.Drawing.Point(3, 52); this.labelKdfIterations.Name = "labelKdfIterations"; - this.labelKdfIterations.Size = new System.Drawing.Size(181, 13); + this.labelKdfIterations.Size = new System.Drawing.Size(214, 26); this.labelKdfIterations.TabIndex = 4; this.labelKdfIterations.Text = "Key Derivation Function Iterations"; + this.labelKdfIterations.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 220F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle()); + this.tableLayoutPanel1.Controls.Add(this.labelKdfIterations, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.numberBoxKdfIterations, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.labelBlockCipher, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.comboBoxEncryptionEngine, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.labelEncryptionEngine, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.comboBoxBlockCipher, 1, 1); + this.tableLayoutPanel1.Location = new System.Drawing.Point(6, 21); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 4; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(357, 81); + this.tableLayoutPanel1.TabIndex = 2; // // SecurityPage // @@ -149,12 +176,12 @@ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; this.Controls.Add(this.chkEncryptCompleteFile); this.Controls.Add(this.groupAdvancedSecurityOptions); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.Name = "SecurityPage"; this.Size = new System.Drawing.Size(610, 490); this.groupAdvancedSecurityOptions.ResumeLayout(false); - this.groupAdvancedSecurityOptions.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numberBoxKdfIterations)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -170,5 +197,6 @@ private Controls.Base.NGGroupBox groupAdvancedSecurityOptions; private Controls.Base.NGNumericUpDown numberBoxKdfIterations; private Controls.Base.NGLabel labelKdfIterations; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; } } diff --git a/mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.Designer.cs index 3004c51f..43d13015 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/SqlServerPage.Designer.cs @@ -18,7 +18,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages [System.Diagnostics.DebuggerStepThrough()] private void InitializeComponent() { -// System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(SqlServerPage)); this.lblSQLDatabaseName = new mRemoteNG.UI.Controls.Base.NGLabel(); this.txtSQLDatabaseName = new mRemoteNG.UI.Controls.Base.NGTextBox(); this.lblExperimental = new mRemoteNG.UI.Controls.Base.NGLabel(); @@ -37,26 +36,31 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.lblSQLReadOnly = new mRemoteNG.UI.Controls.Base.NGLabel(); this.lblSQLType = new mRemoteNG.UI.Controls.Base.NGLabel(); this.txtSQLType = new mRemoteNG.UI.Controls.Base.NGComboBox(); + this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); ((System.ComponentModel.ISupportInitialize)(this.imgConnectionStatus)).BeginInit(); + this.tableLayoutPanel1.SuspendLayout(); this.SuspendLayout(); // // lblSQLDatabaseName // + this.lblSQLDatabaseName.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLDatabaseName.Enabled = false; - this.lblSQLDatabaseName.Location = new System.Drawing.Point(23, 156); + this.lblSQLDatabaseName.Location = new System.Drawing.Point(3, 52); this.lblSQLDatabaseName.Name = "lblSQLDatabaseName"; - this.lblSQLDatabaseName.Size = new System.Drawing.Size(111, 13); + this.lblSQLDatabaseName.Size = new System.Drawing.Size(154, 26); this.lblSQLDatabaseName.TabIndex = 5; this.lblSQLDatabaseName.Text = "Database:"; - this.lblSQLDatabaseName.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblSQLDatabaseName.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // txtSQLDatabaseName // this.txtSQLDatabaseName.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtSQLDatabaseName.Dock = System.Windows.Forms.DockStyle.Fill; this.txtSQLDatabaseName.Enabled = false; - this.txtSQLDatabaseName.Location = new System.Drawing.Point(140, 154); + this.txtSQLDatabaseName.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtSQLDatabaseName.Location = new System.Drawing.Point(163, 55); this.txtSQLDatabaseName.Name = "txtSQLDatabaseName"; - this.txtSQLDatabaseName.Size = new System.Drawing.Size(153, 22); + this.txtSQLDatabaseName.Size = new System.Drawing.Size(235, 22); this.txtSQLDatabaseName.TabIndex = 6; // // lblExperimental @@ -64,7 +68,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.lblExperimental.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.lblExperimental.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.World); + this.lblExperimental.Font = new System.Drawing.Font("Segoe UI", 8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(204))); this.lblExperimental.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); this.lblExperimental.Location = new System.Drawing.Point(3, 0); this.lblExperimental.Name = "lblExperimental"; @@ -75,7 +79,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkUseSQLServer // - this.chkUseSQLServer._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkUseSQLServer._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkUseSQLServer.AutoSize = true; this.chkUseSQLServer.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkUseSQLServer.Location = new System.Drawing.Point(3, 76); @@ -88,21 +92,24 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // lblSQLUsername // + this.lblSQLUsername.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLUsername.Enabled = false; - this.lblSQLUsername.Location = new System.Drawing.Point(23, 182); + this.lblSQLUsername.Location = new System.Drawing.Point(3, 78); this.lblSQLUsername.Name = "lblSQLUsername"; - this.lblSQLUsername.Size = new System.Drawing.Size(111, 13); + this.lblSQLUsername.Size = new System.Drawing.Size(154, 26); this.lblSQLUsername.TabIndex = 7; this.lblSQLUsername.Text = "Username:"; - this.lblSQLUsername.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblSQLUsername.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // txtSQLPassword // this.txtSQLPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtSQLPassword.Dock = System.Windows.Forms.DockStyle.Fill; this.txtSQLPassword.Enabled = false; - this.txtSQLPassword.Location = new System.Drawing.Point(140, 206); + this.txtSQLPassword.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtSQLPassword.Location = new System.Drawing.Point(163, 107); this.txtSQLPassword.Name = "txtSQLPassword"; - this.txtSQLPassword.Size = new System.Drawing.Size(153, 22); + this.txtSQLPassword.Size = new System.Drawing.Size(235, 22); this.txtSQLPassword.TabIndex = 10; this.txtSQLPassword.UseSystemPasswordChar = true; // @@ -122,49 +129,55 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // lblSQLServer // + this.lblSQLServer.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLServer.Enabled = false; - this.lblSQLServer.Location = new System.Drawing.Point(23, 130); + this.lblSQLServer.Location = new System.Drawing.Point(3, 26); this.lblSQLServer.Name = "lblSQLServer"; - this.lblSQLServer.Size = new System.Drawing.Size(111, 13); + this.lblSQLServer.Size = new System.Drawing.Size(154, 26); this.lblSQLServer.TabIndex = 3; this.lblSQLServer.Text = "SQL Server:"; - this.lblSQLServer.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblSQLServer.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // txtSQLUsername // this.txtSQLUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtSQLUsername.Dock = System.Windows.Forms.DockStyle.Fill; this.txtSQLUsername.Enabled = false; - this.txtSQLUsername.Location = new System.Drawing.Point(140, 180); + this.txtSQLUsername.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtSQLUsername.Location = new System.Drawing.Point(163, 81); this.txtSQLUsername.Name = "txtSQLUsername"; - this.txtSQLUsername.Size = new System.Drawing.Size(153, 22); + this.txtSQLUsername.Size = new System.Drawing.Size(235, 22); this.txtSQLUsername.TabIndex = 8; // // txtSQLServer // this.txtSQLServer.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtSQLServer.Dock = System.Windows.Forms.DockStyle.Fill; this.txtSQLServer.Enabled = false; - this.txtSQLServer.Location = new System.Drawing.Point(140, 128); + this.txtSQLServer.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtSQLServer.Location = new System.Drawing.Point(163, 29); this.txtSQLServer.Name = "txtSQLServer"; - this.txtSQLServer.Size = new System.Drawing.Size(153, 22); + this.txtSQLServer.Size = new System.Drawing.Size(235, 22); this.txtSQLServer.TabIndex = 4; // // lblSQLPassword // + this.lblSQLPassword.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLPassword.Enabled = false; - this.lblSQLPassword.Location = new System.Drawing.Point(23, 208); + this.lblSQLPassword.Location = new System.Drawing.Point(3, 104); this.lblSQLPassword.Name = "lblSQLPassword"; - this.lblSQLPassword.Size = new System.Drawing.Size(111, 13); + this.lblSQLPassword.Size = new System.Drawing.Size(154, 26); this.lblSQLPassword.TabIndex = 9; this.lblSQLPassword.Text = "Password:"; - this.lblSQLPassword.TextAlign = System.Drawing.ContentAlignment.TopRight; + this.lblSQLPassword.TextAlign = System.Drawing.ContentAlignment.MiddleRight; // // btnTestConnection // - this.btnTestConnection._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER; + this.btnTestConnection._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; this.btnTestConnection.Enabled = false; - this.btnTestConnection.Location = new System.Drawing.Point(140, 252); + this.btnTestConnection.Location = new System.Drawing.Point(3, 267); this.btnTestConnection.Name = "btnTestConnection"; - this.btnTestConnection.Size = new System.Drawing.Size(153, 23); + this.btnTestConnection.Size = new System.Drawing.Size(153, 25); this.btnTestConnection.TabIndex = 11; this.btnTestConnection.Text = "Test Connection"; this.btnTestConnection.UseVisualStyleBackColor = true; @@ -173,7 +186,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // imgConnectionStatus // this.imgConnectionStatus.Image = global::mRemoteNG.Resources.Help; - this.imgConnectionStatus.Location = new System.Drawing.Point(297, 255); + this.imgConnectionStatus.Location = new System.Drawing.Point(162, 272); this.imgConnectionStatus.Name = "imgConnectionStatus"; this.imgConnectionStatus.Size = new System.Drawing.Size(16, 16); this.imgConnectionStatus.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; @@ -183,84 +196,111 @@ namespace mRemoteNG.UI.Forms.OptionsPages // lblTestConnectionResults // this.lblTestConnectionResults.AutoSize = true; - this.lblTestConnectionResults.Location = new System.Drawing.Point(137, 278); + this.lblTestConnectionResults.Location = new System.Drawing.Point(3, 295); this.lblTestConnectionResults.Name = "lblTestConnectionResults"; - this.lblTestConnectionResults.Size = new System.Drawing.Size(124, 13); + this.lblTestConnectionResults.Size = new System.Drawing.Size(125, 13); this.lblTestConnectionResults.TabIndex = 13; this.lblTestConnectionResults.Text = "Test connection details"; // // chkSQLReadOnly // - this.chkSQLReadOnly._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkSQLReadOnly._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; + this.chkSQLReadOnly.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); this.chkSQLReadOnly.AutoSize = true; this.chkSQLReadOnly.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkSQLReadOnly.Location = new System.Drawing.Point(140, 232); + this.chkSQLReadOnly.Location = new System.Drawing.Point(163, 133); this.chkSQLReadOnly.Name = "chkSQLReadOnly"; - this.chkSQLReadOnly.Size = new System.Drawing.Size(15, 14); + this.chkSQLReadOnly.Size = new System.Drawing.Size(15, 20); this.chkSQLReadOnly.TabIndex = 14; this.chkSQLReadOnly.UseVisualStyleBackColor = true; // // lblSQLReadOnly // + this.lblSQLReadOnly.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLReadOnly.Enabled = false; - this.lblSQLReadOnly.Location = new System.Drawing.Point(23, 232); + this.lblSQLReadOnly.Location = new System.Drawing.Point(3, 130); this.lblSQLReadOnly.Name = "lblSQLReadOnly"; - this.lblSQLReadOnly.Size = new System.Drawing.Size(111, 13); + this.lblSQLReadOnly.Size = new System.Drawing.Size(154, 26); this.lblSQLReadOnly.TabIndex = 15; this.lblSQLReadOnly.Text = "Read Only:"; - this.lblSQLReadOnly.TextAlign = System.Drawing.ContentAlignment.TopRight; - // + this.lblSQLReadOnly.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // // lblSQLType - // + // + this.lblSQLType.Dock = System.Windows.Forms.DockStyle.Fill; this.lblSQLType.Enabled = false; - this.lblSQLType.Location = new System.Drawing.Point(23, 106); + this.lblSQLType.Location = new System.Drawing.Point(3, 0); this.lblSQLType.Name = "lblSQLType"; - this.lblSQLType.Size = new System.Drawing.Size(111, 13); + this.lblSQLType.Size = new System.Drawing.Size(154, 26); this.lblSQLType.TabIndex = 20; this.lblSQLType.Text = "SQL Server Type:"; - this.lblSQLType.TextAlign = System.Drawing.ContentAlignment.TopRight; - // + this.lblSQLType.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // // txtSQLType - // + // this.txtSQLType._mice = mRemoteNG.UI.Controls.Base.NGComboBox.MouseState.HOVER; + this.txtSQLType.Dock = System.Windows.Forms.DockStyle.Fill; this.txtSQLType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.txtSQLType.FormattingEnabled = true; this.txtSQLType.Items.AddRange(new object[] { "mssql", "mysql"}); - this.txtSQLType.Location = new System.Drawing.Point(140, 102); + this.txtSQLType.Location = new System.Drawing.Point(163, 3); this.txtSQLType.Name = "txtSQLType"; - this.txtSQLType.Size = new System.Drawing.Size(153, 21); + this.txtSQLType.Size = new System.Drawing.Size(235, 21); this.txtSQLType.TabIndex = 21; // + // tableLayoutPanel1 + // + this.tableLayoutPanel1.ColumnCount = 2; + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 160F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tableLayoutPanel1.Controls.Add(this.lblSQLType, 0, 0); + this.tableLayoutPanel1.Controls.Add(this.txtSQLType, 1, 0); + this.tableLayoutPanel1.Controls.Add(this.lblSQLServer, 0, 1); + this.tableLayoutPanel1.Controls.Add(this.chkSQLReadOnly, 1, 5); + this.tableLayoutPanel1.Controls.Add(this.lblSQLReadOnly, 0, 5); + this.tableLayoutPanel1.Controls.Add(this.lblSQLDatabaseName, 0, 2); + this.tableLayoutPanel1.Controls.Add(this.txtSQLDatabaseName, 1, 2); + this.tableLayoutPanel1.Controls.Add(this.lblSQLUsername, 0, 3); + this.tableLayoutPanel1.Controls.Add(this.lblSQLPassword, 0, 4); + this.tableLayoutPanel1.Controls.Add(this.txtSQLServer, 1, 1); + this.tableLayoutPanel1.Controls.Add(this.txtSQLPassword, 1, 4); + this.tableLayoutPanel1.Controls.Add(this.txtSQLUsername, 1, 3); + this.tableLayoutPanel1.Location = new System.Drawing.Point(3, 99); + this.tableLayoutPanel1.Name = "tableLayoutPanel1"; + this.tableLayoutPanel1.RowCount = 7; + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tableLayoutPanel1.Size = new System.Drawing.Size(401, 162); + this.tableLayoutPanel1.TabIndex = 22; + // // SqlServerPage // this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.Controls.Add(this.txtSQLType); - this.Controls.Add(this.lblSQLType); - this.Controls.Add(this.lblSQLReadOnly); - this.Controls.Add(this.chkSQLReadOnly); + this.Controls.Add(this.tableLayoutPanel1); this.Controls.Add(this.lblTestConnectionResults); this.Controls.Add(this.imgConnectionStatus); this.Controls.Add(this.btnTestConnection); - this.Controls.Add(this.lblSQLDatabaseName); - this.Controls.Add(this.txtSQLDatabaseName); this.Controls.Add(this.lblExperimental); this.Controls.Add(this.chkUseSQLServer); - this.Controls.Add(this.lblSQLUsername); - this.Controls.Add(this.txtSQLPassword); this.Controls.Add(this.lblSQLInfo); - this.Controls.Add(this.lblSQLServer); - this.Controls.Add(this.txtSQLUsername); - this.Controls.Add(this.txtSQLServer); - this.Controls.Add(this.lblSQLPassword); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.Margin = new System.Windows.Forms.Padding(4); this.Name = "SqlServerPage"; this.Size = new System.Drawing.Size(610, 490); ((System.ComponentModel.ISupportInitialize)(this.imgConnectionStatus)).EndInit(); + this.tableLayoutPanel1.ResumeLayout(false); + this.tableLayoutPanel1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); + } internal Controls.Base.NGLabel lblSQLDatabaseName; internal Controls.Base.NGTextBox txtSQLDatabaseName; @@ -280,5 +320,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages internal Controls.Base.NGLabel lblSQLReadOnly; internal Controls.Base.NGLabel lblSQLType; private Controls.Base.NGComboBox txtSQLType; + private System.Windows.Forms.TableLayoutPanel tableLayoutPanel1; } } diff --git a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs index db575871..e9655bb2 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/TabsPanelsPage.Designer.cs @@ -46,7 +46,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkAlwaysShowPanelTabs // - this.chkAlwaysShowPanelTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAlwaysShowPanelTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkAlwaysShowPanelTabs.AutoSize = true; this.chkAlwaysShowPanelTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkAlwaysShowPanelTabs.Location = new System.Drawing.Point(3, 3); @@ -58,7 +58,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkAlwaysShowConnectionTabs // - this.chkAlwaysShowConnectionTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAlwaysShowConnectionTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkAlwaysShowConnectionTabs.AutoSize = true; this.chkAlwaysShowConnectionTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkAlwaysShowConnectionTabs.Location = new System.Drawing.Point(3, 26); @@ -71,7 +71,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkIdentifyQuickConnectTabs // - this.chkIdentifyQuickConnectTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkIdentifyQuickConnectTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkIdentifyQuickConnectTabs.AutoSize = true; this.chkIdentifyQuickConnectTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkIdentifyQuickConnectTabs.Location = new System.Drawing.Point(3, 118); @@ -83,7 +83,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkOpenNewTabRightOfSelected // - this.chkOpenNewTabRightOfSelected._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkOpenNewTabRightOfSelected._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkOpenNewTabRightOfSelected.AutoSize = true; this.chkOpenNewTabRightOfSelected.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkOpenNewTabRightOfSelected.Location = new System.Drawing.Point(3, 49); @@ -95,7 +95,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkAlwaysShowPanelSelectionDlg // - this.chkAlwaysShowPanelSelectionDlg._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkAlwaysShowPanelSelectionDlg._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkAlwaysShowPanelSelectionDlg.AutoSize = true; this.chkAlwaysShowPanelSelectionDlg.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkAlwaysShowPanelSelectionDlg.Location = new System.Drawing.Point(3, 164); @@ -107,7 +107,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowLogonInfoOnTabs // - this.chkShowLogonInfoOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowLogonInfoOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowLogonInfoOnTabs.AutoSize = true; this.chkShowLogonInfoOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkShowLogonInfoOnTabs.Location = new System.Drawing.Point(3, 72); @@ -119,7 +119,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkDoubleClickClosesTab // - this.chkDoubleClickClosesTab._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkDoubleClickClosesTab._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkDoubleClickClosesTab.AutoSize = true; this.chkDoubleClickClosesTab.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkDoubleClickClosesTab.Location = new System.Drawing.Point(3, 141); @@ -131,7 +131,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkShowProtocolOnTabs // - this.chkShowProtocolOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkShowProtocolOnTabs._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkShowProtocolOnTabs.AutoSize = true; this.chkShowProtocolOnTabs.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkShowProtocolOnTabs.Location = new System.Drawing.Point(3, 95); @@ -143,7 +143,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // // chkCreateEmptyPanelOnStart // - this.chkCreateEmptyPanelOnStart._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER; + this.chkCreateEmptyPanelOnStart._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkCreateEmptyPanelOnStart.AutoSize = true; this.chkCreateEmptyPanelOnStart.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); this.chkCreateEmptyPanelOnStart.Location = new System.Drawing.Point(3, 187); @@ -157,7 +157,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // txtBoxPanelName // this.txtBoxPanelName.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtBoxPanelName.Location = new System.Drawing.Point(43, 246); + this.txtBoxPanelName.Location = new System.Drawing.Point(35, 223); this.txtBoxPanelName.Name = "txtBoxPanelName"; this.txtBoxPanelName.Size = new System.Drawing.Size(213, 22); this.txtBoxPanelName.TabIndex = 8; @@ -165,7 +165,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages // lblPanelName // this.lblPanelName.AutoSize = true; - this.lblPanelName.Location = new System.Drawing.Point(40, 230); + this.lblPanelName.Location = new System.Drawing.Point(32, 207); this.lblPanelName.Name = "lblPanelName"; this.lblPanelName.Size = new System.Drawing.Size(69, 13); this.lblPanelName.TabIndex = 9; diff --git a/mRemoteV1/UI/Forms/OptionsPages/ThemePage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/ThemePage.Designer.cs index 6b55e1dd..fe7de8ba 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/ThemePage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/ThemePage.Designer.cs @@ -97,6 +97,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.listPalette.DecorateLines = true; this.listPalette.Dock = System.Windows.Forms.DockStyle.Fill; this.listPalette.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.listPalette.HideSelection = false; this.listPalette.Location = new System.Drawing.Point(3, 37); this.listPalette.Name = "listPalette"; this.listPalette.ShowGroups = false; diff --git a/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.Designer.cs b/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.Designer.cs index 172b1f08..c854a386 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.Designer.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.Designer.cs @@ -1,4 +1,4 @@ - + namespace mRemoteNG.UI.Forms.OptionsPages { @@ -37,33 +37,33 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.lblReleaseChannelExplanation = new mRemoteNG.UI.Controls.Base.NGTextBox(); this.cboReleaseChannel = new mRemoteNG.UI.Controls.Base.NGComboBox(); this.pnlProxy = new System.Windows.Forms.Panel(); - this.pnlProxyBasic = new System.Windows.Forms.Panel(); + this.tblProxyBasic = new System.Windows.Forms.TableLayoutPanel(); + this.numProxyPort = new mRemoteNG.UI.Controls.Base.NGNumericUpDown(); this.lblProxyAddress = new mRemoteNG.UI.Controls.Base.NGLabel(); this.txtProxyAddress = new mRemoteNG.UI.Controls.Base.NGTextBox(); this.lblProxyPort = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.numProxyPort = new mRemoteNG.UI.Controls.Base.NGNumericUpDown(); - this.chkUseProxyForAutomaticUpdates = new mRemoteNG.UI.Controls.Base.NGCheckBox(); - this.chkUseProxyAuthentication = new mRemoteNG.UI.Controls.Base.NGCheckBox(); - this.pnlProxyAuthentication = new System.Windows.Forms.Panel(); + this.tblProxyAuthentication = new System.Windows.Forms.TableLayoutPanel(); + this.lblProxyPassword = new mRemoteNG.UI.Controls.Base.NGLabel(); this.lblProxyUsername = new mRemoteNG.UI.Controls.Base.NGLabel(); this.txtProxyUsername = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.lblProxyPassword = new mRemoteNG.UI.Controls.Base.NGLabel(); this.txtProxyPassword = new mRemoteNG.UI.Controls.Base.NGTextBox(); + this.chkUseProxyForAutomaticUpdates = new mRemoteNG.UI.Controls.Base.NGCheckBox(); + this.chkUseProxyAuthentication = new mRemoteNG.UI.Controls.Base.NGCheckBox(); this.btnTestProxy = new mRemoteNG.UI.Controls.Base.NGButton(); this.groupBoxReleaseChannel = new mRemoteNG.UI.Controls.Base.NGGroupBox(); this.pnlUpdateCheck.SuspendLayout(); this.pnlProxy.SuspendLayout(); - this.pnlProxyBasic.SuspendLayout(); + this.tblProxyBasic.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.numProxyPort)).BeginInit(); - this.pnlProxyAuthentication.SuspendLayout(); + this.tblProxyAuthentication.SuspendLayout(); this.groupBoxReleaseChannel.SuspendLayout(); this.SuspendLayout(); // // lblUpdatesExplanation // - this.lblUpdatesExplanation.Location = new System.Drawing.Point(3, 2); + this.lblUpdatesExplanation.Location = new System.Drawing.Point(3, 3); this.lblUpdatesExplanation.Name = "lblUpdatesExplanation"; - this.lblUpdatesExplanation.Size = new System.Drawing.Size(536, 32); + this.lblUpdatesExplanation.Size = new System.Drawing.Size(595, 32); this.lblUpdatesExplanation.TabIndex = 0; this.lblUpdatesExplanation.Text = "mRemoteNG can periodically connect to the mRemoteNG website to check for updates." + ""; @@ -75,15 +75,15 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.pnlUpdateCheck.Controls.Add(this.cboUpdateCheckFrequency); this.pnlUpdateCheck.Location = new System.Drawing.Point(3, 38); this.pnlUpdateCheck.Name = "pnlUpdateCheck"; - this.pnlUpdateCheck.Size = new System.Drawing.Size(604, 79); + this.pnlUpdateCheck.Size = new System.Drawing.Size(604, 99); this.pnlUpdateCheck.TabIndex = 1; // // btnUpdateCheckNow // this.btnUpdateCheckNow._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; - this.btnUpdateCheckNow.Location = new System.Drawing.Point(3, 49); + this.btnUpdateCheckNow.Location = new System.Drawing.Point(5, 63); this.btnUpdateCheckNow.Name = "btnUpdateCheckNow"; - this.btnUpdateCheckNow.Size = new System.Drawing.Size(120, 23); + this.btnUpdateCheckNow.Size = new System.Drawing.Size(122, 25); this.btnUpdateCheckNow.TabIndex = 2; this.btnUpdateCheckNow.Text = "Check Now"; this.btnUpdateCheckNow.UseVisualStyleBackColor = true; @@ -94,7 +94,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkCheckForUpdatesOnStartup._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkCheckForUpdatesOnStartup.AutoSize = true; this.chkCheckForUpdatesOnStartup.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkCheckForUpdatesOnStartup.Location = new System.Drawing.Point(3, 4); + this.chkCheckForUpdatesOnStartup.Location = new System.Drawing.Point(6, 11); this.chkCheckForUpdatesOnStartup.Name = "chkCheckForUpdatesOnStartup"; this.chkCheckForUpdatesOnStartup.Size = new System.Drawing.Size(120, 17); this.chkCheckForUpdatesOnStartup.TabIndex = 0; @@ -107,7 +107,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.cboUpdateCheckFrequency._mice = mRemoteNG.UI.Controls.Base.NGComboBox.MouseState.HOVER; this.cboUpdateCheckFrequency.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboUpdateCheckFrequency.FormattingEnabled = true; - this.cboUpdateCheckFrequency.Location = new System.Drawing.Point(3, 22); + this.cboUpdateCheckFrequency.Location = new System.Drawing.Point(6, 34); this.cboUpdateCheckFrequency.Name = "cboUpdateCheckFrequency"; this.cboUpdateCheckFrequency.Size = new System.Drawing.Size(120, 21); this.cboUpdateCheckFrequency.TabIndex = 1; @@ -117,7 +117,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.lblReleaseChannelExplanation.BackColor = System.Drawing.SystemColors.Control; this.lblReleaseChannelExplanation.BorderStyle = System.Windows.Forms.BorderStyle.None; this.lblReleaseChannelExplanation.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblReleaseChannelExplanation.Location = new System.Drawing.Point(3, 50); + this.lblReleaseChannelExplanation.Location = new System.Drawing.Point(6, 48); this.lblReleaseChannelExplanation.Multiline = true; this.lblReleaseChannelExplanation.Name = "lblReleaseChannelExplanation"; this.lblReleaseChannelExplanation.ReadOnly = true; @@ -132,66 +132,47 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.cboReleaseChannel._mice = mRemoteNG.UI.Controls.Base.NGComboBox.MouseState.HOVER; this.cboReleaseChannel.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cboReleaseChannel.FormattingEnabled = true; - this.cboReleaseChannel.Location = new System.Drawing.Point(3, 21); + this.cboReleaseChannel.Location = new System.Drawing.Point(7, 21); this.cboReleaseChannel.Name = "cboReleaseChannel"; this.cboReleaseChannel.Size = new System.Drawing.Size(120, 21); this.cboReleaseChannel.TabIndex = 1; // // pnlProxy // - this.pnlProxy.Controls.Add(this.pnlProxyBasic); + this.pnlProxy.Controls.Add(this.tblProxyBasic); + this.pnlProxy.Controls.Add(this.tblProxyAuthentication); this.pnlProxy.Controls.Add(this.chkUseProxyForAutomaticUpdates); this.pnlProxy.Controls.Add(this.chkUseProxyAuthentication); - this.pnlProxy.Controls.Add(this.pnlProxyAuthentication); this.pnlProxy.Controls.Add(this.btnTestProxy); - this.pnlProxy.Location = new System.Drawing.Point(0, 226); + this.pnlProxy.Location = new System.Drawing.Point(3, 253); this.pnlProxy.Name = "pnlProxy"; - this.pnlProxy.Size = new System.Drawing.Size(610, 203); + this.pnlProxy.Size = new System.Drawing.Size(604, 223); this.pnlProxy.TabIndex = 3; // - // pnlProxyBasic + // tblProxyBasic // - this.pnlProxyBasic.Controls.Add(this.lblProxyAddress); - this.pnlProxyBasic.Controls.Add(this.txtProxyAddress); - this.pnlProxyBasic.Controls.Add(this.lblProxyPort); - this.pnlProxyBasic.Controls.Add(this.numProxyPort); - this.pnlProxyBasic.Enabled = false; - this.pnlProxyBasic.Location = new System.Drawing.Point(3, 22); - this.pnlProxyBasic.Name = "pnlProxyBasic"; - this.pnlProxyBasic.Size = new System.Drawing.Size(604, 40); - this.pnlProxyBasic.TabIndex = 1; - // - // lblProxyAddress - // - this.lblProxyAddress.Location = new System.Drawing.Point(8, 0); - this.lblProxyAddress.Name = "lblProxyAddress"; - this.lblProxyAddress.Size = new System.Drawing.Size(96, 24); - this.lblProxyAddress.TabIndex = 0; - this.lblProxyAddress.Text = "Address:"; - this.lblProxyAddress.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // txtProxyAddress - // - this.txtProxyAddress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtProxyAddress.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtProxyAddress.Location = new System.Drawing.Point(110, 4); - this.txtProxyAddress.Name = "txtProxyAddress"; - this.txtProxyAddress.Size = new System.Drawing.Size(240, 22); - this.txtProxyAddress.TabIndex = 1; - // - // lblProxyPort - // - this.lblProxyPort.Location = new System.Drawing.Point(350, 1); - this.lblProxyPort.Name = "lblProxyPort"; - this.lblProxyPort.Size = new System.Drawing.Size(64, 23); - this.lblProxyPort.TabIndex = 2; - this.lblProxyPort.Text = "Port:"; - this.lblProxyPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + this.tblProxyBasic.ColumnCount = 2; + this.tblProxyBasic.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 160F)); + this.tblProxyBasic.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tblProxyBasic.Controls.Add(this.numProxyPort, 1, 1); + this.tblProxyBasic.Controls.Add(this.lblProxyAddress, 0, 0); + this.tblProxyBasic.Controls.Add(this.txtProxyAddress, 1, 0); + this.tblProxyBasic.Controls.Add(this.lblProxyPort, 0, 1); + this.tblProxyBasic.Location = new System.Drawing.Point(6, 28); + this.tblProxyBasic.Name = "tblProxyBasic"; + this.tblProxyBasic.RowCount = 3; + this.tblProxyBasic.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tblProxyBasic.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tblProxyBasic.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tblProxyBasic.Size = new System.Drawing.Size(350, 57); + this.tblProxyBasic.TabIndex = 6; // // numProxyPort // + this.numProxyPort.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) + | System.Windows.Forms.AnchorStyles.Left))); this.numProxyPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.numProxyPort.Location = new System.Drawing.Point(420, 4); + this.numProxyPort.Location = new System.Drawing.Point(163, 29); this.numProxyPort.Maximum = new decimal(new int[] { 65535, 0, @@ -211,12 +192,101 @@ namespace mRemoteNG.UI.Forms.OptionsPages 0, 0}); // + // lblProxyAddress + // + this.lblProxyAddress.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblProxyAddress.Location = new System.Drawing.Point(3, 0); + this.lblProxyAddress.Name = "lblProxyAddress"; + this.lblProxyAddress.Size = new System.Drawing.Size(154, 26); + this.lblProxyAddress.TabIndex = 0; + this.lblProxyAddress.Text = "Address:"; + this.lblProxyAddress.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtProxyAddress + // + this.txtProxyAddress.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtProxyAddress.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtProxyAddress.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtProxyAddress.Location = new System.Drawing.Point(163, 3); + this.txtProxyAddress.Name = "txtProxyAddress"; + this.txtProxyAddress.Size = new System.Drawing.Size(184, 22); + this.txtProxyAddress.TabIndex = 1; + // + // lblProxyPort + // + this.lblProxyPort.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblProxyPort.Location = new System.Drawing.Point(3, 26); + this.lblProxyPort.Name = "lblProxyPort"; + this.lblProxyPort.Size = new System.Drawing.Size(154, 26); + this.lblProxyPort.TabIndex = 2; + this.lblProxyPort.Text = "Port:"; + this.lblProxyPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // tblProxyAuthentication + // + this.tblProxyAuthentication.ColumnCount = 2; + this.tblProxyAuthentication.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 160F)); + this.tblProxyAuthentication.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tblProxyAuthentication.Controls.Add(this.lblProxyPassword, 0, 1); + this.tblProxyAuthentication.Controls.Add(this.lblProxyUsername, 0, 0); + this.tblProxyAuthentication.Controls.Add(this.txtProxyUsername, 1, 0); + this.tblProxyAuthentication.Controls.Add(this.txtProxyPassword, 1, 1); + this.tblProxyAuthentication.Location = new System.Drawing.Point(6, 124); + this.tblProxyAuthentication.Name = "tblProxyAuthentication"; + this.tblProxyAuthentication.RowCount = 3; + this.tblProxyAuthentication.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tblProxyAuthentication.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 26F)); + this.tblProxyAuthentication.RowStyles.Add(new System.Windows.Forms.RowStyle()); + this.tblProxyAuthentication.Size = new System.Drawing.Size(350, 57); + this.tblProxyAuthentication.TabIndex = 5; + // + // lblProxyPassword + // + this.lblProxyPassword.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblProxyPassword.Location = new System.Drawing.Point(3, 26); + this.lblProxyPassword.Name = "lblProxyPassword"; + this.lblProxyPassword.Size = new System.Drawing.Size(154, 26); + this.lblProxyPassword.TabIndex = 2; + this.lblProxyPassword.Text = "Password:"; + this.lblProxyPassword.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // lblProxyUsername + // + this.lblProxyUsername.Dock = System.Windows.Forms.DockStyle.Fill; + this.lblProxyUsername.Location = new System.Drawing.Point(3, 0); + this.lblProxyUsername.Name = "lblProxyUsername"; + this.lblProxyUsername.Size = new System.Drawing.Size(154, 26); + this.lblProxyUsername.TabIndex = 0; + this.lblProxyUsername.Text = "Username:"; + this.lblProxyUsername.TextAlign = System.Drawing.ContentAlignment.MiddleRight; + // + // txtProxyUsername + // + this.txtProxyUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtProxyUsername.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtProxyUsername.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtProxyUsername.Location = new System.Drawing.Point(163, 3); + this.txtProxyUsername.Name = "txtProxyUsername"; + this.txtProxyUsername.Size = new System.Drawing.Size(184, 22); + this.txtProxyUsername.TabIndex = 1; + // + // txtProxyPassword + // + this.txtProxyPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.txtProxyPassword.Dock = System.Windows.Forms.DockStyle.Fill; + this.txtProxyPassword.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.txtProxyPassword.Location = new System.Drawing.Point(163, 29); + this.txtProxyPassword.Name = "txtProxyPassword"; + this.txtProxyPassword.Size = new System.Drawing.Size(184, 22); + this.txtProxyPassword.TabIndex = 3; + this.txtProxyPassword.UseSystemPasswordChar = true; + // // chkUseProxyForAutomaticUpdates // this.chkUseProxyForAutomaticUpdates._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.OUT; this.chkUseProxyForAutomaticUpdates.AutoSize = true; this.chkUseProxyForAutomaticUpdates.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkUseProxyForAutomaticUpdates.Location = new System.Drawing.Point(6, 0); + this.chkUseProxyForAutomaticUpdates.Location = new System.Drawing.Point(6, 5); this.chkUseProxyForAutomaticUpdates.Name = "chkUseProxyForAutomaticUpdates"; this.chkUseProxyForAutomaticUpdates.Size = new System.Drawing.Size(176, 17); this.chkUseProxyForAutomaticUpdates.TabIndex = 0; @@ -230,69 +300,20 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.chkUseProxyAuthentication.AutoSize = true; this.chkUseProxyAuthentication.Enabled = false; this.chkUseProxyAuthentication.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.chkUseProxyAuthentication.Location = new System.Drawing.Point(27, 70); + this.chkUseProxyAuthentication.Location = new System.Drawing.Point(6, 101); this.chkUseProxyAuthentication.Name = "chkUseProxyAuthentication"; - this.chkUseProxyAuthentication.Size = new System.Drawing.Size(234, 17); + this.chkUseProxyAuthentication.Size = new System.Drawing.Size(235, 17); this.chkUseProxyAuthentication.TabIndex = 2; this.chkUseProxyAuthentication.Text = "This proxy server requires authentication"; this.chkUseProxyAuthentication.UseVisualStyleBackColor = true; this.chkUseProxyAuthentication.CheckedChanged += new System.EventHandler(this.chkUseProxyAuthentication_CheckedChanged); // - // pnlProxyAuthentication - // - this.pnlProxyAuthentication.Controls.Add(this.lblProxyUsername); - this.pnlProxyAuthentication.Controls.Add(this.txtProxyUsername); - this.pnlProxyAuthentication.Controls.Add(this.lblProxyPassword); - this.pnlProxyAuthentication.Controls.Add(this.txtProxyPassword); - this.pnlProxyAuthentication.Enabled = false; - this.pnlProxyAuthentication.Location = new System.Drawing.Point(3, 94); - this.pnlProxyAuthentication.Name = "pnlProxyAuthentication"; - this.pnlProxyAuthentication.Size = new System.Drawing.Size(604, 72); - this.pnlProxyAuthentication.TabIndex = 3; - // - // lblProxyUsername - // - this.lblProxyUsername.Location = new System.Drawing.Point(8, 0); - this.lblProxyUsername.Name = "lblProxyUsername"; - this.lblProxyUsername.Size = new System.Drawing.Size(96, 24); - this.lblProxyUsername.TabIndex = 0; - this.lblProxyUsername.Text = "Username:"; - this.lblProxyUsername.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // txtProxyUsername - // - this.txtProxyUsername.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtProxyUsername.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtProxyUsername.Location = new System.Drawing.Point(110, 4); - this.txtProxyUsername.Name = "txtProxyUsername"; - this.txtProxyUsername.Size = new System.Drawing.Size(240, 22); - this.txtProxyUsername.TabIndex = 1; - // - // lblProxyPassword - // - this.lblProxyPassword.Location = new System.Drawing.Point(8, 26); - this.lblProxyPassword.Name = "lblProxyPassword"; - this.lblProxyPassword.Size = new System.Drawing.Size(96, 24); - this.lblProxyPassword.TabIndex = 2; - this.lblProxyPassword.Text = "Password:"; - this.lblProxyPassword.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // txtProxyPassword - // - this.txtProxyPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.txtProxyPassword.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtProxyPassword.Location = new System.Drawing.Point(110, 30); - this.txtProxyPassword.Name = "txtProxyPassword"; - this.txtProxyPassword.Size = new System.Drawing.Size(240, 22); - this.txtProxyPassword.TabIndex = 3; - this.txtProxyPassword.UseSystemPasswordChar = true; - // // btnTestProxy // this.btnTestProxy._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT; - this.btnTestProxy.Location = new System.Drawing.Point(6, 172); + this.btnTestProxy.Location = new System.Drawing.Point(6, 187); this.btnTestProxy.Name = "btnTestProxy"; - this.btnTestProxy.Size = new System.Drawing.Size(120, 23); + this.btnTestProxy.Size = new System.Drawing.Size(120, 25); this.btnTestProxy.TabIndex = 4; this.btnTestProxy.Text = "Test Proxy"; this.btnTestProxy.UseVisualStyleBackColor = true; @@ -302,9 +323,9 @@ namespace mRemoteNG.UI.Forms.OptionsPages // this.groupBoxReleaseChannel.Controls.Add(this.lblReleaseChannelExplanation); this.groupBoxReleaseChannel.Controls.Add(this.cboReleaseChannel); - this.groupBoxReleaseChannel.Location = new System.Drawing.Point(3, 123); + this.groupBoxReleaseChannel.Location = new System.Drawing.Point(3, 143); this.groupBoxReleaseChannel.Name = "groupBoxReleaseChannel"; - this.groupBoxReleaseChannel.Size = new System.Drawing.Size(604, 100); + this.groupBoxReleaseChannel.Size = new System.Drawing.Size(604, 104); this.groupBoxReleaseChannel.TabIndex = 3; this.groupBoxReleaseChannel.TabStop = false; this.groupBoxReleaseChannel.Text = "Release Channel"; @@ -317,17 +338,18 @@ namespace mRemoteNG.UI.Forms.OptionsPages this.Controls.Add(this.lblUpdatesExplanation); this.Controls.Add(this.pnlUpdateCheck); this.Controls.Add(this.pnlProxy); + this.Margin = new System.Windows.Forms.Padding(4); this.Name = "UpdatesPage"; this.Size = new System.Drawing.Size(610, 490); this.pnlUpdateCheck.ResumeLayout(false); this.pnlUpdateCheck.PerformLayout(); this.pnlProxy.ResumeLayout(false); this.pnlProxy.PerformLayout(); - this.pnlProxyBasic.ResumeLayout(false); - this.pnlProxyBasic.PerformLayout(); + this.tblProxyBasic.ResumeLayout(false); + this.tblProxyBasic.PerformLayout(); ((System.ComponentModel.ISupportInitialize)(this.numProxyPort)).EndInit(); - this.pnlProxyAuthentication.ResumeLayout(false); - this.pnlProxyAuthentication.PerformLayout(); + this.tblProxyAuthentication.ResumeLayout(false); + this.tblProxyAuthentication.PerformLayout(); this.groupBoxReleaseChannel.ResumeLayout(false); this.groupBoxReleaseChannel.PerformLayout(); this.ResumeLayout(false); @@ -339,14 +361,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages internal Controls.Base.NGCheckBox chkCheckForUpdatesOnStartup; internal Controls.Base.NGComboBox cboUpdateCheckFrequency; internal System.Windows.Forms.Panel pnlProxy; - internal System.Windows.Forms.Panel pnlProxyBasic; internal Controls.Base.NGLabel lblProxyAddress; internal Controls.Base.NGTextBox txtProxyAddress; internal Controls.Base.NGLabel lblProxyPort; internal Controls.Base.NGNumericUpDown numProxyPort; internal Controls.Base.NGCheckBox chkUseProxyForAutomaticUpdates; internal Controls.Base.NGCheckBox chkUseProxyAuthentication; - internal System.Windows.Forms.Panel pnlProxyAuthentication; internal Controls.Base.NGLabel lblProxyUsername; internal Controls.Base.NGTextBox txtProxyUsername; internal Controls.Base.NGLabel lblProxyPassword; @@ -355,5 +375,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages private Controls.Base.NGComboBox cboReleaseChannel; private Controls.Base.NGTextBox lblReleaseChannelExplanation; private Controls.Base.NGGroupBox groupBoxReleaseChannel; + private System.Windows.Forms.TableLayoutPanel tblProxyBasic; + private System.Windows.Forms.TableLayoutPanel tblProxyAuthentication; } } \ No newline at end of file diff --git a/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.cs b/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.cs index e85571e5..8d2031f2 100644 --- a/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.cs +++ b/mRemoteV1/UI/Forms/OptionsPages/UpdatesPage.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.ComponentModel; using System.Windows.Forms; using mRemoteNG.App; @@ -110,12 +110,12 @@ namespace mRemoteNG.UI.Forms.OptionsPages } chkUseProxyForAutomaticUpdates.Checked = Settings.Default.UpdateUseProxy; - pnlProxyBasic.Enabled = Settings.Default.UpdateUseProxy; + tblProxyBasic.Enabled = Settings.Default.UpdateUseProxy; txtProxyAddress.Text = Settings.Default.UpdateProxyAddress; numProxyPort.Value = Convert.ToDecimal(Settings.Default.UpdateProxyPort); chkUseProxyAuthentication.Checked = Settings.Default.UpdateProxyUseAuthentication; - pnlProxyAuthentication.Enabled = Settings.Default.UpdateProxyUseAuthentication; + tblProxyAuthentication.Enabled = Settings.Default.UpdateProxyUseAuthentication; txtProxyUsername.Text = Settings.Default.UpdateProxyAuthUser; var cryptographyProvider = new LegacyRijndaelCryptographyProvider(); txtProxyPassword.Text = @@ -173,7 +173,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages private void chkUseProxyForAutomaticUpdates_CheckedChanged(object sender, EventArgs e) { - pnlProxyBasic.Enabled = chkUseProxyForAutomaticUpdates.Checked; + tblProxyBasic.Enabled = chkUseProxyForAutomaticUpdates.Checked; btnTestProxy.Enabled = chkUseProxyForAutomaticUpdates.Checked; if (chkUseProxyForAutomaticUpdates.Checked) @@ -182,13 +182,13 @@ namespace mRemoteNG.UI.Forms.OptionsPages if (chkUseProxyAuthentication.Checked) { - pnlProxyAuthentication.Enabled = true; + tblProxyAuthentication.Enabled = true; } } else { chkUseProxyAuthentication.Enabled = false; - pnlProxyAuthentication.Enabled = false; + tblProxyAuthentication.Enabled = false; } } @@ -221,7 +221,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages { if (chkUseProxyForAutomaticUpdates.Checked) { - pnlProxyAuthentication.Enabled = chkUseProxyAuthentication.Checked; + tblProxyAuthentication.Enabled = chkUseProxyAuthentication.Checked; } } diff --git a/mRemoteV1/UI/Window/AboutWindow.Designer.cs b/mRemoteV1/UI/Window/AboutWindow.Designer.cs new file mode 100644 index 00000000..a1c9910f --- /dev/null +++ b/mRemoteV1/UI/Window/AboutWindow.Designer.cs @@ -0,0 +1,203 @@ +namespace mRemoteNG.UI.Window +{ + public partial class AboutWindow + { + #region Windows Form Designer generated code + private void InitializeComponent() + { + System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutWindow)); + this.pnlTop = new System.Windows.Forms.Panel(); + this.pbLogo = new System.Windows.Forms.PictureBox(); + this.pnlBottom = new System.Windows.Forms.Panel(); + this.lblTitle = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.lblVersion = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.lblLicense = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.lblCopyright = new mRemoteNG.UI.Controls.Base.NGLabel(); + this.tlpBottom = new System.Windows.Forms.TableLayoutPanel(); + this.gwbCredits = new Gecko.GeckoWebBrowser(); + this.gwbChangeLog = new Gecko.GeckoWebBrowser(); + this.tlpTop = new System.Windows.Forms.TableLayoutPanel(); + this.pnlTop.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit(); + this.pnlBottom.SuspendLayout(); + this.tlpBottom.SuspendLayout(); + this.tlpTop.SuspendLayout(); + this.SuspendLayout(); + // + // pnlTop + // + this.pnlTop.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(52)))), ((int)(((byte)(58)))), ((int)(((byte)(64))))); + this.pnlTop.Controls.Add(this.pbLogo); + this.pnlTop.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlTop.ForeColor = System.Drawing.Color.White; + this.pnlTop.Location = new System.Drawing.Point(3, 3); + this.pnlTop.Name = "pnlTop"; + this.pnlTop.Size = new System.Drawing.Size(1111, 116); + this.pnlTop.TabIndex = 0; + // + // pbLogo + // + this.pbLogo.Image = global::mRemoteNG.Resources.Header_dark; + this.pbLogo.Location = new System.Drawing.Point(0, 0); + this.pbLogo.Name = "pbLogo"; + this.pbLogo.Size = new System.Drawing.Size(450, 120); + this.pbLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; + this.pbLogo.TabIndex = 1; + this.pbLogo.TabStop = false; + // + // pnlBottom + // + this.pnlBottom.BackColor = System.Drawing.SystemColors.Control; + this.pnlBottom.Controls.Add(this.lblTitle); + this.pnlBottom.Controls.Add(this.lblVersion); + this.pnlBottom.Controls.Add(this.lblLicense); + this.pnlBottom.Controls.Add(this.lblCopyright); + this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Fill; + this.pnlBottom.ForeColor = System.Drawing.SystemColors.ControlText; + this.pnlBottom.Location = new System.Drawing.Point(3, 125); + this.pnlBottom.Name = "pnlBottom"; + this.pnlBottom.Size = new System.Drawing.Size(1111, 194); + this.pnlBottom.TabIndex = 1; + // + // lblTitle + // + this.lblTitle.AutoSize = true; + this.lblTitle.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.lblTitle.ForeColor = System.Drawing.SystemColors.ControlText; + this.lblTitle.Location = new System.Drawing.Point(3, 3); + this.lblTitle.Name = "lblTitle"; + this.lblTitle.Size = new System.Drawing.Size(126, 31); + this.lblTitle.TabIndex = 0; + this.lblTitle.Text = "mRemoteNG"; + this.lblTitle.UseCompatibleTextRendering = true; + // + // lblVersion + // + this.lblVersion.AutoSize = true; + this.lblVersion.Font = new System.Drawing.Font("Segoe UI", 11F); + this.lblVersion.ForeColor = System.Drawing.SystemColors.ControlText; + this.lblVersion.Location = new System.Drawing.Point(3, 34); + this.lblVersion.Name = "lblVersion"; + this.lblVersion.Size = new System.Drawing.Size(55, 25); + this.lblVersion.TabIndex = 1; + this.lblVersion.Text = "Version"; + this.lblVersion.UseCompatibleTextRendering = true; + // + // lblLicense + // + this.lblLicense.AutoSize = true; + this.lblLicense.Font = new System.Drawing.Font("Segoe UI", 11F); + this.lblLicense.ForeColor = System.Drawing.SystemColors.ControlText; + this.lblLicense.Location = new System.Drawing.Point(3, 84); + this.lblLicense.Name = "lblLicense"; + this.lblLicense.Size = new System.Drawing.Size(54, 25); + this.lblLicense.TabIndex = 5; + this.lblLicense.Text = "License"; + this.lblLicense.UseCompatibleTextRendering = true; + // + // lblCopyright + // + this.lblCopyright.AutoSize = true; + this.lblCopyright.Font = new System.Drawing.Font("Segoe UI", 11F); + this.lblCopyright.ForeColor = System.Drawing.SystemColors.ControlText; + this.lblCopyright.Location = new System.Drawing.Point(3, 59); + this.lblCopyright.Name = "lblCopyright"; + this.lblCopyright.Size = new System.Drawing.Size(71, 25); + this.lblCopyright.TabIndex = 2; + this.lblCopyright.Text = "Copyright"; + this.lblCopyright.UseCompatibleTextRendering = true; + // + // tlpBottom + // + this.tlpBottom.ColumnCount = 2; + this.tlpBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tlpBottom.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tlpBottom.Controls.Add(this.gwbCredits, 0, 0); + this.tlpBottom.Controls.Add(this.gwbChangeLog, 1, 0); + this.tlpBottom.Dock = System.Windows.Forms.DockStyle.Fill; + this.tlpBottom.Location = new System.Drawing.Point(0, 235); + this.tlpBottom.Name = "tlpBottom"; + this.tlpBottom.RowCount = 1; + this.tlpBottom.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); + this.tlpBottom.Size = new System.Drawing.Size(1117, 470); + this.tlpBottom.TabIndex = 13; + // + // gwbCredits + // + this.gwbCredits.Dock = System.Windows.Forms.DockStyle.Fill; + this.gwbCredits.FrameEventsPropagateToMainWindow = false; + this.gwbCredits.Location = new System.Drawing.Point(3, 3); + this.gwbCredits.Name = "gwbCredits"; + this.gwbCredits.NoDefaultContextMenu = true; + this.gwbCredits.Size = new System.Drawing.Size(552, 464); + this.gwbCredits.TabIndex = 12; + this.gwbCredits.UseHttpActivityObserver = false; + this.gwbCredits.DomClick += new System.EventHandler(this.LinkClicked); + // + // gwbChangeLog + // + this.gwbChangeLog.Dock = System.Windows.Forms.DockStyle.Fill; + this.gwbChangeLog.FrameEventsPropagateToMainWindow = false; + this.gwbChangeLog.Location = new System.Drawing.Point(561, 3); + this.gwbChangeLog.Name = "gwbChangeLog"; + this.gwbChangeLog.NoDefaultContextMenu = true; + this.gwbChangeLog.Size = new System.Drawing.Size(553, 464); + this.gwbChangeLog.TabIndex = 13; + this.gwbChangeLog.UseHttpActivityObserver = false; + this.gwbChangeLog.DomClick += new System.EventHandler(this.LinkClicked); + // + // tlpTop + // + this.tlpTop.ColumnCount = 1; + this.tlpTop.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F)); + this.tlpTop.Controls.Add(this.pnlTop, 0, 0); + this.tlpTop.Controls.Add(this.pnlBottom, 0, 1); + this.tlpTop.Dock = System.Windows.Forms.DockStyle.Top; + this.tlpTop.Location = new System.Drawing.Point(0, 0); + this.tlpTop.Name = "tlpTop"; + this.tlpTop.RowCount = 2; + this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 122F)); + this.tlpTop.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 200F)); + this.tlpTop.Size = new System.Drawing.Size(1117, 235); + this.tlpTop.TabIndex = 14; + // + // AboutWindow + // + this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; + this.BackColor = System.Drawing.SystemColors.Control; + this.ClientSize = new System.Drawing.Size(1117, 705); + this.Controls.Add(this.tlpBottom); + this.Controls.Add(this.tlpTop); + this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); + this.ForeColor = System.Drawing.SystemColors.ControlText; + this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MaximumSize = new System.Drawing.Size(20000, 10000); + this.Name = "AboutWindow"; + this.TabText = "About"; + this.Text = "About"; + this.pnlTop.ResumeLayout(false); + this.pnlTop.PerformLayout(); + ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit(); + this.pnlBottom.ResumeLayout(false); + this.pnlBottom.PerformLayout(); + this.tlpBottom.ResumeLayout(false); + this.tlpTop.ResumeLayout(false); + this.ResumeLayout(false); + + } + #endregion + + internal Controls.Base.NGLabel lblCopyright; + internal Controls.Base.NGLabel lblTitle; + internal Controls.Base.NGLabel lblVersion; + internal Controls.Base.NGLabel lblLicense; + internal System.Windows.Forms.Panel pnlBottom; + internal System.Windows.Forms.PictureBox pbLogo; + private System.Windows.Forms.TableLayoutPanel tlpBottom; + private System.Windows.Forms.TableLayoutPanel tlpTop; + internal System.Windows.Forms.Panel pnlTop; + private Gecko.GeckoWebBrowser gwbCredits; + private Gecko.GeckoWebBrowser gwbChangeLog; + } +} diff --git a/mRemoteV1/UI/Window/AboutWindow.cs b/mRemoteV1/UI/Window/AboutWindow.cs index e00289e1..7dee515e 100644 --- a/mRemoteV1/UI/Window/AboutWindow.cs +++ b/mRemoteV1/UI/Window/AboutWindow.cs @@ -1,257 +1,50 @@ -using System; -using System.Windows.Forms; -using WeifenLuo.WinFormsUI.Docking; +using System; +using System.Diagnostics; +using System.Drawing; using System.IO; using System.Text; +using Gecko; using mRemoteNG.App; using mRemoteNG.App.Info; +using mRemoteNG.Messages; using mRemoteNG.Themes; +using Markdig; +using WeifenLuo.WinFormsUI.Docking; namespace mRemoteNG.UI.Window { - public class AboutWindow : BaseWindow + public partial class AboutWindow : BaseWindow { - #region Form Init - - internal Controls.Base.NGLabel lblCopyright; - internal Controls.Base.NGLabel lblTitle; - internal Controls.Base.NGLabel lblVersion; - internal Controls.Base.NGLabel lblLicense; - internal Controls.Base.NGTextBox txtChangeLog; - internal Controls.Base.NGLabel lblChangeLog; - internal Panel pnlBottom; - internal PictureBox pbLogo; - internal Controls.Base.NGLabel lblCredits; - internal Controls.Base.NGTextBox txtCredits; - internal Panel pnlTop; - - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = - new System.ComponentModel.ComponentResourceManager(typeof(AboutWindow)); - this.pnlTop = new System.Windows.Forms.Panel(); - this.pbLogo = new System.Windows.Forms.PictureBox(); - this.pnlBottom = new System.Windows.Forms.Panel(); - this.lblCredits = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.txtCredits = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.txtChangeLog = new mRemoteNG.UI.Controls.Base.NGTextBox(); - this.lblTitle = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.lblVersion = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.lblChangeLog = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.lblLicense = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.lblCopyright = new mRemoteNG.UI.Controls.Base.NGLabel(); - this.pnlTop.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).BeginInit(); - this.pnlBottom.SuspendLayout(); - this.SuspendLayout(); - // - // pnlTop - // - this.pnlTop.BackColor = - System.Drawing.Color.FromArgb(((int)(((byte)(52)))), ((int)(((byte)(58)))), ((int)(((byte)(64))))); - this.pnlTop.Controls.Add(this.pbLogo); - this.pnlTop.Dock = System.Windows.Forms.DockStyle.Top; - this.pnlTop.ForeColor = System.Drawing.Color.White; - this.pnlTop.Location = new System.Drawing.Point(0, 0); - this.pnlTop.Name = "pnlTop"; - this.pnlTop.Size = new System.Drawing.Size(1117, 122); - this.pnlTop.TabIndex = 0; - // - // pbLogo - // - this.pbLogo.Image = global::mRemoteNG.Resources.Header_dark; - this.pbLogo.Location = new System.Drawing.Point(0, 0); - this.pbLogo.Name = "pbLogo"; - this.pbLogo.Size = new System.Drawing.Size(450, 120); - this.pbLogo.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pbLogo.TabIndex = 1; - this.pbLogo.TabStop = false; - // - // pnlBottom - // - this.pnlBottom.BackColor = System.Drawing.SystemColors.Control; - this.pnlBottom.Controls.Add(this.lblCredits); - this.pnlBottom.Controls.Add(this.txtCredits); - this.pnlBottom.Controls.Add(this.txtChangeLog); - this.pnlBottom.Controls.Add(this.lblTitle); - this.pnlBottom.Controls.Add(this.lblVersion); - this.pnlBottom.Controls.Add(this.lblChangeLog); - this.pnlBottom.Controls.Add(this.lblLicense); - this.pnlBottom.Controls.Add(this.lblCopyright); - this.pnlBottom.Dock = System.Windows.Forms.DockStyle.Fill; - this.pnlBottom.ForeColor = System.Drawing.SystemColors.ControlText; - this.pnlBottom.Location = new System.Drawing.Point(0, 122); - this.pnlBottom.Name = "pnlBottom"; - this.pnlBottom.Size = new System.Drawing.Size(1117, 583); - this.pnlBottom.TabIndex = 1; - // - // lblCredits - // - this.lblCredits.AutoSize = true; - this.lblCredits.Font = new System.Drawing.Font("Segoe UI", 11F); - this.lblCredits.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblCredits.Location = new System.Drawing.Point(3, 131); - this.lblCredits.Name = "lblCredits"; - this.lblCredits.Size = new System.Drawing.Size(55, 25); - this.lblCredits.TabIndex = 11; - this.lblCredits.Text = "Credits:"; - this.lblCredits.UseCompatibleTextRendering = true; - // - // txtCredits - // - this.txtCredits.Anchor = - ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | - System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left))); - this.txtCredits.BackColor = System.Drawing.SystemColors.Control; - this.txtCredits.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.txtCredits.Cursor = System.Windows.Forms.Cursors.Default; - this.txtCredits.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, - System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtCredits.ForeColor = System.Drawing.SystemColors.ControlText; - this.txtCredits.Location = new System.Drawing.Point(8, 156); - this.txtCredits.MinimumSize = new System.Drawing.Size(370, 260); - this.txtCredits.Multiline = true; - this.txtCredits.Name = "txtCredits"; - this.txtCredits.ReadOnly = true; - this.txtCredits.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtCredits.Size = new System.Drawing.Size(400, 424); - this.txtCredits.TabIndex = 7; - this.txtCredits.TabStop = false; - // - // txtChangeLog - // - this.txtChangeLog.Anchor = - ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | - System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtChangeLog.BackColor = System.Drawing.SystemColors.Control; - this.txtChangeLog.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.txtChangeLog.Cursor = System.Windows.Forms.Cursors.Default; - this.txtChangeLog.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, - System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtChangeLog.ForeColor = System.Drawing.SystemColors.ControlText; - this.txtChangeLog.Location = new System.Drawing.Point(414, 156); - this.txtChangeLog.MinimumSize = new System.Drawing.Size(370, 260); - this.txtChangeLog.Multiline = true; - this.txtChangeLog.Name = "txtChangeLog"; - this.txtChangeLog.ReadOnly = true; - this.txtChangeLog.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.txtChangeLog.Size = new System.Drawing.Size(696, 424); - this.txtChangeLog.TabIndex = 10; - this.txtChangeLog.TabStop = false; - // - // lblTitle - // - this.lblTitle.AutoSize = true; - this.lblTitle.Font = new System.Drawing.Font("Segoe UI", 14.25F, System.Drawing.FontStyle.Bold, - System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblTitle.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblTitle.Location = new System.Drawing.Point(3, 3); - this.lblTitle.Name = "lblTitle"; - this.lblTitle.Size = new System.Drawing.Size(126, 31); - this.lblTitle.TabIndex = 0; - this.lblTitle.Text = "mRemoteNG"; - this.lblTitle.UseCompatibleTextRendering = true; - // - // lblVersion - // - this.lblVersion.AutoSize = true; - this.lblVersion.Font = new System.Drawing.Font("Segoe UI", 11F); - this.lblVersion.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblVersion.Location = new System.Drawing.Point(3, 34); - this.lblVersion.Name = "lblVersion"; - this.lblVersion.Size = new System.Drawing.Size(55, 25); - this.lblVersion.TabIndex = 1; - this.lblVersion.Text = "Version"; - this.lblVersion.UseCompatibleTextRendering = true; - // - // lblChangeLog - // - this.lblChangeLog.AutoSize = true; - this.lblChangeLog.Font = new System.Drawing.Font("Segoe UI", 11F); - this.lblChangeLog.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblChangeLog.Location = new System.Drawing.Point(414, 131); - this.lblChangeLog.Name = "lblChangeLog"; - this.lblChangeLog.Size = new System.Drawing.Size(89, 25); - this.lblChangeLog.TabIndex = 6; - this.lblChangeLog.Text = "Change Log:"; - this.lblChangeLog.UseCompatibleTextRendering = true; - // - // lblLicense - // - this.lblLicense.AutoSize = true; - this.lblLicense.Font = new System.Drawing.Font("Segoe UI", 11F); - this.lblLicense.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblLicense.Location = new System.Drawing.Point(3, 84); - this.lblLicense.Name = "lblLicense"; - this.lblLicense.Size = new System.Drawing.Size(54, 25); - this.lblLicense.TabIndex = 5; - this.lblLicense.Text = "License"; - this.lblLicense.UseCompatibleTextRendering = true; - // - // lblCopyright - // - this.lblCopyright.AutoSize = true; - this.lblCopyright.Font = new System.Drawing.Font("Segoe UI", 11F); - this.lblCopyright.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblCopyright.Location = new System.Drawing.Point(3, 59); - this.lblCopyright.Name = "lblCopyright"; - this.lblCopyright.Size = new System.Drawing.Size(71, 25); - this.lblCopyright.TabIndex = 2; - this.lblCopyright.Text = "Copyright"; - this.lblCopyright.UseCompatibleTextRendering = true; - // - // AboutWindow - // - this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi; - this.BackColor = System.Drawing.SystemColors.Control; - this.ClientSize = new System.Drawing.Size(1117, 705); - this.Controls.Add(this.pnlBottom); - this.Controls.Add(this.pnlTop); - this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, - System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ForeColor = System.Drawing.SystemColors.ControlText; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximumSize = new System.Drawing.Size(20000, 10000); - this.Name = "AboutWindow"; - this.TabText = "About"; - this.Text = "About"; - this.Load += new System.EventHandler(this.About_Load); - this.pnlTop.ResumeLayout(false); - this.pnlTop.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.pbLogo)).EndInit(); - this.pnlBottom.ResumeLayout(false); - this.pnlBottom.PerformLayout(); - this.ResumeLayout(false); - } - - #endregion - #region Public Methods public AboutWindow() { WindowType = WindowType.About; DockPnl = new DockContent(); + if (!Xpcom.IsInitialized) + Xpcom.Initialize("Firefox"); InitializeComponent(); FontOverrider.FontOverride(this); ThemeManager.getInstance().ThemeChanged += ApplyTheme; ApplyLanguage(); + ApplyTheme(); + LoadDocuments(); } - #endregion + #endregion Public Methods #region Private Methods private void ApplyLanguage() { lblLicense.Text = Language.strLabelReleasedUnderGPL; - lblChangeLog.Text = Language.strLabelChangeLog; TabText = Language.strAbout; Text = Language.strAbout; + lblCopyright.Text = GeneralAppInfo.Copyright; + lblVersion.Text = $@"Version {GeneralAppInfo.ApplicationVersion}"; +#if PORTABLE + lblTitle.Text += $@" {Language.strLabelPortableEdition}"; +#endif } private new void ApplyTheme() @@ -267,50 +60,16 @@ namespace mRemoteNG.UI.Window pnlTop.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground"); } - private void ApplyEditions() - { -#if PORTABLE - lblTitle.Text += " " + Language.strLabelPortableEdition; -#endif - } - -#if false - private void FillLinkLabel(LinkLabel llbl, string txt, string URL) - { - llbl.Links.Clear(); - - int Open = txt.IndexOf("["); - while (Open != -1) - { - txt = txt.Remove(Open, 1); - int Close = txt.IndexOf("]", Open); - if (Close == -1) - { - break; - } - txt = txt.Remove(Close, 1); - llbl.Links.Add(Open, Close - Open, URL); - Open = txt.IndexOf("[", Open); - } - - llbl.Text = txt; - } -#endif - - #endregion + #endregion Private Methods #region Form Stuff - private void About_Load(object sender, EventArgs e) + private void LoadDocuments() { - ApplyTheme(); - ApplyEditions(); - try { - lblCopyright.Text = GeneralAppInfo.Copyright; - - lblVersion.Text = $@"Version {GeneralAppInfo.ApplicationVersion}"; + var pipeline = new MarkdownPipelineBuilder().UseAdvancedExtensions().Build(); + var backgroundColor = ColorTranslator.ToHtml(ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background")); // AppVeyor seems to pull text files in UNIX format... This messes up the display on the about screen... // @@ -319,65 +78,50 @@ namespace mRemoteNG.UI.Window //if (UnxEndRx.IsMatch(txtChangeLog.Text)) // txtChangeLog.Text = txtChangeLog.Text.Replace("\n", Environment.NewLine); // - // But for some reason that I couldn't figure out, the RegEx.IsMatch on CREDITS.TXT/txtCredits.Text + // But for some reason that I couldn't figure out, the RegEx.IsMatch on CREDITS.md/txtCredits.Text // did not work at all despite it CLEARLY ending with \n when pulled from AppVeyor... // The Changelog is a bit long anyways... Limit the number of lines to something reasonable. - if (File.Exists(GeneralAppInfo.HomePath + "\\CHANGELOG.TXT")) - { - using (var sR = new StreamReader(GeneralAppInfo.HomePath + "\\CHANGELOG.TXT", Encoding.Default, - true)) - { - string line; - var i = 0; - while ((line = sR.ReadLine()) != null && i < 128) - { - txtChangeLog.Text += line + Environment.NewLine; - i++; - } + if (!File.Exists(GeneralAppInfo.HomePath + @"\CREDITS.md") && !File.Exists(GeneralAppInfo.HomePath + @"\CHANGELOG.md")) return; - if (i == 128) - { - txtChangeLog.Text += - $"{Environment.NewLine}****************************************{Environment.NewLine}See CHANGELOG.TXT for full History...{Environment.NewLine}****************************************{Environment.NewLine}"; - } + var changelog = ""; + using (var sR = new StreamReader(GeneralAppInfo.HomePath + @"\CHANGELOG.md", Encoding.UTF8, true)) + { + string line; + var i = 0; + while ((line = sR.ReadLine()) != null) + { + changelog += line + Environment.NewLine; + i++; + if (i <= 128 || line != string.Empty) continue; + changelog += + $"{Environment.NewLine}***See [CHANGELOG.md](https://github.com/mRemoteNG/mRemoteNG/blob/develop/CHANGELOG.md) for full History...***{Environment.NewLine}"; + break; } } + var changelogHtml = Markdown.ToHtml(changelog, pipeline); + changelogHtml = $"{changelogHtml}"; - if (File.Exists(GeneralAppInfo.HomePath + "\\CREDITS.TXT")) - { - using (var sR = new StreamReader(GeneralAppInfo.HomePath + "\\CREDITS.TXT", Encoding.Default, true)) - { - string line; - while ((line = sR.ReadLine()) != null) - txtCredits.Text += line + Environment.NewLine; - } - } + var credits = new StreamReader(GeneralAppInfo.HomePath + @"\CREDITS.md", Encoding.UTF8, true).ReadToEnd(); + var creditsHtml = Markdown.ToHtml(credits, pipeline); + creditsHtml = $"{creditsHtml}"; + + gwbChangeLog.LoadHtml(changelogHtml.Replace("©", "©")); + gwbCredits.LoadHtml(creditsHtml.Replace("©", "©")); } catch (Exception ex) { - Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, - "Loading About failed" + Environment.NewLine + ex.Message, true); + Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, + "Loading About failed" + Environment.NewLine + ex.Message, true); } } -#if false - private void llblFAMFAMFAM_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e) - { - Runtime.GoToURL(Language.strFAMFAMFAMAttributionURL); - } + private void LinkClicked(object sender, DomMouseEventArgs e) + { + Process.Start(((GeckoWebBrowser)sender).StatusText); + e.Handled = true; + } - private void llblMagicLibrary_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e) - { - Runtime.GoToURL(Language.strMagicLibraryAttributionURL); - } - - private void llblWeifenLuo_LinkClicked(Object sender, LinkLabelLinkClickedEventArgs e) - { - Runtime.GoToURL(Language.strWeifenLuoAttributionURL); - } -#endif - - #endregion + #endregion Form Stuff } } \ No newline at end of file diff --git a/mRemoteV1/UI/Window/ConfigWindow.cs b/mRemoteV1/UI/Window/ConfigWindow.cs index 44a6e35f..11b69d5e 100644 --- a/mRemoteV1/UI/Window/ConfigWindow.cs +++ b/mRemoteV1/UI/Window/ConfigWindow.cs @@ -278,10 +278,10 @@ namespace mRemoteNG.UI.Window switch (keyData) { case (Keys.Tab | Keys.Shift): - _pGrid.SelectNextGridItem(); + _pGrid.SelectPreviousGridItem(); break; case Keys.Tab: - _pGrid.SelectPreviousGridItem(); + _pGrid.SelectNextGridItem(); break; } diff --git a/mRemoteV1/UI/Window/HelpWindow.cs b/mRemoteV1/UI/Window/HelpWindow.cs index 2c976380..1ec8a80c 100644 --- a/mRemoteV1/UI/Window/HelpWindow.cs +++ b/mRemoteV1/UI/Window/HelpWindow.cs @@ -9,160 +9,34 @@ namespace mRemoteNG.UI.Window public class HelpWindow : BaseWindow { #region Form Init - - private TreeView tvIndex; - private ImageList imgListHelp; - private System.ComponentModel.Container components; - private SplitContainer pnlSplitter; - private Label lblDocPath; - private WebBrowser wbHelp; + private WebBrowser _wbHelp; private void InitializeComponent() { - components = new System.ComponentModel.Container(); - Load += Help_Load; - Shown += Help_Shown; - var TreeNode1 = new TreeNode("Prerequisites"); - var TreeNode2 = new TreeNode("Installation/Update"); - var TreeNode3 = new TreeNode("Running mRemoteNG"); - var TreeNode4 = new TreeNode("Command-Line Switches"); - var TreeNode5 = new TreeNode("Getting Started", new[] {TreeNode1, TreeNode2, TreeNode3, TreeNode4}); - var TreeNode6 = new TreeNode("Menus"); - var TreeNode7 = new TreeNode("Connections"); - var TreeNode8 = new TreeNode("Config"); - var TreeNode9 = new TreeNode("Options"); - var TreeNode10 = new TreeNode("Navigation"); - var TreeNode11 = new TreeNode("Notifications"); - var TreeNode12 = new TreeNode("SQL Configuration"); - var TreeNode13 = new TreeNode("Screenshot Manager"); - var TreeNode14 = new TreeNode("SSH File Transfer"); - var TreeNode15 = new TreeNode("Quick Connect"); - var TreeNode16 = new TreeNode("Port Scan"); - var TreeNode17 = new TreeNode("External Tools"); - var TreeNode18 = new TreeNode("Import/Export"); - var TreeNode19 = new TreeNode("Keyboard Shortcuts"); - var TreeNode20 = new TreeNode("User Interface", new[] - { - TreeNode6, TreeNode7, TreeNode8, TreeNode9, TreeNode10, TreeNode11, TreeNode12, TreeNode13, TreeNode14, - TreeNode15, TreeNode16, TreeNode17, TreeNode18, TreeNode19 - }); - var TreeNode21 = new TreeNode("Common Problems (RDP)"); - var TreeNode22 = new TreeNode("Special Topics", new[] - { - TreeNode21 - }); - var TreeNode99 = new TreeNode("Help", new[] {TreeNode5, TreeNode20, TreeNode22}); - wbHelp = new WebBrowser(); - tvIndex = new TreeView(); - tvIndex.NodeMouseClick += TvIndex_NodeMouseClick; - tvIndex.AfterSelect += TvIndex_AfterSelect; - imgListHelp = new ImageList(components); - pnlSplitter = new SplitContainer(); - lblDocPath = new Label(); - pnlSplitter.Panel1.SuspendLayout(); - pnlSplitter.Panel2.SuspendLayout(); - pnlSplitter.SuspendLayout(); - SuspendLayout(); - // - //wbHelp - // - wbHelp.Anchor = AnchorStyles.Top | AnchorStyles.Bottom - | AnchorStyles.Left - | AnchorStyles.Right; - wbHelp.Location = new System.Drawing.Point(1, 36); - wbHelp.MinimumSize = new System.Drawing.Size(20, 20); - wbHelp.Name = "wbHelp"; - wbHelp.ScriptErrorsSuppressed = true; - wbHelp.Size = new System.Drawing.Size(327, 286); - wbHelp.TabIndex = 1; - // - //tvIndex - // - tvIndex.Anchor = AnchorStyles.Top | AnchorStyles.Bottom - | AnchorStyles.Left - | AnchorStyles.Right; - tvIndex.BorderStyle = BorderStyle.None; - tvIndex.HideSelection = false; - tvIndex.Location = new System.Drawing.Point(1, 1); - tvIndex.Name = "tvIndex"; - TreeNode1.Tag = "gs_prerequisites"; - TreeNode2.Tag = "gs_installation"; - TreeNode3.Tag = "gs_running_mremoteng"; - TreeNode4.Tag = "gs_command_line_switches"; - TreeNode6.Tag = "ui_menus"; - TreeNode7.Tag = "ui_connections"; - TreeNode8.Tag = "ui_config"; - TreeNode9.Tag = "ui_options"; - TreeNode10.Tag = "ui_navigation"; - TreeNode11.Tag = "ui_notifications"; - TreeNode12.Tag = "ui_sql_configuration"; - TreeNode13.Tag = "ui_screenshot_manager"; - TreeNode14.Tag = "ui_file_transfer"; - TreeNode15.Tag = "ui_quick_connect"; - TreeNode16.Tag = "ui_port_scan"; - TreeNode17.Tag = "ui_external_tools"; - TreeNode18.Tag = "ui_import_and_export"; - TreeNode19.Tag = "ui_keyboardshortcuts"; - TreeNode21.Tag = "st_common_problems_rdp"; - TreeNode99.Tag = "Index"; - tvIndex.Nodes.AddRange(new[] {TreeNode99}); - tvIndex.ShowRootLines = false; - tvIndex.Size = new System.Drawing.Size(207, 321); - tvIndex.TabIndex = 0; - // - //imgListHelp - // - imgListHelp.ColorDepth = ColorDepth.Depth32Bit; - imgListHelp.ImageSize = new System.Drawing.Size(16, 16); - imgListHelp.TransparentColor = System.Drawing.Color.Transparent; - // - //pnlSplitter - // - pnlSplitter.Anchor = AnchorStyles.Top | AnchorStyles.Bottom - | AnchorStyles.Left - | AnchorStyles.Right; - pnlSplitter.FixedPanel = FixedPanel.Panel1; - pnlSplitter.Location = new System.Drawing.Point(0, 0); - pnlSplitter.Name = "pnlSplitter"; - // - //pnlSplitter.Panel1 - // - pnlSplitter.Panel1.Controls.Add(tvIndex); - // - //pnlSplitter.Panel2 - // - pnlSplitter.Panel2.Controls.Add(lblDocPath); - pnlSplitter.Panel2.Controls.Add(wbHelp); - pnlSplitter.Size = new System.Drawing.Size(542, 323); - pnlSplitter.SplitterDistance = 209; - pnlSplitter.TabIndex = 2; - // - //lblDocPath - // - lblDocPath.Anchor = AnchorStyles.Top | AnchorStyles.Left - | AnchorStyles.Right; - lblDocPath.BackColor = System.Drawing.Color.DimGray; - lblDocPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Bold, - System.Drawing.GraphicsUnit.Point, Convert.ToByte(0)); - lblDocPath.ForeColor = System.Drawing.Color.White; - lblDocPath.Location = new System.Drawing.Point(1, 1); - lblDocPath.Name = "lblDocPath"; - lblDocPath.Size = new System.Drawing.Size(327, 35); - lblDocPath.TabIndex = 2; - lblDocPath.Text = @"Introduction"; - lblDocPath.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - //Help - // - ClientSize = new System.Drawing.Size(542, 323); - Controls.Add(pnlSplitter); - Icon = Resources.Help_Icon; - TabText = @"Help"; - Text = @"Help"; - pnlSplitter.Panel1.ResumeLayout(false); - pnlSplitter.Panel2.ResumeLayout(false); - pnlSplitter.ResumeLayout(false); - ResumeLayout(false); + this._wbHelp = new System.Windows.Forms.WebBrowser(); + this.SuspendLayout(); + // + // wbHelp + // + this._wbHelp.Dock = System.Windows.Forms.DockStyle.Fill; + this._wbHelp.Location = new System.Drawing.Point(0, 0); + this._wbHelp.MinimumSize = new System.Drawing.Size(20, 20); + this._wbHelp.Name = "_wbHelp"; + this._wbHelp.ScriptErrorsSuppressed = true; + this._wbHelp.Size = new System.Drawing.Size(542, 323); + this._wbHelp.TabIndex = 1; + // + // HelpWindow + // + this.ClientSize = new System.Drawing.Size(542, 323); + this.Controls.Add(this._wbHelp); + this.Icon = global::mRemoteNG.Resources.Help_Icon; + this.Name = "HelpWindow"; + this.TabText = "Help"; + this.Text = "Help"; + this.Load += new System.EventHandler(this.HelpWindow_Load); + this.ResumeLayout(false); + } #endregion @@ -174,73 +48,15 @@ namespace mRemoteNG.UI.Window WindowType = WindowType.Help; DockPnl = new DockContent(); InitializeComponent(); - - FillImageList(); - tvIndex.ImageList = imgListHelp; - SetImages(tvIndex.Nodes[0]); } #endregion #region Private Methods - private void Help_Load(object sender, EventArgs e) + private void HelpWindow_Load(object sender, EventArgs e) { - tvIndex.Nodes[0].ExpandAll(); - tvIndex.SelectedNode = tvIndex.Nodes[0]; - } - - private void Help_Shown(object sender, EventArgs e) - { - // This can only be set once the WebBrowser control is shown, it will throw a COM exception otherwise. - wbHelp.AllowWebBrowserDrop = false; - } - - private void TvIndex_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) - { - tvIndex.SelectedNode = e.Node; - } - - private void TvIndex_AfterSelect(object sender, TreeViewEventArgs e) - { - if (!string.IsNullOrEmpty((string)e.Node.Tag)) - wbHelp.Navigate(GeneralAppInfo.HomePath + "\\Help\\" + Convert.ToString(e.Node.Tag) + ".htm"); - ChangeDocumentPath(e); - } - - private void ChangeDocumentPath(TreeViewEventArgs e) - { - lblDocPath.Text = string.Empty; - try { lblDocPath.Text += !string.IsNullOrEmpty(e.Node.Parent.Parent.Text) ? e.Node.Parent.Parent.Text + " > " : ""; } catch { /*ignored*/ } - try { lblDocPath.Text += !string.IsNullOrEmpty(e.Node.Parent.Text) ? e.Node.Parent.Text + " > ": ""; } catch { /*ignored*/ } - lblDocPath.Text += !string.IsNullOrEmpty(e.Node.Text) ? e.Node.Text : ""; - } - - private void FillImageList() - { - imgListHelp.Images.Add("File", Resources.Page); - imgListHelp.Images.Add("Folder", Resources.Folder); - imgListHelp.Images.Add("Help", Resources.Help); - } - - private static void SetImages(TreeNode node) - { - node.ImageIndex = 2; - node.SelectedImageIndex = 2; - - foreach (TreeNode n in node.Nodes) - { - if (n.Nodes.Count > 0) - { - n.ImageIndex = 1; - n.SelectedImageIndex = 1; - } - else - { - n.ImageIndex = 0; - n.SelectedImageIndex = 0; - } - } + _wbHelp.Navigate(GeneralAppInfo.HomePath + @"\Help\index.html"); } #endregion diff --git a/mRemoteV1/UI/Window/HelpWindow.resx b/mRemoteV1/UI/Window/HelpWindow.resx index ca620d88..a12588ec 100644 --- a/mRemoteV1/UI/Window/HelpWindow.resx +++ b/mRemoteV1/UI/Window/HelpWindow.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + 48 diff --git a/mRemoteV1/mRemoteV1.csproj b/mRemoteV1/mRemoteV1.csproj index ff8228f8..e5b4be9a 100644 --- a/mRemoteV1/mRemoteV1.csproj +++ b/mRemoteV1/mRemoteV1.csproj @@ -62,6 +62,9 @@ ..\packages\log4net.2.0.8\lib\net45-full\log4net.dll + + ..\packages\Markdig.0.16.0\lib\net40\Markdig.dll + @@ -264,6 +267,7 @@ + True True @@ -744,6 +748,9 @@ Form + + AboutWindow.cs + ActiveDirectoryImportWindow.cs @@ -1102,12 +1109,34 @@ + + PreserveNewest + + + PreserveNewest + + + + + + + + + + + + + + + + + + + + - - - @@ -1136,6 +1165,8 @@ Designer PreserveNewest + + @@ -1155,102 +1186,25 @@ - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + + + + + + + + + + + + + + + + + PreserveNewest @@ -1312,96 +1266,9 @@ - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - + + + @@ -1510,9 +1377,45 @@ - - PreserveNewest - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + PreserveNewest @@ -1736,7 +1639,7 @@ set /p buildenv=<buildenv.tmp :: IF "%25APPVEYOR_BUILD_FOLDER"=="" ( set cert_pwd= ) :: Call the post build powershell script -powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)Tools\postbuild_mremotev1.ps1" -SolutionDir "$(SolutionDir)\" -TargetDir "%25cd%25" -TargetFileName "mRemoteNG.exe" -ConfigurationName "%25buildenv%25" -CertificatePath "$(CertPath)" -CertificatePassword "%25cert_pwd%25" -ExcludeFromSigning "PuTTYNG.exe" +powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)Tools\postbuild_mremotev1.ps1" -SolutionDir "$(SolutionDir)\" -TargetDir "%25cd%25" -TargetFileName "mRemoteNG.exe" -ConfigurationName "%25buildenv%25" -CertificatePath "$(CertPath)" -CertificatePassword "$(CertPassword)" -ExcludeFromSigning "PuTTYNG.exe" true @@ -1793,6 +1696,9 @@ powershell.exe -ExecutionPolicy Bypass -File "$(SolutionDir)Tools\postbuild_mrem LocalIntranet + + OnBuildSuccess +