Compare commits

...

241 Commits
1.50 ... 1.68

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

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

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

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

The refactoring done in commit e08c88db5f resulted in an unusable pnlLayout.xml (panel persistence) file. Added a quickfix to convert that file.
2010-05-18 00:13:38 +02:00
Andreas Rehm
b1d40f2c74 Removed hardcoded switch to de-DE 2010-05-17 19:11:17 +02:00
Andreas Rehm
a255d24867 Fixed en-US resx Fallback to en-GB (default) 2010-05-17 19:10:25 +02:00
Andreas Rehm
5e726472bc And even more translations 2010-05-17 18:55:05 +02:00
Andreas Rehm
6ab8bb4a58 More translations for Connections.Protocol.RDP.vb 2010-05-17 17:31:12 +02:00
Andreas Rehm
e08c88db5f Refactoring and even more translations
* removed unneeded Imports
* renamed namespace to mRemoteNG
* changed Logfile path to %USERPROFILE%\AppData\Local\mRemoteNG\mRemoteNG.log
* fixed mRemoteNG.exe.config
* added more ignores to .gitignore
2010-05-16 19:30:27 +02:00
Andreas Rehm
96e6752af3 Even more localization
Changed button size in options/update check
2010-05-16 05:45:20 +02:00
Andreas Rehm
e71bf93052 More localization
* translated/moved more strings to resx
* resized Port Scan TextFields
2010-05-16 05:07:06 +02:00
Andreas Rehm
8232f10e14 Language fixes
* fixed all enum translations
* replaced hardcoded strings with resx Resources
2010-05-14 16:43:30 +02:00
Andreas Rehm
cb13433102 Added still missing translations
Modified NSIS Installer and BUILD Script Versions to 1.64
2010-05-14 16:01:24 +02:00
Andreas Rehm
3ead76ab77 Changed/Fixed language based data
* Fixed some german grammer mistakes
* Changed some weird translations
* moved all language strings to resx files
* added missing translations
* removed old language classes
2010-05-14 04:41:33 +02:00
Riley McArdle
ecf3ecbcf0 More localization work. 2010-03-16 17:28:53 -05:00
Riley McArdle
26afcaeef2 Added LocalizedCategory attribute. More localization. 2010-02-20 21:15:25 -06:00
Riley McArdle
0c1d69946d Derived attributes for DisplayName and Description to enable localization of property grids. 2010-02-20 19:52:08 -06:00
Riley McArdle
5e584cf4c7 More localization. 2010-02-20 18:54:03 -06:00
Riley McArdle
6301fcc320 More localization improvements. 2010-02-20 13:49:09 -06:00
Riley McArdle
a1fc6c0a0d Moved additional localization strings to satellite assemblies. 2010-02-18 00:06:17 -06:00
Riley McArdle
98460eea2b Started work on moving localization to satellite assemblies. 2010-02-11 21:17:44 -06:00
Riley McArdle
de0142dd37 Started working on UI improvements. 2010-02-11 18:26:29 -06:00
Riley McArdle
9a0f8881a7 Added build configuration for portable edition.
Fixes for portable edition.
Added missing Icons directory.
New build script to make release ZIPs and installer EXE.
2010-02-02 23:01:14 -06:00
Riley McArdle
7c41abb1b4 Updated Components Check to check for Remote Desktop Connection 6.1. 2010-02-02 20:57:10 -06:00
Riley McArdle
e3ae10518d Added PuTTY Settings item to tab context menu. 2010-02-01 03:58:45 -06:00
Riley McArdle
93eb34b71f Delete Interop.EOLWTSCOM.dll. 2010-02-01 03:13:50 -06:00
Riley McArdle
9ccf91ad74 Changed COM/ActiveX references to be dynamically created. 2010-02-01 03:13:00 -06:00
Riley McArdle
d44254f6b2 Popups can now be allowed in Internet Explorer by holding Ctrl+Alt when clicking a link. 2010-02-01 02:51:07 -06:00
Riley McArdle
6afe0c9748 Add Load/Save of RD Gateway information to SQL. 2010-02-01 01:16:56 -06:00
Riley McArdle
201d1b7b42 Add CREDITS.TXT. 2010-01-30 05:21:46 -06:00
Riley McArdle
61b3644a03 Changed exit confirmation from MsgBox to TaskDialog. 2010-01-30 03:43:55 -06:00
Riley McArdle
a5ac1284a2 More RD Gateway support additions. 2010-01-30 02:09:02 -06:00
Riley McArdle
090dc8b421 Added support for Credential Security Support Provider (CredSSP) which is required for Network Level Authentication (NLA). 2010-01-29 15:52:51 -06:00
Riley McArdle
e3730b4e1f Improved RDP error reporting.
Added Gateway config category.
More RD Gateway additions.
2010-01-29 01:32:51 -06:00
David Vidmar
e6ff376e5b Ignoring ReSharper cache folder. 2010-01-29 13:45:27 +08:00
Riley McArdle
829475567b More RD Gateway support additions. 2010-01-28 23:45:00 -06:00
Riley McArdle
ef983b90b2 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
2010-01-27 01:42:38 -06:00
David Vidmar
122945b575 Removed some files from project that were missing and were not needed. 2010-01-27 07:21:40 +08:00
Riley McArdle
016fcb13f7 Started adding RD Gateway support. 2010-01-26 01:29:17 -06:00
Riley McArdle
6ef5c621e8 Fixed error if the mouse is clicked outside of the remote screen area of a VNC connection. 2010-01-24 19:08:51 -06:00
Riley McArdle
80a9c4de37 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. 2010-01-24 00:47:05 -06:00
Riley McArdle
d6f145ede7 New icon and logo. Changed fonts on About, Options and Update pages. 2010-01-20 17:23:09 -06:00
Riley McArdle
5fe4e9e058 Do not add language code to end of update download URL. 2010-01-19 22:10:18 -06:00
Riley McArdle
83ee8c160b Change version in installer to 1.62. Show password dialog if no password is saved for VNC connection. Added VncSharpNG.dll to source control. 2010-01-19 21:23:10 -06:00
Riley McArdle
681528cbd2 Fixed a bug with the inheritance buttons on the Config panel disappearing after awhile. 2010-01-19 01:39:08 -06:00
Riley McArdle
61db381eae Added RDP, VNC and ICA version numbers to Components Check page. Fixed check for VncSharpNG on Components Check page. 2010-01-19 01:15:15 -06:00
Riley McArdle
25e3919595 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 constants and cleaned up variable names in WndProc for frmMain. 2010-01-19 00:11:17 -06:00
Riley McArdle
2a5121d07a Only check for updates based on update frequency setting. Changed design of Check for Updates page. 2010-01-17 18:25:37 -06:00
Riley McArdle
149f5785ad Show Update Options page on first startup. Fixed persistence configuration for some settings. Code to load and save new update settings. 2010-01-17 16:20:15 -06:00
Riley McArdle
f80eadaa0d Switched VNC ViewOnly and Scaled functionality to use new properties in VncSharpNG. Adjusted the look of the About page. 2010-01-17 13:31:02 -06:00
Riley McArdle
f272af53d0 Merge Branch_1.60 back into master. 2010-01-17 00:23:51 -06:00
Riley McArdle
37854b1901 Switched to VncSharp, an open source VNC component. 2010-01-16 23:39:30 -06:00
Riley McArdle
11ed1b43ff Removed unlicensed SmartCode Solutions ViewerX VNC Viewer ActiveX. 2010-01-14 19:49:52 -06:00
Riley McArdle
7c151824f6 Changed version number to 1.61. No longer show About page on first run. Started adding code to open the Updates options tab before connecting for the first time. Moved Notifications settings from their own tab to the Tabs & Panels tab. Added Updates tab and moved updates settings to that tab. 2010-01-13 21:05:04 -06:00
Riley McArdle
9cb88bae36 Added more information to show for the uninstaller in Programs and Features control panel. 2010-01-11 23:03:04 -06:00
Riley McArdle
650631f8f7 Added missing references to fix SSH Transfer functionality. 2010-01-09 18:29:22 -06:00
Riley McArdle
040b235128 Fixed uninstaller not removing Start Menu entries. 2010-01-09 17:57:12 -06:00
Riley McArdle
ded452fb81 Added check a for .NET Framework to the installer. 2010-01-09 17:13:21 -06:00
Riley McArdle
e4068abf5e Added functionality to installer. Renamed and moved license file. Fixed installer header.bmp. Added dependencies. 2010-01-09 16:03:20 -06:00
Riley McArdle
ff14463551 Changed links on About page to open within mRemoteNG instead of external browser. Changed colors of About page. 2010-01-09 14:46:10 -06:00
Riley McArdle
5f15e54a03 Cleaned up installer script. Added installer images. Removed visionapp Remote Desktop banners. 2010-01-09 11:20:37 -06:00
Riley McArdle
bc83a28201 Added original installer script as received from Felix Deimel. 2010-01-09 10:10:29 -06:00
Riley McArdle
fecbac2efd Changed the default location of the quicky toolbar. Changed the assembly name to mRemoteNG. Removed reference to scvncctrl.lic. 2010-01-09 00:26:01 -06:00
Riley McArdle
092f0116eb Added Reference to MiniTabControl.dll to fix Gecko Rendering Engine. 2010-01-08 23:21:43 -06:00
Riley McArdle
13fb66c4d1 Removed unused LogFile variable. 2010-01-08 22:50:24 -06:00
Riley McArdle
686573b84e Fixed typo on Components Check dialog. Removed visonapp Remote Desktop icon. Removed Thumbs.db files. 2010-01-08 22:00:55 -06:00
Riley McArdle
38872725b8 Added missing referenced DLL. Disabled manifest signing and removed reference to test key. 2010-01-08 19:16:04 -06:00
Riley McArdle
79b7c2d198 Changed forum address in component check dialog. Added Support Forum links to the Help menu. Moved Check for Updates to the Help menu. Changed website links in Help menu to load within mRemoteNG instead of launching an external browser. 2010-01-08 18:02:41 -06:00
Riley McArdle
dbf99ea512 Added Report a Bug to the Help menu. 2010-01-07 17:02:31 -06:00
Riley McArdle
c5cc8b452d Changed website addresses. 2010-01-07 16:41:01 -06:00
Riley McArdle
bd147f3806 Created README.txt. 2010-01-06 16:58:39 -06:00
Riley McArdle
c0d1df3647 Changed default format for saving screenshot images to PNG. 2010-01-06 16:41:39 -06:00
Riley McArdle
33f53c1499 Changed filename delimiter in title bar from pipe to dash. 2010-01-06 16:21:13 -06:00
Riley McArdle
0c0ae291c1 Changed name and location of log file. 2010-01-06 16:16:50 -06:00
Riley McArdle
03c2d458f3 Removed references to visionapp Remote Desktop. 2010-01-06 15:40:44 -06:00
Riley McArdle
cf6ef54199 Removed snakes game Easter egg. Fixed spelling of "Announcement". 2010-01-06 15:33:16 -06:00
Riley McArdle
c7af973dad Fixed MenuStrip being moved when moving toolbars. Removed images from top level menus. Renamed Info and Help menus. 2010-01-06 14:58:24 -06:00
Riley McArdle
8bda576458 Set Spanlink edition to disabled. 2010-01-06 14:26:54 -06:00
Riley McArdle
2e6058899e Changed name to mRemoteNG. Fixed spelling of "Announcement". 2010-01-06 14:24:25 -06:00
300 changed files with 19800 additions and 13843 deletions

19
.gitignore vendored Normal file
View File

@@ -0,0 +1,19 @@
Release
mRemoteV1/bin
mRemoteV1/obj
mRemoteV1/publish
*.pfx
*.suo
*.vbproj.user
Thumbs.db
[Dd]ebug/
_Re[Ss]harper.*
*.resharper
*.resharper.user
*.suo
*.cache
*~
*.swp
*.user*
*.pidb
*.gpState

51
BUILD.CMD Normal file
View File

@@ -0,0 +1,51 @@
@echo off
REM SET VERSIONTAG=RC5
SET VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 9.0\VC\vcvarsall.bat"
SET DEVENV="devenv.exe"
SET MAKENSIS="%ProgramFiles(x86)%\NSIS\Unicode\makensis.exe"
SET RAR="%ProgramFiles%\WinRAR\WinRAR.exe"
call %VCVARSALL% x86 > NUL 2>&1
rmdir /s /q "%~dp0\mRemoteV1\bin" > NUL 2>&1
rmdir /s /q "%~dp0\mRemoteV1\obj" > NUL 2>&1
echo Building release version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release"
echo Building portable version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release Portable"
mkdir "%~dp0\Release"
echo Getting product version...
%MAKENSIS% "%~dp0\Installer\GetVersion.nsi"
"%~dp0\Release\GetVersion.exe"
call "%~dp0\Release\Version.cmd"
echo Creating installer package...
if defined VERSIONTAG (
%MAKENSIS% /DPRODUCT_VERSION_TAG=%VERSIONTAG% "%~dp0\Installer\mRemote.nsi"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
) else (
%MAKENSIS% "%~dp0\Installer\mRemote.nsi"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%.zip"
)
echo Creating release ZIP file...
del /f /q %BINARYZIP% > NUL 2>&1
%RAR% a -m5 -r -ep1 -afzip -inul %BINARYZIP% "%~dp0\mRemoteV1\bin\Release\*.*"
%RAR% a -m5 -r -ep1 -afzip -inul %BINARYZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep -afzip -inul %BINARYZIP% "%~dp0\*.TXT"
echo Creating portable ZIP file...
del /f /q %PORTABLEZIP% > NUL 2>&1
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\mRemoteV1\bin\Release Portable\*.*"
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep -afzip -inul %PORTABLEZIP% "%~dp0\*.TXT"

106
CREDITS.TXT Normal file
View File

@@ -0,0 +1,106 @@
Contributors
============
Lionel Caignec
Felix Deimel
Holger Henke
Tom Hiller
Riley McArdle
Apisitt Rattana
Andreas Rehm
David Vidmar
Included Source Code
====================
Command Line Arguments Parser 1.0
Copyright <20> 2002 Richard Lopes
MIT License
http://www.codeproject.com/KB/recipes/command_line.aspx
Included Components
===================
ADTree 1.0
Copyright <20> 2004 Marc Merritt
Copyright <20> 2008 Felix Deimel
http://www.codeproject.com/KB/selection/ADPickerCtrl.aspx
DiffieHellman 1.0
Copyright <20> 2003 The Mentalis.org Team
Modified New BSD License
http://www.mentalis.org/
DockPanel Suite 2.3.1
Copyright <20> 2007 Weifen Luo
MIT License
http://sourceforge.net/projects/dockpanelsuite/
Emergent OnLine WTSCOM 2.0.6.0
Copyright <20> 2001-2003 Emergent OnLine
http://www.go-eol.com/
FilteredPropertyGrid 1.0.0.0
Copyright <20> 2006 Azuria
http://www.codeproject.com/KB/cs/FilteredPropertyGrid.aspx
GeckoFX 1.8.1.4
Copyright <20> 2008 Skybound Software
Mozilla Public License 1.1
http://www.geckofx.org/
IPTextBox 1.1
Copyright <20> 2006 Matthew Kleinwaks
Copyright <20> 2008 Felix Deimel
http://www.vbforums.com/showthread.php?t=430169
log4net 1.2.10.0
Copyright <20> 2001-2006 The Apache Software Foundation
Apache License Version 2.0
http://logging.apache.org/log4net/
Magic Library 1.7.4
Copyright <20> 2002-2003 Crownwood Consulting, Ltd.
Freely redistributable with attribution
http://www.dotnetmagic.com/magic_download.html
Mentalis.org Security Library 1.0.13.715
Copyright <20> 2002-2005 The Mentalis.org Team
Modified New BSD License
http://www.mentalis.org/
MiniGeckoBrowser 1.0
Copyright <20> 2008 Felix Deimel
http://www.appjuice.org/
MiniTabControl 1.0
Copyright <20> 2008 Felix Deimel
http://www.appjuice.org/
PuTTY 0.60
Copyright <20> 1997-2007 Simon Tatham
MIT License
http://www.chiark.greenend.org.uk/~sgtatham/putty/
SharpSSH 1.1.1.13
Copyright <20> 2002-2008 Atsuhiko Yamanaka, JCraft, Inc.
Copyright <20> 2007 Tamir Gal
BSD Style License
http://www.tamirgal.com/blog/page/SharpSSH.aspx
Silk Icon Set
Copyright <20> 2005-2008 FAMFAMFAM
Creative Commons Attribution 2.5 License
http://www.famfamfam.com/
Vista TaskDialog Wrapper and Emulator 1.0
Copyright <20> 2007-2009 Hedley Muscroft
Code Project Open License (CPOL)
http://www.codeproject.com/KB/vista/Vista_TaskDialog_Wrapper.aspx
VncSharp 1.0
Copyright <20> 2004-2009 David Humphrey
GNU General Public License (GPL) Version 2
http://cdot.senecac.on.ca/projects/vncsharp/

30
Installer/GetVersion.nsi Normal file
View File

@@ -0,0 +1,30 @@
!define AppFile "$EXEDIR\..\mRemoteV1\bin\Release\mRemoteNG.exe"
!define VersionCmdFile "$EXEDIR\Version.cmd"
!define VersionNshFile "$EXEDIR\Version.nsh"
OutFile "..\Release\GetVersion.exe"
SilentInstall silent
RequestExecutionLevel user
Section
## Get file version
GetDllVersion "${AppFile}" $R0 $R1
IntOp $R3 $R0 / 0x00010000
IntOp $R4 $R0 & 0x0000FFFF
IntOp $R5 $R1 / 0x00010000
IntOp $R6 $R1 & 0x0000FFFF
StrCpy $R1 "$R3.$R4.$R5.$R6"
StrCpy $R2 "$R3.$R4"
FileOpen $R0 "${VersionCmdFile}" w
FileWrite $R0 '@echo off$\r$\n'
FileWrite $R0 'SET PRODUCT_VERSION_SHORT=$R2$\r$\n'
FileClose $R0
FileOpen $R0 "${VersionNshFile}" w
FileWrite $R0 '!define PRODUCT_VERSION "$R1"$\r$\n'
FileWrite $R0 '!define PRODUCT_VERSION_SHORT "$R2"$\r$\n'
FileWrite $R0 '!define PRODUCT_VERSION_MAJOR "$R3"$\r$\n'
FileWrite $R0 '!define PRODUCT_VERSION_MINOR "$R4"$\r$\n'
FileClose $R0
SectionEnd

View File

@@ -0,0 +1,16 @@
; Czech installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_CZECH} "mRemoteNG run CZECH message"
; Installer Language
LangString InstallerLanguage ${LANG_CZECH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_CZECH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_CZECH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_CZECH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -0,0 +1,16 @@
; Dutch installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_DUTCH} "mRemoteNG run DUTCH message"
; Installer Language
LangString InstallerLanguage ${LANG_DUTCH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_DUTCH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_DUTCH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_DUTCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -0,0 +1,16 @@
; English installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_ENGLISH} "Launch mRemoteNG Now"
; Installer Language
LangString InstallerLanguage ${LANG_ENGLISH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_ENGLISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_ENGLISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_ENGLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -0,0 +1,16 @@
; French installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_FRENCH} "mRemoteNG run FRENCH message"
; Installer Language
LangString InstallerLanguage ${LANG_FRENCH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_FRENCH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_FRENCH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_FRENCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -0,0 +1,16 @@
; German installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_GERMAN} "mRemoteNG jetzt Starten"
; Installer Language
LangString InstallerLanguage ${LANG_GERMAN} "Installationsprogamm Sprache"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_GERMAN} "Bitte w<>hlen Sie die Sprache f<>r das Installationsprogramm"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_GERMAN} "mRemoteNG ben<65>tigt das Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_GERMAN} "Sie m<>ssen Mitglied der Grupper 'Power Users' or 'Administratoren' sein, damit Sie mRemoteNG installieren k<>nnen."

View File

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

View File

@@ -0,0 +1,16 @@
; Polish installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_POLISH} "mRemoteNG run POLISH message"
; Installer Language
LangString InstallerLanguage ${LANG_POLISH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_POLISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_POLISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_POLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

@@ -0,0 +1,16 @@
; Spanish installer translation
; Start mRemoteNG after installation
LangString LaunchMremoteNow ${LANG_SPANISH} "mRemoteNG run SPANISH message"
; Installer Language
LangString InstallerLanguage ${LANG_SPANISH} "Installer Language"
; Select installer Language
LangString SelectInstallerLanguage ${LANG_SPANISH} "Please select the language of the installer"
; Requires .NET Framework
LangString RequiresNetFramework ${LANG_SPANISH} "mRemoteNG requires Microsoft .NET Framework 2.0."
; User needs to be Admin
LangString RequiresAdminUser ${LANG_SPANISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."

View File

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

BIN
Installer/RecycleBin.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 78 KiB

BIN
Installer/Setup_Install.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 79 KiB

BIN
Installer/header.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 83 KiB

225
Installer/mRemote.nsi Normal file
View File

@@ -0,0 +1,225 @@
!include "MUI.nsh"
!include "WordFunc.nsh"
!insertmacro VersionCompare
!include "..\Release\Version.nsh"
; This will be passed in using the /D switch by BUILD.CMD
!ifdef PRODUCT_VERSION_TAG
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}-${PRODUCT_VERSION_TAG}"
!else
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT}"
!define PRODUCT_VERSION_TAGGED "${PRODUCT_VERSION_SHORT}"
!endif
; Global Variables
Var InstallDotNET
; Basic Config
Name "mRemoteNG ${PRODUCT_VERSION_FRIENDLY}"
OutFile "..\Release\mRemoteNG-Installer-${PRODUCT_VERSION_TAGGED}.exe"
SetCompressor /SOLID lzma
InstallDir "$PROGRAMFILES\mRemoteNG"
InstallDirRegKey HKLM "Software\mRemoteNG" "InstallPath"
RequestExecutionLevel admin
; Version Information
VIProductVersion ${PRODUCT_VERSION}
VIAddVersionKey "ProductName" "mRemoteNG"
VIAddVersionKey "ProductVersion" ${PRODUCT_VERSION}
VIAddVersionKey "LegalCopyright" "Copyright © 2007-2009 Felix Deimel, 2010-2011 Riley McArdle"
VIAddVersionKey "FileDescription" "mRemoteNG ${PRODUCT_VERSION_FRIENDLY} Installer"
VIAddVersionKey "FileVersion" ${PRODUCT_VERSION}
; Design
!define MUI_ICON "Setup_Install.ico"
!define MUI_UNICON "RecycleBin.ico"
!define MUI_HEADERIMAGE
!define MUI_HEADERIMAGE_BITMAP "header.bmp" ; optional
!define MUI_HEADERIMAGE_BITMAP_NOSTRETCH
!define MUI_HEADERIMAGE_UNBITMAP "header.bmp" ; optional
!define MUI_HEADERIMAGE_UNBITMAP_NOSTRETCH
!define MUI_HEADER_TRANSPARENT_TEXT
!define MUI_WELCOMEFINISHPAGE_BITMAP "welcomefinish.bmp"
!define MUI_WELCOMEFINISHPAGE_BITMAP_NOSTRETCH
!define MUI_UNWELCOMEFINISHPAGE_BITMAP "welcomefinish.bmp"
!define MUI_UNWELCOMEFINISHPAGE_BITMAP_NOSTRETCH
; Install Pages
!insertmacro MUI_PAGE_LICENSE "..\COPYING.TXT"
!insertmacro MUI_PAGE_DIRECTORY
!insertmacro MUI_PAGE_INSTFILES
!define MUI_FINISHPAGE_NOAUTOCLOSE
; Finish Page
!define MUI_FINISHPAGE_RUN_NOTCHECKED
!define MUI_FINISHPAGE_RUN "$INSTDIR\mRemoteNG.exe"
!insertmacro MUI_PAGE_FINISH
; Uninstall Pages
!insertmacro MUI_UNPAGE_CONFIRM
!insertmacro MUI_UNPAGE_INSTFILES
; Get Languages
!include "Language\languages.nsi"
; Set finish page text
!define MUI_FINISHPAGE_RUN_Text "$(LaunchMremoteNow)"
Function .onInit
ClearErrors
UserInfo::GetName
IfErrors Win9x
Pop $0
UserInfo::GetAccountType
Pop $1
# GetOriginalAccountType will check the tokens of the original user of the
# current thread/process. If the user tokens were elevated or limited for
# this process, GetOriginalAccountType will return the non-restricted
# account type.
# On Vista with UAC, for example, this is not the same value when running
# with `RequestExecutionLevel user`. GetOriginalAccountType will return
# "admin" while GetAccountType will return "user".
StrCmp $1 "Admin" 0 +3
Goto doit
StrCmp $1 "Power" 0 +3
Goto doit
StrCmp $1 "User" 0 +3
Goto noop
StrCmp $1 "Guest" 0 +3
Goto noop
MessageBox MB_OK "Unknown error"
Goto doit
Win9x:
doit:
# We can install
Call SelectLanguage
Goto end
noop:
MessageBox MB_OK "$(RequiresAdminUser)"
Quit
end:
FunctionEnd
Function SelectLanguage
;Language selection dialog
Push ""
Push ${LANG_ENGLISH}
Push ${LanguageNameEnglish}
Push ${LANG_GERMAN}
Push ${LanguageNameGerman}
Push ${LANG_DUTCH}
Push ${LanguageNameDutch}
Push ${LANG_FRENCH}
Push ${LanguageNameFrench}
Push ${LANG_POLISH}
Push ${LanguageNamePolish}
Push ${LANG_SPANISH}
Push ${LanguageNameSpanish}
Push ${LANG_CZECH}
Push ${LanguageNameCzech}
Push ${LANG_THAI}
Push ${LanguageNameThai}
Push A ; A means auto count languages
; for the auto count to work the first empty push (Push "") must remain
LangDLL::LangDialog "$(InstallerLanguage)" "$(SelectInstallerLanguage)"
Pop $LANGUAGE
StrCmp $LANGUAGE "cancel" 0 +2
Abort
; Check .NET version
StrCpy $InstallDotNET "No"
Call GetDotNETVersion
Pop $0
${If} $0 == "not found"
StrCpy $InstallDotNET "Yes"
${EndIf}
StrCpy $0 $0 "" 1 # skip "v"
${VersionCompare} $0 "2.0" $1
${If} $1 == 2
StrCpy $InstallDotNET "Yes"
${EndIf}
${If} $InstallDotNET == "Yes"
MessageBox MB_OK|MB_ICONEXCLAMATION "$(RequiresNetFramework)"
Quit
${EndIf}
FunctionEnd
Section "" ; Install
SetOutPath $INSTDIR
SetShellVarContext all
; AddFiles
File /r /x "mRemoteNG.vshost.*" "..\mRemoteV1\bin\Release\*.*"
File /r "Dependencies\*.*"
File "..\*.txt"
; Uninstaller
WriteUninstaller "$INSTDIR\Uninstall.exe"
; Register ActiveX components
RegDLL "$INSTDIR\eolwtscom.dll"
; Start Menu
CreateDirectory "$SMPROGRAMS\mRemoteNG"
CreateShortCut "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk" "$INSTDIR\mRemoteNG.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
; Registry
WriteRegStr HKLM "Software\mRemoteNG" "InstallPath" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayName" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "Publisher" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayIcon" "$INSTDIR\mRemoteNG.exe"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "EstimatedSize" 6464
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayVersion" ${PRODUCT_VERSION}
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "VersionMajor" ${PRODUCT_VERSION_MAJOR}
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "VersionMinor" ${PRODUCT_VERSION_MINOR}
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "UninstallString" '"$INSTDIR\Uninstall.exe"'
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "NoModify" 1
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "NoRepair" 1
SectionEnd
Section "un.Uninstall"
; Unregister ActiveX components
UnregDLL "$INSTDIR\eolwtscom.dll"
; Delete Files
RMDIR /r $INSTDIR
; Start Menu
SetShellVarContext all
Delete "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk"
Delete "$SMPROGRAMS\mRemoteNG\Uninstall.lnk"
RMDir "$SMPROGRAMS\mRemoteNG"
SetShellVarContext current
Delete "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk"
Delete "$SMPROGRAMS\mRemoteNG\Uninstall.lnk"
RMDir "$SMPROGRAMS\mRemoteNG"
; Registry
DeleteRegValue HKLM "Software\mRemoteNG" "InstallPath"
DeleteRegKey /ifempty HKLM "Software\mRemoteNG"
DeleteRegKey /ifempty HKCU "Software\mRemoteNG"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG"
SectionEnd
Function GetDotNETVersion
Push $0
Push $1
System::Call "mscoree::GetCORVersion(w .r0, i ${NSIS_MAX_STRLEN}, *i) i .r1"
StrCmp $1 "error" 0 +2
StrCpy $0 "not found"
Pop $1
Exch $0
FunctionEnd

BIN
Installer/welcomefinish.bmp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 151 KiB

14
README.txt Normal file
View File

@@ -0,0 +1,14 @@
mRemoteNG is the next generation of mRemote, a full-featured, multi-tab remote connections manager.
It allows you to store all your remote connections in a simple yet powerful interface.
Currently these protocols are supported:
* RDP (Remote Desktop)
* VNC (Virtual Network Computing)
* ICA (Independent Computing Architecture)
* SSH (Secure Shell)
* Telnet (TELecommunication NETwork)
* HTTP/S (Hypertext Transfer Protocol)
* Rlogin (Rlogin)
* RAW

View File

@@ -5,12 +5,18 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "mRemoteV1", "mRemoteV1\mRem
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug Portable|Any CPU = Debug Portable|Any CPU
Debug|Any CPU = Debug|Any CPU
Release Portable|Any CPU = Release Portable|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Debug Portable|Any CPU.ActiveCfg = Debug Portable|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Debug Portable|Any CPU.Build.0 = Debug Portable|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Release Portable|Any CPU.ActiveCfg = Release Portable|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Release Portable|Any CPU.Build.0 = Release Portable|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4934A491-40BC-4E5B-9166-EA1169A220F6}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection

Binary file not shown.

View File

@@ -1,9 +1,8 @@
Imports System.IO
Imports System.Net
Imports mRemote.App.Runtime
Imports System.Net
Imports mRemoteNG.App.Runtime
Namespace App
Public Class Announcment
Public Class Announcement
#Region "Private Properties"
Private wCl As WebClient
Private wPr As WebProxy
@@ -16,47 +15,47 @@ Namespace App
End Get
End Property
Public Function IsAnnouncmentAvailable() As Boolean
Public Function IsAnnouncementAvailable() As Boolean
Try
Dim aI As Info = GetAnnouncmentInfo()
Dim aI As Info = GetAnnouncementInfo()
If aI.InfoOk = False Then
Return False
End If
If aI.Name <> My.Settings.LastAnnouncment Then
If aI.Name <> My.Settings.LastAnnouncement Then
Return True
Else
Return False
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsAnnouncmentAvailable failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.WarningMsg, "IsAnnouncementAvailable failed" & vbNewLine & ex.Message, True)
Return False
End Try
End Function
Public Function GetAnnouncmentInfo() As Info
Public Function GetAnnouncementInfo() As Info
Try
Dim strAnnouncment As String = GetAnnouncmentFile()
Dim strAnnouncement As String = GetAnnouncementFile()
CreateWebClient()
Dim aI As New Info()
If strAnnouncment <> "" Then
If strAnnouncement <> "" Then
aI.InfoOk = True
Try
'get Name
Dim strName As String = strAnnouncment.Substring(strAnnouncment.IndexOf("Name: ") + 6, strAnnouncment.IndexOf(vbNewLine) - 6)
Dim strName As String = strAnnouncement.Substring(strAnnouncement.IndexOf("Name: ") + 6, strAnnouncement.IndexOf(vbNewLine) - 6)
aI.Name = strName
strAnnouncment = strAnnouncment.Remove(0, strAnnouncment.IndexOf(vbNewLine) + 2)
strAnnouncement = strAnnouncement.Remove(0, strAnnouncement.IndexOf(vbNewLine) + 2)
'get Download URL
Dim strU As String = ""
strU = strAnnouncment.Substring(strAnnouncment.IndexOf("URL: ") + 5, strAnnouncment.IndexOf(vbNewLine) - 5)
strU = strAnnouncement.Substring(strAnnouncement.IndexOf("URL: ") + 5, strAnnouncement.IndexOf(vbNewLine) - 5)
aI.URL = strU
Catch ex As Exception
@@ -69,26 +68,26 @@ Namespace App
_curAI = aI
Return aI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting announcment info failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.WarningMsg, "Getting Announcement info failed" & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
Private Function GetAnnouncmentFile() As String
Private Function GetAnnouncementFile() As String
Try
CreateWebClient()
Dim strTemp As String
Try
strTemp = wCl.DownloadString(App.Info.General.URLAnnouncment)
strTemp = wCl.DownloadString(App.Info.General.URLAnnouncement)
Catch ex As Exception
strTemp = ""
End Try
Return strTemp
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetAnnouncmentFile failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.WarningMsg, "GetAnnouncementFile failed" & vbNewLine & ex.Message, True)
Return ""
End Try
End Function

View File

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

View File

@@ -3,34 +3,32 @@ Imports System.Environment
Namespace App
Namespace Info
Public Class General
Public Shared ReadOnly URLHome As String = "http://www.mRemote.org/"
Public Shared ReadOnly URLDonate As String = "https://www.paypal.com/cgi-bin/webscr?cmd=_xclick&business=felix%2edeimel%40gmail%2ecom&item_name=mRemote%20Donations&buyer_credit_promo_code=&buyer_credit_product_category=&buyer_credit_shipping_method=&buyer_credit_user_address_change=&no_shipping=0&no_note=1&tax=0&currency_code=EUR&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8"
Public Shared ReadOnly URLBugs As String = "http://bugs.mremote.org/"
Public Shared ReadOnly URLAnnouncment As String = "http://update.mRemote.org/mRemote_Announcment.txt"
Public Shared ReadOnly URLvRD As String = "http://software.visionapp.com/vrd"
Public Shared ReadOnly LogFile As String = My.Application.Info.DirectoryPath & "\mRemote.log"
Public Shared ReadOnly URLHome As String = "http://www.mremoteng.org/"
Public Shared ReadOnly URLDonate As String = "http://donate.mremoteng.org/"
Public Shared ReadOnly URLForum As String = "http://forum.mremoteng.org/"
Public Shared ReadOnly URLBugs As String = "http://bugs.mremoteng.org/"
Public Shared ReadOnly URLAnnouncement As String = "http://update.mremoteng.org/announcement.txt"
Public Shared ReadOnly HomePath As String = My.Application.Info.DirectoryPath
Public Shared EncryptionKey As String = "mR3m"
Public Shared ReportingFilePath As String = ""
Public Shared SmartCodeURL As String = "http://www.s-code.com/products/viewerx/"
Public Shared FamFamFamURL As String = "http://www.famfamfam.com/"
End Class
Public Class Settings
'Exchange to make portable/normal
Public Shared ReadOnly SettingsPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.CompanyName.Replace(" ", "_") & "\" & My.Application.Info.ProductName
'Public Shared ReadOnly SettingsPath As String = My.Application.Info.DirectoryPath
#If Not PORTABLE Then
Public Shared ReadOnly SettingsPath As String = GetFolderPath(SpecialFolder.ApplicationData) & "\" & My.Application.Info.ProductName
#Else
Public Shared ReadOnly SettingsPath As String = My.Application.Info.DirectoryPath
#End If
Public Shared ReadOnly LayoutFileName As String = "pnlLayout.xml"
Public Shared ReadOnly ExtAppsFilesName As String = "extApps.xml"
End Class
Public Class Update
Public Shared ReadOnly URL As String = "http://update.mRemote.org/"
Public Shared ReadOnly URL As String = "http://update.mremoteng.org/"
#If DEBUG Then
Public Shared ReadOnly File As String = "mRemote_Update_Debug.txt"
Public Shared ReadOnly File As String = "update-debug.txt"
#Else
Public Shared ReadOnly File As String = "mRemote_Update.txt"
Public Shared ReadOnly File As String = "update.txt"
#End If
End Class
@@ -38,7 +36,7 @@ Namespace App
Public Shared ReadOnly DefaultConnectionsPath As String = App.Info.Settings.SettingsPath
Public Shared ReadOnly DefaultConnectionsFile As String = "confCons.xml"
Public Shared ReadOnly DefaultConnectionsFileNew As String = "confConsNew.xml"
Public Shared ReadOnly ConnectionFileVersion As Double = 2.1
Public Shared ReadOnly ConnectionFileVersion As Double = 2.3
End Class
Public Class Credentials

View File

@@ -20,7 +20,7 @@ Namespace App
End Function
<DllImport("user32.dll")> _
Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Integer) As Integer
Public Shared Function SetWindowLong(ByVal hWnd As IntPtr, ByVal nIndex As Integer, ByVal dwNewLong As Long) As Integer
End Function
<DllImport("user32.dll", SetLastError:=True)> _
@@ -87,6 +87,14 @@ Namespace App
Public Shared Function MapVirtualKey(ByVal wCode As Integer, ByVal wMapType As Integer) As Integer
End Function
<DllImport("User32")> _
Public Shared Function SetClipboardViewer(ByVal hWndNewViewer As IntPtr) As IntPtr
End Function
<DllImport("User32")> _
Public Shared Function SendMessage(ByVal Handle As IntPtr, ByVal msg As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
End Function
<DllImport("user32")> _
Public Shared Function PostMessage(ByVal hWnd As IntPtr, ByVal wMsg As Integer, ByVal wParam As Integer, ByVal lParam As Integer) As Long
End Function
@@ -117,6 +125,10 @@ Namespace App
Public Const MF_BYPOSITION As Integer = &H400
Public Const MF_POPUP As Integer = &H10
Public Const WM_GETTEXT As Integer = &HD
Public Const WM_ACTIVATEAPP As Integer = &H1C
Public Const WM_WINDOWPOSCHANGED As Integer = &H47
Public Const WM_SYSCOMMAND As Integer = &H112
Public Const WM_LBUTTONDOWN As Integer = &H201
@@ -129,6 +141,9 @@ Namespace App
Public Const VK_CONTROL As Integer = &H11
Public Const VK_C As Integer = &H67
Public Const WM_DRAWCLIPBOARD As Integer = 776
Public Const WM_CHANGECBCHAIN As Integer = 781
#End Region
End Class
End Namespace

File diff suppressed because it is too large Load Diff

View File

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

View File

@@ -1,6 +1,6 @@
Imports System.IO
Imports System.Net
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace App
Public Class Update
@@ -75,7 +75,7 @@ Namespace App
'get Download URL
Dim strU As String = ""
strU = strUpdate.Substring(strUpdate.IndexOf("dURL: ") + 6, strUpdate.IndexOf(vbNewLine) - 6).Replace(".exe", "_" & Language.Base.CurrentLanguage.ToString & ".exe")
strU = strUpdate.Substring(strUpdate.IndexOf("dURL: ") + 6, strUpdate.IndexOf(vbNewLine) - 6)
uI.DownloadUrl = strU
@@ -125,7 +125,7 @@ Namespace App
_curUI.UpdateLocation = My.Computer.FileSystem.SpecialDirectories.Temp & "\mRemote_Update.exe"
wCl.DownloadFileAsync(New Uri(dURL), _curUI.UpdateLocation)
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "Update download failed" & vbNewLine & ex.Message, True)
@@ -191,9 +191,6 @@ Namespace App
End Sub
#End Region
Public Class Info
Private _Version As Version
Public Property Version() As Version

View File

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

View File

@@ -1,4 +1,116 @@
1.50:
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)
@@ -7,9 +119,9 @@
1.49:
mRemote and visionapp Remote Desktop 2008 merge!
Read more here: http://www.mremote.org/wiki/visionappMerge.ashx
or in the announcment panel.
or in the Announcement panel.
Added features to the update function
Added Announcment feature
Added Announcement feature
Changed copyright notice in about screen and text when connecting via VNC
Fixed some SQL-related problems
@@ -455,7 +567,7 @@ V0.0.3.2:
V0.0.3.0:
Added Options Tab
Load connections file from different location
Save/Dont Save connections file on exit
Save/Don't Save connections file on exit
Show current tab name in window title
Added drag and drop functionality to the connections tree
Added feature to hide top bar
@@ -465,7 +577,7 @@ V0.0.3.0:
V0.0.2.7:
Added feature to save connection settings to all connections in the selected container
Icon choosing bug fixed
Taskbar button had no text when in fullscreen fixed
Taskbar button had no text when in fullscreen - fixed
Fixed bug in Quick Connect GUI
Disabled "Display Wallpaper" and "Display Themes" checkboxes as these features are not implemented

View File

@@ -1,485 +0,0 @@
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 announcment panel.
Added features to the update function
Added Announcment 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/Dont 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

View File

@@ -1,6 +1,7 @@
Imports System.Windows.Forms
Imports System.Xml
Imports mRemote.App.Runtime
Imports System.Globalization
Imports mRemoteNG.App.Runtime
Imports System.Data
Imports System.Data.SqlClient
Imports System.IO
@@ -17,8 +18,6 @@ Namespace Config
Private sqlQuery As SqlCommand
Private sqlRd As SqlDataReader
Private sqlDB As String = "mRemote"
Private selNode As TreeNode
#End Region
@@ -43,6 +42,16 @@ Namespace Config
End Set
End Property
Private _SQLDatabaseName As String
Public Property SQLDatabaseName() As String
Get
Return _SQLDatabaseName
End Get
Set(ByVal value As String)
_SQLDatabaseName = value
End Set
End Property
Private _SQLUsername As String
Public Property SQLUsername() As String
Get
@@ -83,10 +92,6 @@ Namespace Config
End Set
End Property
Private _ConnectionFileName As String
Public Property ConnectionFileName() As String
Get
@@ -180,9 +185,9 @@ Namespace Config
App.Runtime.ConnectionsFileLoaded = False
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
Else
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()
@@ -201,10 +206,8 @@ Namespace Config
sqlRd.Read()
End If
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"))
My.Application.ChangeCulture(originalCulture.ToString)
Dim enCulture As CultureInfo = New CultureInfo("en-US")
Me.confVersion = Convert.ToDouble(sqlRd.Item("confVersion"), enCulture)
Dim rootNode As TreeNode
rootNode = New TreeNode(sqlRd.Item("Name"))
@@ -266,7 +269,7 @@ Namespace Config
sqlCon.Close()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strLoadFromSqlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -412,7 +415,7 @@ Namespace Config
'AddNodesFromSQL(tNode)
End While
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodesFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strAddNodesFromSqlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -536,6 +539,27 @@ Namespace Config
conI.Inherit.ExtApp = .Item("InheritExtApp")
End If
If Me.confVersion >= 2.2 Then
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod), .Item("RDGatewayUsageMethod"))
conI.RDGatewayHostname = .Item("RDGatewayHostname")
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Item("RDGatewayUseConnectionCredentials"))
conI.RDGatewayUsername = .Item("RDGatewayUsername")
conI.RDGatewayPassword = Security.Crypt.Decrypt(.Item("RDGatewayPassword"), pW)
conI.RDGatewayDomain = .Item("RDGatewayDomain")
conI.Inherit.RDGatewayUsageMethod = .Item("InheritRDGatewayUsageMethod")
conI.Inherit.RDGatewayHostname = .Item("InheritRDGatewayHostname")
conI.Inherit.RDGatewayUsername = .Item("InheritRDGatewayUsername")
conI.Inherit.RDGatewayPassword = .Item("InheritRDGatewayPassword")
conI.Inherit.RDGatewayDomain = .Item("InheritRDGatewayDomain")
End If
If Me.confVersion >= 2.3 Then
conI.EnableFontSmoothing = .Item("EnableFontSmoothing")
conI.EnableDesktopComposition = .Item("EnableDesktopComposition")
conI.Inherit.EnableFontSmoothing = .Item("InheritEnableFontSmoothing")
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
End If
If SQLUpdate = True Then
conI.PleaseConnect = .Item("Connected")
End If
@@ -543,7 +567,7 @@ Namespace Config
Return conI
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetConnectionInfoFromSQL failed (Config.Connections.Load)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strGetConnectionInfoFromSqlFailed & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -611,12 +635,10 @@ Namespace Config
End If
If xDom.DocumentElement.HasAttribute("ConfVersion") Then
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value)
My.Application.ChangeCulture(originalCulture.ToString)
Dim enCulture As System.Globalization.CultureInfo = New CultureInfo("en-US")
Me.confVersion = Convert.ToDouble(xDom.DocumentElement.Attributes("ConfVersion").Value, enCulture)
Else
mC.AddMessage(Messages.MessageClass.WarningMsg, "You are trying to load a connection file that was created using an very early version of mRemote, this could result in an runtime error." & vbNewLine & "If you run into such an error, please create a new connection file!")
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strOldConffile)
End If
' SECTION 2. Initialize the treeview control.
@@ -654,7 +676,7 @@ Namespace Config
End If
If Me._Import = True And imp = False Then
mC.AddMessage(Messages.MessageClass.InformationMsg, "You cannot import a normal connection file." & vbNewLine & "Please use File - Load Connections for normal connection files!")
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strCannotImportNormalSessionFile)
Exit Sub
End If
@@ -693,7 +715,7 @@ Namespace Config
App.Runtime.Windows.treeForm.InitialRefresh()
Catch ex As Exception
App.Runtime.ConnectionsFileLoaded = False
mC.AddMessage(Messages.MessageClass.ErrorMsg, "LoadFromXML failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strLoadFromXmlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -769,14 +791,14 @@ Namespace Config
inTreeNode.Text = inXmlNode.Attributes("Name").Value.Trim
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeFromXML failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strAddNodeFromXmlFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Private Function GetConnectionInfoFromXml(ByVal xxNode As XmlNode) As Connection.Info
Try
Dim conI As New Connection.Info
Dim conI As New Connection.Info
Try
With xxNode
If Me.confVersion > 0.1 Then '0.2
conI.Name = .Attributes("Name").Value
@@ -872,6 +894,8 @@ Namespace Config
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors24Bit
Case 3
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors32Bit
Case 4
conI.Colors = Connection.Protocol.RDP.RDPColors.Colors15Bit
End Select
conI.RedirectSound = .Attributes("RedirectSound").Value
@@ -907,7 +931,7 @@ Namespace Config
conI.Inherit = New Connection.Info.Inheritance(conI, .Attributes("Inherit").Value)
conI.Icon = .Attributes("Icon").Value.Replace(".ico", "")
conI.Panel = "General"
conI.Panel = My.Resources.strGeneral
End If
If Me.confVersion > 1.4 Then '1.5
@@ -915,7 +939,7 @@ Namespace Config
End If
If Me.confVersion > 1.5 Then '1.6
conI.ICAEncryption = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.ICA.EncryptionStrength), .Attributes("ICAEncryptionStrength").Value)
conI.ICAEncryption = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.ICA.EncryptionStrength), .Attributes("ICAEncryptionStrength").Value)
conI.Inherit.ICAEncryption = .Attributes("InheritICAEncryptionStrength").Value
conI.PreExtApp = .Attributes("PreExtApp").Value
@@ -925,16 +949,16 @@ Namespace Config
End If
If Me.confVersion > 1.6 Then '1.7
conI.VNCCompression = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Compression), .Attributes("VNCCompression").Value)
conI.VNCEncoding = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Encoding), .Attributes("VNCEncoding").Value)
conI.VNCAuthMode = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.AuthMode), .Attributes("VNCAuthMode").Value)
conI.VNCProxyType = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.ProxyType), .Attributes("VNCProxyType").Value)
conI.VNCCompression = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Compression), .Attributes("VNCCompression").Value)
conI.VNCEncoding = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Encoding), .Attributes("VNCEncoding").Value)
conI.VNCAuthMode = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.AuthMode), .Attributes("VNCAuthMode").Value)
conI.VNCProxyType = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.ProxyType), .Attributes("VNCProxyType").Value)
conI.VNCProxyIP = .Attributes("VNCProxyIP").Value
conI.VNCProxyPort = .Attributes("VNCProxyPort").Value
conI.VNCProxyUsername = .Attributes("VNCProxyUsername").Value
conI.VNCProxyPassword = Security.Crypt.Decrypt(.Attributes("VNCProxyPassword").Value, pW)
conI.VNCColors = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.Colors), .Attributes("VNCColors").Value)
conI.VNCSmartSizeMode = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.VNC.SmartSizeMode), .Attributes("VNCSmartSizeMode").Value)
conI.VNCColors = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.Colors), .Attributes("VNCColors").Value)
conI.VNCSmartSizeMode = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.VNC.SmartSizeMode), .Attributes("VNCSmartSizeMode").Value)
conI.VNCViewOnly = .Attributes("VNCViewOnly").Value
conI.Inherit.VNCCompression = .Attributes("InheritVNCCompression").Value
@@ -951,13 +975,13 @@ Namespace Config
End If
If Me.confVersion > 1.7 Then '1.8
conI.RDPAuthenticationLevel = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.RDP.AuthenticationLevel), .Attributes("RDPAuthenticationLevel").Value)
conI.RDPAuthenticationLevel = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.AuthenticationLevel), .Attributes("RDPAuthenticationLevel").Value)
conI.Inherit.RDPAuthenticationLevel = .Attributes("InheritRDPAuthenticationLevel").Value
End If
If Me.confVersion > 1.8 Then '1.9
conI.RenderingEngine = Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.HTTPBase.RenderingEngine), .Attributes("RenderingEngine").Value)
conI.RenderingEngine = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.HTTPBase.RenderingEngine), .Attributes("RenderingEngine").Value)
conI.MacAddress = .Attributes("MacAddress").Value
conI.Inherit.RenderingEngine = .Attributes("InheritRenderingEngine").Value
@@ -973,16 +997,42 @@ Namespace Config
conI.ExtApp = .Attributes("ExtApp").Value
conI.Inherit.ExtApp = .Attributes("InheritExtApp").Value
End If
End With
Return conI
If Me.confVersion > 2.1 Then '2.2
' Get settings
conI.RDGatewayUsageMethod = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUsageMethod), .Attributes("RDGatewayUsageMethod").Value)
conI.RDGatewayHostname = .Attributes("RDGatewayHostname").Value
conI.RDGatewayUseConnectionCredentials = Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.RDP.RDGatewayUseConnectionCredentials), .Attributes("RDGatewayUseConnectionCredentials").Value)
conI.RDGatewayUsername = .Attributes("RDGatewayUsername").Value
conI.RDGatewayPassword = Security.Crypt.Decrypt(.Attributes("RDGatewayPassword").Value, pW)
conI.RDGatewayDomain = .Attributes("RDGatewayDomain").Value
' Get inheritance settings
conI.Inherit.RDGatewayUsageMethod = .Attributes("InheritRDGatewayUsageMethod").Value
conI.Inherit.RDGatewayHostname = .Attributes("InheritRDGatewayHostname").Value
conI.Inherit.RDGatewayUseConnectionCredentials = .Attributes("InheritRDGatewayUseConnectionCredentials").Value
conI.Inherit.RDGatewayUsername = .Attributes("InheritRDGatewayUsername").Value
conI.Inherit.RDGatewayPassword = .Attributes("InheritRDGatewayPassword").Value
conI.Inherit.RDGatewayDomain = .Attributes("InheritRDGatewayDomain").Value
End If
If Me.confVersion > 2.2 Then '2.3
' Get settings
conI.EnableFontSmoothing = .Attributes("EnableFontSmoothing").Value
conI.EnableDesktopComposition = .Attributes("EnableDesktopComposition").Value
' Get inheritance settings
conI.Inherit.EnableFontSmoothing = .Attributes("InheritEnableFontSmoothing").Value
conI.Inherit.EnableDesktopComposition = .Attributes("InheritEnableDesktopComposition").Value
End If
End With
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetConnectionInfoFromXml failed" & vbNewLine & ex.Message, True)
Return Nothing
mC.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(My.Resources.strGetConnectionInfoFromXmlFailed, conI.Name, Me.ConnectionFileName, ex.Message), False)
End Try
Return conI
End Function
Private Function Authenticate(ByVal Value As String, ByVal CompareToOriginalValue As Boolean, Optional ByVal RootInfo As mRemote.Root.Info = Nothing) As Boolean
Private Function Authenticate(ByVal Value As String, ByVal CompareToOriginalValue As Boolean, Optional ByVal RootInfo As mRemoteNG.Root.Info = Nothing) As Boolean
If CompareToOriginalValue Then
Do Until Security.Crypt.Decrypt(Value, pW) <> Value
pW = Tools.Misc.PasswordDialog(False)

View File

@@ -1,9 +1,11 @@
Imports System.Windows.Forms
Imports System.Xml
Imports System.IO
Imports mRemote.App.Runtime
Imports System.Globalization
Imports mRemoteNG.App.Runtime
Imports System.Data.SqlClient
Imports mRemote.Tools.Misc
Imports mRemoteNG.Tools.Misc
Imports mRemoteNG.My.Resources
Namespace Config
Namespace Connections
@@ -23,8 +25,6 @@ Namespace Config
Private xW As XmlTextWriter
Private pW As String = App.Info.General.EncryptionKey
Private sqlDB As String = "mRemote"
Private sqlCon As SqlConnection
Private sqlQuery As SqlCommand
Private sqlWr As Integer
@@ -44,6 +44,16 @@ Namespace Config
End Set
End Property
Private _SQLDatabaseName As String
Public Property SQLDatabaseName() As String
Get
Return _SQLDatabaseName
End Get
Set(ByVal value As String)
_SQLDatabaseName = value
End Set
End Property
Private _SQLUsername As String
Public Property SQLUsername() As String
Get
@@ -164,22 +174,66 @@ Namespace Config
#End Region
#Region "SQL"
Private Function VerifyDatabaseVersion(ByVal sqlConnection As SqlConnection) As Boolean
Dim isVerified As Boolean = False
Dim sqlDataReader As SqlDataReader = Nothing
Dim databaseVersion As System.Version = Nothing
Try
Dim sqlCommand As New SqlCommand("SELECT * FROM tblRoot", sqlConnection)
sqlDataReader = sqlCommand.ExecuteReader()
If (Not sqlDataReader.HasRows) Then Return True ' assume new empty database
sqlDataReader.Read()
Dim enCulture As CultureInfo = New CultureInfo("en-US")
databaseVersion = New System.Version(Convert.ToDouble(sqlDataReader.Item("confVersion"), enCulture))
sqlDataReader.Close()
If databaseVersion.CompareTo(New System.Version(2, 2)) = 0 Then ' 2.2
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format("Upgrading database from version {0} to version {1}.", databaseVersion.ToString, "2.3"))
sqlCommand = New SqlCommand("ALTER TABLE tblCons ADD EnableFontSmoothing bit NOT NULL DEFAULT 0, EnableDesktopComposition bit NOT NULL DEFAULT 0, InheritEnableFontSmoothing bit NOT NULL DEFAULT 0, InheritEnableDesktopComposition bit NOT NULL DEFAULT 0;", sqlConnection)
sqlCommand.ExecuteNonQuery()
databaseVersion = New System.Version(2, 3)
End If
If databaseVersion.CompareTo(New System.Version(2, 3)) = 0 Then ' 2.3
isVerified = True
End If
If isVerified = False Then
mC.AddMessage(Messages.MessageClass.WarningMsg, String.Format(strErrorBadDatabaseVersion, databaseVersion.ToString, My.Application.Info.ProductName))
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, String.Format(strErrorVerifyDatabaseVersionFailed, ex.Message))
Finally
If sqlDataReader IsNot Nothing Then
If Not sqlDataReader.IsClosed Then sqlDataReader.Close()
End If
End Try
Return isVerified
End Function
Private Sub SaveToSQL()
If _SQLUsername <> "" Then
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";User Id=" & _SQLUsername & ";Password=" & _SQLPassword)
Else
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & _SQLHost & ";Initial Catalog=" & _SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()
If Not VerifyDatabaseVersion(sqlCon) Then
mC.AddMessage(Messages.MessageClass.ErrorMsg, strErrorConnectionListSaveFailed)
Return
End If
Dim tN As TreeNode
tN = RootTreeNode.Clone
Dim strProtected As String
If tN.Tag IsNot Nothing Then
If TryCast(tN.Tag, mRemote.Root.Info).Password = True Then
pW = TryCast(tN.Tag, mRemote.Root.Info).PasswordString
If TryCast(tN.Tag, mRemoteNG.Root.Info).Password = True Then
pW = TryCast(tN.Tag, mRemoteNG.Root.Info).PasswordString
strProtected = Security.Crypt.Encrypt("ThisIsProtected", pW)
Else
strProtected = Security.Crypt.Encrypt("ThisIsNotProtected", pW)
@@ -191,14 +245,10 @@ Namespace Config
sqlQuery = New SqlCommand("DELETE FROM tblRoot", sqlCon)
sqlWr = sqlQuery.ExecuteNonQuery
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
sqlQuery = New SqlCommand("INSERT INTO tblRoot (Name, Export, Protected, ConfVersion) VALUES('" & PrepareValueForDB(tN.Text) & "', 0, '" & strProtected & "'," & App.Info.Connections.ConnectionFileVersion & ")", sqlCon)
My.Application.ChangeCulture(originalCulture.ToString)
Dim enCulture As CultureInfo = New CultureInfo("en-US")
sqlQuery = New SqlCommand("INSERT INTO tblRoot (Name, Export, Protected, ConfVersion) VALUES('" & PrepareValueForDB(tN.Text) & "', 0, '" & strProtected & "'," & App.Info.Connections.ConnectionFileVersion.ToString(enCulture) & ")", sqlCon)
sqlWr = sqlQuery.ExecuteNonQuery
sqlQuery = New SqlCommand("DELETE FROM tblCons", sqlCon)
sqlWr = sqlQuery.ExecuteNonQuery
@@ -223,12 +273,14 @@ Namespace Config
sqlQuery = New SqlCommand("INSERT INTO tblCons (Name, Type, Expanded, Description, Icon, Panel, Username, " & _
"DomainName, Password, Hostname, Protocol, PuttySession, " & _
"Port, ConnectToConsole, RenderingEngine, ICAEncryptionStrength, RDPAuthenticationLevel, Colors, Resolution, DisplayWallpaper, " & _
"DisplayThemes, CacheBitmaps, RedirectDiskDrives, RedirectPorts, " & _
"DisplayThemes, EnableFontSmoothing, EnableDesktopComposition, CacheBitmaps, RedirectDiskDrives, RedirectPorts, " & _
"RedirectPrinters, RedirectSmartCards, RedirectSound, RedirectKeys, " & _
"Connected, PreExtApp, PostExtApp, MacAddress, UserField, ExtApp, VNCCompression, VNCEncoding, VNCAuthMode, " & _
"VNCProxyType, VNCProxyIP, VNCProxyPort, VNCProxyUsername, VNCProxyPassword, " & _
"VNCColors, VNCSmartSizeMode, VNCViewOnly, InheritCacheBitmaps, InheritColors, " & _
"InheritDescription, InheritDisplayThemes, InheritDisplayWallpaper, InheritDomain, " & _
"VNCColors, VNCSmartSizeMode, VNCViewOnly, " & _
"RDGatewayUsageMethod, RDGatewayHostname, RDGatewayUseConnectionCredentials, RDGatewayUsername, RDGatewayPassword, RDGatewayDomain, " & _
"InheritCacheBitmaps, InheritColors, " & _
"InheritDescription, InheritDisplayThemes, InheritDisplayWallpaper, InheritEnableFontSmoothing, InheritEnableDesktopComposition, InheritDomain, " & _
"InheritIcon, InheritPanel, InheritPassword, InheritPort, " & _
"InheritProtocol, InheritPuttySession, InheritRedirectDiskDrives, " & _
"InheritRedirectKeys, InheritRedirectPorts, InheritRedirectPrinters, " & _
@@ -238,6 +290,7 @@ Namespace Config
"InheritVNCAuthMode, InheritVNCProxyType, InheritVNCProxyIP, InheritVNCProxyPort, " & _
"InheritVNCProxyUsername, InheritVNCProxyPassword, InheritVNCColors, " & _
"InheritVNCSmartSizeMode, InheritVNCViewOnly, " & _
"InheritRDGatewayUsageMethod, InheritRDGatewayHostname, InheritRDGatewayUseConnectionCredentials, InheritRDGatewayUsername, InheritRDGatewayPassword, InheritRDGatewayDomain, " & _
"PositionID, ParentID, ConstantID, LastChange)" & _
"VALUES (", sqlCon)
@@ -308,6 +361,8 @@ Namespace Config
sqlQuery.CommandText &= "'" & .Resolution.ToString & "',"
sqlQuery.CommandText &= "'" & .DisplayWallpaper & "',"
sqlQuery.CommandText &= "'" & .DisplayThemes & "',"
sqlQuery.CommandText &= "'" & .EnableFontSmoothing & "',"
sqlQuery.CommandText &= "'" & .EnableDesktopComposition & "',"
sqlQuery.CommandText &= "'" & .CacheBitmaps & "',"
sqlQuery.CommandText &= "'" & .RedirectDiskDrives & "',"
sqlQuery.CommandText &= "'" & .RedirectPorts & "',"
@@ -340,6 +395,28 @@ Namespace Config
sqlQuery.CommandText &= "'" & .VNCSmartSizeMode.ToString & "',"
sqlQuery.CommandText &= "'" & .VNCViewOnly & "',"
sqlQuery.CommandText &= "'" & .RDGatewayUsageMethod.ToString & "',"
sqlQuery.CommandText &= "'" & .RDGatewayHostname & "',"
sqlQuery.CommandText &= "'" & .RDGatewayUseConnectionCredentials.ToString & "',"
If Me._SaveSecurity.Username = True Then
sqlQuery.CommandText &= "'" & .RDGatewayUsername & "',"
Else
sqlQuery.CommandText &= "'" & "" & "',"
End If
If Me._SaveSecurity.Password = True Then
sqlQuery.CommandText &= "'" & .RDGatewayPassword & "',"
Else
sqlQuery.CommandText &= "'" & "" & "',"
End If
If Me._SaveSecurity.Domain = True Then
sqlQuery.CommandText &= "'" & .RDGatewayDomain & "',"
Else
sqlQuery.CommandText &= "'" & "" & "',"
End If
With .Inherit
If Me._SaveSecurity.Inheritance = True Then
sqlQuery.CommandText &= "'" & .CacheBitmaps & "',"
@@ -347,6 +424,8 @@ Namespace Config
sqlQuery.CommandText &= "'" & .Description & "',"
sqlQuery.CommandText &= "'" & .DisplayThemes & "',"
sqlQuery.CommandText &= "'" & .DisplayWallpaper & "',"
sqlQuery.CommandText &= "'" & .EnableFontSmoothing & "',"
sqlQuery.CommandText &= "'" & .EnableDesktopComposition & "',"
sqlQuery.CommandText &= "'" & .Domain & "',"
sqlQuery.CommandText &= "'" & .Icon & "',"
sqlQuery.CommandText &= "'" & .Panel & "',"
@@ -383,6 +462,13 @@ Namespace Config
sqlQuery.CommandText &= "'" & .VNCColors & "',"
sqlQuery.CommandText &= "'" & .VNCSmartSizeMode & "',"
sqlQuery.CommandText &= "'" & .VNCViewOnly & "',"
sqlQuery.CommandText &= "'" & .RDGatewayUsageMethod & "',"
sqlQuery.CommandText &= "'" & .RDGatewayHostname & "',"
sqlQuery.CommandText &= "'" & .RDGatewayUseConnectionCredentials & "',"
sqlQuery.CommandText &= "'" & .RDGatewayUsername & "',"
sqlQuery.CommandText &= "'" & .RDGatewayPassword & "',"
sqlQuery.CommandText &= "'" & .RDGatewayDomain & "',"
Else
sqlQuery.CommandText &= "'" & False & "',"
sqlQuery.CommandText &= "'" & False & "',"
@@ -425,6 +511,13 @@ Namespace Config
sqlQuery.CommandText &= "'" & False & "',"
sqlQuery.CommandText &= "'" & False & "',"
sqlQuery.CommandText &= "'" & False & "',"
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayUsageMethod
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayHostname
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayUseConnectionCredentials
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayUsername
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayPassword
sqlQuery.CommandText &= "'" & False & "'," ' .RDGatewayDomain
End If
End With
@@ -495,18 +588,16 @@ Namespace Config
If exp Then
xW.WriteAttributeString("Protected", "", Security.Crypt.Encrypt("ThisIsNotProtected", pW))
Else
If TryCast(tN.Tag, mRemote.Root.Info).Password = True Then
pW = TryCast(tN.Tag, mRemote.Root.Info).PasswordString
If TryCast(tN.Tag, mRemoteNG.Root.Info).Password = True Then
pW = TryCast(tN.Tag, mRemoteNG.Root.Info).PasswordString
xW.WriteAttributeString("Protected", "", Security.Crypt.Encrypt("ThisIsProtected", pW))
Else
xW.WriteAttributeString("Protected", "", Security.Crypt.Encrypt("ThisIsNotProtected", pW))
End If
End If
Dim originalCulture As System.Globalization.CultureInfo = My.Application.Culture
My.Application.ChangeCulture("en-US")
xW.WriteAttributeString("ConfVersion", "", App.Info.Connections.ConnectionFileVersion)
My.Application.ChangeCulture(originalCulture.ToString)
Dim enCulture As System.Globalization.CultureInfo = New CultureInfo("en-US")
xW.WriteAttributeString("ConfVersion", "", App.Info.Connections.ConnectionFileVersion.ToString(enCulture))
Dim tNC As TreeNodeCollection
tNC = tN.Nodes
@@ -600,6 +691,10 @@ Namespace Config
xW.WriteAttributeString("DisplayThemes", "", curConI.DisplayThemes)
xW.WriteAttributeString("EnableFontSmoothing", "", curConI.EnableFontSmoothing)
xW.WriteAttributeString("EnableDesktopComposition", "", curConI.EnableDesktopComposition)
xW.WriteAttributeString("CacheBitmaps", "", curConI.CacheBitmaps)
xW.WriteAttributeString("RedirectDiskDrives", "", curConI.RedirectDiskDrives)
@@ -638,12 +733,37 @@ Namespace Config
xW.WriteAttributeString("VNCSmartSizeMode", "", curConI.VNCSmartSizeMode.ToString)
xW.WriteAttributeString("VNCViewOnly", "", curConI.VNCViewOnly)
xW.WriteAttributeString("RDGatewayUsageMethod", "", curConI.RDGatewayUsageMethod.ToString)
xW.WriteAttributeString("RDGatewayHostname", "", curConI.RDGatewayHostname)
xW.WriteAttributeString("RDGatewayUseConnectionCredentials", "", curConI.RDGatewayUseConnectionCredentials.ToString)
If Me._SaveSecurity.Username = True Then
xW.WriteAttributeString("RDGatewayUsername", "", curConI.RDGatewayUsername)
Else
xW.WriteAttributeString("RDGatewayUsername", "", "")
End If
If Me._SaveSecurity.Password = True Then
xW.WriteAttributeString("RDGatewayPassword", "", curConI.RDGatewayPassword)
Else
xW.WriteAttributeString("RDGatewayPassword", "", "")
End If
If Me._SaveSecurity.Domain = True Then
xW.WriteAttributeString("RDGatewayDomain", "", curConI.RDGatewayDomain)
Else
xW.WriteAttributeString("RDGatewayDomain", "", "")
End If
If Me._SaveSecurity.Inheritance = True Then
xW.WriteAttributeString("InheritCacheBitmaps", "", curConI.Inherit.CacheBitmaps)
xW.WriteAttributeString("InheritColors", "", curConI.Inherit.Colors)
xW.WriteAttributeString("InheritDescription", "", curConI.Inherit.Description)
xW.WriteAttributeString("InheritDisplayThemes", "", curConI.Inherit.DisplayThemes)
xW.WriteAttributeString("InheritDisplayWallpaper", "", curConI.Inherit.DisplayWallpaper)
xW.WriteAttributeString("InheritEnableFontSmoothing", "", curConI.Inherit.EnableFontSmoothing)
xW.WriteAttributeString("InheritEnableDesktopComposition", "", curConI.Inherit.EnableDesktopComposition)
xW.WriteAttributeString("InheritDomain", "", curConI.Inherit.Domain)
xW.WriteAttributeString("InheritIcon", "", curConI.Inherit.Icon)
xW.WriteAttributeString("InheritPanel", "", curConI.Inherit.Panel)
@@ -679,12 +799,20 @@ Namespace Config
xW.WriteAttributeString("InheritVNCColors", "", curConI.Inherit.VNCColors)
xW.WriteAttributeString("InheritVNCSmartSizeMode", "", curConI.Inherit.VNCSmartSizeMode)
xW.WriteAttributeString("InheritVNCViewOnly", "", curConI.Inherit.VNCViewOnly)
xW.WriteAttributeString("InheritRDGatewayUsageMethod", "", curConI.Inherit.RDGatewayUsageMethod)
xW.WriteAttributeString("InheritRDGatewayHostname", "", curConI.Inherit.RDGatewayHostname)
xW.WriteAttributeString("InheritRDGatewayUseConnectionCredentials", "", curConI.Inherit.RDGatewayUseConnectionCredentials)
xW.WriteAttributeString("InheritRDGatewayUsername", "", curConI.Inherit.RDGatewayUsername)
xW.WriteAttributeString("InheritRDGatewayPassword", "", curConI.Inherit.RDGatewayPassword)
xW.WriteAttributeString("InheritRDGatewayDomain", "", curConI.Inherit.RDGatewayDomain)
Else
xW.WriteAttributeString("InheritCacheBitmaps", "", False)
xW.WriteAttributeString("InheritColors", "", False)
xW.WriteAttributeString("InheritDescription", "", False)
xW.WriteAttributeString("InheritDisplayThemes", "", False)
xW.WriteAttributeString("InheritDisplayWallpaper", "", False)
xW.WriteAttributeString("InheritEnableFontSmoothing", "", False)
xW.WriteAttributeString("InheritEnableDesktopComposition", "", False)
xW.WriteAttributeString("InheritDomain", "", False)
xW.WriteAttributeString("InheritIcon", "", False)
xW.WriteAttributeString("InheritPanel", "", False)
@@ -720,6 +848,11 @@ Namespace Config
xW.WriteAttributeString("InheritVNCColors", "", False)
xW.WriteAttributeString("InheritVNCSmartSizeMode", "", False)
xW.WriteAttributeString("InheritVNCViewOnly", "", False)
xW.WriteAttributeString("InheritRDGatewayHostname", "", False)
xW.WriteAttributeString("InheritRDGatewayUseConnectionCredentials", "", False)
xW.WriteAttributeString("InheritRDGatewayUsername", "", False)
xW.WriteAttributeString("InheritRDGatewayPassword", "", False)
xW.WriteAttributeString("InheritRDGatewayDomain", "", False)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "SaveConnectionFields failed" & vbNewLine & ex.Message, True)
@@ -727,8 +860,9 @@ Namespace Config
End Sub
#End Region
Private csvWr As StreamWriter
#Region "CSV"
Private csvWr As StreamWriter
Private Sub SaveTomRCSV()
If App.Runtime.ConnectionsFileLoaded = False Then
Exit Sub
@@ -759,13 +893,12 @@ Namespace Config
csvLn += "Domain;"
End If
csvLn += "Hostname;Protocol;PuttySession;Port;ConnectToConsole;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;Colors;Resolution;DisplayWallpaper;DisplayThemes;CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectSmartCards;RedirectSound;RedirectKeys;PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;"
csvLn += "Hostname;Protocol;PuttySession;Port;ConnectToConsole;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;Colors;Resolution;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectSmartCards;RedirectSound;RedirectKeys;PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;RDGatewayUsageMethod;RDGatewayHostname;RDGatewayUseConnectionCredentials;RDGatewayUsername;RDGatewayPassword;RDGatewayDomain;"
If SaveSecurity.Inheritance Then
csvLn += "InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;InheritProtocol;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritUseConsoleSession;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;InheritRDPAuthenticationLevel;InheritPreExtApp;InheritPostExtApp;InheritMacAddress;InheritUserField;InheritExtApp;InheritVNCCompression;InheritVNCEncoding;InheritVNCAuthMode;InheritVNCProxyType;InheritVNCProxyIP;InheritVNCProxyPort;InheritVNCProxyUsername;InheritVNCProxyPassword;InheritVNCColors;InheritVNCSmartSizeMode;InheritVNCViewOnly"
csvLn += "InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;InheritProtocol;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritUseConsoleSession;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;InheritRDPAuthenticationLevel;InheritPreExtApp;InheritPostExtApp;InheritMacAddress;InheritUserField;InheritExtApp;InheritVNCCompression;InheritVNCEncoding;InheritVNCAuthMode;InheritVNCProxyType;InheritVNCProxyIP;InheritVNCProxyPort;InheritVNCProxyUsername;InheritVNCProxyPassword;InheritVNCColors;InheritVNCSmartSizeMode;InheritVNCViewOnly;InheritRDGatewayUsageMethod;InheritRDGatewayHostname;InheritRDGatewayUseConnectionCredentials;InheritRDGatewayUsername;InheritRDGatewayPassword;InheritRDGatewayDomain"
End If
csvWr.WriteLine(csvLn)
SaveNodemRCSV(tNC)
@@ -814,10 +947,10 @@ Namespace Config
csvLn += con.Domain & ";"
End If
csvLn += con.Hostname & ";" & con.Protocol.ToString & ";" & con.PuttySession & ";" & con.Port & ";" & con.UseConsoleSession & ";" & con.RenderingEngine.ToString & ";" & con.ICAEncryption.ToString & ";" & con.RDPAuthenticationLevel.ToString & ";" & con.Colors.ToString & ";" & con.Resolution.ToString & ";" & con.DisplayWallpaper & ";" & con.DisplayThemes & ";" & con.CacheBitmaps & ";" & con.RedirectDiskDrives & ";" & con.RedirectPorts & ";" & con.RedirectPrinters & ";" & con.RedirectSmartCards & ";" & con.RedirectSound.ToString & ";" & con.RedirectKeys & ";" & con.PreExtApp & ";" & con.PostExtApp & ";" & con.MacAddress & ";" & con.UserField & ";" & con.ExtApp & ";" & con.VNCCompression.ToString & ";" & con.VNCEncoding.ToString & ";" & con.VNCAuthMode.ToString & ";" & con.VNCProxyType.ToString & ";" & con.VNCProxyIP & ";" & con.VNCProxyPort & ";" & con.VNCProxyUsername & ";" & con.VNCProxyPassword & ";" & con.VNCColors.ToString & ";" & con.VNCSmartSizeMode.ToString & ";" & con.VNCViewOnly & ";"
csvLn += con.Hostname & ";" & con.Protocol.ToString & ";" & con.PuttySession & ";" & con.Port & ";" & con.UseConsoleSession & ";" & con.RenderingEngine.ToString & ";" & con.ICAEncryption.ToString & ";" & con.RDPAuthenticationLevel.ToString & ";" & con.Colors.ToString & ";" & con.Resolution.ToString & ";" & con.DisplayWallpaper & ";" & con.DisplayThemes & ";" & con.EnableFontSmoothing & ";" & con.EnableDesktopComposition & ";" & con.CacheBitmaps & ";" & con.RedirectDiskDrives & ";" & con.RedirectPorts & ";" & con.RedirectPrinters & ";" & con.RedirectSmartCards & ";" & con.RedirectSound.ToString & ";" & con.RedirectKeys & ";" & con.PreExtApp & ";" & con.PostExtApp & ";" & con.MacAddress & ";" & con.UserField & ";" & con.ExtApp & ";" & con.VNCCompression.ToString & ";" & con.VNCEncoding.ToString & ";" & con.VNCAuthMode.ToString & ";" & con.VNCProxyType.ToString & ";" & con.VNCProxyIP & ";" & con.VNCProxyPort & ";" & con.VNCProxyUsername & ";" & con.VNCProxyPassword & ";" & con.VNCColors.ToString & ";" & con.VNCSmartSizeMode.ToString & ";" & con.VNCViewOnly & ";"
If SaveSecurity.Inheritance Then
csvLn += con.Inherit.CacheBitmaps & ";" & con.Inherit.Colors & ";" & con.Inherit.Description & ";" & con.Inherit.DisplayThemes & ";" & con.Inherit.DisplayWallpaper & ";" & con.Inherit.Domain & ";" & con.Inherit.Icon & ";" & con.Inherit.Panel & ";" & con.Inherit.Password & ";" & con.Inherit.Port & ";" & con.Inherit.Protocol & ";" & con.Inherit.PuttySession & ";" & con.Inherit.RedirectDiskDrives & ";" & con.Inherit.RedirectKeys & ";" & con.Inherit.RedirectPorts & ";" & con.Inherit.RedirectPrinters & ";" & con.Inherit.RedirectSmartCards & ";" & con.Inherit.RedirectSound & ";" & con.Inherit.Resolution & ";" & con.Inherit.UseConsoleSession & ";" & con.Inherit.RenderingEngine & ";" & con.Inherit.Username & ";" & con.Inherit.ICAEncryption & ";" & con.Inherit.RDPAuthenticationLevel & ";" & con.Inherit.PreExtApp & ";" & con.Inherit.PostExtApp & ";" & con.Inherit.MacAddress & ";" & con.Inherit.UserField & ";" & con.Inherit.ExtApp & ";" & con.Inherit.VNCCompression & ";" & con.Inherit.VNCEncoding & ";" & con.Inherit.VNCAuthMode & ";" & con.Inherit.VNCProxyType & ";" & con.Inherit.VNCProxyIP & ";" & con.Inherit.VNCProxyPort & ";" & con.Inherit.VNCProxyUsername & ";" & con.Inherit.VNCProxyPassword & ";" & con.Inherit.VNCColors & ";" & con.Inherit.VNCSmartSizeMode & ";" & con.Inherit.VNCViewOnly
csvLn += con.Inherit.CacheBitmaps & ";" & con.Inherit.Colors & ";" & con.Inherit.Description & ";" & con.Inherit.DisplayThemes & ";" & con.Inherit.DisplayWallpaper & ";" & con.Inherit.EnableFontSmoothing & ";" & con.Inherit.EnableDesktopComposition & ";" & con.Inherit.Domain & ";" & con.Inherit.Icon & ";" & con.Inherit.Panel & ";" & con.Inherit.Password & ";" & con.Inherit.Port & ";" & con.Inherit.Protocol & ";" & con.Inherit.PuttySession & ";" & con.Inherit.RedirectDiskDrives & ";" & con.Inherit.RedirectKeys & ";" & con.Inherit.RedirectPorts & ";" & con.Inherit.RedirectPrinters & ";" & con.Inherit.RedirectSmartCards & ";" & con.Inherit.RedirectSound & ";" & con.Inherit.Resolution & ";" & con.Inherit.UseConsoleSession & ";" & con.Inherit.RenderingEngine & ";" & con.Inherit.Username & ";" & con.Inherit.ICAEncryption & ";" & con.Inherit.RDPAuthenticationLevel & ";" & con.Inherit.PreExtApp & ";" & con.Inherit.PostExtApp & ";" & con.Inherit.MacAddress & ";" & con.Inherit.UserField & ";" & con.Inherit.ExtApp & ";" & con.Inherit.VNCCompression & ";" & con.Inherit.VNCEncoding & ";" & con.Inherit.VNCAuthMode & ";" & con.Inherit.VNCProxyType & ";" & con.Inherit.VNCProxyIP & ";" & con.Inherit.VNCProxyPort & ";" & con.Inherit.VNCProxyUsername & ";" & con.Inherit.VNCProxyPassword & ";" & con.Inherit.VNCColors & ";" & con.Inherit.VNCSmartSizeMode & ";" & con.Inherit.VNCViewOnly
End If
csvWr.WriteLine(csvLn)

View File

@@ -1,7 +1,8 @@
Imports System.IO
Imports WeifenLuo.WinFormsUI.Docking
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.Environment
Namespace Config
Namespace Settings
@@ -26,33 +27,55 @@ Namespace Config
Public Sub Load()
Try
With Me._MainForm
' Migrate settings from previous version
If My.Settings.DoUpgrade Then
My.Settings.Upgrade()
My.Settings.DoUpgrade = False
' Clear pending update flag
' This is used for automatic updates, not for settings migration, but it
' needs to be cleared here because we know that we just updated.
My.Settings.UpdatePending = False
End If
If My.Settings.MainFormLocation <> New Point(999, 999) Then
.Location = My.Settings.MainFormLocation
App.SupportedCultures.InstantiateSingleton()
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
log.InfoFormat("Override Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End If
If My.Settings.MainFormSize <> Nothing Then
.Size = My.Settings.MainFormSize
End If
'check if form is visible
Dim curScreen As Screen = Screen.FromHandle(.Handle)
If .Right < curScreen.Bounds.Left Or .Left > curScreen.Bounds.Right _
Or .Top * -1 > curScreen.Bounds.Top * -1 Or .Bottom > curScreen.Bounds.Bottom Then
.Location = curScreen.Bounds.Location
End If
If My.Settings.MainFormState = Nothing Or My.Settings.MainFormState = FormWindowState.Minimized Then
.WindowState = FormWindowState.Normal
.WindowState = FormWindowState.Normal
If My.Settings.MainFormState = FormWindowState.Normal Then
If Not My.Settings.MainFormLocation.IsEmpty Then .Location = My.Settings.MainFormLocation
If Not My.Settings.MainFormSize.IsEmpty Then .Size = My.Settings.MainFormSize
Else
.WindowState = My.Settings.MainFormState
If Not My.Settings.MainFormRestoreLocation.IsEmpty Then .Location = My.Settings.MainFormRestoreLocation
If Not My.Settings.MainFormRestoreSize.IsEmpty Then .Size = My.Settings.MainFormRestoreSize
End If
If My.Settings.MainFormState = FormWindowState.Maximized Then
.WindowState = FormWindowState.Maximized
End If
' Make sure the form is visible on the screen
Const minHorizontal As Integer = 300
Const minVertical As Integer = 150
Dim screenBounds As Drawing.Rectangle = Screen.FromHandle(.Handle).Bounds
Dim newBounds As Drawing.Rectangle = .Bounds
If newBounds.Right < screenBounds.Left + minHorizontal Then
newBounds.X = screenBounds.Left + minHorizontal - newBounds.Width
End If
If newBounds.Left > screenBounds.Right - minHorizontal Then
newBounds.X = screenBounds.Right - minHorizontal
End If
If newBounds.Bottom < screenBounds.Top + minVertical Then
newBounds.Y = screenBounds.Top + minVertical - newBounds.Height
End If
If newBounds.Top > screenBounds.Bottom - minVertical Then
newBounds.Y = screenBounds.Bottom - minVertical
End If
.Location = newBounds.Location
If My.Settings.MainFormKiosk = True Then
Tools.Misc.Fullscreen.EnterFullscreen()
@@ -79,9 +102,9 @@ Namespace Config
Me.LoadExternalAppsFromXML()
If My.Settings.ResetToolbars = False Then
Me.LoadToolbarsFromSettings()
LoadToolbarsFromSettings()
Else
Me.SetToolbarsDefault()
SetToolbarsDefault()
End If
End With
Catch ex As Exception
@@ -152,16 +175,19 @@ Namespace Config
dc.Close()
Loop
.pnlDock.SuspendLayout(True)
Startup.CreatePanels()
If File.Exists(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName) And My.Settings.ResetPanels = False Then
Startup.CreatePanels()
.pnlDock.LoadFromXml(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName, AddressOf GetContentFromPersistString)
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Settings.LayoutFileName
Dim newPath As String = App.Info.Settings.SettingsPath & "\" & App.Info.Settings.LayoutFileName
If File.Exists(newPath) Then
.pnlDock.LoadFromXml(newPath, AddressOf GetContentFromPersistString)
#If Not PORTABLE Then
ElseIf File.Exists(oldPath) Then
.pnlDock.LoadFromXml(oldPath, AddressOf GetContentFromPersistString)
#End If
Else
Startup.CreatePanels(True)
Startup.SetDefaultLayout()
End If
.pnlDock.ResumeLayout(True, True)
End With
Catch ex As Exception
App.Runtime.log.Error("LoadPanelsFromXML failed" & vbNewLine & ex.Message)
@@ -170,13 +196,19 @@ Namespace Config
End Sub
Public Sub LoadExternalAppsFromXML()
If File.Exists(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName) = False Then
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Settings.ExtAppsFilesName
Dim newPath As String = App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName
Dim xDom As New XmlDocument()
If File.Exists(newPath) Then
xDom.Load(newPath)
#If Not PORTABLE Then
ElseIf File.Exists(oldPath) Then
xDom.Load(oldPath)
#End If
Else
Exit Sub
End If
Dim xDom As New XmlDocument()
xDom.Load(App.Info.Settings.SettingsPath & "\" & App.Info.Settings.ExtAppsFilesName)
For Each xEl As XmlElement In xDom.DocumentElement.ChildNodes
Dim extA As New Tools.ExternalApp
extA.DisplayName = xEl.Attributes("DisplayName").Value
@@ -204,6 +236,11 @@ Namespace Config
#Region "Private Methods"
Private Function GetContentFromPersistString(ByVal persistString As String) As IDockContent
' pnlLayout.xml persistence XML fix for refactoring to mRemoteNG
If (persistString.StartsWith("mRemote.")) Then
persistString = persistString.Replace("mRemote.", "mRemoteNG.")
End If
Try
If persistString = GetType(UI.Window.Config).ToString Then
Return Windows.configPanel

View File

@@ -6,15 +6,13 @@ Namespace Config
Namespace Settings
Namespace Providers
Public Class ChooseProvider
'Exchange to make portable/normal
#If Not PORTABLE Then
Inherits LocalFileSettingsProvider
'Inherits PortableSettingsProvider
#Else
Inherits PortableSettingsProvider
#End If
End Class
Public Class PortableSettingsProvider
Inherits SettingsProvider
@@ -145,13 +143,17 @@ Namespace Config
End Try
'Check to see if the node exists, if so then set its new value
If Not SettingNode Is Nothing Then
SettingNode.InnerText = propVal.SerializedValue.ToString
If SettingNode IsNot Nothing Then
If propVal.SerializedValue IsNot Nothing Then
SettingNode.InnerText = propVal.SerializedValue.ToString
End If
Else
If IsRoaming(propVal.Property) Then
'Store the value as an element of the Settings Root Node
SettingNode = SettingsXML.CreateElement(propVal.Name)
SettingNode.InnerText = propVal.SerializedValue.ToString
If propVal.SerializedValue IsNot Nothing Then
SettingNode.InnerText = propVal.SerializedValue.ToString
End If
SettingsXML.SelectSingleNode(SETTINGSROOT).AppendChild(SettingNode)
Else
'Its machine specific, store as an element of the machine name node,
@@ -169,10 +171,14 @@ Namespace Config
End If
SettingNode = SettingsXML.CreateElement(propVal.Name)
SettingNode.InnerText = propVal.SerializedValue.ToString
If propVal.SerializedValue IsNot Nothing Then
SettingNode.InnerText = propVal.SerializedValue.ToString
End If
MachineNode.AppendChild(SettingNode)
End If
End If
End Sub
Private Function IsRoaming(ByVal prop As SettingsProperty) As Boolean

View File

@@ -1,6 +1,7 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Xml
Imports System.IO
Imports mRemoteNG.Tools.WindowPlacement
Namespace Config
Namespace Settings
@@ -25,12 +26,18 @@ Namespace Config
Public Sub Save()
Try
With Me._MainForm
If .WindowState = FormWindowState.Normal Then
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
Else
My.Settings.MainFormLocation = .RestoreBounds.Location
My.Settings.MainFormSize = .RestoreBounds.Size
Dim windowPlacement As New Tools.WindowPlacement(_MainForm)
If .WindowState = FormWindowState.Minimized And windowPlacement.RestoreToMaximized Then
.Opacity = 0
.WindowState = FormWindowState.Maximized
End If
My.Settings.MainFormLocation = .Location
My.Settings.MainFormSize = .Size
If Not .WindowState = FormWindowState.Normal Then
My.Settings.MainFormRestoreLocation = .RestoreBounds.Location
My.Settings.MainFormRestoreSize = .RestoreBounds.Size
End If
My.Settings.MainFormState = .WindowState

View File

@@ -1,5 +1,5 @@
Imports System.ComponentModel
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class Icon

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
Imports System.Windows.Forms
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class InterfaceControl

View File

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

View File

@@ -1,6 +1,6 @@
Imports System.Windows.Forms
Imports System.Threading
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Protocol
@@ -39,12 +39,12 @@ Namespace Connection
End Property
#End Region
Private _Force As mRemote.Connection.Info.Force
Public Property Force() As mRemote.Connection.Info.Force
Private _Force As mRemoteNG.Connection.Info.Force
Public Property Force() As mRemoteNG.Connection.Info.Force
Get
Return Me._Force
End Get
Set(ByVal value As mRemote.Connection.Info.Force)
Set(ByVal value As mRemoteNG.Connection.Info.Force)
Me._Force = value
End Set
End Property

View File

@@ -1,6 +1,3 @@
Imports System.Windows.Forms
Imports mRemote.App.Runtime
Namespace Connection
Namespace Protocol
Public Class HTTP

View File

@@ -1,7 +1,7 @@
Imports System.Windows.Forms
Imports mRemote.App.Runtime
Imports Skybound.Gecko
Imports mRemoteNG.App.Runtime
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -19,7 +19,6 @@ Namespace Connection
Public Sub New(ByVal RenderingEngine As RenderingEngine)
Try
If RenderingEngine = RenderingEngine.Gecko Then
'Skybound.Gecko.Xpcom.Initialize(My.Settings.XULRunnerPath)
Me.Control = New MiniGeckoBrowser.MiniGeckoBrowser
TryCast(Me.Control, MiniGeckoBrowser.MiniGeckoBrowser).XULrunnerPath = My.Settings.XULRunnerPath
Else
@@ -28,7 +27,7 @@ Namespace Connection
NewExtended()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create new Connection.Protocol.HTTPBase" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpConnectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -39,24 +38,34 @@ Namespace Connection
MyBase.SetProps()
Try
wBrowser = Me.Control
Dim objTabPage As Crownwood.Magic.Controls.TabPage = TryCast(Me.InterfaceControl.Parent, Crownwood.Magic.Controls.TabPage)
Me.tabTitle = objTabPage.Title
Catch ex As Exception
Me.tabTitle = ""
End Try
Try
Me.wBrowser = Me.Control
If InterfaceControl.Info.RenderingEngine = RenderingEngine.Gecko Then
'AddHandler TryCast(wBrowser, GeckoWebBrowser).CreateWindow, AddressOf gex_CreateWindow
AddHandler TryCast(wBrowser, MiniGeckoBrowser.MiniGeckoBrowser).TitleChanged, AddressOf wBrowser_DocumentTitleChanged
AddHandler TryCast(wBrowser, MiniGeckoBrowser.MiniGeckoBrowser).LastTabRemoved, AddressOf wBrowser_LastTabRemoved
'wBrowser.Width = wBrowser.Width
Else
TryCast(wBrowser, WebBrowser).AllowWebBrowserDrop = False
TryCast(wBrowser, WebBrowser).ScrollBarsEnabled = True
Dim objMiniGeckoBrowser As MiniGeckoBrowser.MiniGeckoBrowser = TryCast(wBrowser, MiniGeckoBrowser.MiniGeckoBrowser)
AddHandler TryCast(wBrowser, WebBrowser).DocumentTitleChanged, AddressOf wBrowser_DocumentTitleChanged
AddHandler TryCast(wBrowser, WebBrowser).NewWindow, AddressOf wBrowser_NewWindow
AddHandler objMiniGeckoBrowser.TitleChanged, AddressOf wBrowser_DocumentTitleChanged
AddHandler objMiniGeckoBrowser.LastTabRemoved, AddressOf wBrowser_LastTabRemoved
Else
Dim objWebBrowser As WebBrowser = TryCast(wBrowser, WebBrowser)
Dim objAxWebBrowser As SHDocVw.WebBrowser = DirectCast(objWebBrowser.ActiveXInstance, SHDocVw.WebBrowser)
objWebBrowser.AllowWebBrowserDrop = False
objWebBrowser.ScrollBarsEnabled = True
AddHandler objWebBrowser.DocumentTitleChanged, AddressOf wBrowser_DocumentTitleChanged
AddHandler objAxWebBrowser.NewWindow3, AddressOf wBrowser_NewWindow3
End If
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't SetProps (Connection.Protocol.HTTPBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -99,7 +108,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect (Connection.Protocol.HTTPBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strHttpConnectFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -111,14 +120,15 @@ Namespace Connection
#Region "Events"
Private Sub gex_CreateWindow(ByVal sender As Object, ByVal e As Skybound.Gecko.GeckoCreateWindowEventArgs)
'Dim tP As TabPage = AddTab()
'e.WebBrowser = tP.Controls(0)
e.WebBrowser = Me.wBrowser
End Sub
Private Sub wBrowser_NewWindow(ByVal sender As Object, ByVal e As CancelEventArgs)
e.Cancel = True
TryCast(wBrowser, WebBrowser).Navigate(TryCast(wBrowser, WebBrowser).StatusText)
Private Sub wBrowser_NewWindow3(ByRef ppDisp As Object, ByRef Cancel As Boolean, ByVal dwFlags As Long, ByVal bstrUrlContext As String, ByVal bstrUrl As String)
If (dwFlags And NWMF.NWMF_OVERRIDEKEY) Then
Cancel = False
Else
Cancel = True
End If
End Sub
Private Sub wBrowser_LastTabRemoved(ByVal sender As Object)
@@ -131,10 +141,6 @@ Namespace Connection
tabP = TryCast(InterfaceControl.Parent, Crownwood.Magic.Controls.TabPage)
If tabP IsNot Nothing Then
If tabTitle = "" Then
tabTitle = tabP.Title
End If
Dim shortTitle As String = ""
If Me.InterfaceControl.Info.RenderingEngine = RenderingEngine.Gecko Then
@@ -151,20 +157,43 @@ Namespace Connection
End If
End If
tabP.Title = tabTitle & " - " & shortTitle
If Me.tabTitle <> "" Then
tabP.Title = tabTitle & " - " & shortTitle
Else
tabP.Title = shortTitle
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.WarningMsg, "wBrowser_DocumentTitleChanged (Connection.Protocol.HTTPBase) failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strHttpDocumentTileChangeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Enums"
Public Enum RenderingEngine
<Description("Internet Explorer")> _
<LocalizedDescription("strHttpInternetExplorer")> _
IE = 1
<Description("Gecko (Firefox)")> _
<LocalizedDescription("strHttpGecko")> _
Gecko = 2
End Enum
Private Enum NWMF
NWMF_UNLOADING = &H1
NWMF_USERINITED = &H2
NWMF_FIRST = &H4
NWMF_OVERRIDEKEY = &H8
NWMF_SHOWHELP = &H10
NWMF_HTMLDIALOG = &H20
NWMF_FROMDIALOGCHILD = &H40
NWMF_USERREQUESTED = &H80
NWMF_USERALLOWED = &H100
NWMF_FORCEWINDOW = &H10000
NWMF_FORCETAB = &H20000
NWMF_SUGGESTWINDOW = &H40000
NWMF_SUGGESTTAB = &H80000
NWMF_INACTIVETAB = &H100000
End Enum
#End Region
End Class
End Namespace
End Namespace

View File

@@ -1,5 +1,5 @@
Imports System.Windows.Forms
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Protocol

View File

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

View File

@@ -1,8 +1,6 @@
Imports mRemote.App.Native
Imports mRemoteNG.App.Native
Imports System.Threading
Imports Microsoft.Win32
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Protocol
@@ -112,12 +110,11 @@ Namespace Connection
IntAppHandle = IntAppProcess.MainWindowHandle
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strIntAppStuff, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "--- IntApp Stuff ---", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Handle: " & IntAppHandle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Title: " & IntAppProcess.MainWindowTitle, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "IntApp Handle: " & Me.InterfaceControl.Parent.Handle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppHandle, IntAppHandle.ToString), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppTitle, IntAppProcess.MainWindowTitle), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strIntAppParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
SetParent(Me.IntAppHandle, Me.InterfaceControl.Parent.Handle)
SetWindowLong(Me.IntAppHandle, 0, WS_VISIBLE)
@@ -128,7 +125,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect" & vbNewLine & ex.Message)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
@@ -138,7 +135,7 @@ Namespace Connection
Try
SetForegroundWindow(IntAppHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Focus (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -146,7 +143,7 @@ Namespace Connection
Try
MoveWindow(IntAppHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), Me.InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), Me.InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Resize (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -156,7 +153,7 @@ Namespace Connection
IntAppProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Killing IntApp Process failed (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppKillFailed & vbNewLine & ex.Message, True)
End Try
Try
@@ -164,7 +161,7 @@ Namespace Connection
IntAppProcess.Dispose()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Dispose of IntApp process failed (Connection.Protocol.IntApp)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strIntAppDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()

View File

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

View File

@@ -1,17 +1,19 @@
Imports mRemote.App.Native
Imports mRemoteNG.App.Native
Imports System.Threading
Imports Microsoft.Win32
Imports System.Drawing
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Namespace Protocol
Public Class PuttyBase
Inherits Connection.Protocol.Base
#Region "Constants"
Private Const IDM_RECONF As Int32 = &H50 ' PuTTY Settings Menu ID
#End Region
#Region "Private Properties"
Private PuttyProcessStartInfo As New ProcessStartInfo()
Private Arguments As String
#End Region
#Region "Public Properties"
@@ -101,50 +103,52 @@ Namespace Connection
Public Overrides Function Connect() As Boolean
Try
PuttyProcessStartInfo.FileName = _PuttyPath
PuttyProcess = New Process
Select Case Me._PuttyProtocol
Case Putty_Protocol.raw
Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.rlogin
Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.ssh
Dim UserArg As String = ""
Dim PassArg As String = ""
With PuttyProcess.StartInfo
.FileName = _PuttyPath
If My.Settings.EmptyCredentials = "windows" Then
UserArg = " -l """ & Environment.UserName & """"
ElseIf My.Settings.EmptyCredentials = "custom" Then
UserArg = " -l """ & My.Settings.DefaultUsername & """"
PassArg = " -pw """ & Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey) & """"
End If
Select Case Me._PuttyProtocol
Case Putty_Protocol.raw
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.rlogin
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.ssh
Dim UserArg As String = ""
Dim PassArg As String = ""
If Me.InterfaceControl.Info.Username <> "" Then
UserArg = " -l """ & Me.InterfaceControl.Info.Username & """"
End If
If My.Settings.EmptyCredentials = "windows" Then
UserArg = " -l """ & Environment.UserName & """"
ElseIf My.Settings.EmptyCredentials = "custom" Then
UserArg = " -l """ & My.Settings.DefaultUsername & """"
PassArg = " -pw """ & Security.Crypt.Decrypt(My.Settings.DefaultPassword, App.Info.General.EncryptionKey) & """"
End If
If Me.InterfaceControl.Info.Password <> "" Then
PassArg = " -pw """ & Me.InterfaceControl.Info.Password & """"
End If
If Me.InterfaceControl.Info.Username <> "" Then
UserArg = " -l """ & Me.InterfaceControl.Info.Username & """"
End If
Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -" & Me._PuttySSHVersion & UserArg & PassArg & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.telnet
Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.serial
Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
End Select
If Me.InterfaceControl.Info.Password <> "" Then
PassArg = " -pw """ & Me.InterfaceControl.Info.Password & """"
End If
'REMOVE IN RELEASE!
'mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Arguments: " & Arguments, True)
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -" & Me._PuttySSHVersion & UserArg & PassArg & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.telnet
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
Case Putty_Protocol.serial
.Arguments = "-load " & """" & Me.InterfaceControl.Info.PuttySession & """" & " -" & Me._PuttyProtocol.ToString & " -P " & Me.InterfaceControl.Info.Port & " """ & Me.InterfaceControl.Info.Hostname & """"
End Select
PuttyProcessStartInfo.Arguments = Arguments
'REMOVE IN RELEASE!
'mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Arguments: " & .Arguments, True)
End With
PuttyProcess = Process.Start(PuttyProcessStartInfo)
PuttyProcess.EnableRaisingEvents = True
PuttyProcess.WaitForInputIdle()
AddHandler PuttyProcess.Exited, AddressOf ProcessExited
PuttyProcess.Start()
PuttyProcess.WaitForInputIdle()
Dim TryCount As Integer = 0
Do Until PuttyProcess.MainWindowHandle <> IntPtr.Zero And Me.InterfaceControl.Handle <> IntPtr.Zero And Me.PuttyProcess.MainWindowTitle <> "Default IME"
If TryCount >= My.Settings.MaxPuttyWaitTime * 2 Then
@@ -161,31 +165,29 @@ Namespace Connection
PuttyHandle = PuttyProcess.MainWindowHandle
mC.AddMessage(Messages.MessageClass.InformationMsg, "--- PuTTY Stuff ---", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strPuttyStuff, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Handle: " & PuttyHandle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "PuTTY Title: " & PuttyProcess.MainWindowTitle, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, "Panel Handle: " & Me.InterfaceControl.Parent.Handle.ToString, True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyHandle, PuttyHandle.ToString), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyTitle, PuttyProcess.MainWindowTitle), True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strPuttyParentHandle, Me.InterfaceControl.Parent.Handle.ToString), True)
SetParent(Me.PuttyHandle, Me.InterfaceControl.Parent.Handle)
SetWindowLong(Me.PuttyHandle, 0, WS_VISIBLE)
ShowWindow(Me.PuttyHandle, SW_SHOWMAXIMIZED)
SetParent(PuttyHandle, InterfaceControl.Parent.Handle)
ShowWindow(PuttyHandle, SW_SHOWMAXIMIZED)
Resize()
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Connect" & vbNewLine & ex.Message)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyConnectionFailed & vbNewLine & ex.Message)
Return False
End Try
End Function
Public Overrides Sub Focus()
Try
SetForegroundWindow(PuttyHandle)
'SetForegroundWindow(PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Focus (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -193,7 +195,7 @@ Namespace Connection
Try
MoveWindow(PuttyHandle, -SystemInformation.FrameBorderSize.Width, -(SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height), Me.InterfaceControl.Width + (SystemInformation.FrameBorderSize.Width * 2), Me.InterfaceControl.Height + SystemInformation.CaptionHeight + (SystemInformation.FrameBorderSize.Height * 2), True)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Resize (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyResizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -203,17 +205,26 @@ Namespace Connection
PuttyProcess.Kill()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Killing Putty Process failed (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyKillFailed & vbNewLine & ex.Message, True)
End Try
Try
PuttyProcess.Dispose()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Dispose of Putty process failed (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyDisposeFailed & vbNewLine & ex.Message, True)
End Try
MyBase.Close()
End Sub
Public Sub ShowSettingsDialog()
Try
PostMessage(Me.PuttyHandle, WM_SYSCOMMAND, IDM_RECONF, 0)
SetForegroundWindow(Me.PuttyHandle)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyShowSettingsDialogFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Public Shared Methods"
@@ -233,7 +244,7 @@ Namespace Connection
Return arrKeys
Catch ex As Exception
App.Runtime.mC.AddMessage(Messages.MessageClass.WarningMsg, "Couldn't get Putty sessions" & vbNewLine & ex.Message, True)
App.Runtime.mC.AddMessage(Messages.MessageClass.WarningMsg, My.Resources.strPuttyGetSessionsFailed & vbNewLine & ex.Message, True)
Return Nothing
End Try
End Function
@@ -247,9 +258,9 @@ Namespace Connection
p = Process.Start(pSI)
p.WaitForExit()
mRemote.Connection.PuttySession.PuttySessions = GetSessions()
mRemoteNG.Connection.PuttySession.PuttySessions = GetSessions()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't Start Putty (Connection.Protocol.PuttyBase)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strPuttyStartFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region

View File

@@ -3,7 +3,8 @@ Imports System.Threading
Imports AxMSTSCLib
Imports EOLWTSCOM
Imports System.ComponentModel
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -33,15 +34,14 @@ Namespace Connection
#End Region
#Region "Private Declarations"
Private rd As MSTSCLib.IMsRdpClient5
Private RDP As AxMsRdpClient5
Private RDP As AxMsRdpClient6NotSafeForScripting
Private Info As Connection.Info
Private RDPVersion As Version
#End Region
#Region "Public Methods"
Public Sub New()
Me.Control = New AxMsRdpClient5
Me.Control = New AxMsRdpClient6NotSafeForScripting
End Sub
Public Overrides Function SetProps() As Boolean
@@ -59,11 +59,10 @@ Namespace Connection
System.Windows.Forms.Application.DoEvents()
Loop
Catch comEx As System.Runtime.InteropServices.COMException
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Couldn't create RDP control, please check mRemote requirements." & vbNewLine & vbNewLine & comEx.Message)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpControlCreationFailed & vbNewLine & vbNewLine & comEx.Message)
RDP.Dispose()
Return False
End Try
Me.RDPVersion = New Version(RDP.Version)
@@ -76,10 +75,11 @@ Namespace Connection
'not user changeable
RDP.AdvancedSettings2.GrabFocusOnConnect = True
RDP.AdvancedSettings3.EnableAutoReconnect = True
RDP.AdvancedSettings3.MaxReconnectAttempts = 3
RDP.AdvancedSettings3.MaxReconnectAttempts = My.Settings.RdpReconnectionCount
RDP.AdvancedSettings2.keepAliveInterval = 60000 'in milliseconds (10.000 = 10 seconds)
RDP.AdvancedSettings5.AuthenticationLevel = 0
RDP.AdvancedSettings.EncryptionEnabled = 1
RDP.AdvancedSettings7.EnableCredSspSupport = True
RDP.AdvancedSettings2.overallConnectionTimeout = 20
@@ -90,17 +90,17 @@ Namespace Connection
Me.SetRedirectKeys()
Me.SetRedirection()
Me.SetAuthenticationLevel()
Me.SetTSGateway()
Me.SetRDGateway()
RDP.ColorDepth = Int(Me.Info.Colors)
Me.SetPerformanceFlags()
RDP.ConnectingText = Language.Base.Connecting
RDP.ConnectingText = My.Resources.strConnecting
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetProps failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -113,7 +113,7 @@ Namespace Connection
MyBase.Connect()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Opening connection failed!" & vbNewLine & ex.Message)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpConnectionOpenFailed & vbNewLine & ex.Message)
End Try
Return False
@@ -123,7 +123,7 @@ Namespace Connection
Try
RDP.Disconnect()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP Disconnect failed, trying to close" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpDisconnectFailed & vbNewLine & ex.Message, True)
MyBase.Close()
End Try
End Sub
@@ -132,7 +132,7 @@ Namespace Connection
Try
Me.Fullscreen = Not Me.Fullscreen
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP ToggleFullscreen failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpToggleFullscreenFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -140,7 +140,7 @@ Namespace Connection
Try
Me.SmartSize = Not Me.SmartSize
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP ToggleSmartSize failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpToggleSmartSizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -150,21 +150,35 @@ Namespace Connection
RDP.Focus()
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP Focus failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
#Region "Private Methods"
Private Sub SetTSGateway()
Private Sub SetRDGateway()
Try
'If RDP.TransportSettings.GatewayIsSupported = 1 Then
' MsgBox("TS Gateway supported")
'Else
' MsgBox("TS Gateway unsupported")
'End If
If RDP.TransportSettings.GatewayIsSupported = 1 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strRdpGatewayIsSupported, True)
If Me.Info.RDGatewayUsageMethod <> RDGatewayUsageMethod.Never Then
RDP.TransportSettings2.GatewayProfileUsageMethod = 1
RDP.TransportSettings.GatewayUsageMethod = Me.Info.RDGatewayUsageMethod
RDP.TransportSettings.GatewayHostname = Me.Info.RDGatewayHostname
If Me.Info.RDGatewayUseConnectionCredentials = RDGatewayUseConnectionCredentials.Yes Then
RDP.TransportSettings.GatewayUsername = Me.Info.Username
RDP.TransportSettings.GatewayPassword = Me.Info.Password
RDP.TransportSettings.GatewayDomain = Me.Info.Domain
Else
RDP.TransportSettings.GatewayUsername = Me.Info.RDGatewayUsername
RDP.TransportSettings.GatewayPassword = Me.Info.RDGatewayPassword
RDP.TransportSettings.GatewayDomain = Me.Info.RDGatewayDomain
End If
End If
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, My.Resources.strRdpGatewayNotSupported, True)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetTSGateway failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetGatewayFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -172,31 +186,31 @@ Namespace Connection
Try
If (Me.Force And Connection.Info.Force.UseConsoleSession) = Connection.Info.Force.UseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.0", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = True
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.1", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = True
End If
ElseIf (Me.Force And Connection.Info.Force.DontUseConsoleSession) = Connection.Info.Force.DontUseConsoleSession Then
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.0", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = False
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.1", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = False
End If
Else
If RDPVersion < Versions.RDC61 Then
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.0", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.0"), True)
RDP.AdvancedSettings2.ConnectToServerConsole = Me.Info.UseConsoleSession
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, "Setting Console switch for RDC 6.1", True)
mC.AddMessage(Messages.MessageClass.InformationMsg, String.Format(My.Resources.strRdpSetConsoleSwitch, "6.1"), True)
RDP.AdvancedSettings6.ConnectToAdministerServer = Me.Info.UseConsoleSession
End If
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetUseConsoleSession failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetConsoleSessionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -239,7 +253,7 @@ Namespace Connection
RDP.Domain = _dom
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetCredentials failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetCredentialsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -270,7 +284,7 @@ Namespace Connection
RDP.DesktopHeight = Resolutions.Items(Int(Me.Info.Resolution)).Height
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetResolution failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetResolutionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -280,7 +294,7 @@ Namespace Connection
RDP.AdvancedSettings2.RDPPort = Me.Info.Port
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetPort failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPortFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -293,7 +307,7 @@ Namespace Connection
RDP.FullScreen = True
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetRedirectKeys failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetRedirectKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -305,7 +319,7 @@ Namespace Connection
RDP.AdvancedSettings2.RedirectSmartCards = Me.Info.RedirectSmartCards
RDP.SecuredSettings2.AudioRedirectionMode = Int(Me.Info.RedirectSound)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetRedirection failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetRedirectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -320,9 +334,17 @@ Namespace Connection
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.DisableWallpaper)
End If
RDP.AdvancedSettings2.PerformanceFlags = pFlags
If Me.Info.EnableFontSmoothing Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.EnableFontSmoothing)
End If
If Me.Info.EnableDesktopComposition Then
pFlags += Int(Connection.Protocol.RDP.RDPPerformanceFlags.EnableDesktopComposition)
End If
RDP.AdvancedSettings.PerformanceFlags = pFlags
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetPerformanceFlags failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPerformanceFlagsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -330,7 +352,7 @@ Namespace Connection
Try
RDP.AdvancedSettings5.AuthenticationLevel = Me.Info.RDPAuthenticationLevel
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetAuthenticationLevel failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetAuthenticationLevelFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -342,7 +364,7 @@ Namespace Connection
AddHandler RDP.OnDisconnected, AddressOf RDPEvent_OnDisconnected
AddHandler RDP.OnLeaveFullScreenMode, AddressOf RDPEvent_OnLeaveFullscreenMode
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP SetEventHandlers failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -353,7 +375,8 @@ Namespace Connection
End Sub
Private Sub RDPEvent_OnDisconnected(ByVal sender As Object, ByVal e As AxMSTSCLib.IMsTscAxEvents_OnDisconnectedEvent)
MyBase.Event_Disconnected(Me, e.discReason)
Dim Reason As String = RDP.GetErrorDescription(e.discReason, RDP.ExtendedDisconnectReason)
MyBase.Event_Disconnected(Me, e.discReason & vbCrLf & Reason)
If My.Settings.ReconnectOnDisconnect Then
ReconnectGroup = New ReconnectGroup
@@ -393,46 +416,52 @@ Namespace Connection
End Enum
Public Enum RDPColors
<Description(Language.Base.RDP256Colors)> _
<LocalizedDescription("strRDP256Colors")> _
Colors256 = 8
<Description("16 Bit")> _
<LocalizedDescription("strRDP32768Colors")> _
Colors15Bit = 15
<LocalizedDescription("strRDP65536Colors")> _
Colors16Bit = 16
<Description("24 Bit")> _
<LocalizedDescription("strRDP16777216Colors")> _
Colors24Bit = 24
<Description("32 Bit")> _
<LocalizedDescription("strRDP4294967296Colors")> _
Colors32Bit = 32
End Enum
Public Enum RDPSounds
<Description(Language.Base.RDPSoundBringToThisComputer)> _
<LocalizedDescription("strRDPSoundBringToThisComputer")> _
BringToThisComputer = 0
<Description(Language.Base.RDPSoundLeaveAtRemoteComputer)> _
<LocalizedDescription("strRDPSoundLeaveAtRemoteComputer")> _
LeaveAtRemoteComputer = 1
<Description(Language.Base.RDPSoundDoNotPlay)> _
<LocalizedDescription("strRDPSoundDoNotPlay")> _
DoNotPlay = 2
End Enum
Private Enum RDPPerformanceFlags
<Description("Disable Wallpaper")> _
DisableWallpaper = 1
<Description("Disable Full Window drag")> _
DisableFullWindowDrag = 2
<Description("Disable Menu Animations")> _
DisableMenuAnimations = 4
<Description("Disable Themes")> _
DisableThemes = 8
<Description("Disable Cursor Shadow")> _
DisableCursorShadow = 20
<Description("Disable Cursor blinking")> _
DisableCursorBlinking = 40
<Description("strRDPDisableWallpaper")> _
DisableWallpaper = &H1
<Description("strRDPDisableFullWindowdrag")> _
DisableFullWindowDrag = &H2
<Description("strRDPDisableMenuAnimations")> _
DisableMenuAnimations = &H4
<Description("strRDPDisableThemes")> _
DisableThemes = &H8
<Description("strRDPDisableCursorShadow")> _
DisableCursorShadow = &H20
<Description("strRDPDisableCursorblinking")> _
DisableCursorBlinking = &H40
<Description("strRDPEnableFontSmoothing")> _
EnableFontSmoothing = &H80
<Description("strRDPEnableDesktopComposition")> _
EnableDesktopComposition = &H100
End Enum
Public Enum RDPResolutions
<Description(Language.Base.RDPFitToPanel)> _
<LocalizedDescription("strRDPFitToPanel")> _
FitToWindow
<Description(Language.Base.Fullscreen)> _
<LocalizedDescription("strFullscreen")> _
Fullscreen
<Description(Language.Base.RDPSmartSize)> _
<LocalizedDescription("strRDPSmartSize")> _
SmartSize
<Description("640x480")> _
Res640x480
@@ -473,13 +502,29 @@ Namespace Connection
End Enum
Public Enum AuthenticationLevel
<Description(Language.Base.AlwaysConnectEvenIfAuthFails)> _
<LocalizedDescription("strAlwaysConnectEvenIfAuthFails")> _
NoAuth = 0
<Description(Language.Base.DontConnectWhenAuthFails)> _
<LocalizedDescription("strDontConnectWhenAuthFails")> _
AuthRequired = 1
<Description(Language.Base.WarnIfAuthFails)> _
<LocalizedDescription("strWarnIfAuthFails")> _
WarnOnFailedAuth = 2
End Enum
Public Enum RDGatewayUsageMethod
<LocalizedDescription("strNever")> _
Never = 0 ' TSC_PROXY_MODE_NONE_DIRECT
<LocalizedDescription("strAlways")> _
Always = 1 ' TSC_PROXY_MODE_DIRECT
<LocalizedDescription("strDetect")> _
Detect = 2 ' TSC_PROXY_MODE_DETECT
End Enum
Public Enum RDGatewayUseConnectionCredentials
<LocalizedDescription("strUseDifferentUsernameAndPassword")> _
No = 0
<LocalizedDescription("strUseSameUsernameAndPassword")> _
Yes = 1
End Enum
#End Region
#Region "Resolution"
@@ -526,7 +571,7 @@ Namespace Connection
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP AddResolutions failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddResolutionsFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -553,7 +598,7 @@ Namespace Connection
Return nRes
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "RDP Add (Resolutions) failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddResolutionFailed & vbNewLine & ex.Message, True)
End Try
Return Nothing
@@ -581,7 +626,7 @@ Namespace Connection
Return True
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "OpenConnection failed (TerminalSessions)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpOpenConnectionFailed & vbNewLine & ex.Message, True)
End Try
Return False
@@ -592,7 +637,7 @@ Namespace Connection
oWTSCOM.WTSCloseServer(ServerHandle)
ServerHandle = 0
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnection failed (TerminalSessions)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpCloseConnectionFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -615,14 +660,14 @@ Namespace Connection
If SessionUser <> "" Then
If SessionState = 0 Then
colSessions.Add(SessionID, Language.Base.Active, SessionUser, SessionName)
colSessions.Add(SessionID, My.Resources.strActive, SessionUser, SessionName)
Else
colSessions.Add(SessionID, Language.Base.Inactive, SessionUser, SessionName)
colSessions.Add(SessionID, My.Resources.strInactive, SessionUser, SessionName)
End If
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetSessions failed (TerminalSessions)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpGetSessionsFailed & vbNewLine & ex.Message, True)
End Try
Return colSessions
@@ -661,7 +706,7 @@ Namespace Connection
List.Add(newSes)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Add Session failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpAddSessionFailed & vbNewLine & ex.Message, True)
End Try
Return newSes
@@ -717,71 +762,27 @@ Namespace Connection
End Class
#End Region
#Region "Disconnection Errors"
Public Class DisconnectionErrors
Public Shared Code(3080) As String
Public Shared Function GetError(ByVal id As Integer) As String
Try
Code(1) = "Local Disconnection (not an error)"
Code(2) = "Remote Disconnection by user (not an error)"
Code(3) = "Remote Disconnection by server (not an error)"
Code(260) = "DNS Lookup Failed"
Code(262) = "Out of memory condition"
Code(264) = "Connection Timed Out"
Code(516) = "WinSock socket connect failed"
Code(518) = "Out of memory condition"
Code(520) = "Host Not Found error (GetHostByName failed)."
Code(772) = "WinSock send call failed"
Code(774) = "Out of memory condition"
Code(776) = "Invalid IP address specified"
Code(1028) = "WinSock recv call failed"
Code(1030) = "Invalid Security Data"
Code(1032) = "Internal error (code 1032)"
Code(1286) = "Invalid Encryption Method"
Code(1288) = "DNS Lookup failed"
Code(1540) = "GetHostByName call failed"
Code(1542) = "Invalid server security data"
Code(1544) = "Internal Error (timer error)"
Code(1796) = "Timeout occurred"
Code(1798) = "Failed to unpack server certificate"
Code(2052) = "Bad IP address specified"
Code(2054) = "Internal Security Error"
Code(2308) = "Socket closed"
Code(2310) = "Internal Security Error"
Code(2566) = "Internal Security Error"
Code(2822) = "Encryption error"
Code(2824) = "Your session was taken by someone else"
Code(3078) = "Decryption error"
Return (Code(id))
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetError failed (DisconnectionErrors)" & vbNewLine & ex.Message, True)
End Try
Return ""
End Function
End Class
#Region "Fatal Errors"
Public Class FatalErrors
Public Shared Code(110) As String
Protected Shared _description() As String = { _
0 = My.Resources.strRdpErrorUnknown, _
1 = My.Resources.strRdpErrorCode1, _
2 = My.Resources.strRdpErrorOutOfMemory, _
3 = My.Resources.strRdpErrorWindowCreation, _
4 = My.Resources.strRdpErrorCode2, _
5 = My.Resources.strRdpErrorCode3, _
6 = My.Resources.strRdpErrorCode4, _
7 = My.Resources.strRdpErrorConnection, _
100 = My.Resources.strRdpErrorWinsock _
}
Public Shared Function GetError(ByVal id As String) As String
Try
Code(0) = "An unknown error has occurred"
Code(1) = "Internal error code 1"
Code(2) = "Out of memory error"
Code(3) = "Window creation error"
Code(4) = "Internal error code 2"
Code(5) = "Internal error code 3 (Invalid state)"
Code(100) = "Winsock initialization error"
Return (Code(id))
Return (_description(id))
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "GetError failed (FatalErrors)" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpErrorGetFailure & vbNewLine & ex.Message, True)
Return String.Format(My.Resources.strRdpErrorUnknown, id)
End Try
Return ""
End Function
End Class
#End Region

View File

@@ -1,6 +1,6 @@
Imports mRemote.App.Runtime
Imports AxViewerX
Imports mRemoteNG.App.Runtime
Imports System.ComponentModel
Imports mRemoteNG.Tools.LocalizedAttributes
Namespace Connection
Namespace Protocol
@@ -10,22 +10,10 @@ Namespace Connection
#Region "Properties"
Public Property SmartSize() As Boolean
Get
If VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_NONE Then
Return False
Else
Return True
End If
Return VNC.Scaled
End Get
Set(ByVal value As Boolean)
If value = False Then
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_NONE
Else
If Info.VNCSmartSizeMode = SmartSizeMode.SmartSFree Then
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_FREE
Else
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_ASPECT
End If
End If
VNC.Scaled = value
End Set
End Property
@@ -40,14 +28,13 @@ Namespace Connection
#End Region
#Region "Private Declarations"
Private VNC As AxCSC_ViewerXControl
Private VNC As VncSharp.RemoteDesktop
Private Info As Connection.Info
#End Region
#Region "Public Methods"
Public Sub New()
Me.Control = New AxCSC_ViewerXControl
SetupLicense(Me.Control)
Me.Control = New VncSharp.RemoteDesktop
End Sub
Public Overrides Function SetProps() As Boolean
@@ -58,88 +45,74 @@ Namespace Connection
Info = Me.InterfaceControl.Info
VNC.BeginInit()
VNC.VncPort = Me.Info.Port
VNC.Port = Me.Info.Port
VNC.HostIP = Me.Info.Hostname
'If Info.VNCCompression <> Compression.CompNone Then
' VNC.JPEGCompression = True
' VNC.JPEGCompressionLevel = Info.VNCCompression
'End If
If Info.VNCCompression <> Compression.CompNone Then
VNC.JPEGCompression = True
VNC.JPEGCompressionLevel = Info.VNCCompression
End If
'Select Case Info.VNCEncoding
' Case Encoding.EncCorre
' VNC.Encoding = ViewerX.VNCEncoding.RFB_CORRE
' Case Encoding.EncHextile
' VNC.Encoding = ViewerX.VNCEncoding.RFB_HEXTILE
' Case Encoding.EncRaw
' VNC.Encoding = ViewerX.VNCEncoding.RFB_RAW
' Case Encoding.EncRRE
' VNC.Encoding = ViewerX.VNCEncoding.RFB_RRE
' Case Encoding.EncTight
' VNC.Encoding = ViewerX.VNCEncoding.RFB_TIGHT
' Case Encoding.EncZlib
' VNC.Encoding = ViewerX.VNCEncoding.RFB_ZLIB
' Case Encoding.EncZLibHex
' VNC.Encoding = ViewerX.VNCEncoding.RFB_ZLIBHEX
' Case Encoding.EncZRLE
' VNC.Encoding = ViewerX.VNCEncoding.RFB_ZRLE
'End Select
Select Case Info.VNCEncoding
Case Encoding.EncCorre
VNC.Encoding = ViewerX.VNCEncoding.RFB_CORRE
Case Encoding.EncHextile
VNC.Encoding = ViewerX.VNCEncoding.RFB_HEXTILE
Case Encoding.EncRaw
VNC.Encoding = ViewerX.VNCEncoding.RFB_RAW
Case Encoding.EncRRE
VNC.Encoding = ViewerX.VNCEncoding.RFB_RRE
Case Encoding.EncTight
VNC.Encoding = ViewerX.VNCEncoding.RFB_TIGHT
Case Encoding.EncZlib
VNC.Encoding = ViewerX.VNCEncoding.RFB_ZLIB
Case Encoding.EncZLibHex
VNC.Encoding = ViewerX.VNCEncoding.RFB_ZLIBHEX
Case Encoding.EncZRLE
VNC.Encoding = ViewerX.VNCEncoding.RFB_ZRLE
End Select
'If Info.VNCAuthMode = AuthMode.AuthWin Then
' VNC.LoginType = ViewerX.ViewerLoginType.VLT_MSWIN
' VNC.MsUser = Me.Info.Username
' VNC.MsDomain = Me.Info.Domain
' VNC.MsPassword = Me.Info.Password
'Else
' VNC.LoginType = ViewerX.ViewerLoginType.VLT_VNC
' VNC.Password = Me.Info.Password
'End If
If Info.VNCAuthMode = AuthMode.AuthWin Then
VNC.LoginType = ViewerX.ViewerLoginType.VLT_MSWIN
VNC.MsUser = Me.Info.Username
VNC.MsDomain = Me.Info.Domain
VNC.MsPassword = Me.Info.Password
Else
VNC.LoginType = ViewerX.ViewerLoginType.VLT_VNC
VNC.Password = Me.Info.Password
End If
'Select Case Info.VNCProxyType
' Case ProxyType.ProxyNone
' VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_NONE
' Case ProxyType.ProxyHTTP
' VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_HTTP
' Case ProxyType.ProxySocks5
' VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_SOCKS5
' Case ProxyType.ProxyUltra
' VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_ULTRA_REPEATER
'End Select
Select Case Info.VNCProxyType
Case ProxyType.ProxyNone
VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_NONE
Case ProxyType.ProxyHTTP
VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_HTTP
Case ProxyType.ProxySocks5
VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_SOCKS5
Case ProxyType.ProxyUltra
VNC.ProxyType = ViewerX.ConnectionProxyType.VPT_ULTRA_REPEATER
End Select
'If Info.VNCProxyType <> ProxyType.ProxyNone Then
' VNC.ProxyIP = Info.VNCProxyIP
' VNC.ProxyPort = Info.VNCProxyPort
' VNC.ProxyUser = Info.VNCProxyUsername
' VNC.ProxyPassword = Info.VNCProxyPassword
'End If
If Info.VNCProxyType <> ProxyType.ProxyNone Then
VNC.ProxyIP = Info.VNCProxyIP
VNC.ProxyPort = Info.VNCProxyPort
VNC.ProxyUser = Info.VNCProxyUsername
VNC.ProxyPassword = Info.VNCProxyPassword
End If
'If Info.VNCColors = Colors.Col8Bit Then
' VNC.RestrictPixel = True
'Else
' VNC.RestrictPixel = False
'End If
If Info.VNCColors = Colors.Col8Bit Then
VNC.RestrictPixel = True
Else
VNC.RestrictPixel = False
End If
Select Case Info.VNCSmartSizeMode
Case SmartSizeMode.SmartSNo
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_NONE
Case SmartSizeMode.SmartSFree
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_FREE
Case SmartSizeMode.SmartSAspect
VNC.StretchMode = ViewerX.ScreenStretchMode.SSM_ASPECT
End Select
VNC.ViewOnly = Info.VNCViewOnly
VNC.ConnectingText = Language.Base.Connecting & " (SmartCode VNC viewer)"
VNC.DisconnectedText = Language.Base.Disconnected
VNC.MessageBoxes = False
VNC.EndInit()
'VNC.ConnectingText = My.Resources.strInheritConnecting & " (SmartCode VNC viewer)"
'VNC.DisconnectedText = My.Resources.strInheritDisconnected
'VNC.MessageBoxes = False
'VNC.EndInit()
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC SetProps failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSetPropsFailed & vbNewLine & ex.Message, True)
Return False
End Try
End Function
@@ -148,9 +121,9 @@ Namespace Connection
Me.SetEventHandlers()
Try
VNC.ConnectAsync()
VNC.Connect(Me.Info.Hostname, Me.Info.VNCViewOnly, Info.VNCSmartSizeMode <> SmartSizeMode.SmartSNo)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Opening connection failed" & vbNewLine & ex.Message)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncConnectionOpenFailed & vbNewLine & ex.Message)
Return False
End Try
@@ -161,7 +134,7 @@ Namespace Connection
Try
VNC.Disconnect()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC Disconnect failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncConnectionDisconnectFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -169,12 +142,12 @@ Namespace Connection
Try
Select Case Keys
Case SpecialKeys.CtrlAltDel
VNC.SendCAD()
VNC.SendSpecialKeys(SpecialKeys.CtrlAltDel)
Case SpecialKeys.CtrlEsc
VNC.SendCtrlEsq()
VNC.SendSpecialKeys(SpecialKeys.CtrlEsc)
End Select
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC SendSpecialKeys failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSendSpecialKeysFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -183,7 +156,7 @@ Namespace Connection
SmartSize = Not SmartSize
RefreshScreen()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC ToggleSmartSize failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncToggleSmartSizeFailed & vbNewLine & ex.Message, True)
End Try
End Sub
@@ -191,30 +164,30 @@ Namespace Connection
Try
ViewOnly = Not ViewOnly
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC ToggleViewOnly failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncToggleViewOnlyFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Sub StartChat()
Try
If VNC.Capabilities.Chat = True Then
VNC.OpenChat()
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, "VNC Server doesn't support chat")
End If
'If VNC.Capabilities.Chat = True Then
' VNC.OpenChat()
'Else
' mC.AddMessage(Messages.MessageClass.InformationMsg, "VNC Server doesn't support chat")
'End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC StartChat failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncStartChatFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Sub StartFileTransfer()
Try
If VNC.Capabilities.FileTransfer = True Then
VNC.OpenFileTransfer()
Else
mC.AddMessage(Messages.MessageClass.InformationMsg, "VNC Server doesn't support file transfers")
End If
'If VNC.Capabilities.FileTransfer = True Then
' VNC.OpenFileTransfer()
'Else
' mC.AddMessage(Messages.MessageClass.InformationMsg, "VNC Server doesn't support file transfers")
'End If
Catch ex As Exception
End Try
@@ -222,9 +195,9 @@ Namespace Connection
Public Sub RefreshScreen()
Try
VNC.RequestRefresh()
VNC.FullScreenUpdate()
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC RefreshScreen failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncRefreshFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -232,20 +205,14 @@ Namespace Connection
#Region "Private Methods"
Private Sub SetEventHandlers()
Try
AddHandler VNC.ConnectedEvent, AddressOf VNCEvent_Connected
AddHandler VNC.Disconnected, AddressOf VNCEvent_Disconnected
AddHandler VNC.ConnectComplete, AddressOf VNCEvent_Connected
AddHandler VNC.ConnectionLost, AddressOf VNCEvent_Disconnected
AddHandler mRemoteNG.frmMain.clipboardchange, AddressOf VNCEvent_ClipboardChanged
If Not String.IsNullOrEmpty(Info.Password) Then
VNC.GetPassword = AddressOf VNCEvent_Authenticate
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC SetEventHandlers failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub SetupLicense(ByVal vncCtrl As Control)
Try
Dim f As System.Reflection.FieldInfo
f = GetType(AxHost).GetField("licenseKey", Reflection.BindingFlags.NonPublic Or Reflection.BindingFlags.Instance)
f.SetValue(vncCtrl, "{072169039103041044176252035252117103057101225235137221179204110241121074}")
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "VNC SetupLicense failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strVncSetEventHandlersFailed & vbNewLine & ex.Message, True)
End Try
End Sub
#End Region
@@ -253,12 +220,21 @@ Namespace Connection
#Region "Private Events & Handlers"
Private Sub VNCEvent_Connected(ByVal sender As Object, ByVal e As EventArgs)
MyBase.Event_Connected(Me)
VNC.AutoScroll = Info.VNCSmartSizeMode = SmartSizeMode.SmartSNo
End Sub
Private Sub VNCEvent_Disconnected(ByVal sender As Object, ByVal e As EventArgs)
MyBase.Event_Disconnected(sender, e.ToString)
MyBase.Close()
End Sub
Private Sub VNCEvent_ClipboardChanged()
Me.VNC.FillServerClipboard()
End Sub
Private Function VNCEvent_Authenticate() As String
Return Info.Password
End Function
#End Region
#Region "Enums"
@@ -272,7 +248,7 @@ Namespace Connection
End Enum
Public Enum Compression
<Description(Language.Base.NoCompression)> _
<LocalizedDescription("strNoCompression")> _
CompNone = 99
<Description("0")> _
Comp0 = 0
@@ -316,36 +292,36 @@ Namespace Connection
End Enum
Public Enum AuthMode
<Description("VNC")> _
<LocalizedDescription("VNC")> _
AuthVNC
<Description("Windows")> _
<LocalizedDescription("Windows")> _
AuthWin
End Enum
Public Enum ProxyType
<Description(Language.Base.None)> _
<LocalizedDescription("strNone")> _
ProxyNone
<Description("HTTP")> _
<LocalizedDescription("strHttp")> _
ProxyHTTP
<Description("Socks 5")> _
<LocalizedDescription("strSocks5")> _
ProxySocks5
<Description("Ultra VNC Repeater")> _
<LocalizedDescription("strUltraVncRepeater")> _
ProxyUltra
End Enum
Public Enum Colors
<Description(Language.Base.Normal)> _
<LocalizedDescription("strNormal")> _
ColNormal
<Description("8-bit")> _
Col8Bit
End Enum
Public Enum SmartSizeMode
<Description(Language.Base.NoSmartSize)> _
<LocalizedDescription("strNoSmartSize")> _
SmartSNo
<Description(Language.Base.Free)> _
<LocalizedDescription("strFree")> _
SmartSFree
<Description(Language.Base.Aspect)> _
<LocalizedDescription("strAspect")> _
SmartSAspect
End Enum
#End Region

View File

@@ -1,4 +1,4 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Namespace Connection
Public Class QuickConnect
@@ -13,7 +13,7 @@ Namespace Connection
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickConnect History Exists failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strQuickConnectHistoryExistsFailed & vbNewLine & ex.Message, True)
End Try
Return False
@@ -23,7 +23,7 @@ Namespace Connection
Try
qBox.Items.Insert(0, Text)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickConnect History Add failed" & vbNewLine & ex.Message, True)
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strQuickConnectAddFailed & vbNewLine & ex.Message, True)
End Try
End Sub
End Class

View File

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

View File

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

View File

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

View File

@@ -1,601 +0,0 @@
Imports System.Threading.Thread
Imports System.IO
Namespace Easter
Public Class Snake
Public Class Game
Private Shared _Mode As GameMode
Public Shared Property Mode() As GameMode
Get
Return _Mode
End Get
Set(ByVal value As GameMode)
Dim prevMode As GameMode = _Mode
_Mode = value
GameModeChanged(value, prevMode)
End Set
End Property
Public Shared Player As Snake
Public Shared Apple As Food
Public Shared HighScores() As String
Public Shared Difficulty As Integer = 3
Public Shared GridLength As Long
Public Shared GridHeight As Long
Public Shared TileWidth As Long
Public Shared TileHeight As Long
Public Shared WithEvents imgField As PictureBox
Public Shared Sub CreatePicBox(ByVal Parent As Control)
'setup the picture box
Game.imgField = New PictureBox
Game.imgField.Parent = Parent
Game.imgField.Size = New Size(100, 100)
Game.imgField.Location = New Point((Parent.Width / 2) - (imgField.Width / 2), (Parent.Height / 2) - (imgField.Height / 2))
Game.imgField.BackColor = Color.Black
End Sub
Public Shared Sub SetupGame()
'setup the gamefield
GridLength = 20
GridHeight = 20
'setup the tiles
TileWidth = 5
TileHeight = 5
'create the player (snake)
Player = New Snake
Player.CreateSnake(3, 7, 10, Direction.Up)
'place some food to begin with
Apple = Food.PlaceFood()
End Sub
Private Shared Sub GameModeChanged(ByVal NewMode As GameMode, ByVal PreviousMode As GameMode)
Select Case NewMode
Case GameMode.Welcome
SetupGame()
RefreshGraphics()
Case GameMode.Playing
If PreviousMode = GameMode.Pause Or PreviousMode = GameMode.Welcome Then
MainLoop()
End If
Case GameMode.Pause
RefreshGraphics()
Case GameMode.GameOver
RefreshGraphics()
Case GameMode.Highscore
Highscore.CreateScoreFile()
HighScores = Highscore.GetScores()
Dim fsc() As String = Highscore.PutPlayerInHighScore(HighScores)
HighScores = fsc
RefreshGraphics()
End Select
End Sub
Public Shared Sub MainLoop()
Do While Mode = GameMode.Playing
CheckEat()
RefreshGraphics()
CheckLoose()
Select Case Game.Difficulty
Case 1
Sleep(200)
Case 2
Sleep(140)
Case 3
Sleep(80)
Case 4
Sleep(70)
Case 5
Sleep(60)
Case 6
Sleep(50)
End Select
Application.DoEvents()
If Mode = GameMode.Playing Then
Player.ChangeDirection()
Player.Move()
End If
Loop
End Sub
Public Shared Sub CheckEat()
If Player.Tiles(0).PosX = Apple.PosX And Player.Tiles(0).PosY = Apple.PosY Then
Player.AddTile()
Apple = Food.PlaceFood()
Player.Score += Difficulty + 10
End If
End Sub
Public Shared Sub CheckLoose()
'check edges
If Player.Tiles(0).PosX > GridLength - 1 _
Or Player.Tiles(0).PosX < 0 _
Or Player.Tiles(0).PosY > GridHeight - 1 _
Or Player.Tiles(0).PosY < 0 Then
Mode = GameMode.GameOver
End If
'check eat itself
For Each ti As Tile In Player.Tiles
If ti.PosX = Player.Tiles(0).PosX And ti.PosY = Player.Tiles(0).PosY And ti IsNot Player.Tiles(0) Then
Mode = GameMode.GameOver
End If
Next
End Sub
Public Shared Sub CheckKeyPress(ByVal Key As KeyEventArgs)
Select Case Key.KeyCode
Case Keys.Enter
If Mode = GameMode.Welcome Then
Mode = GameMode.Playing
ElseIf Mode = GameMode.Playing Then
Mode = GameMode.Pause
ElseIf Mode = GameMode.Pause Then
Mode = GameMode.Playing
ElseIf Mode = GameMode.GameOver Then
Mode = GameMode.Highscore
ElseIf Mode = GameMode.Highscore Then
Mode = GameMode.Welcome
End If
Case Keys.Escape
Game.Quit()
Case Keys.Up
If Mode = GameMode.Welcome Then
HigherDifficulty()
RefreshGraphics()
ElseIf Mode = GameMode.Playing Then
Player.ChangeDirectionRequest(Direction.Up)
End If
Case Keys.Right
If Mode = GameMode.Welcome Then
HigherDifficulty()
RefreshGraphics()
ElseIf Mode = GameMode.Playing Then
Player.ChangeDirectionRequest(Direction.Right)
End If
Case Keys.Down
If Mode = GameMode.Welcome Then
LowerDifficulty()
RefreshGraphics()
ElseIf Mode = GameMode.Playing Then
Player.ChangeDirectionRequest(Direction.Down)
End If
Case Keys.Left
If Mode = GameMode.Welcome Then
LowerDifficulty()
RefreshGraphics()
ElseIf Mode = GameMode.Playing Then
Player.ChangeDirectionRequest(Direction.Left)
End If
End Select
End Sub
Public Shared Sub HigherDifficulty()
If Difficulty < 6 Then
Difficulty += 1
End If
End Sub
Public Shared Sub LowerDifficulty()
If Difficulty > 1 Then
Difficulty -= 1
End If
End Sub
Public Shared Sub RefreshGraphics()
imgField.Refresh()
End Sub
Public Shared Sub SetBackgroundImage(ByVal Image As Image)
imgField.Image = Image
End Sub
Public Shared Sub Quit()
Mode = GameMode.Pause
imgField.FindForm.Close()
End Sub
Public Class Highscore
Public Shared Function PutPlayerInHighScore(ByVal scores() As String) As Array
Dim nSc(10) As String
Dim newScore As Boolean = False
For i As Integer = 0 To scores.Length - 1
Dim numSc As Integer = scores(i).Substring(scores(i).IndexOf("=") + 1)
If Player.Score > numSc Then
newScore = True
Player.Name = InputBox("Your name:", , Player.Name)
For j As Integer = 0 To 4
If j < i Then
nSc(j) = scores(j)
ElseIf j = i Then
nSc(j) = Player.Name & "=" & Player.Score
nSc(j + 1) = scores(j)
ElseIf j > i Then
nSc(j + 1) = scores(j)
End If
Next
Exit For
End If
Next
If newScore Then
Array.Resize(nSc, 5)
SaveScores(nSc)
Return nSc
Else
Return scores
End If
End Function
Public Shared Sub SaveScores(ByVal scores() As String)
Dim tW As TextWriter = New StreamWriter(My.Application.Info.DirectoryPath & "\Scores.fx")
Dim strSc As String = ""
For Each sc As String In scores
strSc &= sc & ";"
Next
tW.WriteLine(strSc)
tW.Close()
End Sub
Public Shared Function GetScores() As Array
Dim sc() As String
Dim tR As TextReader = New StreamReader(My.Application.Info.DirectoryPath & "\Scores.fx")
Dim strsc As String = tR.ReadLine
tR.Close()
sc = strsc.Split(";")
Array.Resize(sc, 5)
Return sc
End Function
Public Shared Sub CreateScoreFile()
If File.Exists(My.Application.Info.DirectoryPath & "\Scores.fx") = False Then
Dim tW As TextWriter = New StreamWriter(My.Application.Info.DirectoryPath & "\Scores.fx")
tW.WriteLine("FX=0;FX=0;FX=0;FX=0;FX=0")
tW.Close()
End If
End Sub
End Class
Public Class Paint
Private Shared g As Graphics
Private Shared w As Long
Private Shared h As Long
Public Shared m As Decimal = 1.0
Private Shared SmallFont As New Font("Verdana", 7 * m)
Private Shared BigFont As New Font("Verdana", 8 * m, FontStyle.Bold)
Private Shared CenterAlign As New StringFormat()
Public Shared Sub Draw(ByVal graphics As Graphics, ByVal width As Long, ByVal height As Long)
CenterAlign.LineAlignment = StringAlignment.Center
CenterAlign.Alignment = StringAlignment.Center
g = graphics
w = width
h = height
Select Case Game.Mode
Case GameMode.Welcome
DrawWelcome()
Case GameMode.Playing
DrawPlaying()
Case GameMode.Pause
DrawPlaying()
DrawPause()
Case GameMode.GameOver
DrawPlaying()
DrawGameOver()
Case GameMode.Highscore
DrawHighscore()
End Select
g.DrawRectangle(Pens.White, New Rectangle(0, 0, w - 1, h - 1))
End Sub
Private Shared Sub DrawWelcome()
g.DrawString("SnakeFX Lite", BigFont, Brushes.White, w / 2, (h / 2) - 10, CenterAlign)
Dim stars As String = ""
For i As Integer = 0 To Difficulty - 1
stars &= Chr(149)
Next
g.DrawString("Difficulty: " & stars, SmallFont, Brushes.LightGray, w / 2, (h / 2) + 10, CenterAlign)
End Sub
Private Shared Sub DrawPlaying()
g.DrawString("Score: " & Game.Player.Score, SmallFont, Brushes.DarkGray, 5 * m, 5 * m)
g.FillRectangle(Brushes.DarkGoldenrod, New Rectangle(Game.Apple.PosX * TileWidth * m, _
Game.Apple.PosY * TileHeight * m, _
TileWidth * m, _
TileHeight * m))
For Each ti As Tile In Game.Player.Tiles
g.FillRectangle(Brushes.GreenYellow, New Rectangle(ti.PosX * TileWidth * m, _
ti.PosY * TileHeight * m, _
TileWidth * m, _
TileHeight * m))
Next
End Sub
Private Shared Sub DrawPause()
g.DrawString("Pause", BigFont, Brushes.White, w / 2, h / 2, CenterAlign)
End Sub
Private Shared Sub DrawGameOver()
g.DrawString("Game Over", BigFont, Brushes.White, w / 2, h / 2, CenterAlign)
g.DrawString("Score: " & Game.Player.Score, SmallFont, Brushes.DarkGray, 5 * m, 5 * m)
End Sub
Private Shared Sub DrawHighscore()
g.DrawString("High Score", BigFont, Brushes.White, w / 2, 25, CenterAlign)
For i As Integer = 0 To Game.HighScores.Length - 1
g.DrawString(Game.HighScores(i).Replace("=", ": "), SmallFont, Brushes.LightGray, w / 2, (10 * i + 40) * m, CenterAlign)
Next
End Sub
End Class
Public Enum GameMode
Welcome = 1
Playing = 2
Pause = 3
GameOver = 4
Highscore = 5
End Enum
Private Shared Sub imgField_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles imgField.Paint
Game.Paint.Draw(e.Graphics, imgField.Width, imgField.Height)
End Sub
End Class
Public Class Snake
Public Tiles(-1) As Tile
Public Score As Long = 0
Public Name As String = ""
Public Sub CreateSnake(ByVal Length As Long, ByVal PosX As Integer, ByVal PosY As Integer, ByVal Direction As Direction)
Dim headTile As New Tile(PosX, PosY, Direction)
Array.Resize(Tiles, Tiles.Length + 1)
Tiles(Tiles.Length - 1) = headTile
For i As Integer = 0 To Length - 2
AddTile()
Next
End Sub
Public Sub DestroySnake()
Tiles = Nothing
End Sub
Public Sub AddTile()
Dim nTi As New Tile
nTi.Direction = Tiles(Tiles.Length - 1).Direction
Select Case Tiles(Tiles.Length - 1).Direction
Case Direction.Up
nTi.PosX = Tiles(Tiles.Length - 1).PosX
nTi.PosY = Tiles(Tiles.Length - 1).PosY + 1
Case Direction.Right
nTi.PosX = Tiles(Tiles.Length - 1).PosX - 1
nTi.PosY = Tiles(Tiles.Length - 1).PosY
Case Direction.Down
nTi.PosX = Tiles(Tiles.Length - 1).PosX
nTi.PosY = Tiles(Tiles.Length - 1).PosY - 1
Case Direction.Left
nTi.PosX = Tiles(Tiles.Length - 1).PosX + 1
nTi.PosY = Tiles(Tiles.Length - 1).PosY
End Select
Array.Resize(Tiles, Tiles.Length + 1)
Tiles(Tiles.Length - 1) = nTi
End Sub
Private DirectionRequest As Direction
Public Sub ChangeDirectionRequest(ByVal Direction As Direction)
DirectionRequest = Direction
End Sub
Public Sub ChangeDirection()
Dim direction As Direction = DirectionRequest
Dim ok As Boolean = True
Select Case Tiles(0).Direction
Case Easter.Snake.Direction.Up
If direction = Easter.Snake.Direction.Down Then
ok = False
End If
Case Easter.Snake.Direction.Right
If direction = Easter.Snake.Direction.Left Then
ok = False
End If
Case Easter.Snake.Direction.Down
If direction = Easter.Snake.Direction.Up Then
ok = False
End If
Case Easter.Snake.Direction.Left
If direction = Easter.Snake.Direction.Right Then
ok = False
End If
End Select
If ok Then
If direction <> 0 Then
Me.Tiles(0).Direction = direction
End If
End If
DirectionRequest = 0
End Sub
Public Sub Move()
For i As Integer = Tiles.Length - 1 To 1 Step -1
Tiles(i).PosX = Tiles(i - 1).PosX
Tiles(i).PosY = Tiles(i - 1).PosY
Tiles(i).Direction = Tiles(i - 1).Direction
Next
Select Case Tiles(0).Direction
Case Direction.Up
Tiles(0).PosY -= 1
Case Direction.Right
Tiles(0).PosX += 1
Case Direction.Down
Tiles(0).PosY += 1
Case Direction.Left
Tiles(0).PosX -= 1
End Select
End Sub
End Class
Public Enum Direction
Up = 1
Right = 2
Down = 3
Left = 4
End Enum
Public Class Tile
Public Sub New(Optional ByVal posx As Integer = 0, Optional ByVal posy As Integer = 0, Optional ByVal direction As Direction = Easter.Snake.Direction.Up)
_PosX = posx
_PosY = posy
_Direction = direction
End Sub
Private _PosX As Integer
Public Property PosX() As Integer
Get
Return _PosX
End Get
Set(ByVal value As Integer)
_PosX = value
End Set
End Property
Private _PosY As Integer
Public Property PosY() As Integer
Get
Return _PosY
End Get
Set(ByVal value As Integer)
_PosY = value
End Set
End Property
Private _Direction As Direction
Public Property Direction() As Direction
Get
Return _Direction
End Get
Set(ByVal value As Direction)
_Direction = value
End Set
End Property
End Class
Public Class Food
Public Sub New(ByVal posx As Integer, ByVal posy As Integer)
_PosX = posx
_PosY = posy
End Sub
Private _PosX As Integer
Public Property PosX() As Integer
Get
Return _PosX
End Get
Set(ByVal value As Integer)
_PosX = value
End Set
End Property
Private _PosY As Integer
Public Property PosY() As Integer
Get
Return _PosY
End Get
Set(ByVal value As Integer)
_PosY = value
End Set
End Property
Public Shared Function PlaceFood() As Food
Dim ok As Boolean = False
Dim PosX As Integer
Dim PosY As Integer
Do Until ok
PosX = Tools.RandomNumber(Game.GridLength, 0)
PosY = Tools.RandomNumber(Game.GridHeight, 0, Now.Millisecond + Now.Second)
Dim problem As Boolean = False
For Each ti As Tile In Game.Player.Tiles
If ti.PosX = PosX And ti.PosY = PosY Then
problem = True
End If
Next
If problem = False Then
ok = True
End If
Loop
Return New Food(PosX, PosY)
End Function
End Class
Public Class Tools
Public Shared Function RandomNumber(ByVal MaxNumber As Integer, Optional ByVal MinNumber As Integer = 0, Optional ByVal Seed As Long = 0) As Integer
Dim r As New Random
If Seed <> 0 Then
r = New Random(Seed)
End If
If MinNumber > MaxNumber Then
Dim t As Integer = MinNumber
MinNumber = MaxNumber
MaxNumber = t
End If
Return r.Next(MinNumber, MaxNumber)
End Function
End Class
End Class
End Namespace

View File

@@ -1,112 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmChoosePanel
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.cbPanels = New System.Windows.Forms.ComboBox
Me.btnOK = New System.Windows.Forms.Button
Me.lblDescription = New System.Windows.Forms.Label
Me.btnNew = New System.Windows.Forms.Button
Me.btnCancel = New System.Windows.Forms.Button
Me.SuspendLayout()
'
'cbPanels
'
Me.cbPanels.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cbPanels.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.cbPanels.FormattingEnabled = True
Me.cbPanels.Location = New System.Drawing.Point(79, 45)
Me.cbPanels.Name = "cbPanels"
Me.cbPanels.Size = New System.Drawing.Size(157, 21)
Me.cbPanels.TabIndex = 10
'
'btnOK
'
Me.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnOK.Location = New System.Drawing.Point(167, 74)
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(69, 23)
Me.btnOK.TabIndex = 20
Me.btnOK.Text = Language.Base.Button_OK
Me.btnOK.UseVisualStyleBackColor = True
'
'lblDescription
'
Me.lblDescription.Location = New System.Drawing.Point(7, 8)
Me.lblDescription.Name = "lblDescription"
Me.lblDescription.Size = New System.Drawing.Size(229, 29)
Me.lblDescription.TabIndex = 0
Me.lblDescription.Text = Language.Base.SelectAPanel
'
'btnNew
'
Me.btnNew.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnNew.Image = Global.mRemote.My.Resources.Resources.Panel_Add
Me.btnNew.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.btnNew.Location = New System.Drawing.Point(10, 44)
Me.btnNew.Name = "btnNew"
Me.btnNew.Size = New System.Drawing.Size(57, 23)
Me.btnNew.TabIndex = 40
Me.btnNew.Text = Language.Base.Button_New
Me.btnNew.TextAlign = System.Drawing.ContentAlignment.MiddleRight
Me.btnNew.UseVisualStyleBackColor = True
'
'btnCancel
'
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnCancel.Location = New System.Drawing.Point(92, 74)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(69, 23)
Me.btnCancel.TabIndex = 30
Me.btnCancel.Text = Language.Base.Button_Cancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'frmChoosePanel
'
Me.AcceptButton = Me.btnOK
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.btnCancel
Me.ClientSize = New System.Drawing.Size(245, 107)
Me.Controls.Add(Me.lblDescription)
Me.Controls.Add(Me.btnNew)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnOK)
Me.Controls.Add(Me.cbPanels)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmChoosePanel"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = Language.Base.SelectPanel
Me.Icon = Global.mRemote.My.Resources.Panels_Icon
Me.ResumeLayout(False)
End Sub
Friend WithEvents cbPanels As System.Windows.Forms.ComboBox
Friend WithEvents btnOK As System.Windows.Forms.Button
Friend WithEvents lblDescription As System.Windows.Forms.Label
Friend WithEvents btnNew As System.Windows.Forms.Button
Friend WithEvents btnCancel As System.Windows.Forms.Button
End Class

View File

@@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -1,52 +0,0 @@
Imports mRemote.App.Runtime
Public Class frmChoosePanel
Public Property Panel() As String
Get
Return cbPanels.SelectedItem.ToString
End Get
Set(ByVal value As String)
cbPanels.SelectedItem = value
End Set
End Property
Private Sub frmChoosePanel_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
AddAvailablePanels()
End Sub
Private Sub AddAvailablePanels()
cbPanels.Items.Clear()
For i As Integer = 0 To wL.Count - 1
cbPanels.Items.Add(wL(i).Text.Replace("&&", "&"))
Next
If cbPanels.Items.Count > 0 Then
cbPanels.SelectedItem = cbPanels.Items(0)
cbPanels.Enabled = True
btnOK.Enabled = True
Else
cbPanels.Enabled = False
btnOK.Enabled = False
End If
End Sub
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
Dim pnlName As String = InputBox("Panel name:", "New Panel", "New Panel")
If pnlName <> "" Then
AddPanel(pnlName)
AddAvailablePanels()
cbPanels.SelectedItem = pnlName
cbPanels.Focus()
End If
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
Me.DialogResult = System.Windows.Forms.DialogResult.OK
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
End Sub
End Class

View File

@@ -1,611 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmMain
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.pnlDock = New WeifenLuo.WinFormsUI.Docking.DockPanel
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenFile = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNew = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileLoad = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileSave = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSaveAs = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileExit = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewAddConnectionPanel = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConnectionPanels = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewConnections = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSessions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewErrorsAndInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewScreenshotManager = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewJumpTo = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToConnectionsConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToSessionsScreenshots = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToErrorsInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewQuickConnectToolbar = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewExtAppsToolbar = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep3 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewFullscreen = New System.Windows.Forms.ToolStripMenuItem
Me.mMenTools = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSSHTransfer = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsExternalApps = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsPortScan = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsUltraVNCSC = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenToolsUpdate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsOptions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfo = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoHelp = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoBugReport = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoDonate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoWebsite = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoAbout = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSep3 = New System.Windows.Forms.ToolStripSeparator
Me.lblQuickConnect = New System.Windows.Forms.ToolStripLabel
Me.cmbQuickConnect = New System.Windows.Forms.ToolStripComboBox
Me.tsContainer = New System.Windows.Forms.ToolStripContainer
Me.tsQuickConnect = New System.Windows.Forms.ToolStrip
Me.btnQuickyPlay = New System.Windows.Forms.ToolStripSplitButton
Me.mMenQuickyCon = New System.Windows.Forms.ToolStripMenuItem
Me.tsExtAppsToolbar = New System.Windows.Forms.ToolStrip
Me.cMenExtAppsToolbar = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenToolbarShowText = New System.Windows.Forms.ToolStripMenuItem
Me.tmrShowUpdate = New System.Windows.Forms.Timer(Me.components)
Me.tmrAutoSave = New System.Windows.Forms.Timer(Me.components)
Me.msMain.SuspendLayout()
Me.tsContainer.ContentPanel.SuspendLayout()
Me.tsContainer.TopToolStripPanel.SuspendLayout()
Me.tsContainer.SuspendLayout()
Me.tsQuickConnect.SuspendLayout()
Me.cMenExtAppsToolbar.SuspendLayout()
Me.SuspendLayout()
'
'pnlDock
'
Me.pnlDock.ActiveAutoHideContent = Nothing
Me.pnlDock.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlDock.DockLeftPortion = 230
Me.pnlDock.DockRightPortion = 230
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow
Me.pnlDock.Location = New System.Drawing.Point(0, 0)
Me.pnlDock.Name = "pnlDock"
Me.pnlDock.Size = New System.Drawing.Size(842, 499)
Me.pnlDock.TabIndex = 13
'
'msMain
'
Me.msMain.Dock = System.Windows.Forms.DockStyle.None
Me.msMain.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.msMain.GripMargin = New System.Windows.Forms.Padding(2, 0, 0, 0)
Me.msMain.Location = New System.Drawing.Point(3, 0)
Me.msMain.Name = "msMain"
Me.msMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.msMain.Size = New System.Drawing.Size(231, 24)
Me.msMain.Stretch = False
Me.msMain.TabIndex = 16
Me.msMain.Text = "Main Toolbar"
'
'mMenFile
'
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSep1, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileExit})
Me.mMenFile.Image = CType(resources.GetObject("mMenFile.Image"), System.Drawing.Image)
Me.mMenFile.Name = "mMenFile"
Me.mMenFile.Size = New System.Drawing.Size(51, 20)
Me.mMenFile.Text = "&File"
'
'mMenFileNew
'
Me.mMenFileNew.Image = Global.mRemote.My.Resources.Resources.Connections_New
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(241, 22)
Me.mMenFileNew.Text = "New Connections"
'
'mMenFileLoad
'
Me.mMenFileLoad.Image = Global.mRemote.My.Resources.Resources.Connections_Load
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(241, 22)
Me.mMenFileLoad.Text = "Open Connections"
'
'mMenFileSep1
'
Me.mMenFileSep1.Name = "mMenFileSep1"
Me.mMenFileSep1.Size = New System.Drawing.Size(238, 6)
'
'mMenFileSave
'
Me.mMenFileSave.Image = Global.mRemote.My.Resources.Resources.Connections_Save
Me.mMenFileSave.Name = "mMenFileSave"
Me.mMenFileSave.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSave.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSave.Text = "Save Connections"
'
'mMenFileSaveAs
'
Me.mMenFileSaveAs.Image = Global.mRemote.My.Resources.Resources.Connections_SaveAs
Me.mMenFileSaveAs.Name = "mMenFileSaveAs"
Me.mMenFileSaveAs.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSaveAs.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSaveAs.Text = "Save Connections As"
'
'mMenFileSep2
'
Me.mMenFileSep2.Name = "mMenFileSep2"
Me.mMenFileSep2.Size = New System.Drawing.Size(238, 6)
'
'mMenFileExit
'
Me.mMenFileExit.Image = Global.mRemote.My.Resources.Resources.Quit
Me.mMenFileExit.Name = "mMenFileExit"
Me.mMenFileExit.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileExit.Size = New System.Drawing.Size(241, 22)
Me.mMenFileExit.Text = "Exit"
'
'mMenView
'
Me.mMenView.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewAddConnectionPanel, Me.mMenViewConnectionPanels, Me.mMenViewSep1, Me.mMenViewConnections, Me.mMenViewConfig, Me.mMenViewSessions, Me.mMenViewErrorsAndInfos, Me.mMenViewScreenshotManager, Me.ToolStripSeparator1, Me.mMenViewJumpTo, Me.mMenViewSep2, Me.mMenViewQuickConnectToolbar, Me.mMenViewExtAppsToolbar, Me.mMenViewSep3, Me.mMenViewFullscreen})
Me.mMenView.Image = CType(resources.GetObject("mMenView.Image"), System.Drawing.Image)
Me.mMenView.Name = "mMenView"
Me.mMenView.Size = New System.Drawing.Size(58, 20)
Me.mMenView.Text = "&View"
'
'mMenViewAddConnectionPanel
'
Me.mMenViewAddConnectionPanel.Image = Global.mRemote.My.Resources.Resources.Panel_Add
Me.mMenViewAddConnectionPanel.Name = "mMenViewAddConnectionPanel"
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(214, 22)
Me.mMenViewAddConnectionPanel.Text = "Add Connection Panel"
'
'mMenViewConnectionPanels
'
Me.mMenViewConnectionPanels.Image = Global.mRemote.My.Resources.Resources.Panels
Me.mMenViewConnectionPanels.Name = "mMenViewConnectionPanels"
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(214, 22)
Me.mMenViewConnectionPanels.Text = "Connection Panels"
'
'mMenViewSep1
'
Me.mMenViewSep1.Name = "mMenViewSep1"
Me.mMenViewSep1.Size = New System.Drawing.Size(211, 6)
'
'mMenViewConnections
'
Me.mMenViewConnections.Checked = True
Me.mMenViewConnections.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConnections.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenViewConnections.Name = "mMenViewConnections"
Me.mMenViewConnections.Size = New System.Drawing.Size(214, 22)
Me.mMenViewConnections.Text = "Connections"
'
'mMenViewConfig
'
Me.mMenViewConfig.Checked = True
Me.mMenViewConfig.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConfig.Image = CType(resources.GetObject("mMenViewConfig.Image"), System.Drawing.Image)
Me.mMenViewConfig.Name = "mMenViewConfig"
Me.mMenViewConfig.Size = New System.Drawing.Size(214, 22)
Me.mMenViewConfig.Text = "Config"
'
'mMenViewSessions
'
Me.mMenViewSessions.Checked = True
Me.mMenViewSessions.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewSessions.Image = CType(resources.GetObject("mMenViewSessions.Image"), System.Drawing.Image)
Me.mMenViewSessions.Name = "mMenViewSessions"
Me.mMenViewSessions.Size = New System.Drawing.Size(214, 22)
Me.mMenViewSessions.Text = "Sessions"
'
'mMenViewErrorsAndInfos
'
Me.mMenViewErrorsAndInfos.Checked = True
Me.mMenViewErrorsAndInfos.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewErrorsAndInfos.Image = Global.mRemote.My.Resources.Resources.ErrorsAndInfos
Me.mMenViewErrorsAndInfos.Name = "mMenViewErrorsAndInfos"
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(214, 22)
Me.mMenViewErrorsAndInfos.Text = "Errors and Infos"
'
'mMenViewScreenshotManager
'
Me.mMenViewScreenshotManager.Image = CType(resources.GetObject("mMenViewScreenshotManager.Image"), System.Drawing.Image)
Me.mMenViewScreenshotManager.Name = "mMenViewScreenshotManager"
Me.mMenViewScreenshotManager.Size = New System.Drawing.Size(214, 22)
Me.mMenViewScreenshotManager.Text = "Screenshot Manager"
'
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(211, 6)
'
'mMenViewJumpTo
'
Me.mMenViewJumpTo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewJumpToConnectionsConfig, Me.mMenViewJumpToSessionsScreenshots, Me.mMenViewJumpToErrorsInfos})
Me.mMenViewJumpTo.Image = Global.mRemote.My.Resources.Resources.JumpTo
Me.mMenViewJumpTo.Name = "mMenViewJumpTo"
Me.mMenViewJumpTo.Size = New System.Drawing.Size(214, 22)
Me.mMenViewJumpTo.Text = "Jump To"
'
'mMenViewJumpToConnectionsConfig
'
Me.mMenViewJumpToConnectionsConfig.Name = "mMenViewJumpToConnectionsConfig"
Me.mMenViewJumpToConnectionsConfig.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Me.mMenViewJumpToConnectionsConfig.Size = New System.Drawing.Size(243, 22)
Me.mMenViewJumpToConnectionsConfig.Text = "Connections && Config"
'
'mMenViewJumpToSessionsScreenshots
'
Me.mMenViewJumpToSessionsScreenshots.Name = "mMenViewJumpToSessionsScreenshots"
Me.mMenViewJumpToSessionsScreenshots.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenViewJumpToSessionsScreenshots.Size = New System.Drawing.Size(243, 22)
Me.mMenViewJumpToSessionsScreenshots.Text = "Sessions && Screenshots"
'
'mMenViewJumpToErrorsInfos
'
Me.mMenViewJumpToErrorsInfos.Name = "mMenViewJumpToErrorsInfos"
Me.mMenViewJumpToErrorsInfos.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys)
Me.mMenViewJumpToErrorsInfos.Size = New System.Drawing.Size(243, 22)
Me.mMenViewJumpToErrorsInfos.Text = "Errors && Infos"
'
'mMenViewSep2
'
Me.mMenViewSep2.Name = "mMenViewSep2"
Me.mMenViewSep2.Size = New System.Drawing.Size(211, 6)
'
'mMenViewQuickConnectToolbar
'
Me.mMenViewQuickConnectToolbar.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.mMenViewQuickConnectToolbar.Name = "mMenViewQuickConnectToolbar"
Me.mMenViewQuickConnectToolbar.Size = New System.Drawing.Size(214, 22)
Me.mMenViewQuickConnectToolbar.Text = "Quicky Toolbar"
'
'mMenViewExtAppsToolbar
'
Me.mMenViewExtAppsToolbar.Image = CType(resources.GetObject("mMenViewExtAppsToolbar.Image"), System.Drawing.Image)
Me.mMenViewExtAppsToolbar.Name = "mMenViewExtAppsToolbar"
Me.mMenViewExtAppsToolbar.Size = New System.Drawing.Size(214, 22)
Me.mMenViewExtAppsToolbar.Text = "External Applications Toolbar"
'
'mMenViewSep3
'
Me.mMenViewSep3.Name = "mMenViewSep3"
Me.mMenViewSep3.Size = New System.Drawing.Size(211, 6)
'
'mMenViewFullscreen
'
Me.mMenViewFullscreen.Image = Global.mRemote.My.Resources.Resources.Fullscreen
Me.mMenViewFullscreen.Name = "mMenViewFullscreen"
Me.mMenViewFullscreen.Size = New System.Drawing.Size(214, 22)
Me.mMenViewFullscreen.Text = "Fullscreen (Kiosk Mode)"
'
'mMenTools
'
Me.mMenTools.Image = CType(resources.GetObject("mMenTools.Image"), System.Drawing.Image)
Me.mMenTools.Name = "mMenTools"
Me.mMenTools.Size = New System.Drawing.Size(61, 20)
Me.mMenTools.Text = "&Tools"
'
'mMenToolsSSHTransfer
'
Me.mMenToolsSSHTransfer.Image = Global.mRemote.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Name = "mMenToolsSSHTransfer"
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsSSHTransfer.Text = "SSH File Transfer"
'
'mMenToolsExternalApps
'
Me.mMenToolsExternalApps.Image = CType(resources.GetObject("mMenToolsExternalApps.Image"), System.Drawing.Image)
Me.mMenToolsExternalApps.Name = "mMenToolsExternalApps"
Me.mMenToolsExternalApps.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsExternalApps.Text = "External Applications"
'
'mMenToolsPortScan
'
Me.mMenToolsPortScan.Image = Global.mRemote.My.Resources.Resources.PortScan
Me.mMenToolsPortScan.Name = "mMenToolsPortScan"
Me.mMenToolsPortScan.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsPortScan.Text = "Port Scan"
'
'mMenToolsUltraVNCSC
'
Me.mMenToolsUltraVNCSC.Image = Global.mRemote.My.Resources.Resources.UVNC_SC
Me.mMenToolsUltraVNCSC.Name = "mMenToolsUltraVNCSC"
Me.mMenToolsUltraVNCSC.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsUltraVNCSC.Text = "Ultra VNC SingleClick"
'
'mMenToolsSep1
'
Me.mMenToolsSep1.Name = "mMenToolsSep1"
Me.mMenToolsSep1.Size = New System.Drawing.Size(176, 6)
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemote.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsUpdate.Text = "Update"
'
'mMenToolsOptions
'
Me.mMenToolsOptions.Image = CType(resources.GetObject("mMenToolsOptions.Image"), System.Drawing.Image)
Me.mMenToolsOptions.Name = "mMenToolsOptions"
Me.mMenToolsOptions.Size = New System.Drawing.Size(179, 22)
Me.mMenToolsOptions.Text = "Options"
'
'mMenInfo
'
Me.mMenInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenInfoHelp, Me.mMenInfoBugReport, Me.mMenInfoSep1, Me.mMenInfoDonate, Me.mMenInfoWebsite, Me.mMenInfoAbout})
Me.mMenInfo.Image = CType(resources.GetObject("mMenInfo.Image"), System.Drawing.Image)
Me.mMenInfo.Name = "mMenInfo"
Me.mMenInfo.Size = New System.Drawing.Size(53, 20)
Me.mMenInfo.Text = "&Info"
Me.mMenInfo.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal
'
'mMenInfoHelp
'
Me.mMenInfoHelp.Image = CType(resources.GetObject("mMenInfoHelp.Image"), System.Drawing.Image)
Me.mMenInfoHelp.Name = "mMenInfoHelp"
Me.mMenInfoHelp.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.mMenInfoHelp.Size = New System.Drawing.Size(131, 22)
Me.mMenInfoHelp.Text = "Help"
'
'mMenInfoBugReport
'
Me.mMenInfoBugReport.Image = Global.mRemote.My.Resources.Resources.Bug
Me.mMenInfoBugReport.Name = "mMenInfoBugReport"
Me.mMenInfoBugReport.Size = New System.Drawing.Size(131, 22)
Me.mMenInfoBugReport.Text = "Bug Report"
'
'mMenInfoSep1
'
Me.mMenInfoSep1.Name = "mMenInfoSep1"
Me.mMenInfoSep1.Size = New System.Drawing.Size(128, 6)
'
'mMenInfoDonate
'
Me.mMenInfoDonate.Image = Global.mRemote.My.Resources.Resources.Donate
Me.mMenInfoDonate.Name = "mMenInfoDonate"
Me.mMenInfoDonate.Size = New System.Drawing.Size(131, 22)
Me.mMenInfoDonate.Text = "Donate"
'
'mMenInfoWebsite
'
Me.mMenInfoWebsite.Image = CType(resources.GetObject("mMenInfoWebsite.Image"), System.Drawing.Image)
Me.mMenInfoWebsite.Name = "mMenInfoWebsite"
Me.mMenInfoWebsite.Size = New System.Drawing.Size(131, 22)
Me.mMenInfoWebsite.Text = "Website"
'
'mMenInfoAbout
'
Me.mMenInfoAbout.Image = Global.mRemote.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Name = "mMenInfoAbout"
Me.mMenInfoAbout.Size = New System.Drawing.Size(131, 22)
Me.mMenInfoAbout.Text = "About"
'
'mMenSep3
'
Me.mMenSep3.Name = "mMenSep3"
Me.mMenSep3.Size = New System.Drawing.Size(211, 6)
'
'lblQuickConnect
'
Me.lblQuickConnect.Name = "lblQuickConnect"
Me.lblQuickConnect.Size = New System.Drawing.Size(43, 22)
Me.lblQuickConnect.Text = "&Quicky:"
'
'cmbQuickConnect
'
Me.cmbQuickConnect.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cmbQuickConnect.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cmbQuickConnect.Name = "cmbQuickConnect"
Me.cmbQuickConnect.Size = New System.Drawing.Size(120, 21)
'
'tsContainer
'
'
'tsContainer.BottomToolStripPanel
'
Me.tsContainer.BottomToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
'
'tsContainer.ContentPanel
'
Me.tsContainer.ContentPanel.Controls.Add(Me.pnlDock)
Me.tsContainer.ContentPanel.Size = New System.Drawing.Size(842, 499)
Me.tsContainer.Dock = System.Windows.Forms.DockStyle.Fill
'
'tsContainer.LeftToolStripPanel
'
Me.tsContainer.LeftToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsContainer.Location = New System.Drawing.Point(0, 0)
Me.tsContainer.Name = "tsContainer"
'
'tsContainer.RightToolStripPanel
'
Me.tsContainer.RightToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsContainer.Size = New System.Drawing.Size(842, 523)
Me.tsContainer.TabIndex = 17
Me.tsContainer.Text = "ToolStripContainer1"
'
'tsContainer.TopToolStripPanel
'
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.msMain)
Me.tsContainer.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
'
'tsQuickConnect
'
Me.tsQuickConnect.Dock = System.Windows.Forms.DockStyle.None
Me.tsQuickConnect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblQuickConnect, Me.cmbQuickConnect, Me.btnQuickyPlay, Me.mMenQuickyCon})
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 0)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsQuickConnect.Size = New System.Drawing.Size(207, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
'
Me.btnQuickyPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnQuickyPlay.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.btnQuickyPlay.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnQuickyPlay.Name = "btnQuickyPlay"
Me.btnQuickyPlay.Size = New System.Drawing.Size(32, 20)
Me.btnQuickyPlay.Text = "Play"
'
'mMenQuickyCon
'
Me.mMenQuickyCon.AutoSize = False
Me.mMenQuickyCon.AutoToolTip = True
Me.mMenQuickyCon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenQuickyCon.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenQuickyCon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.mMenQuickyCon.Name = "mMenQuickyCon"
Me.mMenQuickyCon.Size = New System.Drawing.Size(30, 22)
Me.mMenQuickyCon.Text = "Connections"
'
'tsExtAppsToolbar
'
Me.tsExtAppsToolbar.ContextMenuStrip = Me.cMenExtAppsToolbar
Me.tsExtAppsToolbar.Dock = System.Windows.Forms.DockStyle.None
Me.tsExtAppsToolbar.Location = New System.Drawing.Point(300, 0)
Me.tsExtAppsToolbar.Name = "tsExtAppsToolbar"
Me.tsExtAppsToolbar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsExtAppsToolbar.Size = New System.Drawing.Size(109, 25)
Me.tsExtAppsToolbar.TabIndex = 17
'
'cMenExtAppsToolbar
'
Me.cMenExtAppsToolbar.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cMenToolbarShowText})
Me.cMenExtAppsToolbar.Name = "cMenToolbar"
Me.cMenExtAppsToolbar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.cMenExtAppsToolbar.Size = New System.Drawing.Size(137, 26)
'
'cMenToolbarShowText
'
Me.cMenToolbarShowText.Checked = True
Me.cMenToolbarShowText.CheckState = System.Windows.Forms.CheckState.Checked
Me.cMenToolbarShowText.Name = "cMenToolbarShowText"
Me.cMenToolbarShowText.Size = New System.Drawing.Size(136, 22)
Me.cMenToolbarShowText.Text = "Show Text"
'
'tmrShowUpdate
'
Me.tmrShowUpdate.Enabled = True
Me.tmrShowUpdate.Interval = 5000
'
'tmrAutoSave
'
Me.tmrAutoSave.Interval = 10000
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(842, 523)
Me.Controls.Add(Me.tsContainer)
Me.Icon = Global.mRemote.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
Me.MaximumSize = New System.Drawing.Size(20000, 10000)
Me.Name = "frmMain"
Me.Text = "mRemote"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()
Me.tsContainer.ContentPanel.ResumeLayout(False)
Me.tsContainer.TopToolStripPanel.ResumeLayout(False)
Me.tsContainer.TopToolStripPanel.PerformLayout()
Me.tsContainer.ResumeLayout(False)
Me.tsContainer.PerformLayout()
Me.tsQuickConnect.ResumeLayout(False)
Me.tsQuickConnect.PerformLayout()
Me.cMenExtAppsToolbar.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents pnlDock As WeifenLuo.WinFormsUI.Docking.DockPanel
Friend WithEvents msMain As System.Windows.Forms.MenuStrip
Friend WithEvents mMenFile As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenView As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenTools As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents lblQuickConnect As System.Windows.Forms.ToolStripLabel
Friend WithEvents mMenInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNew As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileLoad As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSave As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSaveAs As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileExit As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsOptions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoHelp As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoWebsite As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoAbout As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnectionPanels As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewSessions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnections As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConfig As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewErrorsAndInfos As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewScreenshotManager As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewAddConnectionPanel As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmbQuickConnect As System.Windows.Forms.ToolStripComboBox
Friend WithEvents mMenViewSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewFullscreen As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSSHTransfer As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tsContainer As System.Windows.Forms.ToolStripContainer
Friend WithEvents tmrShowUpdate As System.Windows.Forms.Timer
Friend WithEvents mMenToolsExternalApps As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tmrAutoSave As System.Windows.Forms.Timer
Friend WithEvents tsExtAppsToolbar As System.Windows.Forms.ToolStrip
Friend WithEvents mMenViewExtAppsToolbar As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cMenExtAppsToolbar As System.Windows.Forms.ContextMenuStrip
Friend WithEvents cMenToolbarShowText As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsPortScan As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents tsQuickConnect As System.Windows.Forms.ToolStrip
Friend WithEvents mMenViewQuickConnectToolbar As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenSep3 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoDonate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoBugReport As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewSep3 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents btnQuickyPlay As System.Windows.Forms.ToolStripSplitButton
Friend WithEvents mMenQuickyCon As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewJumpTo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewJumpToConnectionsConfig As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewJumpToSessionsScreenshots As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewJumpToErrorsInfos As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsUltraVNCSC As System.Windows.Forms.ToolStripMenuItem
End Class

View File

@@ -1,363 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmMain
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.pnlDock = New WeifenLuo.WinFormsUI.Docking.DockPanel
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenFile = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNew = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileLoad = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileSave = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSaveAs = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileExit = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewAddConnectionPanel = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConnectionPanels = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewConnections = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewErrorsAndInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSessions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewScreenshotManager = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewFullscreen = New System.Windows.Forms.ToolStripMenuItem
Me.mMenTools = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsUpdate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSSHTransfer = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenToolsOptions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenQuickConnect = New System.Windows.Forms.ToolStripLabel
Me.cmbQuickConnect = New System.Windows.Forms.ToolStripComboBox
Me.mMenPlay = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfo = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoHelp = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoWebsite = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoAbout = New System.Windows.Forms.ToolStripMenuItem
Me.msMain.SuspendLayout()
Me.SuspendLayout()
'
'pnlDock
'
Me.pnlDock.ActiveAutoHideContent = Nothing
Me.pnlDock.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlDock.DockLeftPortion = 230
Me.pnlDock.DockRightPortion = 230
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow
Me.pnlDock.Location = New System.Drawing.Point(0, 27)
Me.pnlDock.Name = "pnlDock"
Me.pnlDock.Size = New System.Drawing.Size(842, 496)
Me.pnlDock.TabIndex = 13
'
'msMain
'
Me.msMain.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.msMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFile, Me.mMenView, Me.mMenTools, Me.mMenSep1, Me.mMenQuickConnect, Me.cmbQuickConnect, Me.mMenPlay, Me.mMenInfo})
Me.msMain.Location = New System.Drawing.Point(0, 0)
Me.msMain.Name = "msMain"
Me.msMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.msMain.Size = New System.Drawing.Size(842, 27)
Me.msMain.TabIndex = 16
Me.msMain.Text = "Main Toolbar"
'
'mMenFile
'
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSep1, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileExit})
Me.mMenFile.Image = Global.mRemote.My.Resources.Resources.File
Me.mMenFile.Name = "mMenFile"
Me.mMenFile.Size = New System.Drawing.Size(51, 23)
Me.mMenFile.Text = "&File"
'
'mMenFileNew
'
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(241, 22)
Me.mMenFileNew.Text = "New Connections"
'
'mMenFileLoad
'
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(241, 22)
Me.mMenFileLoad.Text = "Open Connections"
'
'mMenFileSep1
'
Me.mMenFileSep1.Name = "mMenFileSep1"
Me.mMenFileSep1.Size = New System.Drawing.Size(238, 6)
'
'mMenFileSave
'
Me.mMenFileSave.Name = "mMenFileSave"
Me.mMenFileSave.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSave.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSave.Text = "Save Connections"
'
'mMenFileSaveAs
'
Me.mMenFileSaveAs.Name = "mMenFileSaveAs"
Me.mMenFileSaveAs.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSaveAs.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSaveAs.Text = "Save Connections As"
'
'mMenFileSep2
'
Me.mMenFileSep2.Name = "mMenFileSep2"
Me.mMenFileSep2.Size = New System.Drawing.Size(238, 6)
'
'mMenFileExit
'
Me.mMenFileExit.Name = "mMenFileExit"
Me.mMenFileExit.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileExit.Size = New System.Drawing.Size(241, 22)
Me.mMenFileExit.Text = "Exit"
'
'mMenView
'
Me.mMenView.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewAddConnectionPanel, Me.mMenViewConnectionPanels, Me.mMenViewSep1, Me.mMenViewConnections, Me.mMenViewConfig, Me.mMenViewErrorsAndInfos, Me.mMenViewSessions, Me.mMenViewScreenshotManager, Me.mMenViewSep2, Me.mMenViewFullscreen})
Me.mMenView.Image = Global.mRemote.My.Resources.Resources.View
Me.mMenView.Name = "mMenView"
Me.mMenView.Size = New System.Drawing.Size(58, 23)
Me.mMenView.Text = "&View"
'
'mMenViewAddConnectionPanel
'
Me.mMenViewAddConnectionPanel.Name = "mMenViewAddConnectionPanel"
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(190, 22)
Me.mMenViewAddConnectionPanel.Text = "Add Connection Panel"
'
'mMenViewConnectionPanels
'
Me.mMenViewConnectionPanels.Name = "mMenViewConnectionPanels"
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConnectionPanels.Text = "Connection Panels"
'
'mMenViewSep1
'
Me.mMenViewSep1.Name = "mMenViewSep1"
Me.mMenViewSep1.Size = New System.Drawing.Size(187, 6)
'
'mMenViewConnections
'
Me.mMenViewConnections.Checked = True
Me.mMenViewConnections.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConnections.Name = "mMenViewConnections"
Me.mMenViewConnections.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConnections.Text = "Connections"
'
'mMenViewConfig
'
Me.mMenViewConfig.Checked = True
Me.mMenViewConfig.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConfig.Name = "mMenViewConfig"
Me.mMenViewConfig.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConfig.Text = "Config"
'
'mMenViewErrorsAndInfos
'
Me.mMenViewErrorsAndInfos.Checked = True
Me.mMenViewErrorsAndInfos.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewErrorsAndInfos.Name = "mMenViewErrorsAndInfos"
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(190, 22)
Me.mMenViewErrorsAndInfos.Text = "Errors and Infos"
'
'mMenViewSessions
'
Me.mMenViewSessions.Checked = True
Me.mMenViewSessions.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewSessions.Name = "mMenViewSessions"
Me.mMenViewSessions.Size = New System.Drawing.Size(190, 22)
Me.mMenViewSessions.Text = "Sessions"
'
'mMenViewScreenshotManager
'
Me.mMenViewScreenshotManager.Name = "mMenViewScreenshotManager"
Me.mMenViewScreenshotManager.Size = New System.Drawing.Size(190, 22)
Me.mMenViewScreenshotManager.Text = "Screenshot Manager"
'
'mMenViewSep2
'
Me.mMenViewSep2.Name = "mMenViewSep2"
Me.mMenViewSep2.Size = New System.Drawing.Size(187, 6)
'
'mMenViewFullscreen
'
Me.mMenViewFullscreen.Name = "mMenViewFullscreen"
Me.mMenViewFullscreen.Size = New System.Drawing.Size(190, 22)
Me.mMenViewFullscreen.Text = "Fullscreen (Kiosk Mode)"
'
'mMenTools
'
Me.mMenTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenToolsUpdate, Me.mMenToolsSSHTransfer, Me.mMenToolsSep1, Me.mMenToolsOptions})
Me.mMenTools.Image = Global.mRemote.My.Resources.Resources.Tools
Me.mMenTools.Name = "mMenTools"
Me.mMenTools.Size = New System.Drawing.Size(61, 23)
Me.mMenTools.Text = "&Tools"
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemote.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsUpdate.Text = "Update"
'
'mMenToolsSSHTransfer
'
Me.mMenToolsSSHTransfer.Image = Global.mRemote.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Name = "mMenToolsSSHTransfer"
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsSSHTransfer.Text = "SSH File Transfer"
'
'mMenToolsSep1
'
Me.mMenToolsSep1.Name = "mMenToolsSep1"
Me.mMenToolsSep1.Size = New System.Drawing.Size(157, 6)
'
'mMenToolsOptions
'
Me.mMenToolsOptions.Image = Global.mRemote.My.Resources.Resources.Options
Me.mMenToolsOptions.Name = "mMenToolsOptions"
Me.mMenToolsOptions.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsOptions.Text = "Options"
'
'mMenSep1
'
Me.mMenSep1.Name = "mMenSep1"
Me.mMenSep1.Size = New System.Drawing.Size(6, 23)
'
'mMenQuickConnect
'
Me.mMenQuickConnect.Name = "mMenQuickConnect"
Me.mMenQuickConnect.Size = New System.Drawing.Size(87, 20)
Me.mMenQuickConnect.Text = " &Quick Connect:"
'
'cmbQuickConnect
'
Me.cmbQuickConnect.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cmbQuickConnect.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cmbQuickConnect.Name = "cmbQuickConnect"
Me.cmbQuickConnect.Size = New System.Drawing.Size(120, 23)
'
'mMenPlay
'
Me.mMenPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenPlay.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.mMenPlay.Name = "mMenPlay"
Me.mMenPlay.Size = New System.Drawing.Size(28, 23)
Me.mMenPlay.Text = "Play"
'
'mMenInfo
'
Me.mMenInfo.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.mMenInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenInfoHelp, Me.mMenInfoWebsite, Me.mMenInfoSep1, Me.mMenInfoAbout})
Me.mMenInfo.Image = Global.mRemote.My.Resources.Resources.Info
Me.mMenInfo.Name = "mMenInfo"
Me.mMenInfo.Size = New System.Drawing.Size(53, 23)
Me.mMenInfo.Text = "&Info"
'
'mMenInfoHelp
'
Me.mMenInfoHelp.Image = Global.mRemote.My.Resources.Resources.Help
Me.mMenInfoHelp.Name = "mMenInfoHelp"
Me.mMenInfoHelp.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoHelp.Text = "Help"
'
'mMenInfoWebsite
'
Me.mMenInfoWebsite.Image = Global.mRemote.My.Resources.Resources.Website
Me.mMenInfoWebsite.Name = "mMenInfoWebsite"
Me.mMenInfoWebsite.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoWebsite.Text = "Website"
'
'mMenInfoSep1
'
Me.mMenInfoSep1.Name = "mMenInfoSep1"
Me.mMenInfoSep1.Size = New System.Drawing.Size(113, 6)
'
'mMenInfoAbout
'
Me.mMenInfoAbout.Image = Global.mRemote.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Name = "mMenInfoAbout"
Me.mMenInfoAbout.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoAbout.Text = "About"
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(842, 523)
Me.Controls.Add(Me.pnlDock)
Me.Controls.Add(Me.msMain)
Me.Icon = Global.mRemote.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
'Me.MaximumSize = New System.Drawing.Size(20000, 4000)
Me.Name = "frmMain"
Me.Text = "mRemote"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents pnlDock As WeifenLuo.WinFormsUI.Docking.DockPanel
Friend WithEvents msMain As System.Windows.Forms.MenuStrip
Friend WithEvents mMenFile As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenView As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenTools As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenQuickConnect As System.Windows.Forms.ToolStripLabel
Friend WithEvents mMenPlay As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNew As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileLoad As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSave As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSaveAs As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileExit As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsOptions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoHelp As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoWebsite As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoAbout As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnectionPanels As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewSessions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnections As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConfig As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewErrorsAndInfos As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewScreenshotManager As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewAddConnectionPanel As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmbQuickConnect As System.Windows.Forms.ToolStripComboBox
Friend WithEvents mMenViewSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewFullscreen As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSSHTransfer As System.Windows.Forms.ToolStripMenuItem
End Class

View File

@@ -1,361 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="msMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>13, 8</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="mMenFile.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAsFJREFUOE9Nk0tP
E1EYhls36MYfYhQhGGOCUUMCBiUxirpxg9ACSqJxodEEDEFMYKt4SUyMK9cGikgvNEBbqNwUekG5FAoU
6MW208uZzqWv35lCyyTPOTOZOc+83zdn9AB0tS8nmk6cLLt3TK+r0ul0xwk9URhBA/I6JZ9fS8Rg0wvx
p5MfGiTtPj+4oP61YzIqsOi/tKjE0iJiqRJRQQTdgz8koGswCOPASqa6faiMr+Now/U+Z1jISsrUhgT3
pgx3UMb0hgxnIIfxFRE/fGmIMmBazqLr2yYMb1aylzpMmkQTNPS7sslMDnNbCua3ZJplzGiSHCZWRZh9
GRKomAspcO9I6P0eRM0L+9dSgn4X44IFEvzalrGwrWiyn5sSHGs5WP9kEdhPa6WkmIz9eAbUN8p0WAIJ
EukclugNHmJpV8VvTcJTSFoKC6UY9qQwtJhEgvpU1+NgRcG1PheLk8C/m4ePFnsJT0jFIslmqSdTgYLE
9jcLC/UhnpZQ98pVEtSTIEaC5b28hp/wkWxpp5BEk1CSSSqHi2IkqO05Irja62LRVA6+4mK1mIRLeF9m
qRyexEWEBQk13UcEtT1OFqHvzd/KSzjES2UcppgLKpjhn5gQqJGXO52lEmq6nWwvKcK7U4hdgJpJ8BLm
afEs4aa9MU0CJqmofjZeElzpdLBQguGOScRdE8PtYYZGOm8cFHFriGncHGS4cUAmp+D8Y3tJcPH5ONuK
MTyaUPFlGfjsBz75gI80v6f5HTHgBd56AOOYjDSVUNlmKQkuPLFnApFMvt2uos2maA8ZxhSNZrpuscm4
b5XRxK+tCt+V6hnDaKq4D6oeWNfDSVEIRJm6HsliPZzF6gGRlAQO73yKKaD/TVXz+cSpphHKdLATzz20
dFQYzdbKVkusotXMihjN7CxRbhwtYNCIn24esZU3j7RwwX/Yvio5QNtWmQAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenView.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAvBJREFUOE+lk1lP
E1EYhuvdqNF4bYKBACKgFpU6QCnQlmmhdKd0h0IXKEV2jYQE0EGDokFQEEGs0EIBa6hlExDZjJCIiRhC
RRZpUa/8EcevF4qICRdOci4mM+97nuebMwcQQpT/ui4vmPHyeTNe+saEF03rccsrHZ47qsX1L5R45rN0
XNktwtOtPFzYysFTm5i4f8M/F6V8Po8omTNhhVN6LH88CzMNa7AclwLT9ksxhU2ISTtSMX4LgXHvJWGs
W3RiT0HxrJG49DrnIJCQQEKWzpnIoik9aZnQkaYRLZnjUpLa/nRSYReRglZOJ5BUA0n1ryJKwWQ2kfcy
8xCQ2AqnDTTLRHZc7og20eBWsXTODI7aIeZldPL54naumHWbUQkkPCCx/i4AXwJ8DxfNGOygwICi1bK3
eZ9LZo1rQLZuHs/cMA6rN7MH5Jsqh/i73CbYgLIfQLIIJIsU8CXA9wgMz24cUidDAQKCSuOgqj57QPEw
0ylzqHslgxCcFLdxP0JwntuQtAUkbiBBFE2vhJB3CY6aRjR23XM5D2aCTMPqDijuz3LKRtUOyYy8i78g
eZz6nveAvc5tTFpi1tG3mXVxQ/RrNESRPeUTojbuMUDsVvaIpTATBEpjEJ5TOSTvwH9J3J6ynNbM9hB3
GF4IrtBraNtxNdFuWkUUogASAS6E0i4cE7QQVTATpOmTehR24Zr0CW9T0Ep4UxqZXnZ9vC+hFvdB+BOt
guqLvkp1UUsjdg4FkFiBRAroSNUj+iCzpi0LH3FWUppYHnY9YzXhRsxqbNUFDwRXqCXh3rPF4c4IS+hO
AZBYgcQKM0Hg+zWtOfkbpyERXOnb8dcv+vDKc97zV874g1vh+aFfYDlCjUG7j6X/2wIJApIh3n3WIHGX
4U68GesC3wHwdUaVRfadLgzrOWUOsYUYAruCdAF7C4AEAQkCZ5RQG4MAGwE28vtGFpxEYbnBKFgfiAKz
AtAJzfG9BX+f9f3ud/1Z+738r+c/ASsl+hh77k39AAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenViewConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAArhJREFUOE91U91LU3EYnt0GjUYSgv+EoDeCgXkhiuBAL7swoTWUEryYF2JXQlebTIlK
pA1bmfODND+DpqUzt5Vfm7NtZx9n52xnui9zm/m5p9/vlINcHnjhnPf83ud5n/d9fhIAkv9FQ0NDrU6n
29fr9cnS0tKqq87lFQ8MDNxqaWm5oVKpjPFEEql0Gp2dnYb29vbrGo3m9mWgHIDBYGh7PzmZ1en1gtE4
kgoLEYTCAmLxOE5OTzExMXHw2mAQTCZT9vmLF8oLIBFAJpNde/N2iGP5EOKJhBh70SjYIAchEsHu3h4O
UimkMxkcHZ9geHjY/w8A/airq9MGSAHj88EfYGGzfcOXpWWsra/DS3LJ/X0xMoeHqK6ufpoHoO3tXfOR
QueOC7OzcyKI3e44D3L8OS1aWFxEZPdPJ5qeHksOQKlU1mq12qjL7T5jvD5YrTaEQmEQvaxUKpUXFhbe
m5ufj8aILNoVnYuHYc76+vqi5eXlVZLKyruqSDSGHZcbm3YHls0rYBgf6uvlTy5YHigU/R7GC/PKKplL
EH6WJcNNoKLiTpukrKzsEcfz2Hb+wMbmFpaWzYjG4lCr1R8vAF7pdN/pVqamZ2DfdiLAEpBAACUlJQoJ
eaRNTU3TZHUC0Yv1jU1xWOPj4xgaevfTaDQejIyOituw2mzw+gPQDw7ytIbW5nxAnPcsnTkET/R/Mi2I
a9wikhyEkSWMH6am4HDukPaDqKmpUedtobu7W/h1fIxEMgm3xwOLxYqVVQu+/g0LYafgQeKVrq6uUB6A
qqPDTJLURFnivmxYEES9lJX6gzBnibHOw5FdtLa2fs4DoHoaGxvHioqK7hcXFz8mXRzRdqkfGK83RfIP
SV4hl8vH6Nk8gMuX5GV/v4sn2+E4Ds3NzTnGKy/T5R8FBQUyMukZGuT95lXX+Tf6O+vwZDVeqgAAAABJ
RU5ErkJggg==
</value>
</data>
<data name="mMenViewSessions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAA4RJREFUOE9lk3tMk1cchg8a562VKXGZUxMNy8a8zM3bNIW1Omi/Xj5LKa2UYgvSyxDa
CrSFUq4lghTKrMMKBQ0mRggiMrIJjuDGNk2WbfES4oIgGqNRZ5TpGqmG9t0H/qNykifnknOe8+aXcyIA
kNebfmPU9HRqdVZExMfL3yX+99jhrcHJMHnyfNazkaezy8dfhJoRDk++2sgIXqcwdjGZws5ZEunaEXnJ
R78Dj2QuvLJI1EgWw7iNHUjZvlyaRcUQI/+jmQJvPItMcWjH/FW+xGX4rlSCs0UUHPFRMHNYSNswF+XK
T6s6K5TklDNxpqApOYpM0SBZuKLDQYeej13E45+86K3X4UKTFd8fsaIzb6PryjE9+bMxnZCvdRmv0O+N
MKarVUWC1bfLuKx/7LGsRxbxuhdD/a0IXO3Ay6FOBId7caenOJwhV+hiZMfJetlhQrIz90yTpdu7uUAZ
N+JRRMNNL4U7eRX2cRahJFOIe321+PeXBoz/WAG3STWxYMtBw6Kdx8gCbiMhVtH6afKFG4rL6WiU8JfC
KV6JHOZwbsIHkMTMQ5XLgtp6F3wtfrT+FsJnioGbc7Y1f8XiMYJcDpvkcRaS7C1znBVpseg/mo8zVVq4
M7aiyZoIQ0I08s9dhvpnIKkHqBwEDv0QxIfirrFI7mEO0Yo2EwUVR3QJ6wxDHeUIjvYjeK0DTy76MTHc
h4F6LfStI0htD0N+PAT+EUDfPI6+E3605fJvEL5QTLYL1GQTL0X8bU5C4L9LPoSGmavGzuPBgAd2oxxy
/32knASUbUBaO5Ok6DIGWypxp3bTJBGJREQoEsfEcuMvlDgLQ06bGaerM9FQqEahLRcmkxnCrBokt9zF
7lOPwTtwCxz66L3eEsEfw63pNiKgk1bsM1kGpbt2wWq1Qac3oLu7Gz6fD3s0Wlj278dupRJfCPMCn4hP
3l3J77oep/Rn/9qge3+0LWc+cWp3dvk9ZXBVHoBKpUJqaiq8Xi9qatyQSCSQyWSw2QvwTWk27Cruibef
Pnno+Rx/tZchr6AYdXV1TGQTaJoGRVEwGo2w2ZhUBiMe9ZZirGLtyxmCkUb52R4nH0mqdDgcDlRXV0/3
Go0GbrcbZrMZAkqI3w/y8XdjClPGNz8fGW03sfvq1Gu/jBe6mILeVigU41KpdIIZT8jl8gCPx7tJUSLd
Vb9mzY02C/ttwf8MViWur2j6ngAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenViewScreenshotManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAjxJREFUOE+lk+9P
EnEcx+uP6lnrx9aj1mqz5uxBtkbMRa3WcukwE9F5JvFDTwFBusgChZISRZOwglEy5VduOZu1msWPAd4B
J+ej3n2PBwTCaqvbXrfv/Xp93vt8P3cQwIH/OkSB1R1RMy+iqTFnmNPYG2Aj96qgHWHO7Apry8XFEzMb
TWey2Z9Fnge/K/yRbFFAmi3A8CzCVgRi5UKRx9jcNtRzMSjmp2Fdo+GI98MWU2LUr8KVBybcsgTQYfmI
TEHAqDPKVQRaElusbJjfBrWwCOsqjakP7TCvtsGwIoExJIPK2wfZ+BPImQ2kuQaCAhGML3yHwjMJO6lq
DEkx/O4CVP7zoN62QOO/iYsj99H9aBMprkQSRGoTcERgXvyBHrcVD8Pd0AVbQb1pRu9yE+6+agLlu4ZW
3T30Pv6EJLtbL2B5AZaXCVBuD2j/ILRBCRTLZyFfOoMeXwvuPO+ETD+JfvsWkjsNEuyQ7jLeJGhPHJ0O
BtTsDQz5pKC8l9DlvIrL9DCJH8Tg9Od6gbj3OdJZqy9Vloy4Y7itbMWA5gQo1XEo+pqhtL2HZuYrVE+/
ILE/gSjI5gXIHafRMXUK7baTMHUdwjpzDnGCa+Ao2kzHIDUegUR/uF6gtq1xOSLwb72uEFx3IbQygbjr
OgKbSzXPErkSaEfVLmjKglLNS9Wy/etETqgV6J3hbzk2jzxpZJ7fA1dGAEeu2Tr2kCmPcvT3KE+4IkOm
mWhAHA4x2t8g/wFHvtFVRllc/Cu/AAZ/6ElKbpVOAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenViewExtAppsToolbar.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmhJREFUOE+lU9tL
01EcP/0VvbqxiQ6dOp2b25xzzgspRrvpNkeMTBqiszSzGgrSKlIYtV9RZJl0UdOJjbSctFUrsKcxg3oo
/GF0ocCHpHrwoU87B04UBAke+Dx+vp8bZxcAsqN3/ebdK8vJ1Fby2QoST1cQf/wcC/EnuLf4CDOxJdye
XcD45Dwu35jBhat3MHJxAqHwGIJnhK3O3sFukiX/fLl3D95Fd8M8b8SrN+v/xeu36/j0ZQPdJ0ciJJl6
ga/LD/HjvYD7H2L4+HljW9j89h3+Y6cFQi2XlJRApVKhtLQUZWVlUKvVKC8vh0ajQUVFBfR6PQwGAyor
K1FVVYXq6mrU1NSgvWdIIEuJFCPl5ORAIpFAKpVCJpNBLpcjNzcXeXl5UCgUKCgoQGFhIYqKiphgXV0d
eofCAqGF8QPpdBpTU1PbPpDtQCCxBwlmkyuura2hr6/vn6o0Jo/Y2NiIQ/0hgczG4ixbfn4+MpkMotEo
lErlb6ucxDvRarXQ6XRobm7GgcCgQCbnFmE2mxmhuLiY5eNlUhIFJ9EyqRiF1WrF/s4BgUxMx1BfX/8X
ibdPlfgCRqORLWAymdgKDocDno5egYzdmgPNQ1VoF5T052R8NuqSwmKxoLa2Fi0tLXD6ugVyaXya5eHW
uBJVoQS6NyfR6SgaGhrgdrth8/oFci5ybZPmsdlssNvtzJrT6WQKFK2trXC5XIzg8XjQ1tbG4PV60eT0
jZLAwHAgGDq/GgxFxP7hsHhkcFTsOn5W9B89JR7sGRJ9XSdEr79fdLcfFrOWxayquM/dITY5fKuWJoeJ
0O+8E/wCTNYVG3agVjIAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenTools.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA
CxMBAJqcGAAAAtpJREFUOE91Ud1P0mEYfbvor8itudZFV/0JXbXmWmuurS66aF7YbbRqydAMkTENUH4Q
gnzYhvgxSUpA5EMlQHCTNFCwZup0KmFJV16RnJ4Hw7W2ftvZ+9vzvOc85znvud7eXvHXVzk5ORHVanWD
zkGq93OvoaFBRrWHAC7TKUql0vkzjtVqFVqttg6sr68jmUyiu7v7WKlUyhwOh8xmsx3v7e2hXC7DbDaD
6qIOwQJUFHq9ngGPx4N4PI5YLAaVSlUgcmF3dxfFYhGhUAhGo5Hrog4WqLAqN3Q6nSAkwuEwEokE1Gp1
xWKxVHj6ysoKJEmKU602iFyD1q8ImlBha6zOF/r6+j5Eo1GkUiloNBoW/7W5uYmFhQVwjwewS16V+8Ju
txd4AlvkKXxxcXER6XQaPT09VYPBUF1bW6vVWJjd8YqcE7kpCKfTWQuJ92QhnsaETCaDQCDANvFsIIu2
wU81V7wa58Mhd3V1yQSlzGCRAu87YDZXOQ92kMvloLDloBzehnxoCy2qSJVz4XD5hW4rV0VdgLMQGG2V
EHyBnTkXTEYJ2vHP0E7uwrf4A5Op72hzbuFW56qHIOo4E4C7RcJ0O7A8Bsz3wzmxBMv0AcLLZbhmv8ER
KuJt8hBP7Vto6sh6CYJRE4D7gQS/AsiMAHN6wNeO2akI7ESKrvzEaKwEs38ftuABPIlDPCGRG4qslyAE
XPcl+OREdgOzOmCK/qdVQMKKiGsEdiJFyIV7vgSTbx+D5GqCRB5bv+K6POsVcNwBloaB6Cvg3XMg8JLI
FsB+F+i45NGM70hWEgl/JJG5EqT3e7D4DzAWO8TNjiwEXjcB6TdAkKb6O4H4AGAlUUWjVz26I/5AYtJM
5jQP20wRE/FDNKvyJGC4lsFwyykxZgIszYD8olfl3hb/QDL5DhDMHNGrHNWe9p4mnz8NUX01D+UVstxI
5AveTiL/B5J8aBOPBjbQaviSIYjfmuK35PAW5YUAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenToolsExternalApps.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmhJREFUOE+lU9tL
01EcP/0VvbqxiQ6dOp2b25xzzgspRrvpNkeMTBqiszSzGgrSKlIYtV9RZJl0UdOJjbSctFUrsKcxg3oo
/GF0ocCHpHrwoU87B04UBAke+Dx+vp8bZxcAsqN3/ebdK8vJ1Fby2QoST1cQf/wcC/EnuLf4CDOxJdye
XcD45Dwu35jBhat3MHJxAqHwGIJnhK3O3sFukiX/fLl3D95Fd8M8b8SrN+v/xeu36/j0ZQPdJ0ciJJl6
ga/LD/HjvYD7H2L4+HljW9j89h3+Y6cFQi2XlJRApVKhtLQUZWVlUKvVKC8vh0ajQUVFBfR6PQwGAyor
K1FVVYXq6mrU1NSgvWdIIEuJFCPl5ORAIpFAKpVCJpNBLpcjNzcXeXl5UCgUKCgoQGFhIYqKiphgXV0d
eofCAqGF8QPpdBpTU1PbPpDtQCCxBwlmkyuura2hr6/vn6o0Jo/Y2NiIQ/0hgczG4ixbfn4+MpkMotEo
lErlb6ucxDvRarXQ6XRobm7GgcCgQCbnFmE2mxmhuLiY5eNlUhIFJ9EyqRiF1WrF/s4BgUxMx1BfX/8X
ibdPlfgCRqORLWAymdgKDocDno5egYzdmgPNQ1VoF5T052R8NuqSwmKxoLa2Fi0tLXD6ugVyaXya5eHW
uBJVoQS6NyfR6SgaGhrgdrth8/oFci5ybZPmsdlssNvtzJrT6WQKFK2trXC5XIzg8XjQ1tbG4PV60eT0
jZLAwHAgGDq/GgxFxP7hsHhkcFTsOn5W9B89JR7sGRJ9XSdEr79fdLcfFrOWxayquM/dITY5fKuWJoeJ
0O+8E/wCTNYVG3agVjIAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenToolsOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgVJREFUOE+Vk8tv
EmEUxXHhX2L8U4waY4wrVy5lK0YXkqZpYIBhkEccCk6dIgttsHZaYyi2jKgjb5NR0pGHL2iKFAQtrhoX
mDnemQWa2EKd5Mu3ub/znXvunWMALNO+eDxu03XdSrUn6bZYrdbjY8YQmHRisZhNFMX9TqeD4XCIaDRK
5X+YibBRSHC93W6j1+shnU4jHA7/n4AgCCPj9UqlAp7ns4ZoMBiE3++Hz+cbTXVAln81m00UCgWEQqFX
gUAgJ0kSGo0GWJadLBCJRM6QZb1araJcLiOTyUCWZWSzWeTzebjd7vqBDm6tfuG9iY8VsjwqlUpQVRXG
XSwWkcvloCgKXC7XvtPptP0jwC3v8IvpHoSnXfiX30PTNKRSKXAcpxuW6dURwzB1h8NhM1fg75GwBrzR
RabyA/LbIfxrbcyIGrxe70+Px3PioHGPBdyJHX6B4GcEJpQ+7j//imT5OxwPtnGZ014ftiumALO0zQvr
Xchvhlh62Ud0fRcxamOt+A32eAsXmdqjQwXmCJ5PdrGpEvyij/nkLkRyspof4Oa9Fi443kmTNtVijzex
oe6ZlvknHdyl8KTcADcWWzg/Nxk2Q7x65xP1ugdxk5KnNlYIvk7w2dmtx9P+E1Pgyu0PqhHUSnaAh8oA
1xY+4/TM0eDxGC+xtRoFhXOzWzhlPzpsCPwGZiza7bmUpcQAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAArBJREFUOE+lk+1P
UmEYxutf0T+hc/rS2vRDc202SNI+ZNYwTdRWugqzwSrFRHwDFLAhGGq+UL5BSYqQwJGMkJfQ1JMDM2hr
qy+QtSyvHmiittbaOtt1trPzXL/7ue7nfg4COPBfTxKwV3ma5cwTqpAoVxFkjzV749kyTzxLNs9mydyi
o3eZzN/X7zNz1Eu84/JArLzHjx57BCPMRkp6axh89XPQopkYLbby9kLSAFKVl9PiSzRPrMDijaF7KgKJ
8TXuDC1BblqB0bGOhpEQ6IrxBH15PA1JAXKVwYyc1oVo0mx6EYOImG70BzDoeotB5zquG/wQ9gVgmFmD
5KEfdKkxSpcMZaT6l3zlyBfEZVovzJ73qO0PQUgiXNX58PnrVkpVOg+quj0Q3vei/1kYZ5qegirsE6cB
2a0eVm+NQGlica3Hh2qdF1VaD3rtazAQVXQxv6RxkVgBqKeWQRfo2DTgiITZHJt/h9peP6n0EpX33GQx
Q/4D20QClRNlHbNEDlzSOGFkwqB4nZtpAC22b466N1JZk5XK1S5iciEU+YTEly2UtttR0mbDBSKBwobh
OQLgKvYCrKzWykL6aBGVGjcEnU5cVM7iVfgjAXxDsWwaxSQ3v8mCmm4GSksQ9Mn23Qh0jUVcJLdj0BFB
pYqBQO6AxbOO7z+2UxH8bz6gSGImMqHrcQgFN0cIoG23ifSV0QxaYIzeHvbBYF1FqdwGfvMUzkknUVRv
wtm6cRTWjaFl2EuOd45sXxqludLdY0w2g+IP8A7l6xOiAQ/008sQap1ky09wvsGMapUNalMAwl4GNKc+
Qcz7B2lnNKkCPY/K74qdvjUB5eQiHjhZolW0m4PIqzWC4jTEaG7jn0d5B0KfUmdSvA4RladgKW5TnOI0
xklFlkh0mFv/98v0+037l++fDRyfGvO8afwAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenInfoHelp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAArRJREFUOE+lk+1P
kmEUh+tf0T+htZqrVav1rbbGhz70wan5CjS1XC2D5Swd5jRLSs1Mp4KaOqeiwJOACKKJ8iYIPJjIm/Iy
EB541Gz7BSxBW2tt3dt1b/d2zrWdc59zFsCZ/zopwUlU5GGu0n7AUVj3SdkGTX0xxymJiSJnDVHOtG4v
9/f4U8lyK82YsyR8Dv8hNndp2L1UGsdOAhZPAqNLQd/wop9xUpIREOtxhtgYi28F9qH/FoZw3g3euBUN
oxvoJjahsQRh81H4JHPHu4ntjCQtEOmjOVNrEe+mn8aiNYS6ZFIX4YA7RMMVSmB8yYNaoRHSNR/Mrija
pkhvy4QtJ92/1DW2HOSuu+NYdUTAHTLjca8eiYOjJD9+cYS6IQNqB3RYMAegXA+gXmjkZgT98z7Slqy1
h9hCTa8O1T2rcAcTmF7xQG7aAZ2UyU1eMDtUaJu2wOgM40mPlswIOiVO2u6NgSswoOqjFqwuTTJYjRmt
C2HqALthGn1zNpS1K1H1QQ2Law8svprOCFonbLTNE8PTQQOYnWpUvFeh/J0KMfo7tgMU2HwliltluJ+E
zVfA7I6goFmeFbwQmkjTdgR8kQ2sDg3K+QsofTuPktfyNEWvCBQ1SVDYJEaDcAVaRwB368XZEpL1cCVa
D9SWAKo6NZnEUHQfgT0a+bzZNEU8EYg1FwTJcm7VTmabyOYv5lS8WfAuWwOQrrrBbFegsFmK9gldmlRy
QeMkRhR2KAwe3KwZ915/OJb9xlQz8nlzjHuNRFxl3oHc6MVLwTJKW8QobprB8z41pFonZHo3rlZ+jl9+
MHx6kI5H8w5XxLj9bMrXT2zgq90PgzOUZsm6i26RCXksoe9iheDPo3wsufFoLPda9SjnSuUIeYk9ROUx
hdSF8kHyfNkA51xJ/9+X6fdN+5f3T6xF2MGyA9nXAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenInfoWebsite.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA3FJREFUOE9Vkt9P
W3UYxmucdy5e+S9wPWO4wMAayuxGoTLEDFnkp7QNtIemNBbKYjcPNVSwSJs5lCnbYIUVKIWtZb9aoF1Z
V6GnrW1poVAmmwpV7JwCxhkev+fEGT3JJ3nOm/N+3nPxvACA999HudBQQN4pQi7hVcIhwq+EAA5wwVxw
6db/FlgBS4uv/hDhKuGPu99ZsJS5g9mHC3CsLmAq4cZEYgRNs9XPpHdOzzTMVL78fO/58ktk0TeU/BRb
u0Gs7sQQ3WFg3wjBmV7GUCyGK2EGY2EfTIEuVNsrIlVjZa9wf//PdcvlRBfST+ex/NSPeDaO0HYYI6k4
xtNr6Aum0PMggV5PAPa4GyZ/ByqGRTOcgFzOJ/y5+ds8HFknJp44cXPHg5uPYvgquYLPo6ugnEFQN/zQ
LzoxsHEewR/tEF8U/lV8QVDGCmzO9BdY+smJ0ew0rL8EEMhEYAzF0bO4AqkjCJnLBdXyANRpGqq1DgyH
Tbj6wICizwpus4LNb3++gaHNizBmvibXY/Bnwmi5HYJ0egkfBBYhS2kgXpFCnJCgOqqA7q4a3pQFRw15
P7CC3bUns+hMfgQq1YaB7+cwurGE6mvfQOH2omf1FuqSI+BH2iAMN+OkqwqK8ffBPL6OPDp3j0fdq9tb
z87iw4gaikgfBh+6UDPqR81UFBVf3keL6z46InZQPgdqrXZUWs9ANnwazKNp5Ope2+c1z9U8Dm1PoS/W
ie61OZxdcKPWcAm0oQeDg4PQnPsYpedsOE5PkaznZvquTvSPGPB625FtHinGdXvCDEf6MpT3aDR+ooHJ
ZMLW1hbW19fh8XjQoe+G8mw34okkN/P5SB/IN4Kawk1eveOUkBTjWTTjRJ3pXajb1GCiUVRR7SgpFUMi
kcBsNkOr1XK5pLQEGl0LJ2lVt+5yRaq89ta0cV4DSlcPWk9zgiaLB4XHhHC73WAYBl6vFzabDUVvCqC1
SDkBTdP7nODtK8WHSTEi9bp3QCnlnKCWaoWg6BiEQiHKy8s52CwoEkD0XvEuK5DJZFlOwHL8fOHhAm2e
t+SU6KDX1AvrxDgmJyfR398PlUqF9vZ2LrMz65g1azQas2KxOPGvgJXk5OS8mC97o/VE2Ym9BknDQZO8
Cc3yZhQq+NmjynyG5H25XL7f2Nj4u0gk2uDz+Uf+BlXgloy7HfxbAAAAAElFTkSuQmCC
</value>
</data>
<metadata name="tsQuickConnect.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>651, 5</value>
</metadata>
<metadata name="tsExtAppsToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>348, 8</value>
</metadata>
<metadata name="cMenExtAppsToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>482, 8</value>
</metadata>
<metadata name="tmrShowUpdate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>102, 8</value>
</metadata>
<metadata name="tmrAutoSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>233, 8</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>37</value>
</metadata>
</root>

View File

@@ -1,609 +0,0 @@
Imports mRemote.App.Runtime
Imports System.Reflection
Imports Crownwood
Public Class frmMain
Public prevWindowsState As FormWindowState
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
ApplyLanguage()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
Startup.CreateLogger()
sL.Load()
mC = New Messages.Collector(Windows.errorsForm)
Connection.Protocol.RDP.Resolutions.AddResolutions()
Connection.Protocol.PuttyBase.BorderSize = New Size(SystemInformation.FrameBorderSize.Width, SystemInformation.CaptionHeight + SystemInformation.FrameBorderSize.Height) 'Size.Subtract(Me.Size, Me.ClientSize)
wL = New UI.Window.List
Startup.GetConnectionIcons()
Startup.GetPuttySessions()
App.Runtime.GetExtApps()
Windows.treePanel.Focus()
Tree.Node.TreeView = Windows.treeForm.tvConnections
'LoadCredentials()
LoadConnections()
If My.Settings.FirstStart Then
Windows.Show(UI.Window.Type.About)
End If
Startup.UpdateCheck()
Startup.CreateSQLUpdateHandlerAndStartTimer()
AddSysMenuItems()
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
End Sub
Private Sub ApplyLanguage()
mMenFile.Text = Language.Base.Menu_File
mMenFileNew.Text = Language.Base.Menu_NewConnections
mMenFileLoad.Text = Language.Base.Menu_OpenConnections
mMenFileSave.Text = Language.Base.Menu_SaveConnections
mMenFileSaveAs.Text = Language.Base.Menu_SaveConnectionsAs
mMenFileExit.Text = Language.Base.Menu_Exit
mMenView.Text = Language.Base.Menu_View
mMenViewAddConnectionPanel.Text = Language.Base.Menu_AddConnectionPanel
mMenViewConnectionPanels.Text = Language.Base.Menu_ConnectionPanels
mMenViewConnections.Text = Language.Base.Menu_Connections
mMenViewConfig.Text = Language.Base.Menu_Config
mMenViewSessions.Text = Language.Base.Menu_Sessions
mMenViewErrorsAndInfos.Text = Language.Base.Menu_ErrorsAndInfos
mMenViewScreenshotManager.Text = Language.Base.Menu_ScreenshotManager
mMenViewJumpTo.Text = Language.Base.Menu_JumpTo
mMenViewJumpToConnectionsConfig.Text = Language.Base.Menu_ConnectionsConfig
mMenViewJumpToSessionsScreenshots.Text = Language.Base.Menu_SessionsScreenshots
mMenViewJumpToErrorsInfos.Text = Language.Base.Menu_ErrorsInfos
mMenViewQuickConnectToolbar.Text = Language.Base.Menu_QuickyToolbar
mMenViewExtAppsToolbar.Text = Language.Base.Menu_ExternalApplicationsToolbar
mMenViewFullscreen.Text = Language.Base.Menu_FullScreenKioskMode
mMenTools.Text = Language.Base.Menu_Tools
mMenToolsSSHTransfer.Text = Language.Base.Menu_SSHFileTransfer
mMenToolsExternalApps.Text = Language.Base.Menu_ExternalApplications
mMenToolsPortScan.Text = Language.Base.Menu_PortScan
mMenToolsUpdate.Text = Language.Base.Menu_Update
mMenToolsOptions.Text = Language.Base.Menu_Options
mMenInfo.Text = Language.Base.Menu_Info
mMenInfoHelp.Text = Language.Base.Menu_Help
mMenInfoBugReport.Text = Language.Base.Menu_BugReport
mMenInfoDonate.Text = Language.Base.Menu_Donate
mMenInfoWebsite.Text = Language.Base.Menu_Website
mMenInfoAbout.Text = Language.Base.Menu_About
lblQuickConnect.Text = Language.Base.Toolbar_Quicky
btnQuickyPlay.Text = Language.Base.Toolbar_Play
mMenQuickyCon.Text = Language.Base.Menu_Connections
cMenToolbarShowText.Text = Language.Base.Toolbar_ShowText
End Sub
Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If My.Settings.ConfirmExit And wL.Count > 0 Then
If MsgBox(Language.Base.UnclosedConnectionPanels, MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.No Then
e.Cancel = True
Exit Sub
End If
End If
App.Runtime.Shutdown.BeforeQuit()
Debug.Print("[END] - " & Now)
End
End Sub
#End Region
Private tmrRuns As Integer = 0
Private Sub tmrShowUpdate_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrShowUpdate.Tick
If tmrRuns = 5 Then
Me.tmrShowUpdate.Enabled = False
End If
If App.Runtime.IsUpdateAvailable Then
App.Runtime.Windows.Show(UI.Window.Type.Update)
Me.tmrShowUpdate.Enabled = False
End If
tmrRuns += 1
End Sub
Private Sub tmrAutoSave_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrAutoSave.Tick
mC.AddMessage(Messages.MessageClass.InformationMsg, "Doing AutoSave", True)
App.Runtime.SaveConnections()
End Sub
#Region "Ext Apps Toolbar"
Private Sub cMenToolbarShowText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenToolbarShowText.Click
SwitchToolbarText(Not cMenToolbarShowText.Checked)
End Sub
Public Sub AddExtAppsToToolbar()
Try
'clean up
tsExtAppsToolbar.Items.Clear()
'add ext apps
For Each extA As Tools.ExternalApp In ExtApps
Dim nItem As New ToolStripButton
nItem.Text = extA.DisplayName
nItem.Image = extA.Image
If cMenToolbarShowText.Checked = True Then
nItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
Else
If nItem.Image IsNot Nothing Then
nItem.DisplayStyle = ToolStripItemDisplayStyle.Image
Else
nItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
End If
End If
nItem.Tag = extA
AddHandler nItem.Click, AddressOf tsExtAppEntry_Click
tsExtAppsToolbar.Items.Add(nItem)
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddExtAppsToToolbar failed (frmMain)" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub tsExtAppEntry_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim extA As Tools.ExternalApp = sender.Tag
If Tree.Node.GetNodeType(Tree.Node.SelectedNode) = Tree.Node.Type.Connection Then
extA.Start(Tree.Node.SelectedNode.Tag)
Else
extA.Start()
End If
End Sub
Public Sub SwitchToolbarText(ByVal Show As Boolean)
For Each tItem As ToolStripButton In tsExtAppsToolbar.Items
If Show = True Then
tItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
Else
If tItem.Image IsNot Nothing Then
tItem.DisplayStyle = ToolStripItemDisplayStyle.Image
Else
tItem.DisplayStyle = ToolStripItemDisplayStyle.ImageAndText
End If
End If
Next
cMenToolbarShowText.Checked = Show
End Sub
#End Region
#Region "Menu"
#Region "File"
Private Sub mMenFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNew.Click
NewConnections()
End Sub
Private Sub mMenFileLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileLoad.Click
If App.Runtime.ConnectionsFileLoaded Then
Select Case MsgBox(Language.Base.SaveConnectionsFileBeforeOpeningAnother, MsgBoxStyle.YesNoCancel Or MsgBoxStyle.Question)
Case MsgBoxResult.Yes
App.Runtime.SaveConnections()
Case MsgBoxResult.Cancel
Exit Sub
End Select
End If
LoadConnections(True)
End Sub
Private Sub mMenFileSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileSave.Click
SaveConnections()
End Sub
Private Sub mMenFileSaveAs_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileSaveAs.Click
App.Runtime.Windows.Show(UI.Window.Type.SaveAs)
End Sub
Private Sub mMenFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileExit.Click
App.Runtime.Shutdown.Quit()
End Sub
#End Region
#Region "View"
Private Sub mMenView_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenView.DropDownOpening
Me.mMenViewConnections.Checked = Not Windows.treeForm.IsHidden
Me.mMenViewConfig.Checked = Not Windows.configForm.IsHidden
Me.mMenViewErrorsAndInfos.Checked = Not Windows.errorsForm.IsHidden
Me.mMenViewSessions.Checked = Not Windows.sessionsForm.IsHidden
Me.mMenViewScreenshotManager.Checked = Not Windows.screenshotForm.IsHidden
Me.mMenViewExtAppsToolbar.Checked = tsExtAppsToolbar.Visible
Me.mMenViewQuickConnectToolbar.Checked = tsQuickConnect.Visible
Me.mMenViewConnectionPanels.DropDownItems.Clear()
For i As Integer = 0 To wL.Count - 1
Dim tItem As New ToolStripMenuItem(wL(i).Text, wL(i).Icon.ToBitmap, AddressOf ConnectionPanelMenuItem_Click)
tItem.Tag = wL(i)
Me.mMenViewConnectionPanels.DropDownItems.Add(tItem)
Next
End Sub
Private Sub ConnectionPanelMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
TryCast(sender.Tag, UI.Window.Base).Show(Me.pnlDock)
TryCast(sender.Tag, UI.Window.Base).Focus()
End Sub
Private Sub mMenViewSessions_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenViewSessions.Click
If Me.mMenViewSessions.Checked = False Then
Windows.sessionsPanel.Show(Me.pnlDock)
Me.mMenViewSessions.Checked = True
Else
Windows.sessionsPanel.Hide()
Me.mMenViewSessions.Checked = False
End If
End Sub
Private Sub mMenViewConnections_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewConnections.Click
If Me.mMenViewConnections.Checked = False Then
Windows.treePanel.Show(Me.pnlDock)
Me.mMenViewConnections.Checked = True
Else
Windows.treePanel.Hide()
Me.mMenViewConnections.Checked = False
End If
End Sub
Private Sub mMenViewConfig_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewConfig.Click
If Me.mMenViewConfig.Checked = False Then
Windows.configPanel.Show(Me.pnlDock)
Me.mMenViewConfig.Checked = True
Else
Windows.configPanel.Hide()
Me.mMenViewConfig.Checked = False
End If
End Sub
Private Sub mMenViewErrorsAndInfos_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewErrorsAndInfos.Click
If Me.mMenViewErrorsAndInfos.Checked = False Then
Windows.errorsPanel.Show(Me.pnlDock)
Me.mMenViewErrorsAndInfos.Checked = True
Else
Windows.errorsPanel.Hide()
Me.mMenViewErrorsAndInfos.Checked = False
End If
End Sub
Private Sub mMenViewScreenshotManager_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewScreenshotManager.Click
If Me.mMenViewScreenshotManager.Checked = False Then
Windows.screenshotPanel.Show(Me.pnlDock)
Me.mMenViewScreenshotManager.Checked = True
Else
Windows.screenshotPanel.Hide()
Me.mMenViewScreenshotManager.Checked = False
End If
End Sub
Private Sub mMenViewJumpToConnectionsConfig_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenViewJumpToConnectionsConfig.Click
If pnlDock.ActiveContent Is Windows.treePanel Then
Windows.configForm.Activate()
Else
Windows.treeForm.Activate()
End If
End Sub
Private Sub mMenViewJumpToSessionsScreenshots_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenViewJumpToSessionsScreenshots.Click
If pnlDock.ActiveContent Is Windows.sessionsPanel Then
Windows.screenshotForm.Activate()
Else
Windows.sessionsForm.Activate()
End If
End Sub
Private Sub mMenViewJumpToErrorsInfos_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenViewJumpToErrorsInfos.Click
Windows.errorsForm.Activate()
End Sub
Private Sub mMenViewAddConnectionPanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewAddConnectionPanel.Click
AddPanel()
End Sub
Private Sub mMenViewExtAppsToolbar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewExtAppsToolbar.Click
If mMenViewExtAppsToolbar.Checked = False Then
tsExtAppsToolbar.Visible = True
mMenViewExtAppsToolbar.Checked = True
Else
tsExtAppsToolbar.Visible = False
mMenViewExtAppsToolbar.Checked = False
End If
End Sub
Private Sub mMenViewQuickConnectToolbar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewQuickConnectToolbar.Click
If mMenViewQuickConnectToolbar.Checked = False Then
tsQuickConnect.Visible = True
mMenViewQuickConnectToolbar.Checked = True
Else
tsQuickConnect.Visible = False
mMenViewQuickConnectToolbar.Checked = False
End If
End Sub
Private Sub mMenViewFullscreen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewFullscreen.Click
If Tools.Misc.Fullscreen.FullscreenActive Then
Tools.Misc.Fullscreen.ExitFullscreen()
Me.mMenViewFullscreen.Checked = False
Else
Tools.Misc.Fullscreen.EnterFullscreen()
Me.mMenViewFullscreen.Checked = True
End If
End Sub
#End Region
#Region "Tools"
Private Sub mMenToolsUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsUpdate.Click
App.Runtime.Windows.Show(UI.Window.Type.Update)
End Sub
Private Sub mMenToolsSSHTransfer_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsSSHTransfer.Click
App.Runtime.Windows.Show(UI.Window.Type.SSHTransfer)
End Sub
Private Sub mMenToolsExternalApps_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsExternalApps.Click
App.Runtime.Windows.Show(UI.Window.Type.ExternalApps)
End Sub
Private Sub mMenToolsPortScan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsPortScan.Click
App.Runtime.Windows.Show(UI.Window.Type.PortScan, Tools.PortScan.PortScanMode.Normal)
End Sub
Private Sub mMenToolsUltraVNCSC_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsUltraVNCSC.Click
App.Runtime.Windows.Show(UI.Window.Type.UltraVNCSC)
End Sub
Private Sub mMenToolsOptions_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenToolsOptions.Click
App.Runtime.Windows.Show(UI.Window.Type.Options)
End Sub
#End Region
#Region "Quick Connect"
Private Sub btnQuickyPlay_ButtonClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnQuickyPlay.ButtonClick
CreateQuicky(QuickyText)
End Sub
Private Sub btnQuickyPlay_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnQuickyPlay.DropDownOpening
CreateQuickyButtons()
End Sub
Private Sub CreateQuickyButtons()
Try
btnQuickyPlay.DropDownItems.Clear()
For Each fI As FieldInfo In GetType(mRemote.Connection.Protocol.Protocols).GetFields
If fI.Name <> "value__" And fI.Name <> "NONE" Then
Dim nBtn As New ToolStripMenuItem
nBtn.Text = fI.Name
btnQuickyPlay.DropDownItems.Add(nBtn)
AddHandler nBtn.Click, AddressOf QuickyProtocolButton_Click
End If
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CreateButtons (frmMain) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub QuickyProtocolButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Try
Dim conI As Connection.Info = CreateQuicky(QuickyText, Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.Protocols), sender.Text))
If conI.Port = 0 Then
conI.SetDefaultPort()
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname)
End If
Else
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname & ":" & conI.Port)
End If
End If
App.Runtime.OpenConnection(conI, mRemote.Connection.Info.Force.DoNotJump)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickyProtocolButton_Click (frmMain) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub cmbQuickConnect_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmbQuickConnect.KeyDown
If e.KeyCode = Keys.Enter Then
CreateQuicky(QuickyText)
End If
End Sub
Private Sub lblQuickConnect_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lblQuickConnect.Click
Me.cmbQuickConnect.Focus()
End Sub
Private Function QuickyText() As String
Dim txt As String
txt = cmbQuickConnect.Text
If txt.StartsWith(" ") Or txt.EndsWith(" ") Then
txt = txt.Replace(" ", "")
cmbQuickConnect.Text = txt
End If
Return txt
End Function
#End Region
#Region "Info"
Private Sub mMenInfoHelp_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoHelp.Click
App.Runtime.Windows.Show(UI.Window.Type.Help)
End Sub
Private Sub mMenInfoBugReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoBugReport.Click
App.Runtime.GoToBugs()
End Sub
Private Sub mMenInfoWebsite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoWebsite.Click
App.Runtime.GoToWebsite()
End Sub
Private Sub mMenInfoDonate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoDonate.Click
App.Runtime.GoToDonate()
End Sub
Private Sub mMenInfoAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoAbout.Click
App.Runtime.Windows.Show(UI.Window.Type.About)
End Sub
#End Region
#End Region
#Region "Connections DropDown"
Private Sub mMenQuickyCon_DropDownOpening(ByVal sender As Object, ByVal e As System.EventArgs) Handles mMenQuickyCon.DropDownOpening
mMenQuickyCon.DropDownItems.Clear()
For Each tNode As TreeNode In App.Runtime.Windows.treeForm.tvConnections.Nodes
AddNodeToMenu(tNode.Nodes, mMenQuickyCon)
Next
End Sub
Private Sub AddNodeToMenu(ByVal tnc As TreeNodeCollection, ByVal menToolStrip As ToolStripMenuItem)
Try
For Each tNode As TreeNode In tnc
Dim tMenItem As New ToolStripMenuItem()
tMenItem.Text = tNode.Text
tMenItem.Tag = tNode
If Tree.Node.GetNodeType(tNode) = Tree.Node.Type.Container Then
tMenItem.Image = My.Resources.Folder
tMenItem.Tag = tNode.Tag
menToolStrip.DropDownItems.Add(tMenItem)
AddNodeToMenu(tNode.Nodes, tMenItem)
ElseIf Tree.Node.GetNodeType(tNode) = Tree.Node.Type.Connection Then
tMenItem.Image = Windows.treeForm.imgListTree.Images(tNode.ImageIndex)
tMenItem.Tag = tNode.Tag
menToolStrip.DropDownItems.Add(tMenItem)
End If
AddHandler tMenItem.MouseDown, AddressOf ConMenItem_MouseDown
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "AddNodeToMenu failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Private Sub ConMenItem_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = MouseButtons.Left Then
If TypeOf sender.Tag Is mRemote.Connection.Info Then
App.Runtime.OpenConnection(sender.Tag)
End If
End If
End Sub
#End Region
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
If My.Settings.MinimizeToTray Then
If App.Runtime.SysTrayIcon Is Nothing Then
App.Runtime.SysTrayIcon = New Tools.Controls.SysTrayIcon()
End If
Me.Hide()
End If
Else
prevWindowsState = Me.WindowState
End If
End Sub
#Region "Window Overrides"
Private Msg13 As Boolean = False
Private Msg71 As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
Try
'Debug.Print(WndMsg.Msg)
If m.Msg = 13 Then
Msg13 = True
ElseIf m.Msg = 71 Then
If Msg13 Then
ActivateConnection()
End If
Msg13 = False
Msg71 = True
ElseIf m.Msg = 28 Then
If Msg71 Then
ActivateConnection()
End If
Else
Msg13 = False
Msg71 = False
End If
If m.Msg = Tools.SystemMenu.Flags.WM_SYSCOMMAND Then
For i As Integer = 0 To SysMenSubItems.Length - 1
If SysMenSubItems(i) = m.WParam Then
Screens.SendFormToScreen(Screen.AllScreens(i))
Exit For
End If
Next
End If
Catch ex As Exception
End Try
MyBase.WndProc(m)
End Sub
Private Sub ActivateConnection()
If TypeOf pnlDock.ActiveDocument Is UI.Window.Connection Then
Dim cW As UI.Window.Connection = pnlDock.ActiveDocument
If cW.TabController.SelectedTab IsNot Nothing Then
Dim tab As Magic.Controls.TabPage = cW.TabController.SelectedTab
TryCast(tab.Tag, Connection.InterfaceControl).Protocol.Focus()
End If
End If
End Sub
#End Region
#Region "Screen Stuff"
Private Sub DisplayChanged(ByVal sender As Object, ByVal e As System.EventArgs)
ResetSysMenuItems()
AddSysMenuItems()
End Sub
Private SysMenSubItems(50) As Integer
Private Sub ResetSysMenuItems()
SysMenu.Reset()
End Sub
Private Sub AddSysMenuItems()
SysMenu = New Tools.SystemMenu(Me.Handle)
Dim popMen As IntPtr = SysMenu.CreatePopupMenuItem()
For i As Integer = 0 To Screen.AllScreens.Length - 1
SysMenSubItems(i) = 200 + i
SysMenu.AppendMenuItem(popMen, Tools.SystemMenu.Flags.MF_STRING, SysMenSubItems(i), Language.Base.Screen & " " & i + 1)
Next
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 0, Tools.SystemMenu.Flags.MF_POPUP Or Tools.SystemMenu.Flags.MF_BYPOSITION, popMen, Language.Base.SendTo)
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 1, Tools.SystemMenu.Flags.MF_BYPOSITION Or Tools.SystemMenu.Flags.MF_SEPARATOR, IntPtr.Zero, Nothing)
End Sub
#End Region
End Class

View File

@@ -1,201 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmPassword
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.txtPassword = New System.Windows.Forms.TextBox
Me.txtVerify = New System.Windows.Forms.TextBox
Me.lblPassword = New System.Windows.Forms.Label
Me.lblVerify = New System.Windows.Forms.Label
Me.btnOK = New System.Windows.Forms.Button
Me.btnCancel = New System.Windows.Forms.Button
Me.lblStatus = New System.Windows.Forms.Label
Me.pbLock = New System.Windows.Forms.PictureBox
Me.pnlImage = New System.Windows.Forms.Panel
Me.txtSnake = New System.Windows.Forms.TextBox
Me.lblTips = New System.Windows.Forms.Label
CType(Me.pbLock, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnlImage.SuspendLayout()
Me.SuspendLayout()
'
'txtPassword
'
Me.txtPassword.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtPassword.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtPassword.Location = New System.Drawing.Point(95, 22)
Me.txtPassword.Name = "txtPassword"
Me.txtPassword.Size = New System.Drawing.Size(184, 20)
Me.txtPassword.TabIndex = 0
Me.txtPassword.UseSystemPasswordChar = True
'
'txtVerify
'
Me.txtVerify.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.txtVerify.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.txtVerify.Location = New System.Drawing.Point(95, 61)
Me.txtVerify.Name = "txtVerify"
Me.txtVerify.Size = New System.Drawing.Size(184, 20)
Me.txtVerify.TabIndex = 1
Me.txtVerify.UseSystemPasswordChar = True
'
'lblPassword
'
Me.lblPassword.AutoSize = True
Me.lblPassword.Location = New System.Drawing.Point(87, 6)
Me.lblPassword.Name = "lblPassword"
Me.lblPassword.Size = New System.Drawing.Size(56, 13)
Me.lblPassword.TabIndex = 2
Me.lblPassword.Text = Language.Base.Password
'
'lblVerify
'
Me.lblVerify.AutoSize = True
Me.lblVerify.Location = New System.Drawing.Point(87, 45)
Me.lblVerify.Name = "lblVerify"
Me.lblVerify.Size = New System.Drawing.Size(36, 13)
Me.lblVerify.TabIndex = 3
Me.lblVerify.Text = Language.Base.Verify
'
'btnOK
'
Me.btnOK.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnOK.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnOK.Location = New System.Drawing.Point(210, 101)
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(69, 23)
Me.btnOK.TabIndex = 4
Me.btnOK.Text = Language.Base.Button_OK
Me.btnOK.UseVisualStyleBackColor = True
'
'btnCancel
'
Me.btnCancel.Anchor = CType((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
Me.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.btnCancel.FlatStyle = System.Windows.Forms.FlatStyle.Flat
Me.btnCancel.Location = New System.Drawing.Point(135, 101)
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(69, 23)
Me.btnCancel.TabIndex = 5
Me.btnCancel.Text = Language.Base.Button_Cancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'lblStatus
'
Me.lblStatus.Anchor = CType(((System.Windows.Forms.AnchorStyles.Bottom Or System.Windows.Forms.AnchorStyles.Left) _
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
Me.lblStatus.ForeColor = System.Drawing.Color.OrangeRed
Me.lblStatus.Location = New System.Drawing.Point(90, 84)
Me.lblStatus.Name = "lblStatus"
Me.lblStatus.Size = New System.Drawing.Size(189, 14)
Me.lblStatus.TabIndex = 6
Me.lblStatus.Text = Language.Base.Status
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopRight
Me.lblStatus.Visible = False
'
'pbLock
'
Me.pbLock.Image = Global.mRemote.My.Resources.Resources.Lock
Me.pbLock.Location = New System.Drawing.Point(7, 8)
Me.pbLock.Name = "pbLock"
Me.pbLock.Size = New System.Drawing.Size(64, 64)
Me.pbLock.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize
Me.pbLock.TabIndex = 7
Me.pbLock.TabStop = False
'
'pnlImage
'
Me.pnlImage.Controls.Add(Me.pbLock)
Me.pnlImage.Location = New System.Drawing.Point(9, 6)
Me.pnlImage.Name = "pnlImage"
Me.pnlImage.Size = New System.Drawing.Size(100, 100)
Me.pnlImage.TabIndex = 8
'
'txtSnake
'
Me.txtSnake.BackColor = System.Drawing.SystemColors.Control
Me.txtSnake.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtSnake.Location = New System.Drawing.Point(9, 143)
Me.txtSnake.Name = "txtSnake"
Me.txtSnake.ReadOnly = True
Me.txtSnake.Size = New System.Drawing.Size(100, 13)
Me.txtSnake.TabIndex = 9
Me.txtSnake.TabStop = False
'
'lblTips
'
Me.lblTips.ForeColor = System.Drawing.Color.White
Me.lblTips.Location = New System.Drawing.Point(129, 6)
Me.lblTips.Name = "lblTips"
Me.lblTips.Size = New System.Drawing.Size(150, 118)
Me.lblTips.TabIndex = 10
Me.lblTips.Text = "Enter: Start/Pause" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Up/Down: Change difficulty" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Arrow Keys: Steer the snake" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Esc:" & _
" Quit (at any time)" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Have Fun! =)"
Me.lblTips.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.lblTips.Visible = False
'
'frmPassword
'
Me.AcceptButton = Me.btnOK
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.btnCancel
Me.ClientSize = New System.Drawing.Size(289, 133)
Me.ControlBox = False
Me.Controls.Add(Me.txtVerify)
Me.Controls.Add(Me.txtPassword)
Me.Controls.Add(Me.lblStatus)
Me.Controls.Add(Me.txtSnake)
Me.Controls.Add(Me.lblVerify)
Me.Controls.Add(Me.lblPassword)
Me.Controls.Add(Me.pnlImage)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnOK)
Me.Controls.Add(Me.lblTips)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "frmPassword"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = Language.Base.Security
CType(Me.pbLock, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnlImage.ResumeLayout(False)
Me.pnlImage.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents txtPassword As System.Windows.Forms.TextBox
Friend WithEvents txtVerify As System.Windows.Forms.TextBox
Friend WithEvents lblPassword As System.Windows.Forms.Label
Friend WithEvents lblVerify As System.Windows.Forms.Label
Friend WithEvents btnOK As System.Windows.Forms.Button
Friend WithEvents btnCancel As System.Windows.Forms.Button
Friend WithEvents lblStatus As System.Windows.Forms.Label
Friend WithEvents pbLock As System.Windows.Forms.PictureBox
Friend WithEvents pnlImage As System.Windows.Forms.Panel
Friend WithEvents txtSnake As System.Windows.Forms.TextBox
Friend WithEvents lblTips As System.Windows.Forms.Label
End Class

View File

@@ -1,120 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -1,128 +0,0 @@
Public Class frmPassword
Public ReadOnly Property Username() As String
Get
Return txtPassword.Text
End Get
End Property
Public ReadOnly Property Password() As String
Get
If _Verify = True Then
Return txtVerify.Text
Else
Return txtPassword.Text
End If
End Get
End Property
Private _Verify As Boolean = True
Public Property Verify() As Boolean
Get
Return _Verify
End Get
Set(ByVal value As Boolean)
_Verify = value
End Set
End Property
Private _UserAndPass As Boolean = False
Public Sub New(Optional ByVal UserAndPass As Boolean = False, Optional ByVal Title As String = "Security")
' This call is required by the Windows Form Designer.
InitializeComponent()
' Add any initialization after the InitializeComponent() call.
Me.Text = Title
If UserAndPass = True Then
_UserAndPass = True
lblPassword.Text = "Username:"
lblVerify.Text = "Password:"
txtPassword.UseSystemPasswordChar = False
txtVerify.UseSystemPasswordChar = True
End If
End Sub
Private Sub btnCancel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCancel.Click
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Sub
Private Sub btnOK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOK.Click
If Verify = True And _UserAndPass = False Then
If VerifyOK() Then
Me.DialogResult = Windows.Forms.DialogResult.OK
End If
Else
Me.DialogResult = Windows.Forms.DialogResult.OK
End If
End Sub
Private Function VerifyOK() As Boolean
If txtPassword.Text.Length >= 3 Then
If txtPassword.Text = txtVerify.Text Then
Return True
Else
lblStatus.Visible = True
lblStatus.Text = "Passwords don't match!"
Return False
End If
Else
lblStatus.Visible = True
lblStatus.Text = "3 characters is minimum!"
Return False
End If
End Function
Private Sub frmPassword_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Verify = False Then
Me.Height = 124
Me.lblVerify.Visible = False
Me.txtVerify.Visible = False
End If
End Sub
Private Sub txtPassword_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPassword.GotFocus
If Me.txtPassword.TextLength > 0 Then
Me.txtPassword.SelectionStart = 0
Me.txtPassword.SelectionLength = Me.txtPassword.TextLength
End If
End Sub
Private Sub txtVerify_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtVerify.GotFocus
If Me.txtVerify.TextLength > 0 Then
Me.txtVerify.SelectionStart = 0
Me.txtVerify.SelectionLength = Me.txtVerify.TextLength
End If
End Sub
Private Sub txtPassword_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPassword.TextChanged
If txtPassword.Text = "ijustwannaplay" Then
pbLock.Visible = False
btnOK.Visible = False
btnCancel.Visible = False
txtPassword.Visible = False
txtVerify.Visible = False
lblPassword.Visible = False
lblStatus.Visible = False
lblVerify.Visible = False
AcceptButton = Nothing
CancelButton = Nothing
BackColor = Color.DimGray
Me.Text = "SnakeFX Lite"
pnlImage.Top = (Me.ClientSize.Height / 2) - (Me.pnlImage.Height / 2)
lblTips.Visible = True
Easter.Snake.Game.CreatePicBox(pnlImage)
Easter.Snake.Game.Mode = Easter.Snake.Game.GameMode.Welcome
Easter.Snake.Game.SetupGame()
txtSnake.Focus()
End If
End Sub
Private Sub txtSnake_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSnake.KeyDown
Easter.Snake.Game.CheckKeyPress(e)
End Sub
End Class

View File

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

View File

@@ -1,4 +1,4 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Public Class frmChoosePanel
Public Property Panel() As String
@@ -17,11 +17,11 @@ Public Class frmChoosePanel
End Sub
Private Sub ApplyLanguage()
btnOK.Text = Language.Base.Button_OK
lblDescription.Text = Language.Base.SelectAPanel
btnNew.Text = Language.Base.Button_New
btnCancel.Text = Language.Base.Button_Cancel
Text = Language.Base.SelectPanel
btnOK.Text = My.Resources.strButtonOK
lblDescription.Text = My.Resources.strLabelSelectPanel
btnNew.Text = My.Resources.strButtonNew
btnCancel.Text = My.Resources.strButtonCancel
Text = My.Resources.strTitleSelectPanel
End Sub
Private Sub AddAvailablePanels()
@@ -42,7 +42,7 @@ Public Class frmChoosePanel
End Sub
Private Sub btnNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnNew.Click
Dim pnlName As String = InputBox(Language.Base.PanelName & ":", Language.Base.NewPanel, Language.Base.NewPanel)
Dim pnlName As String = InputBox(My.Resources.strPanelName & ":", My.Resources.strNewPanel, My.Resources.strNewPanel)
If pnlName <> "" Then
AddPanel(pnlName)

View File

@@ -23,16 +23,45 @@ Partial Class frmMain
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
Dim DockPanelSkin1 As WeifenLuo.WinFormsUI.Docking.DockPanelSkin = New WeifenLuo.WinFormsUI.Docking.DockPanelSkin
Dim AutoHideStripSkin1 As WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin = New WeifenLuo.WinFormsUI.Docking.AutoHideStripSkin
Dim DockPanelGradient1 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient1 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripSkin1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin = New WeifenLuo.WinFormsUI.Docking.DockPaneStripSkin
Dim DockPaneStripGradient1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripGradient
Dim TabGradient2 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient2 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient3 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPaneStripToolWindowGradient1 As WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient = New WeifenLuo.WinFormsUI.Docking.DockPaneStripToolWindowGradient
Dim TabGradient4 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient5 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim DockPanelGradient3 As WeifenLuo.WinFormsUI.Docking.DockPanelGradient = New WeifenLuo.WinFormsUI.Docking.DockPanelGradient
Dim TabGradient6 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim TabGradient7 As WeifenLuo.WinFormsUI.Docking.TabGradient = New WeifenLuo.WinFormsUI.Docking.TabGradient
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmMain))
Me.pnlDock = New WeifenLuo.WinFormsUI.Docking.DockPanel
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenFile = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNewConnection = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNewFolder = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileNew = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileLoad = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileSave = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSaveAs = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileImportExport = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromXMLFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromRDPFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromActiveDirectoryToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ImportFromPortScanToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripSeparator6 = New System.Windows.Forms.ToolStripSeparator
Me.ExportToXMLFileToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep3 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileDelete = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileRename = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileDuplicate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep4 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileExit = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewAddConnectionPanel = New System.Windows.Forms.ToolStripMenuItem
@@ -48,6 +77,7 @@ Partial Class frmMain
Me.mMenViewJumpToConnectionsConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToSessionsScreenshots = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewJumpToErrorsInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewResetLayout = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewQuickConnectToolbar = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewExtAppsToolbar = New System.Windows.Forms.ToolStripMenuItem
@@ -59,157 +89,301 @@ Partial Class frmMain
Me.mMenToolsExternalApps = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsPortScan = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenToolsUpdate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsComponentsCheck = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsOptions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfo = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoHelp = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoDonate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoWebsite = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfovRD08 = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoDonate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoForum = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoBugReport = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripSeparator2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoAnnouncements = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsUpdate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoAnnouncments = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoAbout = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSep3 = New System.Windows.Forms.ToolStripSeparator
Me.lblQuickConnect = New System.Windows.Forms.ToolStripLabel
Me.cmbQuickConnect = New System.Windows.Forms.ToolStripComboBox
Me.tsContainer = New System.Windows.Forms.ToolStripContainer
Me.tsQuickConnect = New System.Windows.Forms.ToolStrip
Me.btnQuickyPlay = New System.Windows.Forms.ToolStripSplitButton
Me.mMenQuickyCon = New System.Windows.Forms.ToolStripMenuItem
Me.tsExtAppsToolbar = New System.Windows.Forms.ToolStrip
Me.cMenExtAppsToolbar = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.cMenToolbarShowText = New System.Windows.Forms.ToolStripMenuItem
Me.tsQuickConnect = New System.Windows.Forms.ToolStrip
Me.btnQuickyPlay = New System.Windows.Forms.ToolStripSplitButton
Me.mMenQuickyCon = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStrip1 = New System.Windows.Forms.ToolStrip
Me.ToolStripButton1 = New System.Windows.Forms.ToolStripButton
Me.ToolStripButton2 = New System.Windows.Forms.ToolStripButton
Me.ToolStripButton3 = New System.Windows.Forms.ToolStripButton
Me.ToolStripSplitButton1 = New System.Windows.Forms.ToolStripDropDownButton
Me.ToolStripMenuItem1 = New System.Windows.Forms.ToolStripMenuItem
Me.ToolStripMenuItem2 = New System.Windows.Forms.ToolStripMenuItem
Me.tmrShowUpdate = New System.Windows.Forms.Timer(Me.components)
Me.tmrAutoSave = New System.Windows.Forms.Timer(Me.components)
Me.msMain.SuspendLayout()
Me.tsContainer.ContentPanel.SuspendLayout()
Me.tsContainer.TopToolStripPanel.SuspendLayout()
Me.tsContainer.SuspendLayout()
Me.tsQuickConnect.SuspendLayout()
Me.cMenExtAppsToolbar.SuspendLayout()
Me.tsQuickConnect.SuspendLayout()
Me.ToolStrip1.SuspendLayout()
Me.SuspendLayout()
'
'pnlDock
'
Me.pnlDock.ActiveAutoHideContent = Nothing
Me.pnlDock.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlDock.DockBackColor = System.Drawing.SystemColors.Control
Me.pnlDock.DockLeftPortion = 230
Me.pnlDock.DockRightPortion = 230
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow
Me.pnlDock.Location = New System.Drawing.Point(0, 0)
Me.pnlDock.Name = "pnlDock"
Me.pnlDock.Size = New System.Drawing.Size(842, 499)
Me.pnlDock.Size = New System.Drawing.Size(842, 424)
DockPanelGradient1.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient1.StartColor = System.Drawing.SystemColors.ControlLight
AutoHideStripSkin1.DockStripGradient = DockPanelGradient1
TabGradient1.EndColor = System.Drawing.SystemColors.Control
TabGradient1.StartColor = System.Drawing.SystemColors.Control
TabGradient1.TextColor = System.Drawing.SystemColors.ControlDarkDark
AutoHideStripSkin1.TabGradient = TabGradient1
DockPanelSkin1.AutoHideStripSkin = AutoHideStripSkin1
TabGradient2.EndColor = System.Drawing.SystemColors.ControlLightLight
TabGradient2.StartColor = System.Drawing.SystemColors.ControlLightLight
TabGradient2.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient1.ActiveTabGradient = TabGradient2
DockPanelGradient2.EndColor = System.Drawing.SystemColors.Control
DockPanelGradient2.StartColor = System.Drawing.SystemColors.Control
DockPaneStripGradient1.DockStripGradient = DockPanelGradient2
TabGradient3.EndColor = System.Drawing.SystemColors.ControlLight
TabGradient3.StartColor = System.Drawing.SystemColors.ControlLight
TabGradient3.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripGradient1.InactiveTabGradient = TabGradient3
DockPaneStripSkin1.DocumentGradient = DockPaneStripGradient1
TabGradient4.EndColor = System.Drawing.SystemColors.ActiveCaption
TabGradient4.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient4.StartColor = System.Drawing.SystemColors.GradientActiveCaption
TabGradient4.TextColor = System.Drawing.SystemColors.ActiveCaptionText
DockPaneStripToolWindowGradient1.ActiveCaptionGradient = TabGradient4
TabGradient5.EndColor = System.Drawing.SystemColors.Control
TabGradient5.StartColor = System.Drawing.SystemColors.Control
TabGradient5.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient1.ActiveTabGradient = TabGradient5
DockPanelGradient3.EndColor = System.Drawing.SystemColors.ControlLight
DockPanelGradient3.StartColor = System.Drawing.SystemColors.ControlLight
DockPaneStripToolWindowGradient1.DockStripGradient = DockPanelGradient3
TabGradient6.EndColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient6.LinearGradientMode = System.Drawing.Drawing2D.LinearGradientMode.Vertical
TabGradient6.StartColor = System.Drawing.SystemColors.GradientInactiveCaption
TabGradient6.TextColor = System.Drawing.SystemColors.ControlText
DockPaneStripToolWindowGradient1.InactiveCaptionGradient = TabGradient6
TabGradient7.EndColor = System.Drawing.Color.Transparent
TabGradient7.StartColor = System.Drawing.Color.Transparent
TabGradient7.TextColor = System.Drawing.SystemColors.ControlDarkDark
DockPaneStripToolWindowGradient1.InactiveTabGradient = TabGradient7
DockPaneStripSkin1.ToolWindowGradient = DockPaneStripToolWindowGradient1
DockPanelSkin1.DockPaneStripSkin = DockPaneStripSkin1
Me.pnlDock.Skin = DockPanelSkin1
Me.pnlDock.TabIndex = 13
'
'msMain
'
Me.msMain.Dock = System.Windows.Forms.DockStyle.None
Me.msMain.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.msMain.GripMargin = New System.Windows.Forms.Padding(2, 0, 0, 0)
Me.msMain.GripMargin = New System.Windows.Forms.Padding(0)
Me.msMain.GripStyle = System.Windows.Forms.ToolStripGripStyle.Visible
Me.msMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFile, Me.mMenView, Me.mMenTools, Me.mMenInfo})
Me.msMain.Location = New System.Drawing.Point(3, 0)
Me.msMain.Name = "msMain"
Me.msMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.msMain.Size = New System.Drawing.Size(323, 24)
Me.msMain.Padding = New System.Windows.Forms.Padding(2, 2, 0, 2)
Me.msMain.Size = New System.Drawing.Size(274, 24)
Me.msMain.Stretch = False
Me.msMain.TabIndex = 16
Me.msMain.Text = "Main Toolbar"
'
'mMenFile
'
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSep1, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileExit})
Me.mMenFile.Image = CType(resources.GetObject("mMenFile.Image"), System.Drawing.Image)
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNewConnection, Me.mMenFileNewFolder, Me.mMenFileSep1, Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileImportExport, Me.mMenFileSep3, Me.mMenFileDelete, Me.mMenFileRename, Me.mMenFileDuplicate, Me.mMenFileSep4, Me.mMenFileExit})
Me.mMenFile.Name = "mMenFile"
Me.mMenFile.Size = New System.Drawing.Size(51, 20)
Me.mMenFile.Size = New System.Drawing.Size(37, 20)
Me.mMenFile.Text = "&File"
'
'mMenFileNew
'mMenFileNewConnection
'
Me.mMenFileNew.Image = Global.mRemote.My.Resources.Resources.Connections_New
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(238, 22)
Me.mMenFileNew.Text = "New Connections"
Me.mMenFileNewConnection.Image = Global.mRemoteNG.My.Resources.Resources.Connection_Add
Me.mMenFileNewConnection.Name = "mMenFileNewConnection"
Me.mMenFileNewConnection.ShortcutKeys = CType((System.Windows.Forms.Keys.Shift Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileNewConnection.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNewConnection.Text = "New Connection"
'
'mMenFileLoad
'mMenFileNewFolder
'
Me.mMenFileLoad.Image = Global.mRemote.My.Resources.Resources.Connections_Load
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(238, 22)
Me.mMenFileLoad.Text = "Open Connections"
Me.mMenFileNewFolder.Image = Global.mRemoteNG.My.Resources.Resources.Folder_Add
Me.mMenFileNewFolder.Name = "mMenFileNewFolder"
Me.mMenFileNewFolder.ShortcutKeys = System.Windows.Forms.Keys.F7
Me.mMenFileNewFolder.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNewFolder.Text = "New Folder"
'
'mMenFileSep1
'
Me.mMenFileSep1.Name = "mMenFileSep1"
Me.mMenFileSep1.Size = New System.Drawing.Size(235, 6)
Me.mMenFileSep1.Size = New System.Drawing.Size(331, 6)
'
'mMenFileNew
'
Me.mMenFileNew.Image = Global.mRemoteNG.My.Resources.Resources.Connections_New
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(334, 22)
Me.mMenFileNew.Text = "New Connection File"
'
'mMenFileLoad
'
Me.mMenFileLoad.Image = Global.mRemoteNG.My.Resources.Resources.Connections_Load
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(334, 22)
Me.mMenFileLoad.Text = "Open Connection File..."
'
'mMenFileSave
'
Me.mMenFileSave.Image = Global.mRemote.My.Resources.Resources.Connections_Save
Me.mMenFileSave.Image = Global.mRemoteNG.My.Resources.Resources.Connections_Save
Me.mMenFileSave.Name = "mMenFileSave"
Me.mMenFileSave.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSave.Size = New System.Drawing.Size(238, 22)
Me.mMenFileSave.Text = "Save Connections"
Me.mMenFileSave.Size = New System.Drawing.Size(334, 22)
Me.mMenFileSave.Text = "Save Connection File"
'
'mMenFileSaveAs
'
Me.mMenFileSaveAs.Image = Global.mRemote.My.Resources.Resources.Connections_SaveAs
Me.mMenFileSaveAs.Image = Global.mRemoteNG.My.Resources.Resources.Connections_SaveAs
Me.mMenFileSaveAs.Name = "mMenFileSaveAs"
Me.mMenFileSaveAs.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSaveAs.Size = New System.Drawing.Size(238, 22)
Me.mMenFileSaveAs.Text = "Save Connections As"
Me.mMenFileSaveAs.Size = New System.Drawing.Size(334, 22)
Me.mMenFileSaveAs.Text = "Save Connection File As..."
'
'mMenFileSep2
'
Me.mMenFileSep2.Name = "mMenFileSep2"
Me.mMenFileSep2.Size = New System.Drawing.Size(235, 6)
Me.mMenFileSep2.Size = New System.Drawing.Size(331, 6)
'
'mMenFileImportExport
'
Me.mMenFileImportExport.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ImportFromXMLFileToolStripMenuItem, Me.ImportFromRDPFileToolStripMenuItem, Me.ImportFromActiveDirectoryToolStripMenuItem, Me.ImportFromPortScanToolStripMenuItem, Me.ToolStripSeparator6, Me.ExportToXMLFileToolStripMenuItem})
Me.mMenFileImportExport.Name = "mMenFileImportExport"
Me.mMenFileImportExport.Size = New System.Drawing.Size(334, 22)
Me.mMenFileImportExport.Text = "Import/Export Folder"
Me.mMenFileImportExport.Visible = False
'
'ImportFromXMLFileToolStripMenuItem
'
Me.ImportFromXMLFileToolStripMenuItem.Name = "ImportFromXMLFileToolStripMenuItem"
Me.ImportFromXMLFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromXMLFileToolStripMenuItem.Text = "Import from XML File..."
'
'ImportFromRDPFileToolStripMenuItem
'
Me.ImportFromRDPFileToolStripMenuItem.Name = "ImportFromRDPFileToolStripMenuItem"
Me.ImportFromRDPFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromRDPFileToolStripMenuItem.Text = "Import from RDP File..."
'
'ImportFromActiveDirectoryToolStripMenuItem
'
Me.ImportFromActiveDirectoryToolStripMenuItem.Name = "ImportFromActiveDirectoryToolStripMenuItem"
Me.ImportFromActiveDirectoryToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromActiveDirectoryToolStripMenuItem.Text = "Import from Active Directory..."
'
'ImportFromPortScanToolStripMenuItem
'
Me.ImportFromPortScanToolStripMenuItem.Name = "ImportFromPortScanToolStripMenuItem"
Me.ImportFromPortScanToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ImportFromPortScanToolStripMenuItem.Text = "Import from Port Scan..."
'
'ToolStripSeparator6
'
Me.ToolStripSeparator6.Name = "ToolStripSeparator6"
Me.ToolStripSeparator6.Size = New System.Drawing.Size(232, 6)
'
'ExportToXMLFileToolStripMenuItem
'
Me.ExportToXMLFileToolStripMenuItem.Name = "ExportToXMLFileToolStripMenuItem"
Me.ExportToXMLFileToolStripMenuItem.Size = New System.Drawing.Size(235, 22)
Me.ExportToXMLFileToolStripMenuItem.Text = "Export to XML File..."
'
'mMenFileSep3
'
Me.mMenFileSep3.Name = "mMenFileSep3"
Me.mMenFileSep3.Size = New System.Drawing.Size(331, 6)
Me.mMenFileSep3.Visible = False
'
'mMenFileDelete
'
Me.mMenFileDelete.Image = Global.mRemoteNG.My.Resources.Resources.Delete
Me.mMenFileDelete.Name = "mMenFileDelete"
Me.mMenFileDelete.Size = New System.Drawing.Size(334, 22)
Me.mMenFileDelete.Text = "Delete..."
'
'mMenFileRename
'
Me.mMenFileRename.Image = Global.mRemoteNG.My.Resources.Resources.Rename
Me.mMenFileRename.Name = "mMenFileRename"
Me.mMenFileRename.Size = New System.Drawing.Size(334, 22)
Me.mMenFileRename.Text = "Rename"
'
'mMenFileDuplicate
'
Me.mMenFileDuplicate.Image = Global.mRemoteNG.My.Resources.Resources.Connection_Duplicate
Me.mMenFileDuplicate.Name = "mMenFileDuplicate"
Me.mMenFileDuplicate.Size = New System.Drawing.Size(334, 22)
Me.mMenFileDuplicate.Text = "Duplicate"
'
'mMenFileSep4
'
Me.mMenFileSep4.Name = "mMenFileSep4"
Me.mMenFileSep4.Size = New System.Drawing.Size(331, 6)
'
'mMenFileExit
'
Me.mMenFileExit.Image = Global.mRemote.My.Resources.Resources.Quit
Me.mMenFileExit.Image = Global.mRemoteNG.My.Resources.Resources.Quit
Me.mMenFileExit.Name = "mMenFileExit"
Me.mMenFileExit.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileExit.Size = New System.Drawing.Size(238, 22)
Me.mMenFileExit.Size = New System.Drawing.Size(334, 22)
Me.mMenFileExit.Text = "Exit"
'
'mMenView
'
Me.mMenView.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewAddConnectionPanel, Me.mMenViewConnectionPanels, Me.mMenViewSep1, Me.mMenViewConnections, Me.mMenViewConfig, Me.mMenViewSessions, Me.mMenViewErrorsAndInfos, Me.mMenViewScreenshotManager, Me.ToolStripSeparator1, Me.mMenViewJumpTo, Me.mMenViewSep2, Me.mMenViewQuickConnectToolbar, Me.mMenViewExtAppsToolbar, Me.mMenViewSep3, Me.mMenViewFullscreen})
Me.mMenView.Image = CType(resources.GetObject("mMenView.Image"), System.Drawing.Image)
Me.mMenView.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewAddConnectionPanel, Me.mMenViewConnectionPanels, Me.mMenViewSep1, Me.mMenViewConnections, Me.mMenViewConfig, Me.mMenViewSessions, Me.mMenViewErrorsAndInfos, Me.mMenViewScreenshotManager, Me.ToolStripSeparator1, Me.mMenViewJumpTo, Me.mMenViewResetLayout, Me.mMenViewSep2, Me.mMenViewQuickConnectToolbar, Me.mMenViewExtAppsToolbar, Me.mMenViewSep3, Me.mMenViewFullscreen})
Me.mMenView.Name = "mMenView"
Me.mMenView.Size = New System.Drawing.Size(58, 20)
Me.mMenView.Size = New System.Drawing.Size(44, 20)
Me.mMenView.Text = "&View"
'
'mMenViewAddConnectionPanel
'
Me.mMenViewAddConnectionPanel.Image = Global.mRemote.My.Resources.Resources.Panel_Add
Me.mMenViewAddConnectionPanel.Image = Global.mRemoteNG.My.Resources.Resources.Panel_Add
Me.mMenViewAddConnectionPanel.Name = "mMenViewAddConnectionPanel"
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(211, 22)
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(228, 22)
Me.mMenViewAddConnectionPanel.Text = "Add Connection Panel"
'
'mMenViewConnectionPanels
'
Me.mMenViewConnectionPanels.Image = Global.mRemote.My.Resources.Resources.Panels
Me.mMenViewConnectionPanels.Image = Global.mRemoteNG.My.Resources.Resources.Panels
Me.mMenViewConnectionPanels.Name = "mMenViewConnectionPanels"
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(211, 22)
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(228, 22)
Me.mMenViewConnectionPanels.Text = "Connection Panels"
'
'mMenViewSep1
'
Me.mMenViewSep1.Name = "mMenViewSep1"
Me.mMenViewSep1.Size = New System.Drawing.Size(208, 6)
Me.mMenViewSep1.Size = New System.Drawing.Size(225, 6)
'
'mMenViewConnections
'
Me.mMenViewConnections.Checked = True
Me.mMenViewConnections.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConnections.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenViewConnections.Image = Global.mRemoteNG.My.Resources.Resources.Root
Me.mMenViewConnections.Name = "mMenViewConnections"
Me.mMenViewConnections.Size = New System.Drawing.Size(211, 22)
Me.mMenViewConnections.Size = New System.Drawing.Size(228, 22)
Me.mMenViewConnections.Text = "Connections"
'
'mMenViewConfig
@@ -218,7 +392,7 @@ Partial Class frmMain
Me.mMenViewConfig.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConfig.Image = CType(resources.GetObject("mMenViewConfig.Image"), System.Drawing.Image)
Me.mMenViewConfig.Name = "mMenViewConfig"
Me.mMenViewConfig.Size = New System.Drawing.Size(211, 22)
Me.mMenViewConfig.Size = New System.Drawing.Size(228, 22)
Me.mMenViewConfig.Text = "Config"
'
'mMenViewSessions
@@ -227,36 +401,36 @@ Partial Class frmMain
Me.mMenViewSessions.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewSessions.Image = CType(resources.GetObject("mMenViewSessions.Image"), System.Drawing.Image)
Me.mMenViewSessions.Name = "mMenViewSessions"
Me.mMenViewSessions.Size = New System.Drawing.Size(211, 22)
Me.mMenViewSessions.Size = New System.Drawing.Size(228, 22)
Me.mMenViewSessions.Text = "Sessions"
'
'mMenViewErrorsAndInfos
'
Me.mMenViewErrorsAndInfos.Checked = True
Me.mMenViewErrorsAndInfos.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewErrorsAndInfos.Image = Global.mRemote.My.Resources.Resources.ErrorsAndInfos
Me.mMenViewErrorsAndInfos.Image = Global.mRemoteNG.My.Resources.Resources.ErrorsAndInfos
Me.mMenViewErrorsAndInfos.Name = "mMenViewErrorsAndInfos"
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(211, 22)
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(228, 22)
Me.mMenViewErrorsAndInfos.Text = "Errors and Infos"
'
'mMenViewScreenshotManager
'
Me.mMenViewScreenshotManager.Image = CType(resources.GetObject("mMenViewScreenshotManager.Image"), System.Drawing.Image)
Me.mMenViewScreenshotManager.Name = "mMenViewScreenshotManager"
Me.mMenViewScreenshotManager.Size = New System.Drawing.Size(211, 22)
Me.mMenViewScreenshotManager.Size = New System.Drawing.Size(228, 22)
Me.mMenViewScreenshotManager.Text = "Screenshot Manager"
'
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(208, 6)
Me.ToolStripSeparator1.Size = New System.Drawing.Size(225, 6)
'
'mMenViewJumpTo
'
Me.mMenViewJumpTo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewJumpToConnectionsConfig, Me.mMenViewJumpToSessionsScreenshots, Me.mMenViewJumpToErrorsInfos})
Me.mMenViewJumpTo.Image = Global.mRemote.My.Resources.Resources.JumpTo
Me.mMenViewJumpTo.Image = Global.mRemoteNG.My.Resources.Resources.JumpTo
Me.mMenViewJumpTo.Name = "mMenViewJumpTo"
Me.mMenViewJumpTo.Size = New System.Drawing.Size(211, 22)
Me.mMenViewJumpTo.Size = New System.Drawing.Size(228, 22)
Me.mMenViewJumpTo.Text = "Jump To"
'
'mMenViewJumpToConnectionsConfig
@@ -264,7 +438,7 @@ Partial Class frmMain
Me.mMenViewJumpToConnectionsConfig.Name = "mMenViewJumpToConnectionsConfig"
Me.mMenViewJumpToConnectionsConfig.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.C), System.Windows.Forms.Keys)
Me.mMenViewJumpToConnectionsConfig.Size = New System.Drawing.Size(240, 22)
Me.mMenViewJumpToConnectionsConfig.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToConnectionsConfig.Text = "Connections && Config"
'
'mMenViewJumpToSessionsScreenshots
@@ -272,7 +446,7 @@ Partial Class frmMain
Me.mMenViewJumpToSessionsScreenshots.Name = "mMenViewJumpToSessionsScreenshots"
Me.mMenViewJumpToSessionsScreenshots.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenViewJumpToSessionsScreenshots.Size = New System.Drawing.Size(240, 22)
Me.mMenViewJumpToSessionsScreenshots.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToSessionsScreenshots.Text = "Sessions && Screenshots"
'
'mMenViewJumpToErrorsInfos
@@ -280,109 +454,108 @@ Partial Class frmMain
Me.mMenViewJumpToErrorsInfos.Name = "mMenViewJumpToErrorsInfos"
Me.mMenViewJumpToErrorsInfos.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Alt) _
Or System.Windows.Forms.Keys.E), System.Windows.Forms.Keys)
Me.mMenViewJumpToErrorsInfos.Size = New System.Drawing.Size(240, 22)
Me.mMenViewJumpToErrorsInfos.Size = New System.Drawing.Size(262, 22)
Me.mMenViewJumpToErrorsInfos.Text = "Errors && Infos"
'
'mMenViewResetLayout
'
Me.mMenViewResetLayout.Name = "mMenViewResetLayout"
Me.mMenViewResetLayout.Size = New System.Drawing.Size(228, 22)
Me.mMenViewResetLayout.Text = "Reset Layout"
'
'mMenViewSep2
'
Me.mMenViewSep2.Name = "mMenViewSep2"
Me.mMenViewSep2.Size = New System.Drawing.Size(208, 6)
Me.mMenViewSep2.Size = New System.Drawing.Size(225, 6)
'
'mMenViewQuickConnectToolbar
'
Me.mMenViewQuickConnectToolbar.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.mMenViewQuickConnectToolbar.Image = Global.mRemoteNG.My.Resources.Resources.Play_Quick
Me.mMenViewQuickConnectToolbar.Name = "mMenViewQuickConnectToolbar"
Me.mMenViewQuickConnectToolbar.Size = New System.Drawing.Size(211, 22)
Me.mMenViewQuickConnectToolbar.Text = "Quicky Toolbar"
Me.mMenViewQuickConnectToolbar.Size = New System.Drawing.Size(228, 22)
Me.mMenViewQuickConnectToolbar.Text = "Quick Connect Toolbar"
'
'mMenViewExtAppsToolbar
'
Me.mMenViewExtAppsToolbar.Image = CType(resources.GetObject("mMenViewExtAppsToolbar.Image"), System.Drawing.Image)
Me.mMenViewExtAppsToolbar.Name = "mMenViewExtAppsToolbar"
Me.mMenViewExtAppsToolbar.Size = New System.Drawing.Size(211, 22)
Me.mMenViewExtAppsToolbar.Size = New System.Drawing.Size(228, 22)
Me.mMenViewExtAppsToolbar.Text = "External Applications Toolbar"
'
'mMenViewSep3
'
Me.mMenViewSep3.Name = "mMenViewSep3"
Me.mMenViewSep3.Size = New System.Drawing.Size(208, 6)
Me.mMenViewSep3.Size = New System.Drawing.Size(225, 6)
'
'mMenViewFullscreen
'
Me.mMenViewFullscreen.Image = Global.mRemote.My.Resources.Resources.Fullscreen
Me.mMenViewFullscreen.Image = Global.mRemoteNG.My.Resources.Resources.Fullscreen
Me.mMenViewFullscreen.Name = "mMenViewFullscreen"
Me.mMenViewFullscreen.Size = New System.Drawing.Size(211, 22)
Me.mMenViewFullscreen.Text = "Fullscreen (Kiosk Mode)"
Me.mMenViewFullscreen.ShortcutKeys = System.Windows.Forms.Keys.F11
Me.mMenViewFullscreen.Size = New System.Drawing.Size(228, 22)
Me.mMenViewFullscreen.Text = "Full Screen"
'
'mMenTools
'
Me.mMenTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenToolsSSHTransfer, Me.mMenToolsUVNCSC, Me.mMenToolsExternalApps, Me.mMenToolsPortScan, Me.mMenToolsSep1, Me.mMenToolsUpdate, Me.mMenToolsComponentsCheck, Me.mMenToolsOptions})
Me.mMenTools.Image = CType(resources.GetObject("mMenTools.Image"), System.Drawing.Image)
Me.mMenTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenToolsSSHTransfer, Me.mMenToolsUVNCSC, Me.mMenToolsExternalApps, Me.mMenToolsPortScan, Me.mMenToolsSep1, Me.mMenToolsComponentsCheck, Me.mMenToolsOptions})
Me.mMenTools.Name = "mMenTools"
Me.mMenTools.Size = New System.Drawing.Size(61, 20)
Me.mMenTools.Size = New System.Drawing.Size(48, 20)
Me.mMenTools.Text = "&Tools"
'
'mMenToolsSSHTransfer
'
Me.mMenToolsSSHTransfer.Image = Global.mRemote.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Image = Global.mRemoteNG.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Name = "mMenToolsSSHTransfer"
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsSSHTransfer.Text = "SSH File Transfer"
'
'mMenToolsUVNCSC
'
Me.mMenToolsUVNCSC.Image = Global.mRemote.My.Resources.Resources.UVNC_SC
Me.mMenToolsUVNCSC.Image = Global.mRemoteNG.My.Resources.Resources.UVNC_SC
Me.mMenToolsUVNCSC.Name = "mMenToolsUVNCSC"
Me.mMenToolsUVNCSC.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsUVNCSC.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsUVNCSC.Text = "UltraVNC SingleClick"
Me.mMenToolsUVNCSC.Visible = False
'
'mMenToolsExternalApps
'
Me.mMenToolsExternalApps.Image = CType(resources.GetObject("mMenToolsExternalApps.Image"), System.Drawing.Image)
Me.mMenToolsExternalApps.Name = "mMenToolsExternalApps"
Me.mMenToolsExternalApps.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsExternalApps.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsExternalApps.Text = "External Applications"
'
'mMenToolsPortScan
'
Me.mMenToolsPortScan.Image = Global.mRemote.My.Resources.Resources.PortScan
Me.mMenToolsPortScan.Image = Global.mRemoteNG.My.Resources.Resources.PortScan
Me.mMenToolsPortScan.Name = "mMenToolsPortScan"
Me.mMenToolsPortScan.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsPortScan.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsPortScan.Text = "Port Scan"
'
'mMenToolsSep1
'
Me.mMenToolsSep1.Name = "mMenToolsSep1"
Me.mMenToolsSep1.Size = New System.Drawing.Size(170, 6)
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemote.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsUpdate.Text = "Update"
Me.mMenToolsSep1.Size = New System.Drawing.Size(181, 6)
'
'mMenToolsComponentsCheck
'
Me.mMenToolsComponentsCheck.Image = Global.mRemote.My.Resources.Resources.ComponentsCheck
Me.mMenToolsComponentsCheck.Image = Global.mRemoteNG.My.Resources.Resources.ComponentsCheck
Me.mMenToolsComponentsCheck.Name = "mMenToolsComponentsCheck"
Me.mMenToolsComponentsCheck.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsComponentsCheck.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsComponentsCheck.Text = "Components Check"
'
'mMenToolsOptions
'
Me.mMenToolsOptions.Image = CType(resources.GetObject("mMenToolsOptions.Image"), System.Drawing.Image)
Me.mMenToolsOptions.Name = "mMenToolsOptions"
Me.mMenToolsOptions.Size = New System.Drawing.Size(173, 22)
Me.mMenToolsOptions.Size = New System.Drawing.Size(184, 22)
Me.mMenToolsOptions.Text = "Options"
'
'mMenInfo
'
Me.mMenInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenInfoHelp, Me.mMenInfoSep1, Me.mMenInfoDonate, Me.mMenInfoWebsite, Me.mMenInfovRD08, Me.mMenInfoSep2, Me.mMenInfoAnnouncments, Me.mMenInfoAbout})
Me.mMenInfo.Image = CType(resources.GetObject("mMenInfo.Image"), System.Drawing.Image)
Me.mMenInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenInfoHelp, Me.mMenInfoSep1, Me.mMenInfoWebsite, Me.mMenInfoDonate, Me.mMenInfoForum, Me.mMenInfoBugReport, Me.ToolStripSeparator2, Me.mMenInfoAnnouncements, Me.mMenToolsUpdate, Me.mMenInfoSep2, Me.mMenInfoAbout})
Me.mMenInfo.Name = "mMenInfo"
Me.mMenInfo.Size = New System.Drawing.Size(53, 20)
Me.mMenInfo.Text = "&Info"
Me.mMenInfo.Size = New System.Drawing.Size(44, 20)
Me.mMenInfo.Text = "&Help"
Me.mMenInfo.TextDirection = System.Windows.Forms.ToolStripTextDirection.Horizontal
'
'mMenInfoHelp
@@ -390,53 +563,71 @@ Partial Class frmMain
Me.mMenInfoHelp.Image = CType(resources.GetObject("mMenInfoHelp.Image"), System.Drawing.Image)
Me.mMenInfoHelp.Name = "mMenInfoHelp"
Me.mMenInfoHelp.ShortcutKeys = System.Windows.Forms.Keys.F1
Me.mMenInfoHelp.Size = New System.Drawing.Size(202, 22)
Me.mMenInfoHelp.Text = "Help"
Me.mMenInfoHelp.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoHelp.Text = "mRemoteNG Help"
'
'mMenInfoSep1
'
Me.mMenInfoSep1.Name = "mMenInfoSep1"
Me.mMenInfoSep1.Size = New System.Drawing.Size(199, 6)
'
'mMenInfoDonate
'
Me.mMenInfoDonate.Image = Global.mRemote.My.Resources.Resources.Donate
Me.mMenInfoDonate.Name = "mMenInfoDonate"
Me.mMenInfoDonate.Size = New System.Drawing.Size(202, 22)
Me.mMenInfoDonate.Text = "Donate"
Me.mMenInfoSep1.Size = New System.Drawing.Size(187, 6)
'
'mMenInfoWebsite
'
Me.mMenInfoWebsite.Image = CType(resources.GetObject("mMenInfoWebsite.Image"), System.Drawing.Image)
Me.mMenInfoWebsite.Name = "mMenInfoWebsite"
Me.mMenInfoWebsite.Size = New System.Drawing.Size(202, 22)
Me.mMenInfoWebsite.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoWebsite.Text = "Website"
'
'mMenInfovRD08
'mMenInfoDonate
'
Me.mMenInfovRD08.Image = Global.mRemote.My.Resources.Resources.vRD08R1
Me.mMenInfovRD08.Name = "mMenInfovRD08"
Me.mMenInfovRD08.Size = New System.Drawing.Size(202, 22)
Me.mMenInfovRD08.Text = "visionapp Remote Desktop"
Me.mMenInfoDonate.Image = Global.mRemoteNG.My.Resources.Resources.Donate
Me.mMenInfoDonate.Name = "mMenInfoDonate"
Me.mMenInfoDonate.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoDonate.Text = "Donate"
'
'mMenInfoForum
'
Me.mMenInfoForum.Name = "mMenInfoForum"
Me.mMenInfoForum.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoForum.Text = "Support Forum"
'
'mMenInfoBugReport
'
Me.mMenInfoBugReport.Image = Global.mRemoteNG.My.Resources.Resources.Bug
Me.mMenInfoBugReport.Name = "mMenInfoBugReport"
Me.mMenInfoBugReport.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoBugReport.Text = "Report a Bug"
'
'ToolStripSeparator2
'
Me.ToolStripSeparator2.Name = "ToolStripSeparator2"
Me.ToolStripSeparator2.Size = New System.Drawing.Size(187, 6)
'
'mMenInfoAnnouncements
'
Me.mMenInfoAnnouncements.Image = Global.mRemoteNG.My.Resources.Resources.News
Me.mMenInfoAnnouncements.Name = "mMenInfoAnnouncements"
Me.mMenInfoAnnouncements.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoAnnouncements.Text = "Announcements"
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemoteNG.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(190, 22)
Me.mMenToolsUpdate.Text = "Check for Updates"
'
'mMenInfoSep2
'
Me.mMenInfoSep2.Name = "mMenInfoSep2"
Me.mMenInfoSep2.Size = New System.Drawing.Size(199, 6)
'
'mMenInfoAnnouncments
'
Me.mMenInfoAnnouncments.Image = Global.mRemote.My.Resources.Resources.News
Me.mMenInfoAnnouncments.Name = "mMenInfoAnnouncments"
Me.mMenInfoAnnouncments.Size = New System.Drawing.Size(202, 22)
Me.mMenInfoAnnouncments.Text = "Announcments"
Me.mMenInfoSep2.Size = New System.Drawing.Size(187, 6)
'
'mMenInfoAbout
'
Me.mMenInfoAbout.Image = Global.mRemote.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Image = Global.mRemoteNG.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Name = "mMenInfoAbout"
Me.mMenInfoAbout.Size = New System.Drawing.Size(202, 22)
Me.mMenInfoAbout.Text = "About"
Me.mMenInfoAbout.Size = New System.Drawing.Size(190, 22)
Me.mMenInfoAbout.Text = "About mRemoteNG"
'
'mMenSep3
'
@@ -446,15 +637,15 @@ Partial Class frmMain
'lblQuickConnect
'
Me.lblQuickConnect.Name = "lblQuickConnect"
Me.lblQuickConnect.Size = New System.Drawing.Size(47, 22)
Me.lblQuickConnect.Text = "&Quicky:"
Me.lblQuickConnect.Size = New System.Drawing.Size(55, 22)
Me.lblQuickConnect.Text = "&Connect:"
'
'cmbQuickConnect
'
Me.cmbQuickConnect.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cmbQuickConnect.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cmbQuickConnect.Name = "cmbQuickConnect"
Me.cmbQuickConnect.Size = New System.Drawing.Size(120, 23)
Me.cmbQuickConnect.Size = New System.Drawing.Size(200, 25)
'
'tsContainer
'
@@ -466,7 +657,8 @@ Partial Class frmMain
'tsContainer.ContentPanel
'
Me.tsContainer.ContentPanel.Controls.Add(Me.pnlDock)
Me.tsContainer.ContentPanel.Size = New System.Drawing.Size(842, 499)
Me.tsContainer.ContentPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsContainer.ContentPanel.Size = New System.Drawing.Size(842, 424)
Me.tsContainer.Dock = System.Windows.Forms.DockStyle.Fill
'
'tsContainer.LeftToolStripPanel
@@ -485,53 +677,24 @@ Partial Class frmMain
'tsContainer.TopToolStripPanel
'
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.msMain)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.tsQuickConnect)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.tsExtAppsToolbar)
Me.tsContainer.TopToolStripPanel.Controls.Add(Me.ToolStrip1)
Me.tsContainer.TopToolStripPanel.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
'
'tsQuickConnect
'
Me.tsQuickConnect.Dock = System.Windows.Forms.DockStyle.None
Me.tsQuickConnect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblQuickConnect, Me.cmbQuickConnect, Me.btnQuickyPlay, Me.mMenQuickyCon})
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 0)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsQuickConnect.Size = New System.Drawing.Size(207, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
'
Me.btnQuickyPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnQuickyPlay.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.btnQuickyPlay.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnQuickyPlay.Name = "btnQuickyPlay"
Me.btnQuickyPlay.Size = New System.Drawing.Size(32, 20)
Me.btnQuickyPlay.Text = "Play"
'
'mMenQuickyCon
'
Me.mMenQuickyCon.AutoSize = False
Me.mMenQuickyCon.AutoToolTip = True
Me.mMenQuickyCon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenQuickyCon.Image = Global.mRemote.My.Resources.Resources.Root
Me.mMenQuickyCon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.mMenQuickyCon.Name = "mMenQuickyCon"
Me.mMenQuickyCon.Size = New System.Drawing.Size(30, 22)
Me.mMenQuickyCon.Text = "Connections"
'
'tsExtAppsToolbar
'
Me.tsExtAppsToolbar.ContextMenuStrip = Me.cMenExtAppsToolbar
Me.tsExtAppsToolbar.Dock = System.Windows.Forms.DockStyle.None
Me.tsExtAppsToolbar.Location = New System.Drawing.Point(300, 0)
Me.tsExtAppsToolbar.Location = New System.Drawing.Point(39, 49)
Me.tsExtAppsToolbar.Name = "tsExtAppsToolbar"
Me.tsExtAppsToolbar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.tsExtAppsToolbar.Size = New System.Drawing.Size(109, 25)
Me.tsExtAppsToolbar.Size = New System.Drawing.Size(111, 25)
Me.tsExtAppsToolbar.TabIndex = 17
'
'cMenExtAppsToolbar
'
Me.cMenExtAppsToolbar.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cMenToolbarShowText})
Me.cMenExtAppsToolbar.Name = "cMenToolbar"
Me.cMenExtAppsToolbar.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.cMenExtAppsToolbar.Size = New System.Drawing.Size(129, 26)
'
'cMenToolbarShowText
@@ -542,6 +705,91 @@ Partial Class frmMain
Me.cMenToolbarShowText.Size = New System.Drawing.Size(128, 22)
Me.cMenToolbarShowText.Text = "Show Text"
'
'tsQuickConnect
'
Me.tsQuickConnect.Dock = System.Windows.Forms.DockStyle.None
Me.tsQuickConnect.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lblQuickConnect, Me.cmbQuickConnect, Me.btnQuickyPlay, Me.mMenQuickyCon})
Me.tsQuickConnect.Location = New System.Drawing.Point(3, 24)
Me.tsQuickConnect.Name = "tsQuickConnect"
Me.tsQuickConnect.Size = New System.Drawing.Size(331, 25)
Me.tsQuickConnect.TabIndex = 18
'
'btnQuickyPlay
'
Me.btnQuickyPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.btnQuickyPlay.Image = Global.mRemoteNG.My.Resources.Resources.Play_Quick
Me.btnQuickyPlay.ImageTransparentColor = System.Drawing.Color.Magenta
Me.btnQuickyPlay.Name = "btnQuickyPlay"
Me.btnQuickyPlay.Size = New System.Drawing.Size(32, 22)
Me.btnQuickyPlay.Text = "Connect"
'
'mMenQuickyCon
'
Me.mMenQuickyCon.AutoSize = False
Me.mMenQuickyCon.AutoToolTip = True
Me.mMenQuickyCon.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenQuickyCon.Image = Global.mRemoteNG.My.Resources.Resources.Root
Me.mMenQuickyCon.ImageTransparentColor = System.Drawing.Color.Magenta
Me.mMenQuickyCon.Name = "mMenQuickyCon"
Me.mMenQuickyCon.Size = New System.Drawing.Size(30, 22)
Me.mMenQuickyCon.Text = "Connections"
'
'ToolStrip1
'
Me.ToolStrip1.Dock = System.Windows.Forms.DockStyle.None
Me.ToolStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripButton1, Me.ToolStripButton2, Me.ToolStripButton3, Me.ToolStripSplitButton1})
Me.ToolStrip1.Location = New System.Drawing.Point(3, 74)
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
Me.ToolStrip1.TabIndex = 19
Me.ToolStrip1.Visible = False
'
'ToolStripButton1
'
Me.ToolStripButton1.Image = Global.mRemoteNG.My.Resources.Resources.Play
Me.ToolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton1.Name = "ToolStripButton1"
Me.ToolStripButton1.Size = New System.Drawing.Size(72, 22)
Me.ToolStripButton1.Text = "Connect"
'
'ToolStripButton2
'
Me.ToolStripButton2.Image = Global.mRemoteNG.My.Resources.Resources.Screenshot
Me.ToolStripButton2.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton2.Name = "ToolStripButton2"
Me.ToolStripButton2.Size = New System.Drawing.Size(85, 22)
Me.ToolStripButton2.Text = "Screenshot"
'
'ToolStripButton3
'
Me.ToolStripButton3.Image = Global.mRemoteNG.My.Resources.Resources.Refresh
Me.ToolStripButton3.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripButton3.Name = "ToolStripButton3"
Me.ToolStripButton3.Size = New System.Drawing.Size(66, 22)
Me.ToolStripButton3.Text = "Refresh"
'
'ToolStripSplitButton1
'
Me.ToolStripSplitButton1.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.ToolStripSplitButton1.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.ToolStripMenuItem1, Me.ToolStripMenuItem2})
Me.ToolStripSplitButton1.Image = Global.mRemoteNG.My.Resources.Resources.Keyboard
Me.ToolStripSplitButton1.ImageTransparentColor = System.Drawing.Color.Magenta
Me.ToolStripSplitButton1.Name = "ToolStripSplitButton1"
Me.ToolStripSplitButton1.Size = New System.Drawing.Size(29, 22)
Me.ToolStripSplitButton1.Text = "Special Keys"
'
'ToolStripMenuItem1
'
Me.ToolStripMenuItem1.Name = "ToolStripMenuItem1"
Me.ToolStripMenuItem1.Size = New System.Drawing.Size(135, 22)
Me.ToolStripMenuItem1.Text = "Ctrl-Alt-Del"
'
'ToolStripMenuItem2
'
Me.ToolStripMenuItem2.Name = "ToolStripMenuItem2"
Me.ToolStripMenuItem2.Size = New System.Drawing.Size(135, 22)
Me.ToolStripMenuItem2.Text = "Ctrl-Esc"
'
'tmrShowUpdate
'
Me.tmrShowUpdate.Enabled = True
@@ -557,11 +805,11 @@ Partial Class frmMain
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(842, 523)
Me.Controls.Add(Me.tsContainer)
Me.Icon = Global.mRemote.My.Resources.Resources.mRemote_Icon
Me.Icon = Global.mRemoteNG.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
Me.MaximumSize = New System.Drawing.Size(20000, 10000)
Me.Name = "frmMain"
Me.Text = "mRemote"
Me.Opacity = 0
Me.Text = "mRemoteNG"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()
Me.tsContainer.ContentPanel.ResumeLayout(False)
@@ -569,9 +817,11 @@ Partial Class frmMain
Me.tsContainer.TopToolStripPanel.PerformLayout()
Me.tsContainer.ResumeLayout(False)
Me.tsContainer.PerformLayout()
Me.cMenExtAppsToolbar.ResumeLayout(False)
Me.tsQuickConnect.ResumeLayout(False)
Me.tsQuickConnect.PerformLayout()
Me.cMenExtAppsToolbar.ResumeLayout(False)
Me.ToolStrip1.ResumeLayout(False)
Me.ToolStrip1.PerformLayout()
Me.ResumeLayout(False)
End Sub
@@ -584,12 +834,10 @@ Partial Class frmMain
Friend WithEvents mMenInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNew As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileLoad As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSave As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSaveAs As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileExit As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsOptions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoHelp As System.Windows.Forms.ToolStripMenuItem
@@ -631,8 +879,34 @@ Partial Class frmMain
Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsUVNCSC As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsComponentsCheck As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoAnnouncments As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfovRD08 As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoAnnouncements As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoBugReport As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoForum As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewResetLayout As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileDuplicate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileNewConnection As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNewFolder As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileImportExport As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromXMLFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromRDPFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromActiveDirectoryToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ImportFromPortScanToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripSeparator6 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents ExportToXMLFileToolStripMenuItem As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep3 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileDelete As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileRename As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep4 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents ToolStrip1 As System.Windows.Forms.ToolStrip
Friend WithEvents ToolStripButton1 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripButton2 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripButton3 As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripSplitButton1 As System.Windows.Forms.ToolStripDropDownButton
Friend WithEvents ToolStripMenuItem1 As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents ToolStripMenuItem2 As System.Windows.Forms.ToolStripMenuItem
End Class

View File

@@ -1,363 +0,0 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class frmMain
Inherits System.Windows.Forms.Form
'Form overrides dispose to clean up the component list.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Required by the Windows Form Designer
Private components As System.ComponentModel.IContainer
'NOTE: The following procedure is required by the Windows Form Designer
'It can be modified using the Windows Form Designer.
'Do not modify it using the code editor.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.pnlDock = New WeifenLuo.WinFormsUI.Docking.DockPanel
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenFile = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileNew = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileLoad = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileSave = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSaveAs = New System.Windows.Forms.ToolStripMenuItem
Me.mMenFileSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenFileExit = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewAddConnectionPanel = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConnectionPanels = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewConnections = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewConfig = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewErrorsAndInfos = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSessions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewScreenshotManager = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewSep2 = New System.Windows.Forms.ToolStripSeparator
Me.mMenViewFullscreen = New System.Windows.Forms.ToolStripMenuItem
Me.mMenTools = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsUpdate = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSSHTransfer = New System.Windows.Forms.ToolStripMenuItem
Me.mMenToolsSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenToolsOptions = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenQuickConnect = New System.Windows.Forms.ToolStripLabel
Me.cmbQuickConnect = New System.Windows.Forms.ToolStripComboBox
Me.mMenPlay = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfo = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoHelp = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoWebsite = New System.Windows.Forms.ToolStripMenuItem
Me.mMenInfoSep1 = New System.Windows.Forms.ToolStripSeparator
Me.mMenInfoAbout = New System.Windows.Forms.ToolStripMenuItem
Me.msMain.SuspendLayout()
Me.SuspendLayout()
'
'pnlDock
'
Me.pnlDock.ActiveAutoHideContent = Nothing
Me.pnlDock.Dock = System.Windows.Forms.DockStyle.Fill
Me.pnlDock.DockLeftPortion = 230
Me.pnlDock.DockRightPortion = 230
Me.pnlDock.DocumentStyle = WeifenLuo.WinFormsUI.Docking.DocumentStyle.DockingWindow
Me.pnlDock.Location = New System.Drawing.Point(0, 27)
Me.pnlDock.Name = "pnlDock"
Me.pnlDock.Size = New System.Drawing.Size(842, 496)
Me.pnlDock.TabIndex = 13
'
'msMain
'
Me.msMain.Font = New System.Drawing.Font("Microsoft Sans Serif", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.msMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFile, Me.mMenView, Me.mMenTools, Me.mMenSep1, Me.mMenQuickConnect, Me.cmbQuickConnect, Me.mMenPlay, Me.mMenInfo})
Me.msMain.Location = New System.Drawing.Point(0, 0)
Me.msMain.Name = "msMain"
Me.msMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.msMain.Size = New System.Drawing.Size(842, 27)
Me.msMain.TabIndex = 16
Me.msMain.Text = "Main Toolbar"
'
'mMenFile
'
Me.mMenFile.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenFileNew, Me.mMenFileLoad, Me.mMenFileSep1, Me.mMenFileSave, Me.mMenFileSaveAs, Me.mMenFileSep2, Me.mMenFileExit})
Me.mMenFile.Image = Global.mRemote.My.Resources.Resources.File
Me.mMenFile.Name = "mMenFile"
Me.mMenFile.Size = New System.Drawing.Size(51, 23)
Me.mMenFile.Text = "&File"
'
'mMenFileNew
'
Me.mMenFileNew.Name = "mMenFileNew"
Me.mMenFileNew.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.N), System.Windows.Forms.Keys)
Me.mMenFileNew.Size = New System.Drawing.Size(241, 22)
Me.mMenFileNew.Text = "New Connections"
'
'mMenFileLoad
'
Me.mMenFileLoad.Name = "mMenFileLoad"
Me.mMenFileLoad.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.O), System.Windows.Forms.Keys)
Me.mMenFileLoad.Size = New System.Drawing.Size(241, 22)
Me.mMenFileLoad.Text = "Open Connections"
'
'mMenFileSep1
'
Me.mMenFileSep1.Name = "mMenFileSep1"
Me.mMenFileSep1.Size = New System.Drawing.Size(238, 6)
'
'mMenFileSave
'
Me.mMenFileSave.Name = "mMenFileSave"
Me.mMenFileSave.ShortcutKeys = CType((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSave.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSave.Text = "Save Connections"
'
'mMenFileSaveAs
'
Me.mMenFileSaveAs.Name = "mMenFileSaveAs"
Me.mMenFileSaveAs.ShortcutKeys = CType(((System.Windows.Forms.Keys.Control Or System.Windows.Forms.Keys.Shift) _
Or System.Windows.Forms.Keys.S), System.Windows.Forms.Keys)
Me.mMenFileSaveAs.Size = New System.Drawing.Size(241, 22)
Me.mMenFileSaveAs.Text = "Save Connections As"
'
'mMenFileSep2
'
Me.mMenFileSep2.Name = "mMenFileSep2"
Me.mMenFileSep2.Size = New System.Drawing.Size(238, 6)
'
'mMenFileExit
'
Me.mMenFileExit.Name = "mMenFileExit"
Me.mMenFileExit.ShortcutKeys = CType((System.Windows.Forms.Keys.Alt Or System.Windows.Forms.Keys.F4), System.Windows.Forms.Keys)
Me.mMenFileExit.Size = New System.Drawing.Size(241, 22)
Me.mMenFileExit.Text = "Exit"
'
'mMenView
'
Me.mMenView.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenViewAddConnectionPanel, Me.mMenViewConnectionPanels, Me.mMenViewSep1, Me.mMenViewConnections, Me.mMenViewConfig, Me.mMenViewErrorsAndInfos, Me.mMenViewSessions, Me.mMenViewScreenshotManager, Me.mMenViewSep2, Me.mMenViewFullscreen})
Me.mMenView.Image = Global.mRemote.My.Resources.Resources.View
Me.mMenView.Name = "mMenView"
Me.mMenView.Size = New System.Drawing.Size(58, 23)
Me.mMenView.Text = "&View"
'
'mMenViewAddConnectionPanel
'
Me.mMenViewAddConnectionPanel.Name = "mMenViewAddConnectionPanel"
Me.mMenViewAddConnectionPanel.Size = New System.Drawing.Size(190, 22)
Me.mMenViewAddConnectionPanel.Text = "Add Connection Panel"
'
'mMenViewConnectionPanels
'
Me.mMenViewConnectionPanels.Name = "mMenViewConnectionPanels"
Me.mMenViewConnectionPanels.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConnectionPanels.Text = "Connection Panels"
'
'mMenViewSep1
'
Me.mMenViewSep1.Name = "mMenViewSep1"
Me.mMenViewSep1.Size = New System.Drawing.Size(187, 6)
'
'mMenViewConnections
'
Me.mMenViewConnections.Checked = True
Me.mMenViewConnections.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConnections.Name = "mMenViewConnections"
Me.mMenViewConnections.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConnections.Text = "Connections"
'
'mMenViewConfig
'
Me.mMenViewConfig.Checked = True
Me.mMenViewConfig.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewConfig.Name = "mMenViewConfig"
Me.mMenViewConfig.Size = New System.Drawing.Size(190, 22)
Me.mMenViewConfig.Text = "Config"
'
'mMenViewErrorsAndInfos
'
Me.mMenViewErrorsAndInfos.Checked = True
Me.mMenViewErrorsAndInfos.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewErrorsAndInfos.Name = "mMenViewErrorsAndInfos"
Me.mMenViewErrorsAndInfos.Size = New System.Drawing.Size(190, 22)
Me.mMenViewErrorsAndInfos.Text = "Errors and Infos"
'
'mMenViewSessions
'
Me.mMenViewSessions.Checked = True
Me.mMenViewSessions.CheckState = System.Windows.Forms.CheckState.Checked
Me.mMenViewSessions.Name = "mMenViewSessions"
Me.mMenViewSessions.Size = New System.Drawing.Size(190, 22)
Me.mMenViewSessions.Text = "Sessions"
'
'mMenViewScreenshotManager
'
Me.mMenViewScreenshotManager.Name = "mMenViewScreenshotManager"
Me.mMenViewScreenshotManager.Size = New System.Drawing.Size(190, 22)
Me.mMenViewScreenshotManager.Text = "Screenshot Manager"
'
'mMenViewSep2
'
Me.mMenViewSep2.Name = "mMenViewSep2"
Me.mMenViewSep2.Size = New System.Drawing.Size(187, 6)
'
'mMenViewFullscreen
'
Me.mMenViewFullscreen.Name = "mMenViewFullscreen"
Me.mMenViewFullscreen.Size = New System.Drawing.Size(190, 22)
Me.mMenViewFullscreen.Text = "Fullscreen (Kiosk Mode)"
'
'mMenTools
'
Me.mMenTools.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenToolsUpdate, Me.mMenToolsSSHTransfer, Me.mMenToolsSep1, Me.mMenToolsOptions})
Me.mMenTools.Image = Global.mRemote.My.Resources.Resources.Tools
Me.mMenTools.Name = "mMenTools"
Me.mMenTools.Size = New System.Drawing.Size(61, 23)
Me.mMenTools.Text = "&Tools"
'
'mMenToolsUpdate
'
Me.mMenToolsUpdate.Image = Global.mRemote.My.Resources.Resources.Update
Me.mMenToolsUpdate.Name = "mMenToolsUpdate"
Me.mMenToolsUpdate.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsUpdate.Text = "Update"
'
'mMenToolsSSHTransfer
'
Me.mMenToolsSSHTransfer.Image = Global.mRemote.My.Resources.Resources.SSHTransfer
Me.mMenToolsSSHTransfer.Name = "mMenToolsSSHTransfer"
Me.mMenToolsSSHTransfer.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsSSHTransfer.Text = "SSH File Transfer"
'
'mMenToolsSep1
'
Me.mMenToolsSep1.Name = "mMenToolsSep1"
Me.mMenToolsSep1.Size = New System.Drawing.Size(157, 6)
'
'mMenToolsOptions
'
Me.mMenToolsOptions.Image = Global.mRemote.My.Resources.Resources.Options
Me.mMenToolsOptions.Name = "mMenToolsOptions"
Me.mMenToolsOptions.Size = New System.Drawing.Size(160, 22)
Me.mMenToolsOptions.Text = "Options"
'
'mMenSep1
'
Me.mMenSep1.Name = "mMenSep1"
Me.mMenSep1.Size = New System.Drawing.Size(6, 23)
'
'mMenQuickConnect
'
Me.mMenQuickConnect.Name = "mMenQuickConnect"
Me.mMenQuickConnect.Size = New System.Drawing.Size(87, 20)
Me.mMenQuickConnect.Text = " &Quick Connect:"
'
'cmbQuickConnect
'
Me.cmbQuickConnect.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.SuggestAppend
Me.cmbQuickConnect.AutoCompleteSource = System.Windows.Forms.AutoCompleteSource.ListItems
Me.cmbQuickConnect.Name = "cmbQuickConnect"
Me.cmbQuickConnect.Size = New System.Drawing.Size(120, 23)
'
'mMenPlay
'
Me.mMenPlay.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenPlay.Image = Global.mRemote.My.Resources.Resources.Play_Quick
Me.mMenPlay.Name = "mMenPlay"
Me.mMenPlay.Size = New System.Drawing.Size(28, 23)
Me.mMenPlay.Text = "Play"
'
'mMenInfo
'
Me.mMenInfo.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right
Me.mMenInfo.DropDownItems.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenInfoHelp, Me.mMenInfoWebsite, Me.mMenInfoSep1, Me.mMenInfoAbout})
Me.mMenInfo.Image = Global.mRemote.My.Resources.Resources.Info
Me.mMenInfo.Name = "mMenInfo"
Me.mMenInfo.Size = New System.Drawing.Size(53, 23)
Me.mMenInfo.Text = "&Info"
'
'mMenInfoHelp
'
Me.mMenInfoHelp.Image = Global.mRemote.My.Resources.Resources.Help
Me.mMenInfoHelp.Name = "mMenInfoHelp"
Me.mMenInfoHelp.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoHelp.Text = "Help"
'
'mMenInfoWebsite
'
Me.mMenInfoWebsite.Image = Global.mRemote.My.Resources.Resources.Website
Me.mMenInfoWebsite.Name = "mMenInfoWebsite"
Me.mMenInfoWebsite.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoWebsite.Text = "Website"
'
'mMenInfoSep1
'
Me.mMenInfoSep1.Name = "mMenInfoSep1"
Me.mMenInfoSep1.Size = New System.Drawing.Size(113, 6)
'
'mMenInfoAbout
'
Me.mMenInfoAbout.Image = Global.mRemote.My.Resources.Resources.mRemote
Me.mMenInfoAbout.Name = "mMenInfoAbout"
Me.mMenInfoAbout.Size = New System.Drawing.Size(116, 22)
Me.mMenInfoAbout.Text = "About"
'
'frmMain
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(842, 523)
Me.Controls.Add(Me.pnlDock)
Me.Controls.Add(Me.msMain)
Me.Icon = Global.mRemote.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
'Me.MaximumSize = New System.Drawing.Size(20000, 4000)
Me.Name = "frmMain"
Me.Text = "mRemote"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents pnlDock As WeifenLuo.WinFormsUI.Docking.DockPanel
Friend WithEvents msMain As System.Windows.Forms.MenuStrip
Friend WithEvents mMenFile As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenView As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenTools As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenQuickConnect As System.Windows.Forms.ToolStripLabel
Friend WithEvents mMenPlay As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfo As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileNew As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileLoad As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileSave As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSaveAs As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenFileSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenFileExit As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsUpdate As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenToolsOptions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoHelp As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoWebsite As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenInfoSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenInfoAbout As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnectionPanels As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewSep1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewSessions As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConnections As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewConfig As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewErrorsAndInfos As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewScreenshotManager As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenViewAddConnectionPanel As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cmbQuickConnect As System.Windows.Forms.ToolStripComboBox
Friend WithEvents mMenViewSep2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents mMenViewFullscreen As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenToolsSSHTransfer As System.Windows.Forms.ToolStripMenuItem
End Class

View File

@@ -118,32 +118,14 @@
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="msMain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>13, 8</value>
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="mMenFile.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAsFJREFUOE9Nk0tP
E1EYhls36MYfYhQhGGOCUUMCBiUxirpxg9ACSqJxodEEDEFMYKt4SUyMK9cGikgvNEBbqNwUekG5FAoU
6MW208uZzqWv35lCyyTPOTOZOc+83zdn9AB0tS8nmk6cLLt3TK+r0ul0xwk9URhBA/I6JZ9fS8Rg0wvx
p5MfGiTtPj+4oP61YzIqsOi/tKjE0iJiqRJRQQTdgz8koGswCOPASqa6faiMr+Now/U+Z1jISsrUhgT3
pgx3UMb0hgxnIIfxFRE/fGmIMmBazqLr2yYMb1aylzpMmkQTNPS7sslMDnNbCua3ZJplzGiSHCZWRZh9
GRKomAspcO9I6P0eRM0L+9dSgn4X44IFEvzalrGwrWiyn5sSHGs5WP9kEdhPa6WkmIz9eAbUN8p0WAIJ
EukclugNHmJpV8VvTcJTSFoKC6UY9qQwtJhEgvpU1+NgRcG1PheLk8C/m4ePFnsJT0jFIslmqSdTgYLE
9jcLC/UhnpZQ98pVEtSTIEaC5b28hp/wkWxpp5BEk1CSSSqHi2IkqO05Irja62LRVA6+4mK1mIRLeF9m
qRyexEWEBQk13UcEtT1OFqHvzd/KSzjES2UcppgLKpjhn5gQqJGXO52lEmq6nWwvKcK7U4hdgJpJ8BLm
afEs4aa9MU0CJqmofjZeElzpdLBQguGOScRdE8PtYYZGOm8cFHFriGncHGS4cUAmp+D8Y3tJcPH5ONuK
MTyaUPFlGfjsBz75gI80v6f5HTHgBd56AOOYjDSVUNlmKQkuPLFnApFMvt2uos2maA8ZxhSNZrpuscm4
b5XRxK+tCt+V6hnDaKq4D6oeWNfDSVEIRJm6HsliPZzF6gGRlAQO73yKKaD/TVXz+cSpphHKdLATzz20
dFQYzdbKVkusotXMihjN7CxRbhwtYNCIn24esZU3j7RwwX/Yvio5QNtWmQAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenViewConfig.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDQAA
Cw0B7QfALAAAArhJREFUOE91U91LU3EYnt0GjUYSgv+EoDeCgXkhiuBAL7swoTWUEryYF2JXQlebTIlK
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
Cv8BNGKaggAAArhJREFUOE91U91LU3EYnt0GjUYSgv+EoDeCgXkhiuBAL7swoTWUEryYF2JXQlebTIlK
pA1bmfODND+DpqUzt5Vfm7NtZx9n52xnui9zm/m5p9/vlINcHnjhnPf83ud5n/d9fhIAkv9FQ0NDrU6n
29fr9cnS0tKqq87lFQ8MDNxqaWm5oVKpjPFEEql0Gp2dnYb29vbrGo3m9mWgHIDBYGh7PzmZ1en1gtE4
kgoLEYTCAmLxOE5OTzExMXHw2mAQTCZT9vmLF8oLIBFAJpNde/N2iGP5EOKJhBh70SjYIAchEsHu3h4O
@@ -161,201 +143,148 @@
<data name="mMenViewSessions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDQAA
Cw0B7QfALAAAA4RJREFUOE9lk3tMk1cchg8a562VKXGZUxMNy8a8zM3bNIW1Omi/Xj5LKa2UYgvSyxDa
CrSFUq4lghTKrMMKBQ0mRggiMrIJjuDGNk2WbfES4oIgGqNRZ5TpGqmG9t0H/qNykifnknOe8+aXcyIA
kNebfmPU9HRqdVZExMfL3yX+99jhrcHJMHnyfNazkaezy8dfhJoRDk++2sgIXqcwdjGZws5ZEunaEXnJ
R78Dj2QuvLJI1EgWw7iNHUjZvlyaRcUQI/+jmQJvPItMcWjH/FW+xGX4rlSCs0UUHPFRMHNYSNswF+XK
T6s6K5TklDNxpqApOYpM0SBZuKLDQYeej13E45+86K3X4UKTFd8fsaIzb6PryjE9+bMxnZCvdRmv0O+N
MKarVUWC1bfLuKx/7LGsRxbxuhdD/a0IXO3Ay6FOBId7caenOJwhV+hiZMfJetlhQrIz90yTpdu7uUAZ
N+JRRMNNL4U7eRX2cRahJFOIe321+PeXBoz/WAG3STWxYMtBw6Kdx8gCbiMhVtH6afKFG4rL6WiU8JfC
KV6JHOZwbsIHkMTMQ5XLgtp6F3wtfrT+FsJnioGbc7Y1f8XiMYJcDpvkcRaS7C1znBVpseg/mo8zVVq4
M7aiyZoIQ0I08s9dhvpnIKkHqBwEDv0QxIfirrFI7mEO0Yo2EwUVR3QJ6wxDHeUIjvYjeK0DTy76MTHc
h4F6LfStI0htD0N+PAT+EUDfPI6+E3605fJvEL5QTLYL1GQTL0X8bU5C4L9LPoSGmavGzuPBgAd2oxxy
/32knASUbUBaO5Ok6DIGWypxp3bTJBGJREQoEsfEcuMvlDgLQ06bGaerM9FQqEahLRcmkxnCrBokt9zF
7lOPwTtwCxz66L3eEsEfw63pNiKgk1bsM1kGpbt2wWq1Qac3oLu7Gz6fD3s0Wlj278dupRJfCPMCn4hP
3l3J77oep/Rn/9qge3+0LWc+cWp3dvk9ZXBVHoBKpUJqaiq8Xi9qatyQSCSQyWSw2QvwTWk27Cruibef
Pnno+Rx/tZchr6AYdXV1TGQTaJoGRVEwGo2w2ZhUBiMe9ZZirGLtyxmCkUb52R4nH0mqdDgcDlRXV0/3
Go0GbrcbZrMZAkqI3w/y8XdjClPGNz8fGW03sfvq1Gu/jBe6mILeVigU41KpdIIZT8jl8gCPx7tJUSLd
Vb9mzY02C/ttwf8MViWur2j6ngAAAABJRU5ErkJggg==
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK/wAA
Cv8BNGKaggAAA4RJREFUOE9lk21MU3cUh/9L5pxabCoz2YsmLiwbDp0TddMU1sLo7e3LtZTSQim2ILft
ENoKtIVSXksEKRStwwoVDSZGCGPIyDbYCG5s02TZFudCtiDIjNFszjiWrFmZWf3tln2Z8uHJOV/Oc345
ySEAyP9hd24gcUo4zKmJrzRlJk6HVIJol4IfrcsQ3M1LfaaUShE8KdnKJ3EeGY6LatIEy7iFG/i+DP6V
EPMUAsrVCKr5aFcKYN2bEMnf94KqlE4mVurllYJgFo/EOZ6xZkso+zl80KDExVoanqxE2IU8FO5YjSbd
a63DzTpywZu9UtCbm0jidCvXbRryMLG/Fi7j/mdBjHexuNTrxIcnnRiuTPV9f8ZMvu0pIuQdtvg/zAef
sBYZ9LXSF282ini/udN49xyKbX/PTPYjcm0ID2aGsTQ7jltjdQ+LNVo2WX2WbFefIKSs5MAypezB3dW6
9LmANgl+ZiP8uVtwSLge9SUy3JnowB9fdGPx02b4bfro2j1HLeszz5C1oh5CnPLty1TJdtQ1MUmopzbC
q9iMcm64QvI8lMlPo9XnQEeXD6G+MPq/iuF17dSNVXtPv80Tc4IKYQKpFK4jZXtWeZsL0zB5qgrvt5rg
L34Dvc5sWCRJqPr4KgyfAzljQMs0cPyjJbykGFngi04IiUm+m2jpdMJKtllmhpqwND+JpR+G8PvlMKKz
E5jqMsHcP4eCwYfQnI2BOgmYTy9i4lwYAxXUdULJFGSf1EB2ifMV75ZLIn9eCSE2y61a+AS/TgXgtmqg
Cf+C/POAbgAoHOSS1F7FdF8LbnXs+ofI5XIikyuS00RZl+q9NTGvy4732krQXWNAjasCNpsdstJ25Pbd
Rt6F+xAf+RlC5tSd8XrpN7P9RS4iZXI2HbI5plX798PpdIE1WzA6OopQKIQDRhMchw8jT6fDm7LKyFbF
+dubqZEf03Xhsi+72WfnB8rXEK8pcyQcaISv5Qj0ej0KCgoQDAbR3u6HUqmEWq2Gy12NYw1lcOtF5x7/
HXI3sBPfDTaisroOnZ2dXGQbGIYBTdOwWq1wubhUFivujTdgoTnlwQrBXI/m4piXQo6+CB6PB21tbcvV
aDTC7/fDbrdDSsvw9VEKP/Xkc2d89HvJ/KAtYaLTkPJWlszHHfSmVqtdVKlUUa6PajSaiFgsvkHTcvZa
2Pjq9QFHwuOCfwHdFSeIQMKMzwAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenViewScreenshotManager.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAjxJREFUOE+lk+9P
EnEcx+uP6lnrx9aj1mqz5uxBtkbMRa3WcukwE9F5JvFDTwFBusgChZISRZOwglEy5VduOZu1msWPAd4B
J+ej3n2PBwTCaqvbXrfv/Xp93vt8P3cQwIH/OkSB1R1RMy+iqTFnmNPYG2Aj96qgHWHO7Apry8XFEzMb
TWey2Z9Fnge/K/yRbFFAmi3A8CzCVgRi5UKRx9jcNtRzMSjmp2Fdo+GI98MWU2LUr8KVBybcsgTQYfmI
TEHAqDPKVQRaElusbJjfBrWwCOsqjakP7TCvtsGwIoExJIPK2wfZ+BPImQ2kuQaCAhGML3yHwjMJO6lq
DEkx/O4CVP7zoN62QOO/iYsj99H9aBMprkQSRGoTcERgXvyBHrcVD8Pd0AVbQb1pRu9yE+6+agLlu4ZW
3T30Pv6EJLtbL2B5AZaXCVBuD2j/ILRBCRTLZyFfOoMeXwvuPO+ETD+JfvsWkjsNEuyQ7jLeJGhPHJ0O
BtTsDQz5pKC8l9DlvIrL9DCJH8Tg9Od6gbj3OdJZqy9Vloy4Y7itbMWA5gQo1XEo+pqhtL2HZuYrVE+/
ILE/gSjI5gXIHafRMXUK7baTMHUdwjpzDnGCa+Ao2kzHIDUegUR/uF6gtq1xOSLwb72uEFx3IbQygbjr
OgKbSzXPErkSaEfVLmjKglLNS9Wy/etETqgV6J3hbzk2jzxpZJ7fA1dGAEeu2Tr2kCmPcvT3KE+4IkOm
mWhAHA4x2t8g/wFHvtFVRllc/Cu/AAZ/6ElKbpVOAAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAjpJREFUOE+lk91P
UnEYx/2numu9bF21Vps1ZxfRGjEXtVrLpcNMROcxiRc9CgoSkQUKJSWKJmEFo2TKW241nbWaxcsAzwGO
HK/69jvngkBYXXjx3X5vz+f57nmeXxOApsNIDLZ5ohrrq1h6zBVhtY4GspOzKtHOCGt2R3RCrAiwzsUy
2Vzud4njwO3x/1SuxCPDFGF8EWUqACFzscRhbH4Hmvk4lAszsK3TcCb6YY+rMBpQ49ojE+5YguiwfEa2
yGPUFWMrAB2xLWQ2LuyAWlyCbY3G9Kd2mNfaYFyVYjwsh9rXB/nEMyisX5BhGwCKBDCx+BNK7xQcJOt4
WIbhD5egDlwE9b4V2sBtXB55iO4nm0izZeIgWuuAJQDz0i/0eGx4HOmGPiQB9a4FvSvNuP+mGZT/BiT6
B+h9uoUUs1cPYDgeltdJUB4v6MAgdCEplCvnoVg+hx5/K+697ITcMIV+xzZSuw0c7JLqWn0p0N4EOp1W
UHO3MOSXgfJdQZfrOq7Sw8R+CIMzX+sBQu/zpLI2f1qEjHjiuKuSYEB7CpT6JJR9LVDZP0I7+x3q59+Q
POhAAOQKPBTOs+iYPoN2+2mYuo5gw3oBCSL3wHG0mU5ANn4MUsPReoDGvs7mCSCw/bai0IYb4dVJJNw3
EdxcrrlL5sugnVVd0IqAcs2jatjBdTLP1wIMrsiPPFNAgRSywO2DFcWDJXumTvvIiqMc+zvKk+7okGk2
FhSGQ7D2P5F/wJIYfWWUD/Od/wAx6RUqGJsn2QAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenViewExtAppsToolbar.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmhJREFUOE+lU9tL
01EcP/0VvbqxiQ6dOp2b25xzzgspRrvpNkeMTBqiszSzGgrSKlIYtV9RZJl0UdOJjbSctFUrsKcxg3oo
/GF0ocCHpHrwoU87B04UBAke+Dx+vp8bZxcAsqN3/ebdK8vJ1Fby2QoST1cQf/wcC/EnuLf4CDOxJdye
XcD45Dwu35jBhat3MHJxAqHwGIJnhK3O3sFukiX/fLl3D95Fd8M8b8SrN+v/xeu36/j0ZQPdJ0ciJJl6
ga/LD/HjvYD7H2L4+HljW9j89h3+Y6cFQi2XlJRApVKhtLQUZWVlUKvVKC8vh0ajQUVFBfR6PQwGAyor
K1FVVYXq6mrU1NSgvWdIIEuJFCPl5ORAIpFAKpVCJpNBLpcjNzcXeXl5UCgUKCgoQGFhIYqKiphgXV0d
eofCAqGF8QPpdBpTU1PbPpDtQCCxBwlmkyuura2hr6/vn6o0Jo/Y2NiIQ/0hgczG4ixbfn4+MpkMotEo
lErlb6ucxDvRarXQ6XRobm7GgcCgQCbnFmE2mxmhuLiY5eNlUhIFJ9EyqRiF1WrF/s4BgUxMx1BfX/8X
ibdPlfgCRqORLWAymdgKDocDno5egYzdmgPNQ1VoF5T052R8NuqSwmKxoLa2Fi0tLXD6ugVyaXya5eHW
uBJVoQS6NyfR6SgaGhrgdrth8/oFci5ybZPmsdlssNvtzJrT6WQKFK2trXC5XIzg8XjQ1tbG4PV60eT0
jZLAwHAgGDq/GgxFxP7hsHhkcFTsOn5W9B89JR7sGRJ9XSdEr79fdLcfFrOWxayquM/dITY5fKuWJoeJ
0O+8E/wCTNYVG3agVjIAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenView.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAvBJREFUOE+lk1lP
E1EYhuvdqNF4bYKBACKgFpU6QCnQlmmhdKd0h0IXKEV2jYQE0EGDokFQEEGs0EIBa6hlExDZjJCIiRhC
RRZpUa/8EcevF4qICRdOci4mM+97nuebMwcQQpT/ui4vmPHyeTNe+saEF03rccsrHZ47qsX1L5R45rN0
XNktwtOtPFzYysFTm5i4f8M/F6V8Po8omTNhhVN6LH88CzMNa7AclwLT9ksxhU2ISTtSMX4LgXHvJWGs
W3RiT0HxrJG49DrnIJCQQEKWzpnIoik9aZnQkaYRLZnjUpLa/nRSYReRglZOJ5BUA0n1ryJKwWQ2kfcy
8xCQ2AqnDTTLRHZc7og20eBWsXTODI7aIeZldPL54naumHWbUQkkPCCx/i4AXwJ8DxfNGOygwICi1bK3
eZ9LZo1rQLZuHs/cMA6rN7MH5Jsqh/i73CbYgLIfQLIIJIsU8CXA9wgMz24cUidDAQKCSuOgqj57QPEw
0ylzqHslgxCcFLdxP0JwntuQtAUkbiBBFE2vhJB3CY6aRjR23XM5D2aCTMPqDijuz3LKRtUOyYy8i78g
eZz6nveAvc5tTFpi1tG3mXVxQ/RrNESRPeUTojbuMUDsVvaIpTATBEpjEJ5TOSTvwH9J3J6ynNbM9hB3
GF4IrtBraNtxNdFuWkUUogASAS6E0i4cE7QQVTATpOmTehR24Zr0CW9T0Ep4UxqZXnZ9vC+hFvdB+BOt
guqLvkp1UUsjdg4FkFiBRAroSNUj+iCzpi0LH3FWUppYHnY9YzXhRsxqbNUFDwRXqCXh3rPF4c4IS+hO
AZBYgcQKM0Hg+zWtOfkbpyERXOnb8dcv+vDKc97zV874g1vh+aFfYDlCjUG7j6X/2wIJApIh3n3WIHGX
4U68GesC3wHwdUaVRfadLgzrOWUOsYUYAruCdAF7C4AEAQkCZ5RQG4MAGwE28vtGFpxEYbnBKFgfiAKz
AtAJzfG9BX+f9f3ud/1Z+738r+c/ASsl+hh77k39AAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmlJREFUOE+lVN1L
k1EcPv9Ft06mzOF0m27qdHOb040cRpubc3PEyKQhTktbVuJAWkUKUr5FkWXSh5pObKTmJK1WYFdjBnVR
7MXogwIvkurCi552DpwoCBK8eC6f3/PFOQQA2Q3IjVv3ri6vJrdXn61h5ekaEo+fYz7xBPcXHmE6voQ7
M/MYm5jDlZvTuHjtLgYvjSM6PIq+s8J2e3d/iGTJP1/u24t3sT0wzxnw6s3Gf/H67QY+fdlE6NTgCFlN
vsDX5Yf48V7Agw9xfPy8uSNsffuO4PEzAqGWVSoV1Go1SkpKUFpaCo1GA61Wi7KyMlRUVKCyshJVVVXQ
6/Worq6GyWRCTU0NWrsiAllaSTJSTk4OJBIJcnNzIZVKkZeXh/z8fMhkMsjlchQWFkKhUKC4uJgJ1tXV
oTsyLBBaGD+QSqUwOTm54wPZDgQSX1xhNrliJpNBT0/PP1VpTB6xvr4eh8NRgczEEyxbQUEB0uk0YrEY
ioqKflvlJN5JeXk5dDodGhoacLCzXyATswswm82MoFQqWT5eJiVRcBItk4pROBwOHGjvFcj4VBxWq/Uv
Em+fKvEFDAYDW8BoNLIVXC4XfG3dAhm9PQuah6rQLijpz8n4bNQlhcViQW1tLZqamuAOhARyeWyK5eHW
uBJVoQS6NyfR6ShsNhu8Xi+c/qBAzo9c36J5nE4nGhsbmTW3280UKDweD5qbmxnB5/OhpaWFwe/3w+4O
DJHO3oHOvuiF9b7oiBgeGBaP9g+JHSfOicFjp8VDXREx0HFS9AfDorf1iJi1LGZVxf3eNtHuCqxb7C7j
rp4y/QZ+AXhAQe1Sf9VzAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenToolsExternalApps.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmhJREFUOE+lU9tL
01EcP/0VvbqxiQ6dOp2b25xzzgspRrvpNkeMTBqiszSzGgrSKlIYtV9RZJl0UdOJjbSctFUrsKcxg3oo
/GF0ocCHpHrwoU87B04UBAke+Dx+vp8bZxcAsqN3/ebdK8vJ1Fby2QoST1cQf/wcC/EnuLf4CDOxJdye
XcD45Dwu35jBhat3MHJxAqHwGIJnhK3O3sFukiX/fLl3D95Fd8M8b8SrN+v/xeu36/j0ZQPdJ0ciJJl6
ga/LD/HjvYD7H2L4+HljW9j89h3+Y6cFQi2XlJRApVKhtLQUZWVlUKvVKC8vh0ajQUVFBfR6PQwGAyor
K1FVVYXq6mrU1NSgvWdIIEuJFCPl5ORAIpFAKpVCJpNBLpcjNzcXeXl5UCgUKCgoQGFhIYqKiphgXV0d
eofCAqGF8QPpdBpTU1PbPpDtQCCxBwlmkyuura2hr6/vn6o0Jo/Y2NiIQ/0hgczG4ixbfn4+MpkMotEo
lErlb6ucxDvRarXQ6XRobm7GgcCgQCbnFmE2mxmhuLiY5eNlUhIFJ9EyqRiF1WrF/s4BgUxMx1BfX/8X
ibdPlfgCRqORLWAymdgKDocDno5egYzdmgPNQ1VoF5T052R8NuqSwmKxoLa2Fi0tLXD6ugVyaXya5eHW
uBJVoQS6NyfR6SgaGhrgdrth8/oFci5ybZPmsdlssNvtzJrT6WQKFK2trXC5XIzg8XjQ1tbG4PV60eT0
jZLAwHAgGDq/GgxFxP7hsHhkcFTsOn5W9B89JR7sGRJ9XSdEr79fdLcfFrOWxayquM/dITY5fKuWJoeJ
0O+8E/wCTNYVG3agVjIAAAAASUVORK5CYII=
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAmlJREFUOE+lVN1L
k1EcPv9Ft06mzOF0m27qdHOb040cRpubc3PEyKQhTktbVuJAWkUKUr5FkWXSh5pObKTmJK1WYFdjBnVR
7MXogwIvkurCi552DpwoCBK8eC6f3/PFOQQA2Q3IjVv3ri6vJrdXn61h5ekaEo+fYz7xBPcXHmE6voQ7
M/MYm5jDlZvTuHjtLgYvjSM6PIq+s8J2e3d/iGTJP1/u24t3sT0wzxnw6s3Gf/H67QY+fdlE6NTgCFlN
vsDX5Yf48V7Agw9xfPy8uSNsffuO4PEzAqGWVSoV1Go1SkpKUFpaCo1GA61Wi7KyMlRUVKCyshJVVVXQ
6/Worq6GyWRCTU0NWrsiAllaSTJSTk4OJBIJcnNzIZVKkZeXh/z8fMhkMsjlchQWFkKhUKC4uJgJ1tXV
oTsyLBBaGD+QSqUwOTm54wPZDgQSX1xhNrliJpNBT0/PP1VpTB6xvr4eh8NRgczEEyxbQUEB0uk0YrEY
ioqKflvlJN5JeXk5dDodGhoacLCzXyATswswm82MoFQqWT5eJiVRcBItk4pROBwOHGjvFcj4VBxWq/Uv
Em+fKvEFDAYDW8BoNLIVXC4XfG3dAhm9PQuah6rQLijpz8n4bNQlhcViQW1tLZqamuAOhARyeWyK5eHW
uBJVoQS6NyfR6ShsNhu8Xi+c/qBAzo9c36J5nE4nGhsbmTW3280UKDweD5qbmxnB5/OhpaWFwe/3w+4O
DJHO3oHOvuiF9b7oiBgeGBaP9g+JHSfOicFjp8VDXREx0HFS9AfDorf1iJi1LGZVxf3eNtHuCqxb7C7j
rp4y/QZ+AXhAQe1Sf9VzAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenToolsOptions.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgVJREFUOE+Vk8tv
EmEUxXHhX2L8U4waY4wrVy5lK0YXkqZpYIBhkEccCk6dIgttsHZaYyi2jKgjb5NR0pGHL2iKFAQtrhoX
mDnemQWa2EKd5Mu3ub/znXvunWMALNO+eDxu03XdSrUn6bZYrdbjY8YQmHRisZhNFMX9TqeD4XCIaDRK
5X+YibBRSHC93W6j1+shnU4jHA7/n4AgCCPj9UqlAp7ns4ZoMBiE3++Hz+cbTXVAln81m00UCgWEQqFX
gUAgJ0kSGo0GWJadLBCJRM6QZb1araJcLiOTyUCWZWSzWeTzebjd7vqBDm6tfuG9iY8VsjwqlUpQVRXG
XSwWkcvloCgKXC7XvtPptP0jwC3v8IvpHoSnXfiX30PTNKRSKXAcpxuW6dURwzB1h8NhM1fg75GwBrzR
RabyA/LbIfxrbcyIGrxe70+Px3PioHGPBdyJHX6B4GcEJpQ+7j//imT5OxwPtnGZ014ftiumALO0zQvr
Xchvhlh62Ud0fRcxamOt+A32eAsXmdqjQwXmCJ5PdrGpEvyij/nkLkRyspof4Oa9Fi443kmTNtVijzex
oe6ZlvknHdyl8KTcADcWWzg/Nxk2Q7x65xP1ugdxk5KnNlYIvk7w2dmtx9P+E1Pgyu0PqhHUSnaAh8oA
1xY+4/TM0eDxGC+xtRoFhXOzWzhlPzpsCPwGZiza7bmUpcQAAAAASUVORK5CYII=
</value>
</data>
<data name="mMenTools.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALDQAA
Cw0B7QfALAAAAtpJREFUOE91Ud1P0mEYfbvor8itudZFV/0JXbXmWmuurS66aF7YbbRqydAMkTENUH4Q
gnzYhvgxSUpA5EMlQHCTNFCwZup0KmFJV16RnJ4Hw7W2ftvZ+9vzvOc85znvud7eXvHXVzk5ORHVanWD
zkGq93OvoaFBRrWHAC7TKUql0vkzjtVqFVqttg6sr68jmUyiu7v7WKlUyhwOh8xmsx3v7e2hXC7DbDaD
6qIOwQJUFHq9ngGPx4N4PI5YLAaVSlUgcmF3dxfFYhGhUAhGo5Hrog4WqLAqN3Q6nSAkwuEwEokE1Gp1
xWKxVHj6ysoKJEmKU602iFyD1q8ImlBha6zOF/r6+j5Eo1GkUiloNBoW/7W5uYmFhQVwjwewS16V+8Ju
txd4AlvkKXxxcXER6XQaPT09VYPBUF1bW6vVWJjd8YqcE7kpCKfTWQuJ92QhnsaETCaDQCDANvFsIIu2
wU81V7wa58Mhd3V1yQSlzGCRAu87YDZXOQ92kMvloLDloBzehnxoCy2qSJVz4XD5hW4rV0VdgLMQGG2V
EHyBnTkXTEYJ2vHP0E7uwrf4A5Op72hzbuFW56qHIOo4E4C7RcJ0O7A8Bsz3wzmxBMv0AcLLZbhmv8ER
KuJt8hBP7Vto6sh6CYJRE4D7gQS/AsiMAHN6wNeO2akI7ESKrvzEaKwEs38ftuABPIlDPCGRG4qslyAE
XPcl+OREdgOzOmCK/qdVQMKKiGsEdiJFyIV7vgSTbx+D5GqCRB5bv+K6POsVcNwBloaB6Cvg3XMg8JLI
FsB+F+i45NGM70hWEgl/JJG5EqT3e7D4DzAWO8TNjiwEXjcB6TdAkKb6O4H4AGAlUUWjVz26I/5AYtJM
5jQP20wRE/FDNKvyJGC4lsFwyykxZgIszYD8olfl3hb/QDL5DhDMHNGrHNWe9p4mnz8NUX01D+UVstxI
5AveTiL/B5J8aBOPBjbQaviSIYjfmuK35PAW5YUAAAAASUVORK5CYII=
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAftJREFUOE+Vk81v
0mAcx/lf/FuMGmOMJ08ePYvRg2RZllKgFAvEMrDYwg664BybMQw3KmpteTOpklVefINlyEDQ1dPioWbf
PeUwNW50Hppe+vn8vr/v89QFwOX0pNNptyRJLVEUrWQyaf35vSOcSqXcBNzr9/swTROJRILwv4c6Cgjc
6vV6GA6HKBQKiMVi/ycQBMGyp9frdfA8r9rTI5EIOI5DKBSyHBOQyL86nQ7K5TKi0eircDisZbNZtNtt
MAwzXRCPx8+SyPuNRgO1Wg3FYhGyLENVVZRKJfj9/taRCW6vfOGDmY91EtmqVqvQdR32u1KpQNM0KIoC
n8+35/V63f8I2KVtXioMITwdgFt6D8MwkM/nwbLsvh2ZTLVomm5RFOW2+/hLwNjw+gDF+g/Ib01wqz3M
iAaCweDPQCBw6qj7cijwZ7b5JIGfETCjjHD/+Vfkat9BPdjCFdZ4fdxlmwjoxS1eWBtAfmNi8eUIibUd
pMgaq5Vv8Cx0cYluPjpWMEfg+dwAGzqBX4wwn9uBSJKslMa4le7iIvUuO+2quzwLHazru5PI/JM+7pHy
stoYN6UuLsxNhyclXrv7iey6C3GDNE/WWCbwDQKfm9187PSTTQRX73zQ7aKW1TEeKmNcT37GmZmTwYfH
eJlpNklROD+7idOek8O24AByavlRgSfdiAAAAABJRU5ErkJggg==
</value>
</data>
<data name="mMenInfoHelp.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAArRJREFUOE+lk+1P
kmEUh+tf0T+htZqrVav1rbbGhz70wan5CjS1XC2D5Swd5jRLSs1Mp4KaOqeiwJOACKKJ8iYIPJjIm/Iy
EB541Gz7BSxBW2tt3dt1b/d2zrWdc59zFsCZ/zopwUlU5GGu0n7AUVj3SdkGTX0xxymJiSJnDVHOtG4v
9/f4U8lyK82YsyR8Dv8hNndp2L1UGsdOAhZPAqNLQd/wop9xUpIREOtxhtgYi28F9qH/FoZw3g3euBUN
oxvoJjahsQRh81H4JHPHu4ntjCQtEOmjOVNrEe+mn8aiNYS6ZFIX4YA7RMMVSmB8yYNaoRHSNR/Mrija
pkhvy4QtJ92/1DW2HOSuu+NYdUTAHTLjca8eiYOjJD9+cYS6IQNqB3RYMAegXA+gXmjkZgT98z7Slqy1
h9hCTa8O1T2rcAcTmF7xQG7aAZ2UyU1eMDtUaJu2wOgM40mPlswIOiVO2u6NgSswoOqjFqwuTTJYjRmt
C2HqALthGn1zNpS1K1H1QQ2Law8svprOCFonbLTNE8PTQQOYnWpUvFeh/J0KMfo7tgMU2HwliltluJ+E
zVfA7I6goFmeFbwQmkjTdgR8kQ2sDg3K+QsofTuPktfyNEWvCBQ1SVDYJEaDcAVaRwB368XZEpL1cCVa
D9SWAKo6NZnEUHQfgT0a+bzZNEU8EYg1FwTJcm7VTmabyOYv5lS8WfAuWwOQrrrBbFegsFmK9gldmlRy
QeMkRhR2KAwe3KwZ915/OJb9xlQz8nlzjHuNRFxl3oHc6MVLwTJKW8QobprB8z41pFonZHo3rlZ+jl9+
MHx6kI5H8w5XxLj9bMrXT2zgq90PgzOUZsm6i26RCXksoe9iheDPo3wsufFoLPda9SjnSuUIeYk9ROUx
hdSF8kHyfNkA51xJ/9+X6fdN+5f3T6xF2MGyA9nXAAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAq5JREFUOE+lk99P
UmEcxv1b9E9oreZq1Wrd1da46KILp+ZPoKnlahksZ+kwp1lSamY6FdTUORUFTgIiiCaKgCBwMJFfyoGB
cOCo2faELCGrdVEXn7v3+bx73vf7zQKQ9T/8FtaQhzlqxwFPZdsnFRsM/ckSp2VmmpwxRnlThr2cXy87
JVDaGNasNeF3Bg6xucvA4aNTOHcSsHoTGFkM+ocWAqyfJWkBsR5nSU2x+Ba1j7UvYYjnPBCM2VA/soEu
YhM6axB2P40PCk+8i9hOS1ICyVo0e3I14tsMMFiwhVCbDHUSTnhCDNyhBMYWvagRmyBf9cPijqJ1kvQ1
j9uzj7MpwehSkL/uiWPFGQF/0IKHPWtIHBwl+faDI9QOGlHTb8C8hYJ6nUKd2MRPC/rm/KQ92bWb2EJ1
jwFV3SvwBBOYWvZCad4Bk5QpzT6w2zVonbLC5ArjUbeeTAs6ZC7G4YuBLzKi8r0enE5d8rAW03o3wvQB
dsMMemftKG1To/KdFlb3HjhCLZMWtIzbGbs3hscDRrA7tCh/q0HZGw1izFdsUzS4QjWKWhS4m4QrVMHi
iSC/SZkRPBObSfN2BEKJHZx2HcqE8yh5PYfil8oUhS8IFDbKUNAoRb14GXonhdt10kyFZB++TO+F1kqh
skOXDoai+6D2GOQJZlIUCiQgVt0QJevcqJnIPCJXuJBd/mret2SjIF/xgN2mQkGTHG3jhhTH4fyGCQyr
HFAZvbhePea7en80843Hj5EnmGXdaSDiGssOlCYfnouWUNIsRVHjNJ72aiHXu6BY8+Byxcf4xXtDpwfp
ZDRv8SWsm08m/X3EBj47AjC6QikWbbvokpiRyxH7z5eL/jzKJ5JrD0ZzrlSN8C5VDJMXuIN0LltMnysb
IM+W9vPOFPf9fZn+Za2/A9evBaJ0QokTAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenInfoWebsite.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA3FJREFUOE9Vkt9P
W3UYxmucdy5e+S9wPWO4wMAayuxGoTLEDFnkp7QNtIemNBbKYjcPNVSwSJs5lCnbYIUVKIWtZb9aoF1Z
V6GnrW1poVAmmwpV7JwCxhkev+fEGT3JJ3nOm/N+3nPxvACA999HudBQQN4pQi7hVcIhwq+EAA5wwVxw
6db/FlgBS4uv/hDhKuGPu99ZsJS5g9mHC3CsLmAq4cZEYgRNs9XPpHdOzzTMVL78fO/58ktk0TeU/BRb
u0Gs7sQQ3WFg3wjBmV7GUCyGK2EGY2EfTIEuVNsrIlVjZa9wf//PdcvlRBfST+ex/NSPeDaO0HYYI6k4
xtNr6Aum0PMggV5PAPa4GyZ/ByqGRTOcgFzOJ/y5+ds8HFknJp44cXPHg5uPYvgquYLPo6ugnEFQN/zQ
LzoxsHEewR/tEF8U/lV8QVDGCmzO9BdY+smJ0ew0rL8EEMhEYAzF0bO4AqkjCJnLBdXyANRpGqq1DgyH
Tbj6wICizwpus4LNb3++gaHNizBmvibXY/Bnwmi5HYJ0egkfBBYhS2kgXpFCnJCgOqqA7q4a3pQFRw15
P7CC3bUns+hMfgQq1YaB7+cwurGE6mvfQOH2omf1FuqSI+BH2iAMN+OkqwqK8ffBPL6OPDp3j0fdq9tb
z87iw4gaikgfBh+6UDPqR81UFBVf3keL6z46InZQPgdqrXZUWs9ANnwazKNp5Ope2+c1z9U8Dm1PoS/W
ie61OZxdcKPWcAm0oQeDg4PQnPsYpedsOE5PkaznZvquTvSPGPB625FtHinGdXvCDEf6MpT3aDR+ooHJ
ZMLW1hbW19fh8XjQoe+G8mw34okkN/P5SB/IN4Kawk1eveOUkBTjWTTjRJ3pXajb1GCiUVRR7SgpFUMi
kcBsNkOr1XK5pLQEGl0LJ2lVt+5yRaq89ta0cV4DSlcPWk9zgiaLB4XHhHC73WAYBl6vFzabDUVvCqC1
SDkBTdP7nODtK8WHSTEi9bp3QCnlnKCWaoWg6BiEQiHKy8s52CwoEkD0XvEuK5DJZFlOwHL8fOHhAm2e
t+SU6KDX1AvrxDgmJyfR398PlUqF9vZ2LrMz65g1azQas2KxOPGvgJXk5OS8mC97o/VE2Ym9BknDQZO8
Cc3yZhQq+NmjynyG5H25XL7f2Nj4u0gk2uDz+Uf+BlXgloy7HfxbAAAAAElFTkSuQmCC
</value>
</data>
<data name="mMenInfo.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAArBJREFUOE+lk+1P
UmEYxutf0T+hc/rS2vRDc202SNI+ZNYwTdRWugqzwSrFRHwDFLAhGGq+UL5BSYqQwJGMkJfQ1JMDM2hr
qy+QtSyvHmiittbaOtt1trPzXL/7ue7nfg4COPBfTxKwV3ma5cwTqpAoVxFkjzV749kyTzxLNs9mydyi
o3eZzN/X7zNz1Eu84/JArLzHjx57BCPMRkp6axh89XPQopkYLbby9kLSAFKVl9PiSzRPrMDijaF7KgKJ
8TXuDC1BblqB0bGOhpEQ6IrxBH15PA1JAXKVwYyc1oVo0mx6EYOImG70BzDoeotB5zquG/wQ9gVgmFmD
5KEfdKkxSpcMZaT6l3zlyBfEZVovzJ73qO0PQUgiXNX58PnrVkpVOg+quj0Q3vei/1kYZ5qegirsE6cB
2a0eVm+NQGlica3Hh2qdF1VaD3rtazAQVXQxv6RxkVgBqKeWQRfo2DTgiITZHJt/h9peP6n0EpX33GQx
Q/4D20QClRNlHbNEDlzSOGFkwqB4nZtpAC22b466N1JZk5XK1S5iciEU+YTEly2UtttR0mbDBSKBwobh
OQLgKvYCrKzWykL6aBGVGjcEnU5cVM7iVfgjAXxDsWwaxSQ3v8mCmm4GSksQ9Mn23Qh0jUVcJLdj0BFB
pYqBQO6AxbOO7z+2UxH8bz6gSGImMqHrcQgFN0cIoG23ifSV0QxaYIzeHvbBYF1FqdwGfvMUzkknUVRv
wtm6cRTWjaFl2EuOd45sXxqludLdY0w2g+IP8A7l6xOiAQ/008sQap1ky09wvsGMapUNalMAwl4GNKc+
Qcz7B2lnNKkCPY/K74qdvjUB5eQiHjhZolW0m4PIqzWC4jTEaG7jn0d5B0KfUmdSvA4RladgKW5TnOI0
xklFlkh0mFv/98v0+037l++fDRyfGvO8afwAAAAASUVORK5CYII=
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAA2ZJREFUOE9dk91P
k2cYxptsO5vZf8GxZvEAAzYUV6HQMcSImPEpbQPtCynNCmWx6ksXKlhGiRsTJypYsEApYItfLdBarBX6
trUtLRRah26DbqzGCSxz8fLpm2imB7/kyp37/j0n18MBwPk/Da7qbMIIIUF4SfiHsEmYopxVeR/uvzsm
Cx8TrqcP7v1iwGLyLmaezMOyMo+JiB1jkSHUzZS/Et89MV0zXfrpWxErIEefEFwD0fPY2PZiZSuE4BYD
c8IHa3wJA6EQrvkZjPhd0HvaUW4uCZSNFH2Wvn0rMFyNtCP+Yg5LL9wIp8LwbfoxFAtjNL6Kbm8MnQ8j
6HJ4YA7boXe3omRQMM0KyMtZhH/X/56DJWXF2HMrbm05cOtpCD9Hl/FDcAWU1QvqphuaBSv6Ehfg/d0M
4SX+f/k/8orSApM1/hMW/7BiODUJ418eeJIB6HxhdC4sQ2zxQmKzQb7UB0Wchny1FYN+Pa4/1CL3++w7
acH64z9vYmD9EnTJy+T1ENxJPxru+CCeXMQ3ngVIYkoIl8UQRkQoD8qgvqeAM2bAQW3mb2nB9urzGbRF
z4KKNaPv11kMJxZRfuMRZHYnOlduoyo6BG6gGXx/Pb6ylUE2ehLMsylk0vt3ONT9qp211AxOBRSQBbrR
/8SGimE3KiaCKLn4AA22B2gNmEG5LKg0mlFq/BaSwRNgnk5iv3rfLqd+tuKZb3MC3aE2dKzO4vS8HZXa
K6C1nejv74fyzHcoPGPCYXqCZA0707S3oXdIi8+b925ySDGmzJEeWOJX0XifRu05JfR6PTY2NrC2tgaH
w4FWTQcaT3cgHImyM5eL9IHs8Cpy1jnVlmN8UoxXwaQVVfrjUDQrwASDKKNaUFAohEgkQk9PD1QqFZsL
CgugVDewkiZF0zZbpNIbX07q5pSg1NWgNTQrqDM4kHOID7vdDoZh4HQ6YTKZkPsFDyqDmBXQNL3LCo5c
y99DihGoVh8F1ShlBZVUE3i5h8Dn81FcXMySzrxcHgRf52+nBRKJJPXuMx2+kLMnW5XpLDgmeN2l74Jx
bBTj4+Po7e2FXC5HS0sLm9Mz44gxpdPpUkKhMPLeV87IyPgoS3KgKa8ob6dGVPO6TlqHemk9cmTc1MHG
LIbkXalUultbW/tSIBAkuFzu3jfA3LOfi8khbAAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="tsQuickConnect.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>651, 5</value>
<value>521, 17</value>
</metadata>
<metadata name="tsExtAppsToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>348, 8</value>
<value>374, 17</value>
</metadata>
<metadata name="cMenExtAppsToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>482, 8</value>
<value>17, 56</value>
</metadata>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>184, 56</value>
</metadata>
<metadata name="tmrShowUpdate.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>102, 8</value>
<value>112, 17</value>
</metadata>
<metadata name="tmrAutoSave.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>233, 8</value>
<value>252, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>37</value>
<value>155</value>
</metadata>
</root>

View File

@@ -1,28 +1,45 @@
Imports mRemote.App.Runtime
Imports mRemoteNG.App.Runtime
Imports System.Reflection
Imports Crownwood
Imports mRemoteNG.App.Native
Imports System.Runtime.InteropServices
Imports PSTaskDialog
Public Class frmMain
Public prevWindowsState As FormWindowState
Public Shared Event clipboardchange()
Private fpChainedWindowHandle As IntPtr
#Region "Properties"
Private _IsClosing As Boolean = False
Public ReadOnly Property IsClosing() As Boolean
Get
Return _IsClosing
End Get
End Property
#End Region
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'insert enable edition code here
App.Editions.Spanlink.Enabled = True
App.Editions.Spanlink.Enabled = False
ApplyLanguage()
Startup.CreateLogger()
' Create gui config load and save objects
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
' Load GUI Configuration
sL.Load()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
ApplyLanguage()
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
Startup.CreateLogger()
sL.Load()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
mC = New Messages.Collector(Windows.errorsForm)
@@ -44,76 +61,121 @@ Public Class frmMain
'LoadCredentials()
LoadConnections()
If My.Settings.FirstStart Then
Windows.Show(UI.Window.Type.About)
End If
If My.Settings.StartupComponentsCheck Then
Windows.Show(UI.Window.Type.ComponentsCheck)
End If
If Not My.Settings.CheckForUpdatesAsked Then
Dim CommandButtons() As String = {My.Resources.strAskUpdatesCommandRecommended, My.Resources.strAskUpdatesCommandCustom, My.Resources.strAskUpdatesCommandAskLater}
Dim Result As DialogResult = cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Resources.strAskUpdatesMainInstruction, String.Format(My.Resources.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", CommandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
If cTaskDialog.CommandButtonResult = 0 Or cTaskDialog.CommandButtonResult = 1 Then
My.Settings.CheckForUpdatesAsked = True
End If
If cTaskDialog.CommandButtonResult = 1 Then
Windows.ShowUpdatesTab()
End If
End If
Startup.UpdateCheck()
Startup.AnnouncmentCheck()
Startup.AnnouncementCheck()
Startup.CreateSQLUpdateHandlerAndStartTimer()
AddSysMenuItems()
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
Me.Opacity = 1
End Sub
Private Sub ApplyLanguage()
mMenFile.Text = Language.Base.Menu_File
mMenFileNew.Text = Language.Base.Menu_NewConnections
mMenFileLoad.Text = Language.Base.Menu_OpenConnections
mMenFileSave.Text = Language.Base.Menu_SaveConnections
mMenFileSaveAs.Text = Language.Base.Menu_SaveConnectionsAs
mMenFileExit.Text = Language.Base.Menu_Exit
mMenView.Text = Language.Base.Menu_View
mMenViewAddConnectionPanel.Text = Language.Base.Menu_AddConnectionPanel
mMenViewConnectionPanels.Text = Language.Base.Menu_ConnectionPanels
mMenViewConnections.Text = Language.Base.Menu_Connections
mMenViewConfig.Text = Language.Base.Menu_Config
mMenViewSessions.Text = Language.Base.Menu_Sessions
mMenViewErrorsAndInfos.Text = Language.Base.Menu_ErrorsAndInfos
mMenViewScreenshotManager.Text = Language.Base.Menu_ScreenshotManager
mMenViewJumpTo.Text = Language.Base.Menu_JumpTo
mMenViewJumpToConnectionsConfig.Text = Language.Base.Menu_ConnectionsConfig
mMenViewJumpToSessionsScreenshots.Text = Language.Base.Menu_SessionsScreenshots
mMenViewJumpToErrorsInfos.Text = Language.Base.Menu_ErrorsInfos
mMenViewQuickConnectToolbar.Text = Language.Base.Menu_QuickyToolbar
mMenViewExtAppsToolbar.Text = Language.Base.Menu_ExternalApplicationsToolbar
mMenViewFullscreen.Text = Language.Base.Menu_FullScreenKioskMode
mMenTools.Text = Language.Base.Menu_Tools
mMenToolsSSHTransfer.Text = Language.Base.Menu_SSHFileTransfer
mMenToolsExternalApps.Text = Language.Base.Menu_ExternalApplications
mMenToolsPortScan.Text = Language.Base.Menu_PortScan
mMenToolsUpdate.Text = Language.Base.Menu_Update
mMenToolsOptions.Text = Language.Base.Menu_Options
mMenInfo.Text = Language.Base.Menu_Info
mMenInfoHelp.Text = Language.Base.Menu_Help
mMenInfoDonate.Text = Language.Base.Menu_Donate
mMenInfoWebsite.Text = Language.Base.Menu_Website
mMenInfoAbout.Text = Language.Base.Menu_About
lblQuickConnect.Text = Language.Base.Toolbar_Quicky
btnQuickyPlay.Text = Language.Base.Toolbar_Play
mMenQuickyCon.Text = Language.Base.Menu_Connections
cMenToolbarShowText.Text = Language.Base.Toolbar_ShowText
mMenFile.Text = My.Resources.strMenuFile
mMenFileNew.Text = My.Resources.strMenuNewConnectionFile
mMenFileNewConnection.Text = My.Resources.strNewConnection
mMenFileNewFolder.Text = My.Resources.strNewFolder
mMenFileLoad.Text = My.Resources.strMenuOpenConnectionFile
mMenFileSave.Text = My.Resources.strMenuSaveConnectionFile
mMenFileSaveAs.Text = My.Resources.strMenuSaveConnectionFileAs
mMenFileImportExport.Text = My.Resources.strImportExport
ImportFromActiveDirectoryToolStripMenuItem.Text = My.Resources.strImportAD
ImportFromPortScanToolStripMenuItem.Text = My.Resources.strImportPortScan
ImportFromRDPFileToolStripMenuItem.Text = My.Resources.strImportRDPFiles
ImportFromXMLFileToolStripMenuItem.Text = My.Resources.strImportmRemoteXML
ExportToXMLFileToolStripMenuItem.Text = My.Resources.strExportmRemoteXML
mMenFileExit.Text = My.Resources.strMenuExit
mMenView.Text = My.Resources.strMenuView
mMenViewAddConnectionPanel.Text = My.Resources.strMenuAddConnectionPanel
mMenViewConnectionPanels.Text = My.Resources.strMenuConnectionPanels
mMenViewConnections.Text = My.Resources.strMenuConnections
mMenViewConfig.Text = My.Resources.strMenuConfig
mMenViewSessions.Text = My.Resources.strMenuSessions
mMenViewErrorsAndInfos.Text = My.Resources.strMenuNotifications
mMenViewScreenshotManager.Text = My.Resources.strMenuScreenshotManager
mMenViewJumpTo.Text = My.Resources.strMenuJumpTo
mMenViewJumpToConnectionsConfig.Text = My.Resources.strMenuConnectionsAndConfig
mMenViewJumpToSessionsScreenshots.Text = My.Resources.strMenuSessionsAndScreenshots
mMenViewJumpToErrorsInfos.Text = My.Resources.strMenuNotifications
mMenViewResetLayout.Text = My.Resources.strMenuResetLayout
mMenViewQuickConnectToolbar.Text = My.Resources.strMenuQuickConnectToolbar
mMenViewExtAppsToolbar.Text = My.Resources.strMenuExternalToolsToolbar
mMenViewFullscreen.Text = My.Resources.strMenuFullScreen
mMenTools.Text = My.Resources.strMenuTools
mMenToolsSSHTransfer.Text = My.Resources.strMenuSSHFileTransfer
mMenToolsExternalApps.Text = My.Resources.strMenuExternalTools
mMenToolsPortScan.Text = My.Resources.strMenuPortScan
mMenToolsComponentsCheck.Text = My.Resources.strComponentsCheck
mMenToolsUpdate.Text = My.Resources.strMenuCheckForUpdates
mMenToolsOptions.Text = My.Resources.strMenuOptions
mMenInfo.Text = My.Resources.strMenuHelp
mMenInfoHelp.Text = My.Resources.strMenuHelpContents
mMenInfoForum.Text = My.Resources.strMenuSupportForum
mMenInfoBugReport.Text = My.Resources.strMenuReportBug
mMenInfoDonate.Text = My.Resources.strMenuDonate
mMenInfoWebsite.Text = My.Resources.strMenuWebsite
mMenInfoAbout.Text = My.Resources.strMenuAbout
mMenInfoAnnouncements.Text = My.Resources.strMenuAnnouncements
lblQuickConnect.Text = My.Resources.strLabelConnect
btnQuickyPlay.Text = My.Resources.strMenuConnect
mMenQuickyCon.Text = My.Resources.strMenuConnections
cMenToolbarShowText.Text = My.Resources.strMenuShowText
ToolStripButton1.Text = My.Resources.strConnect
ToolStripButton2.Text = My.Resources.strScreenshot
ToolStripButton3.Text = My.Resources.strRefresh
ToolStripSplitButton1.Text = My.Resources.strSpecialKeys
ToolStripMenuItem1.Text = My.Resources.strKeysCtrlAltDel
ToolStripMenuItem2.Text = My.Resources.strKeysCtrlEsc
End Sub
Private Sub frmMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If My.Settings.ConfirmExit And wL.Count > 0 Then
If MsgBox(Language.Base.UnclosedConnectionPanels, MsgBoxStyle.YesNo Or MsgBoxStyle.Question) = MsgBoxResult.No Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, My.Resources.strConfirmExitMainInstruction, "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmExit = False
End If
If Result = DialogResult.No Then
e.Cancel = True
Exit Sub
End If
End If
_IsClosing = True
For Each Window As UI.Window.Base In wL
Window.Close()
Next
App.Runtime.Shutdown.BeforeQuit()
Debug.Print("[END] - " & Now)
End
End Sub
#End Region
#Region "Timer"
Private tmrRuns As Integer = 0
Private Sub tmrShowUpdate_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles tmrShowUpdate.Tick
If tmrRuns = 5 Then
@@ -121,14 +183,12 @@ Public Class frmMain
End If
If App.Runtime.IsUpdateAvailable Then
If My.Settings.CheckForUpdatesOnStartup Then
App.Runtime.Windows.Show(UI.Window.Type.Update)
Me.tmrShowUpdate.Enabled = False
End If
App.Runtime.Windows.Show(UI.Window.Type.Update)
Me.tmrShowUpdate.Enabled = False
End If
If App.Runtime.IsAnnouncmentAvailable Then
App.Runtime.Windows.Show(UI.Window.Type.Announcment)
If App.Runtime.IsAnnouncementAvailable Then
App.Runtime.Windows.Show(UI.Window.Type.Announcement)
Me.tmrShowUpdate.Enabled = False
End If
@@ -139,7 +199,7 @@ Public Class frmMain
mC.AddMessage(Messages.MessageClass.InformationMsg, "Doing AutoSave", True)
App.Runtime.SaveConnections()
End Sub
#End Region
#Region "Ext Apps Toolbar"
Private Sub cMenToolbarShowText_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenToolbarShowText.Click
@@ -207,13 +267,65 @@ Public Class frmMain
#Region "Menu"
#Region "File"
Private Sub mMenFile_DropDownOpening(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFile.DropDownOpening
Select Case Tree.Node.GetNodeType(mRemoteNG.Tree.Node.SelectedNode)
Case Tree.Node.Type.Root
mMenFileImportExport.Enabled = True
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Resources.strMenuDelete
mMenFileRename.Text = My.Resources.strMenuRenameFolder
mMenFileDuplicate.Text = My.Resources.strMenuDuplicate
Case Tree.Node.Type.Container
mMenFileImportExport.Enabled = True
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Resources.strMenuDeleteFolder
mMenFileRename.Text = My.Resources.strMenuRenameFolder
mMenFileDuplicate.Text = My.Resources.strMenuDuplicateFolder
Case Tree.Node.Type.Connection
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = True
mMenFileRename.Enabled = True
mMenFileDuplicate.Enabled = True
mMenFileDelete.Text = My.Resources.strMenuDeleteConnection
mMenFileRename.Text = My.Resources.strMenuRenameConnection
mMenFileDuplicate.Text = My.Resources.strMenuDuplicateConnection
Case Else
mMenFileImportExport.Enabled = False
mMenFileDelete.Enabled = False
mMenFileRename.Enabled = False
mMenFileDuplicate.Enabled = False
mMenFileDelete.Text = My.Resources.strMenuDelete
mMenFileRename.Text = My.Resources.strMenuRename
mMenFileDuplicate.Text = My.Resources.strMenuDuplicate
End Select
End Sub
Private Sub mMenFileNewConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNewConnection.Click
App.Runtime.Windows.treeForm.AddConnection()
SaveConnectionsBG()
End Sub
Private Sub mMenFileNewFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNewFolder.Click
App.Runtime.Windows.treeForm.AddFolder()
SaveConnectionsBG()
End Sub
Private Sub mMenFileNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileNew.Click
NewConnections()
Dim lD As SaveFileDialog = Tools.Controls.ConnectionsSaveAsDialog
If lD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
NewConnections(lD.FileName)
Else
Exit Sub
End If
End Sub
Private Sub mMenFileLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileLoad.Click
If App.Runtime.ConnectionsFileLoaded Then
Select Case MsgBox(Language.Base.SaveConnectionsFileBeforeOpeningAnother, MsgBoxStyle.YesNoCancel Or MsgBoxStyle.Question)
Select Case MsgBox(My.Resources.strSaveConnectionsFileBeforeOpeningAnother, MsgBoxStyle.YesNoCancel Or MsgBoxStyle.Question)
Case MsgBoxResult.Yes
App.Runtime.SaveConnections()
Case MsgBoxResult.Cancel
@@ -235,6 +347,21 @@ Public Class frmMain
Private Sub mMenFileExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileExit.Click
App.Runtime.Shutdown.Quit()
End Sub
Private Sub mMenFileDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileDelete.Click
Tree.Node.DeleteSelectedNode()
SaveConnectionsBG()
End Sub
Private Sub mMenFileRename_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileRename.Click
Tree.Node.StartRenameSelectedNode()
SaveConnectionsBG()
End Sub
Private Sub mMenFileDuplicate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenFileDuplicate.Click
Tree.Node.CloneNode(Tree.Node.SelectedNode)
SaveConnectionsBG()
End Sub
#End Region
#Region "View"
@@ -256,6 +383,12 @@ Public Class frmMain
Me.mMenViewConnectionPanels.DropDownItems.Add(tItem)
Next
If Me.mMenViewConnectionPanels.DropDownItems.Count > 0 Then
Me.mMenViewConnectionPanels.Enabled = True
Else
Me.mMenViewConnectionPanels.Enabled = False
End If
End Sub
Private Sub ConnectionPanelMenuItem_Click(ByVal sender As Object, ByVal e As System.EventArgs)
@@ -333,6 +466,12 @@ Public Class frmMain
Windows.errorsForm.Activate()
End Sub
Private Sub mMenViewResetLayout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewResetLayout.Click
If MsgBox(My.Resources.strConfirmResetLayout, MsgBoxStyle.Question Or MsgBoxStyle.YesNo) = MsgBoxResult.Yes Then
App.Runtime.Startup.SetDefaultLayout()
End If
End Sub
Private Sub mMenViewAddConnectionPanel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewAddConnectionPanel.Click
AddPanel()
End Sub
@@ -411,7 +550,7 @@ Public Class frmMain
Try
btnQuickyPlay.DropDownItems.Clear()
For Each fI As FieldInfo In GetType(mRemote.Connection.Protocol.Protocols).GetFields
For Each fI As FieldInfo In GetType(mRemoteNG.Connection.Protocol.Protocols).GetFields
If fI.Name <> "value__" And fI.Name <> "NONE" And fI.Name <> "IntApp" Then
Dim nBtn As New ToolStripMenuItem
nBtn.Text = fI.Name
@@ -426,21 +565,21 @@ Public Class frmMain
Private Sub QuickyProtocolButton_Click(ByVal sender As Object, ByVal e As System.EventArgs)
Try
Dim conI As Connection.Info = CreateQuicky(QuickyText, Tools.Misc.StringToEnum(GetType(mRemote.Connection.Protocol.Protocols), sender.Text))
Dim conI As Connection.Info = CreateQuicky(QuickyText, Tools.Misc.StringToEnum(GetType(mRemoteNG.Connection.Protocol.Protocols), sender.Text))
If conI.Port = 0 Then
conI.SetDefaultPort()
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname)
If mRemoteNG.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemoteNG.Connection.QuickConnect.History.Add(conI.Hostname)
End If
Else
If mRemote.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemote.Connection.QuickConnect.History.Add(conI.Hostname & ":" & conI.Port)
If mRemoteNG.Connection.QuickConnect.History.Exists(conI.Hostname) = False Then
mRemoteNG.Connection.QuickConnect.History.Add(conI.Hostname & ":" & conI.Port)
End If
End If
App.Runtime.OpenConnection(conI, mRemote.Connection.Info.Force.DoNotJump)
App.Runtime.OpenConnection(conI, mRemoteNG.Connection.Info.Force.DoNotJump)
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "QuickyProtocolButton_Click (frmMain) failed" & vbNewLine & ex.Message, True)
End Try
@@ -475,7 +614,11 @@ Public Class frmMain
App.Runtime.Windows.Show(UI.Window.Type.Help)
End Sub
Private Sub mMenInfoBugReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Private Sub mMenInfoForum_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoForum.Click
App.Runtime.GoToForum()
End Sub
Private Sub mMenInfoBugReport_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoBugReport.Click
App.Runtime.GoToBugs()
End Sub
@@ -487,8 +630,8 @@ Public Class frmMain
App.Runtime.GoToDonate()
End Sub
Private Sub mMenInfoAnnouncments_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoAnnouncments.Click
App.Runtime.Windows.Show(UI.Window.Type.Announcment)
Private Sub mMenInfoAnnouncements_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoAnnouncements.Click
App.Runtime.Windows.Show(UI.Window.Type.Announcement)
End Sub
Private Sub mMenInfoAbout_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfoAbout.Click
@@ -535,13 +678,14 @@ Public Class frmMain
Private Sub ConMenItem_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = MouseButtons.Left Then
If TypeOf sender.Tag Is mRemote.Connection.Info Then
If TypeOf sender.Tag Is mRemoteNG.Connection.Info Then
App.Runtime.OpenConnection(sender.Tag)
End If
End If
End Sub
#End Region
#Region "Window Overrides and DockPanel Stuff"
Private Sub frmMain_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
If Me.WindowState = FormWindowState.Minimized Then
If My.Settings.MinimizeToTray Then
@@ -555,40 +699,47 @@ Public Class frmMain
End If
End Sub
#Region "Window Overrides and DockPanel Stuff"
Private Msg13 As Boolean = False
Private Msg71 As Boolean = False
Private bWmGetTextFlag As Boolean = False
Private bWmWindowPosChangedFlag As Boolean = False
Protected Overloads Overrides Sub WndProc(ByRef m As Message)
Try
#If Config = "Debug" Then
'Debug.Print(m.Msg)
#End If
If m.Msg = 13 Then
Msg13 = True
ElseIf m.Msg = 71 Then
If Msg13 Then
ActivateConnection()
End If
Msg13 = False
Msg71 = True
ElseIf m.Msg = 28 Then
If Msg71 Then
ActivateConnection()
End If
Else
Msg13 = False
Msg71 = False
End If
If m.Msg = Tools.SystemMenu.Flags.WM_SYSCOMMAND Then
For i As Integer = 0 To SysMenSubItems.Length - 1
If SysMenSubItems(i) = m.WParam Then
Screens.SendFormToScreen(Screen.AllScreens(i))
Exit For
Select Case m.Msg
Case WM_GETTEXT
bWmGetTextFlag = True
Case WM_WINDOWPOSCHANGED
If bWmGetTextFlag Then
ActivateConnection()
End If
Next
End If
bWmGetTextFlag = False
bWmWindowPosChangedFlag = True
Case WM_ACTIVATEAPP
If bWmWindowPosChangedFlag Then
ActivateConnection()
End If
Case WM_SYSCOMMAND
For i As Integer = 0 To SysMenSubItems.Length - 1
If SysMenSubItems(i) = m.WParam Then
Screens.SendFormToScreen(Screen.AllScreens(i))
Exit For
End If
Next
Case WM_DRAWCLIPBOARD
SendMessage(fpChainedWindowHandle, m.Msg, m.LParam, m.WParam)
RaiseEvent clipboardchange()
Case WM_CHANGECBCHAIN
'Send to the next window
SendMessage(fpChainedWindowHandle, m.Msg, m.LParam, m.WParam)
fpChainedWindowHandle = m.LParam
Case Else
bWmGetTextFlag = False
bWmWindowPosChangedFlag = False
End Select
Catch ex As Exception
End Try
@@ -629,15 +780,11 @@ Public Class frmMain
For i As Integer = 0 To Screen.AllScreens.Length - 1
SysMenSubItems(i) = 200 + i
SysMenu.AppendMenuItem(popMen, Tools.SystemMenu.Flags.MF_STRING, SysMenSubItems(i), Language.Base.Screen & " " & i + 1)
SysMenu.AppendMenuItem(popMen, Tools.SystemMenu.Flags.MF_STRING, SysMenSubItems(i), My.Resources.strScreen & " " & i + 1)
Next
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 0, Tools.SystemMenu.Flags.MF_POPUP Or Tools.SystemMenu.Flags.MF_BYPOSITION, popMen, Language.Base.SendTo)
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 0, Tools.SystemMenu.Flags.MF_POPUP Or Tools.SystemMenu.Flags.MF_BYPOSITION, popMen, My.Resources.strSendTo)
SysMenu.InsertMenuItem(SysMenu.SystemMenuHandle, 1, Tools.SystemMenu.Flags.MF_BYPOSITION Or Tools.SystemMenu.Flags.MF_SEPARATOR, IntPtr.Zero, Nothing)
End Sub
#End Region
Private Sub mMenInfovRD08_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenInfovRD08.Click
Process.Start("http://software.visionapp.com/vrd")
End Sub
End Class

View File

@@ -0,0 +1,277 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="imgListPages.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<data name="imgListPages.ImageStream" mimetype="application/x-microsoft.net.object.binary.base64">
<value>
AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w
LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0
ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAABu
IgAAAk1TRnQBSQFMAgEBBwEAAdABAAHQAQABEAEAARABAAT/ASEBAAj/AUIBTQE2BwABNgMAASgDAAFA
AwABIAMAAQEBAAEgBgABIB4AAeIB7wH0Af8BqAHJAdcB/wF3AaQBtgH/AVoBhgGcAf8BRQFsAYoB/wFA
AWcBhwH/AUABcQGVAf8BUwGOAasB/wGPAbcBzQH/Ad0B6gHxAf8MAANXAbcDnwH/A5oB/wOWAf8DkQH/
A40B/wOJAf8DhAH/A4AB/wNiAf8DXgH/A1oB/wNXAf8DUwH/A1AB/wNXAbcYAAMNARIDVgG2A1YBtgMN
ARFgAAGtAc8B3wH/AVIBkQGtAf8BVwGjAb8B/wFzAcAB1AH/AZUB2QHmAf8BgQHbAfAB/wFLAcYB7AH/
AR8BqgHdAf8BEQGSAccB/wEdAYABrAH/ATQBbAGSAf8BnQG/AdEB/wgAA6gB/wPpAf8D0wH/A9IB/wPR
Af8D0AH/A84B/wPNAf8DzQH/A8sB/wPLAf8DygH/A8kB/wPIAf8D4gH/A1AB/xgAA14B2QPkAf8D4wH/
A1gBwWAAAVUBhAGbAf8BPwG9AecB/wFiAdMB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHw
Af8BGQG2Ae0B/wEAAacB6AH/AQABoQHhAf8BBAGWAdIB/wE4AVkBdQH/CAADrQH/A9YB/wO6Af8DuAH/
A7UB/wOzAf8DsQH/A7AB/wOtAf8DqwH/A6oB/wOoAf8DpwH/A6YB/wPIAf8DVAH/CAADCwEPA1QBrQM6
AWEDPwFuA3sB+AHiAeEB3wH/AeEB4AHfAf8DawHzAzwBZwM8AWYDUwGtAwsBD1AAAVgBhwGeAf8BPgHE
AfAB/wFkAdQB8QH/AYwB4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHwAf8BGQG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE5AVoBdwH/CAADsQH/A9kB/wO9Af8DugH/A7gB/wO2Af8DtQH/A7MB/wOw
Af8DrwH/A60B/wOrAf8DqQH/A6gB/wPKAf8DWAH/CAADWgHFBP8CtAGzAf4CswGyAf4C5wHmAf8B1gHV
AdMB/wHXAdYB1AH/AeMB4gHgAf8BqAGnAaUB/gKxAbAB/QHpAegB5gH/A1gBwVAAAVoBiQGgAf8BPgHE
Ae8B/wFjAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGCAd8B8wH/AUwBygHwAf8BGQG2Ae0B/wEAAagB6AH/
AQABoQHhAf8BAAGcAdoB/wE7AV0BeQH/CAADtgH/A90B/wPBAf8DvQH/A7wB/wO6Af8DuAH/A7UB/wO0
Af8DsgH/A7AB/wOtAf8DrAH/A6wB/wPPAf8DXAH/CAADZAHnAvkB9wH/Au8B7gH/AtsB2gH/AcoCyQH/
AckByAHGAf8ByQHIAccB/wHJAcgBxwH/AssByQH/AeYB5QHkAf8B5QHkAeIB/wNlAeVQAAFcAYwBogH/
AUABxgHwAf8BZQHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BggHfAfQB/wFMAcoB8AH/ARkBtgHtAf8BAAGo
AegB/wEAAaIB4gH/AQABmwHbAf8BPQFgAYAB/wgAA1oBvQPaAf8DyAH/A8AB/wO/Af8DvQH/A7oB/wO4
Af8DtwH/A7UB/wOzAf8DsAH/A68B/wOzAf8DwgH/A1oBvQgAA04BlQH2AfUB9AH/AeYB5QHkAf8BvwG+
Ab0B/wLrAeoB/wHUAdMB0gH/AdYB1QHUAf8B4gLhAf8CtAGzAf8B1wHWAdQB/wHiAeEB3wH/A0oBjVAA
AV8BjwGlAf8BQQHGAfAB/wFlAdQB8gH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUsBygHwAf8BGQG2
Ae0B/wEAAacB6AH/AQABoQHiAf8BAAGcAdsB/wE/AWMBgwH/CAADWgG9A+MB/wPnAf8D4QH/A+AB/wPg
Af8D3wH/A98B/wPeAf8D3QH/A90B/wPcAf8D2wH/A+AB/wPQAf8DWgG9AwsBDwNVAbUDZAHnAeQB4wHi
Af8B0QHQAc8B/wLwAe8B/wOuAf8DZAHxA2cB8gKsAasB/wLoAecB/wLLAcoB/wHgAd8B3QH/A2EB5ANV
AbUDCwEPSAABYAGSAagB/wFBAcUB8AH/AWYB1AHyAf8BjQHjAfQB/wGiAesB9gH/AYIB3wH0Af8BSwHK
AfAB/wEZAbYB7QH/AQABpwHoAf8BAAGhAeEB/wEAAZwB2wH/AUEBZgGGAf8IAAMpAT8DzgH/A+wB/wPe
Af8D2AH/A9IB/wPMAf8DyAH/A8cB/wPIAf8DywH/A9AB/wPdAf8D6AH/A6QB/wMrAUIDPwFtAuQB4wH/
AdgB1gHVAf8B0gHRAdAB/wHFAcQBwwH/Ae0B7AHrAf8DVwG6CAADXAHNAegB5wHmAf8BtgG1AbQB/wHW
AdUB0wH/AeIB4QHgAf8C4AHfAf8DPAFmSAABYwGVAasB/wFBAcUB8AH/AWYB1AHyAf8BjQHjAfQB/wGi
AesB9gH/AYMB3wH0Af8BTAHLAfAB/wEZAbUB7QH/AQABpwHoAf8BAAGhAeIB/wEAAZwB2gH/AUQBaQGI
Af8MAANaAb0D4wH/A9sB/wPiAf8BtwHQAbgB/wFKAa0BTgH/AVwBqgFKAf8BVgGvAU4B/wE8AaUBSAH/
AawBxQGsAf8DwgH/A9EB/wPTAf8DWgG9BAADQgF2AewB6wHoAf8B2gHZAdcB/wHUAdMB0QH/AcYBxQHE
Af8B3gLcAf8DRgF+CAADUAGaAd0B3AHbAf8ByAHGAcUB/wLiAeEB/wLhAd8B/wHuAe0B7AH/Az8Bb0gA
AWUBmAGuAf8BQQHFAfAB/wFmAdQB8QH/AY0B4wH0Af8BogHrAfYB/wGDAd8B9AH/AUwBygHwAf8BGQG2
Ae0B/wEAAagB6QH/AQABoQHhAf8BAAGcAdoB/wFGAWsBigH/DAADKQE/A9EB/wPzAf8BxwHeAcoB/wFK
AckBhQH/AbMB3AGkAf8B5wHHAWIB/wHcAb8BWQH/AVwBzAGPAf8BNQGtAU4B/wG4AdABuAH/A/EB/wOv
Af8DKwFCBAADLwFKA2AB6wONAfwB3gHdAdwB/wHLAsoB/wHmAuUB/wNhAeEDMgFQAzgBXANgAesC7gHs
Af8BzALLAf8B5wHmAeUB/wKOAY0B/ANgAesDLAFDSAABaAGbAbAB/wFAAcYB8AH/AWYB1AHyAf8BjQHj
AfQB/wGiAesB9gH/AYMB3wH0Af8BTAHKAfAB/wEZAbYB7QH/AQABqAHoAf8BAAGhAeEB/wEAAZwB2gH/
AUkBbwGOAf8QAANaAb0DxAH/AVwBzgGLAf8BmQHkAasB/wGwAcUBQwH/AeoBtQEuAf8B4QGiAR8B/wGl
AZ0BJgH/AYIBxQGPAf8BLwGaATwB/wOgAf8DWgG9EAADXgHOAeEB4AHeAf8B2QHXAdYB/wG4ArcB/wHh
AeAB3wH/A6wB/QOxAf0C9gH1Af8CwAG/Af8B6gHpAegB/wLzAfIB/wNcAclQAAFrAZ8BswH/AUABxgHw
Af8BZAHUAfEB/wGMAeMB9AH/AaIB6wH2Af8BgwHfAfQB/wFMAcoB8AH/ARkBtgHtAf8BAAGnAegB/wEA
AaEB4QH/AQABmwHaAf8BSwFyAZAB/xgAAWgBlQFzAfwBogHpAZUB/wHWAc8BTwH/AeIBswEtAf8B0QG7
ATUB/wHCAa4BKAH/AYIBvQFSAf8BMQF5AV4B/BgAA0wBkQHjAeIB4AH/At4B3AH/AeEB4AHfAf8BzALL
Af8BxAHDAcIB/wLPAc4B/wLeAd0B/wLwAe8B/wLwAe8B/wL2AfUB/wNIAYdQAAFsAaEBtQH/AWYB1QH0
Af8BmgHoAfcB/wG1AfMB+gH/AcIB+AH8Af8BwwH4Af0B/wHBAfcB/QH/Aa8B8AH7Af8BjwHiAfcB/wFl
AdAB8AH/ATkBuAHlAf8BTgF1AZMB/xgAAWoBlQF0AfwBogHwAZ8B/wHYAe0BrwH/Ad4BxQFOAf8BtAHi
AUsB/wFGAecBHwH/AVEB1wFRAf8BQAF7AWUB/BQAAwEBAgNfAeMB5QHkAeEB/wLuAe0B/wLuAe0B/wLr
AeoB/wHjAeIB4QH/AugB5wH/AuoB6QH/AvMB8gH/AvUB9AH/AfoB+QH4Af8DXAHfUAABbwGjAbgB/wHF
AfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9Af8BxQH5Af0B/wHFAfkB/QH/AcUB+QH9
Af8BxQH5Af0B/wHFAfkB/QH/AVABeAGVAf8YAANhAdwByAH3AdQB/wHYAfYBygH/AecB4wGpAf8B2wHP
AVIB/wGvAdwBTgH/AZ0B6gGrAf8DXwHgGAADQAFvA38B/gNkAecDXwHzAegB5wHmAf8B5wHmAeUB/wLt
AewB/wL7AfoB/wNnAfIDZAHnA4QB/gM9AWhQAAG3AdcB4QH/AYwBvQHMAf8BnQHPAdsB/wGtAd8B6AH/
AbkB7AHzAf8BwgH1AfoB/wHCAfUB+gH/AbgB6wHxAf8BqQHaAeMB/wGUAcQB0QH/AXYBqAG4Af8BqQHF
AdEB/xgAAy0BRQFrAYUBdwH6AdsB+AHpAf8B5wHyAdgB/wHtAeUBswH/Ad8B2QGmAf8BXwGPAV8B+wMy
AVAgAAMPARQDCgEOA1MBqgHvAe4B7QH/AvQB8wH/A1IBpAMIAQsDEQEXWAAC/gL/AeMB8QH0Af8BuQHX
AeEB/wGVAb4BzAH/AXYBqAG7Af8BaQGbAbAB/wFlAZgBrQH/AW4BoQGzAf8BjAGyAcIB/wGxAc0B1wH/
Ad8B6wHvAf8D/gH/HAADLgFHA14B2QFuAZUBcgH8AW4BkQFuAfwDXgHdAzIBUCwAAy8BSgNdAfADYgHv
AywBQ2QAAxEBFwNWAbMBUwFUAVMBrLQAAwQBBQMQARUDHwEtAykBPwMvAUkDLgFIAygBPQMeASsDDwEU
AwMBBBAAA7cB/wGcAagBngH/AQABXQE4Af8BIgGSAVoB/wEAAWEBOAH/AQoBTgGgAf8BBwFMAZ4B/wED
AUkBmwH/AQABRwGZAf8BAAFFAZcB/wEAAUIBlAH/AQABQQGTAf8DUgH/A1IB/xwAA0EBcgFMAl8B8wFZ
AlwBzwFLAkwBkAMjATNcAAMFAQcDHwEsAj4BPQFqAlIBUAGjAVsCWQHEAV0CWgHTAV0CWgHTAVsCWQHD
AVICUQGhAzwBZgMcASgDBAEGDAADFQEdA1EBogEnAZUBXgH/AYIBvgGqAf8BNgGlAYIB/wEXAZcBUAH/
ARoBmQFVAf8BHgGZAVkB/wEiAZ0BXgH/AVwBqgHSAf8BWgGoAdEB/wEAAUMBlQH/IAADIQEwASsBRgFy
AfwBhgGtAeEB/wFkAagB3AH/AUUBkgHJAf8BFgFYAasB/wFVAlYBsQMfAS1TAAEBAxIBGAM+AWsBXQJZ
AdcBYAErASkB/AGsATMBCgH/AeEBUwEnAf8B5AFlATsB/wHTAVEBHwH/AaMBQAEwAf0BYQJeAdoCPgE9
AWoDDwEUCAADGAEiAVABUgFQAaQDVgGzAVMBrAGfAf8BWgG3AZ4B/wFkAbsBrAH/AWQBuwGuAf8BZQG7
AbAB/wGAAbwBswH/AR0BmgFhAf8BOgGVAccB/wFdAasB0wH/AQABRgGYAf8gAAFUAlYBqwFTAZ0B0QH/
AZkBvAHrAf8BVwGgAeMB/wGWAbkB6gH/AZQBuAHqAf8BRgGTAcoB/wErATQBbgH8A0MBeFAAAxsBJgNZ
AdIBIwENAQAB/wGKAUIBKgH/AcoBhgFMAf8B9gG8AZwB/wH5AcwBtwH/AeMBoAFeAf8BsQFdAUMB/wFf
ATkBGgH/AV4CWAHdAxwBKAgAAVUBVgFVAbEDVgGzA1YBswFCAaQBkQH/AVUBtgGbAf8BTgGyAZsB/wFQ
AbIBngH/AVIBswGhAf8BhQG/AbYB/wEkAZ4BggH/AT8BmQHJAf8BYQGtAdQB/wEEAUoBnAH/HAADHwEt
ASsBWQF2AfwBnQG/AewB/wFPAZwB4gH/AUEBkwHfAf8BPgGRAd8B/wFFAZQB4AH/AZUBuAHqAf8BhgGt
AeEB/wEvAYMBuwH/AUsCTAGQBAADnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/
A50B/wOdAf8DnQH/A50B/wOdAf8DnQH/CAABUwJPAaUBOgEfAQcB/wFfAUoBNQH/AY8BXAFHAf8BrAGI
AVEB/wHCAaMBiAH/AcEBpQGOAf8BswGYAYEB/wGRAVwBRgH/AVoBQQEsAf8BSQEiAQAB/wFWAlUBsQgA
AwgBCwNVAbIDVgGzAVwBsgGoAf8BYwG9AacB/wGHAcEBtQH/AYYBwQG2Af8BhwHBAbcB/wGIAcEBuQH/
ASoBogGIAf8BRAGcAcsB/wFlAbAB1QH/AQkBTQGfAf8QAAMrAUIDSAGEAVUCVwG3AUwBXwFhAfMBXAGk
AdcB/wGhAcIB7QH/AZ8BwAHtAf8BnQG/Ae0B/wFaAaMB5AH/AUABkgHfAf8BPgGQAd4B/wFhAacB5gH/
AZIBtgHoAf8BKQFlAbcB/wM3AVoDnQH/AboCvQH/AeYC7AH/AeYC7QH/AecC7QH/AegC7gH/AekC7wH/
AekC7wH/AeoC7wH/AeoC8AH/AesC8AH/AesC8QH/AewC8QH/AewC8QH/Ab0CvwH/A50B/wQAAzkBXwFb
ATsBIAH/AcMBsQGiAf8BtgGcAYMB/wGmAV8BMgH/AagBXQEvAf8BwwGkAYcB/wHYAcYBsAH/Ab0BqQGL
Af8BZQFFASUB/wFCASIBAwH/ATgBFAEAAf8BPwEYAQAB/wMzAVMIAAMGAQgDVQGyATUBoAGKAf8BkwHJ
AboB/wFFAa8BlwH/ASoBogGDAf8BKwGjAYcB/wEtAaQBiwH/ASwBqgGSAf8BOgHCAe0B/wGBAbQB1wH/
AQ4BUQGjAf8MAANMAZMBSgGXAc8B/wFhAagB2QH/AY0BtAHiAf8BowHEAe0B/wGnAccB7gH/AUoBlwHN
Af8BGgFbAbIB/wFFAZMByQH/AZ8BwAHtAf8BXgGWAaMB/wGeAZYBLgH/AWIBlAGRAf8BjQGzAekB/wFf
AaUB2AH/AVoCXgHYBAADXAHqAdsC4gH/Ac0CzwH/A8sB/wPMAf8DzgH/A88B/wPQAf8D0gH/A9MB/wPV
Af8B1wLYAf8B5wLsAf8DbQH3BAADIgExAVYCVQGxAU0BIQEAAf8BqgGFAUUB/wGyAVgBFgH/Aa0BNQEA
Af8BugFSAQoB/wHqAdUBvwH/Af0B/AH6Af8B1gG+AaYB/wGQAUUBEgH/AUgBFgEAAf8BSQEmAQUB/wFC
ASIBBAH/A1cBxQMcAScIAAMEAQYBGwGUAV0B/wFUAbkBngH/AS8BpgGJAf8BXwGxAdUB/wFbAa0B1AH/
AVcBqwHSAf8BRQG6AeQB/wEAAZkBTwH/AQ0BjgE+Af8BEAFWAZoB/wwAAUgCYgH2Aa4BzQHwAf8BsAHP
AfAB/wGYAb8B7AH/AWQBrgHnAf8BqgHKAe8B/wEjAWEBuAH/BAABGwFcAbMB/wGiAcMB7QH/AagBlwEX
Af8BxAG1AUAB/wGsAZcBDAH/AUEBkwHfAf8BmAG7AesB/wECAUoBnwH/BAADXAHqAdkC4QH/AcsCzAH/
A8cB/wPIAf8DygH/A8sB/wPNAf8DzgH/A9AB/wPRAf8B0wLUAf8B5QLrAf8DbQH3BAADLgFHA1kB7AFI
ARYBAAH/AZkBNQEAAf8BuAFNAQAB/wHCAUkBAAH/AckBWwEJAf8B5gG/AZQB/wHsAdQBtgH/Ac0BnAFI
Af8BqAFSARIB/wGZAVMBJwH/AaMBjAFYAf8BZQFMATUB/wJRAT8B9wE1AjQBVQwAAT4BjgHEAf8BOAGs
AYsB/wE1AaoBjwH/AWQBtQHYAf8BYAGyAdYB/wFdAa8B1QH/AVkBrAHTAf8BCgGQAUgB/wE/AagBhAH/
AQABXgE5Af8DFAEbCAABWgJgAd4BqAHJAe0B/wGEAacB7QH/AT4BUAHtAf8BUAGOAekB/wGtAc0B8AH/
AVMBnQHSAf8BJAFiAbkB/wFNAZkBzgH/AaUBxQHuAf8BlQGaAU8B/wGtAZcBDAH/AZ0BlwEzAf8BTAGb
AeIB/wGYAbsB6gH/AUgCYgH2BAADXAHqAdcC3wH/AccCyQH/A8IB/wPEAf8DxQH/A8gB/wPJAf8DygH/
A8wB/wPNAf8B0ALRAf8B4wLqAf8DbQH3BAADOQFfAkABHQH9AVoBIQEAAf8BrgE/AQAB/wHAAUcBAAH/
AecBlgEsAf8B6AGyAWAB/wHkAbEBYAH/AdIBiQEfAf8BvQFMAQAB/wGoAToBAAH/AbgBjQFDAf8B1AHD
AbIB/wGYAYQBVAH/AUEBIwEFAf8BPgI9AWoMAAFEAZEByQH/AaQBzAHkAf8BhwG7AdsB/wElAaEBYAH/
AR8BnAFaAf8BGgGaAVYB/wEVAZYBUAH/ATEBowGBAf8BhAHAAasB/wEoAZYBXwH/A1EBogMVAR0EAANR
AZwBkgG5AeUB/wFUAVoB9gH/AYEBhAH1Af8CJgHwAf8BkAG7AesB/wGuAc0B8AH/AawBzAHwAf8BqgHK
AfAB/wGFAbIB6QH/AUQBqQHBAf8BKgGzAY0B/wE8AagBtgH/AVYBoQHkAf8BlwG6AegB/wNdAe0EAANc
AeoB1gLfAf8BwwLFAf8DwAH/A8AB/wPCAf8DwwH/A8QB/wPFAf8DyAH/A8kB/wPNAf8B4ALoAf8DbQH3
BAADNwFaAV0BTQEoAfoBgwEsAQAB/wHLAVYBAQH/AeUBiwEjAf8B/gG2AVgC/wHjAcIB/wH0AbwBhQH/
AdYBXQEPAf8BxQFUAQAB/wG6AUkBAAH/Aa8BXQEfAf8BrgGIAUMB/wGUAVwBQwH/AUIBJAEIAf8DPAFm
DAABSQGVAc0B/wGoAc8B5QH/AYwBvwHdAf8BKwGlAYEB/wGNAcUBuAH/AYkBwwG0Af8BhgHBAbEB/wGE
Ab8BrwH/AV0BuQGfAf8BVAGtAaAB/wNWAbMBUAFSAVABpAMYASIDIwEzATABawGHAfwBkgGkAfUB/wE/
AUAB9gH/ATcBhgH0Af8BIQGmAfsB/wFCAasB8gH/AWQBrwHnAf8BYQGtAecB/wFeAaoB5gH/ASUBtgGA
Af8BRgHIAZcB/wEhAbcBYAH/AWMBrAHnAf8BjwG1AeMB/wFaAl4B1QQAA2AB1gHHAs0B/wHbAuQB/wHb
AuQB/wHbAuUB/wHcAuUB/wHcAuUB/wHdAuYB/wHdAuYB/wHeAucB/wHfAugB/wHgAugB/wHNAtMB/wNf
AeMEAAMmATkBYAJaAd4BjgE0AQAB/wHsAZ4BOQH/Af4BvwGFAv8BzAGhAv8B3wG7Af8B/gHCAWUB/wHi
AY4BLwH/AdMBhAEgAf8BygFfARIB/wG1AVYBEAH/AZcBRwENAf8BgQFEAR8B/wNZAewDLgFIDAABTQGY
AdAB/wGrAdEB5wH/AZABwgHfAf8BMgGpAYgB/wGRAckBuwH/AVwBugGlAf8BWAG4AaEB/wFUAbYBngH/
AVgBuAGdAf8BQwGlAZIB/wNWAbMDVgGzAVUBVgFVAbEEAANJAYcBhgGvAeEB/wG5AdcB8wH/ARgBpgH+
Af8BUgG/Av8BEQGjAv8BTAG+AfAB/wEgAc4B+wH/AUABvgHxAf8BOAGzAaAB/wEhAbcBXwH/AS0BswGQ
Af8BpwHIAe4B/wFdAaUB1gH/AU8CUQGcBAADLAFDA1sByAOdAf8DnQH/A50B/wOdAf8DnQH/A50B/wOd
Af8DnQH/A50B/wOdAf8DXgHdAzEBTgQAAwkBDANLAY4BwAFUARMC/wG8AWUB/wH6Ac4BpwH/AfgB2wG+
Av8B4gHGAv8BvgGGAf8B9AGsAVsB/wHsAcIBmgH/AeIBtQGLAf8BuAFbARkB/wGdAUoBEgH/AYgBSgEm
Af8DTwGlAxABFQwAAVEBmwHTAf8BrgHUAegB/wGrAdMB6AH/AT8BsQGQAf8BmwHOAcAB/wGZAc0BvQH/
AZYBywG7Af8BlQHKAbkB/wGAAb8BqAH/AV0BswGpAf8DVgGzA1UBsgMIAQsEAAMEAQYDUQGfAYUBrgHh
Af8BQAGyAfkB/wERAaMC/wEmAakB+wH/ARYB0wH+Af8BUgHiAv8BEQHVAv8BZQGwAegB/wFiAa0B5wH/
AakBygHvAf8BpQHFAe0B/wErAV0BeAH8AyEBMEQAAxMBGgJkAVMB8QHYAZ4BWAH/AecB0wHAAf8B/AH1
Ae4C/wH4AesC/wHlAcIB/wH2AbkBggH/AfIB0gG4Af8B7gHSAbYB/wHCAYYBNAH/AacBXAEtAf8CTQEp
AfoDHQEpEAABVAGdAdUB/wFSAZsB0wH/AU8BmgHSAf8BLwGhAYwB/wEqAZ8BigH/AScBnQGFAf8BIwGZ
AYAB/wE8AaUBkgH/AWUBuAGxAf8BNgGhAYsB/wNVAbIDBgEIEAADQgF1AV8CYgH2AY4BtgHjAf8BuQHX
AfMB/wFDAdUB+wH/ARAB1QL/AScB0QH7Af8BswHSAfIB/wGxAdAB8QH/AZIBuAHiAf8BSAGVAcwB/wNK
AYpMAAM1AVcBqQFIARoB/wHKAbgBqAb/Af4B/AL/AfYB4gH/AfsBxQGgAf8B5AG5AZUB/wHbAawBYwH/
AcMBjgFCAf8BkwFKAR4B/wE+Aj0BajAAAVMCVAGsA1YBswNWAbMDBAEGGAADFgEeA1QBrgFcAaMB3AH/
AZEBuAHkAf8BqAHKAewB/wGlAccB7AH/AY0BtQHiAf8BTgGaAdIB/wFaAl8B2wMxAU5UAAMyAVECZAFZ
AewB0AGyAZUB/wHsAeAB2QH/AeYB1QHEAf8B0wGwAZQB/wHTAaYBXQH/AcsBjwE7Af8BZwFlAVkB8gE6
AjkBYDQAAVMCVAGsA1YBswMEAQYkAAMrAUIDTAGQAVsCXQHSAVkCXAHPA04BmQMtAUVgAAMRARcDRAF6
AloBVwHFAmUBXgHlAmEBWAHmAlwBWQHJAkgBRwGDAxUBHRAAAUIBTQE+BwABPgMAASgDAAFAAwABIAMA
AQEBAAEBBgABARYAA/8BAAHgAQcCAAH8AT8CAAHAAQMCAAH8AT8CAAHAAQMCAAHAAQMCAAHAAQMCAAHA
AQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMCAAHAAQMGAAHAAQMCAAEBAYACAAHAAQMBgAIBAYACAAHA
AQMBgAEBBAABwAEDAcABAwHAAQMCAAHAAQMB8AEPAcABAwIAAcABAwHwAQ8BgAEDAgABwAEDAfABDwHA
AQMCAAHAAQMB8AEPAfABDwIAAcABAwH4AR8B/AE/AgAB4wX/AeABBwGAAQEB/AEfAv8BwAEDAYABBwH4
AQcC/wGAAQMBAAEHAfgBAwL/AcABAwEAAQcB8AEBAgABwAEDAQABBwGAAwABgAEBAYABBwIAAYABAQIA
AcABBwEBAQABgAEBAgAB4AEDAgABgAEBAgAB4AEBAgABgAEBAgAB4AMAAYABAQIAAeABAAGAAQABgAEB
AgAB4AEAAYABAAL/AYABAQHgAQEB4AEBAv8BwAEDAf8BwwHwAQMC/wHgAQcB/wHHAfwBDwL/AfABDws=
</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -31,8 +31,6 @@ Partial Class frmPassword
Me.lblStatus = New System.Windows.Forms.Label
Me.pbLock = New System.Windows.Forms.PictureBox
Me.pnlImage = New System.Windows.Forms.Panel
Me.txtSnake = New System.Windows.Forms.TextBox
Me.lblTips = New System.Windows.Forms.Label
CType(Me.pbLock, System.ComponentModel.ISupportInitialize).BeginInit()
Me.pnlImage.SuspendLayout()
Me.SuspendLayout()
@@ -66,7 +64,7 @@ Partial Class frmPassword
Me.lblPassword.Name = "lblPassword"
Me.lblPassword.Size = New System.Drawing.Size(56, 13)
Me.lblPassword.TabIndex = 2
Me.lblPassword.Text = Language.Base.Password
Me.lblPassword.Text = My.Resources.strLabelPassword
'
'lblVerify
'
@@ -75,7 +73,7 @@ Partial Class frmPassword
Me.lblVerify.Name = "lblVerify"
Me.lblVerify.Size = New System.Drawing.Size(36, 13)
Me.lblVerify.TabIndex = 3
Me.lblVerify.Text = Language.Base.Verify
Me.lblVerify.Text = My.Resources.strLabelVerify
'
'btnOK
'
@@ -85,7 +83,7 @@ Partial Class frmPassword
Me.btnOK.Name = "btnOK"
Me.btnOK.Size = New System.Drawing.Size(69, 23)
Me.btnOK.TabIndex = 4
Me.btnOK.Text = Language.Base.Button_OK
Me.btnOK.Text = My.Resources.strButtonOK
Me.btnOK.UseVisualStyleBackColor = True
'
'btnCancel
@@ -97,7 +95,7 @@ Partial Class frmPassword
Me.btnCancel.Name = "btnCancel"
Me.btnCancel.Size = New System.Drawing.Size(69, 23)
Me.btnCancel.TabIndex = 5
Me.btnCancel.Text = Language.Base.Button_Cancel
Me.btnCancel.Text = My.Resources.strButtonCancel
Me.btnCancel.UseVisualStyleBackColor = True
'
'lblStatus
@@ -109,13 +107,13 @@ Partial Class frmPassword
Me.lblStatus.Name = "lblStatus"
Me.lblStatus.Size = New System.Drawing.Size(189, 14)
Me.lblStatus.TabIndex = 6
Me.lblStatus.Text = Language.Base.Status
Me.lblStatus.Text = "Status"
Me.lblStatus.TextAlign = System.Drawing.ContentAlignment.TopRight
Me.lblStatus.Visible = False
'
'pbLock
'
Me.pbLock.Image = Global.mRemote.My.Resources.Resources.Lock
Me.pbLock.Image = Global.mRemoteNG.My.Resources.Resources.Lock
Me.pbLock.Location = New System.Drawing.Point(7, 8)
Me.pbLock.Name = "pbLock"
Me.pbLock.Size = New System.Drawing.Size(64, 64)
@@ -131,29 +129,6 @@ Partial Class frmPassword
Me.pnlImage.Size = New System.Drawing.Size(100, 100)
Me.pnlImage.TabIndex = 8
'
'txtSnake
'
Me.txtSnake.BackColor = System.Drawing.SystemColors.Control
Me.txtSnake.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.txtSnake.Location = New System.Drawing.Point(9, 143)
Me.txtSnake.Name = "txtSnake"
Me.txtSnake.ReadOnly = True
Me.txtSnake.Size = New System.Drawing.Size(100, 13)
Me.txtSnake.TabIndex = 9
Me.txtSnake.TabStop = False
'
'lblTips
'
Me.lblTips.ForeColor = System.Drawing.Color.White
Me.lblTips.Location = New System.Drawing.Point(129, 6)
Me.lblTips.Name = "lblTips"
Me.lblTips.Size = New System.Drawing.Size(150, 118)
Me.lblTips.TabIndex = 10
Me.lblTips.Text = "Enter: Start/Pause" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Up/Down: Change difficulty" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Arrow Keys: Steer the snake" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Esc:" & _
" Quit (at any time)" & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & Global.Microsoft.VisualBasic.ChrW(13) & Global.Microsoft.VisualBasic.ChrW(10) & "Have Fun! =)"
Me.lblTips.TextAlign = System.Drawing.ContentAlignment.MiddleLeft
Me.lblTips.Visible = False
'
'frmPassword
'
Me.AcceptButton = Me.btnOK
@@ -165,13 +140,11 @@ Partial Class frmPassword
Me.Controls.Add(Me.txtVerify)
Me.Controls.Add(Me.txtPassword)
Me.Controls.Add(Me.lblStatus)
Me.Controls.Add(Me.txtSnake)
Me.Controls.Add(Me.lblVerify)
Me.Controls.Add(Me.lblPassword)
Me.Controls.Add(Me.pnlImage)
Me.Controls.Add(Me.btnCancel)
Me.Controls.Add(Me.btnOK)
Me.Controls.Add(Me.lblTips)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.MaximizeBox = False
Me.MinimizeBox = False
@@ -179,7 +152,7 @@ Partial Class frmPassword
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = Language.Base.Security
Me.Text = My.Resources.strTitlePassword
CType(Me.pbLock, System.ComponentModel.ISupportInitialize).EndInit()
Me.pnlImage.ResumeLayout(False)
Me.pnlImage.PerformLayout()
@@ -196,6 +169,4 @@ Partial Class frmPassword
Friend WithEvents lblStatus As System.Windows.Forms.Label
Friend WithEvents pbLock As System.Windows.Forms.PictureBox
Friend WithEvents pnlImage As System.Windows.Forms.Panel
Friend WithEvents txtSnake As System.Windows.Forms.TextBox
Friend WithEvents lblTips As System.Windows.Forms.Label
End Class

View File

@@ -86,12 +86,12 @@
End Sub
Private Sub ApplyLanguage()
lblPassword.Text = Language.Base.Password
lblVerify.Text = Language.Base.Verify
btnOK.Text = Language.Base.Button_OK
btnCancel.Text = Language.Base.Button_Cancel
lblStatus.Text = Language.Base.Status
Text = Language.Base.Security
lblPassword.Text = My.Resources.strLabelPassword
lblVerify.Text = My.Resources.strLabelVerify
btnOK.Text = My.Resources.strButtonOK
btnCancel.Text = My.Resources.strButtonCancel
lblStatus.Text = "Status"
Text = My.Resources.strTitlePassword
End Sub
Private Sub txtPassword_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtPassword.GotFocus
@@ -107,33 +107,4 @@
Me.txtVerify.SelectionLength = Me.txtVerify.TextLength
End If
End Sub
Private Sub txtPassword_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPassword.TextChanged
If txtPassword.Text = "ijustwannaplay" Then
pbLock.Visible = False
btnOK.Visible = False
btnCancel.Visible = False
txtPassword.Visible = False
txtVerify.Visible = False
lblPassword.Visible = False
lblStatus.Visible = False
lblVerify.Visible = False
AcceptButton = Nothing
CancelButton = Nothing
BackColor = Color.DimGray
Me.Text = "SnakeFX Lite"
pnlImage.Top = (Me.ClientSize.Height / 2) - (Me.pnlImage.Height / 2)
lblTips.Visible = True
Easter.Snake.Game.CreatePicBox(pnlImage)
Easter.Snake.Game.Mode = Easter.Snake.Game.GameMode.Welcome
Easter.Snake.Game.SetupGame()
txtSnake.Focus()
End If
End Sub
Private Sub txtSnake_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles txtSnake.KeyDown
Easter.Snake.Game.CheckKeyPress(e)
End Sub
End Class

View File

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

View File

@@ -37,6 +37,8 @@ CREATE TABLE [dbo].[tblCons] (
[Resolution] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[DisplayWallpaper] [bit] NOT NULL ,
[DisplayThemes] [bit] NOT NULL ,
[EnableFontSmoothing] [bit] NOT NULL ,
[EnableDesktopComposition] [bit] NOT NULL ,
[CacheBitmaps] [bit] NOT NULL ,
[RedirectDiskDrives] [bit] NOT NULL ,
[RedirectPorts] [bit] NOT NULL ,
@@ -61,11 +63,19 @@ CREATE TABLE [dbo].[tblCons] (
[VNCColors] [varchar] (10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[VNCSmartSizeMode] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[VNCViewOnly] [bit] NOT NULL ,
[RDGatewayUsageMethod] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RDGatewayHostname] [varchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[RDGatewayUseConnectionCredentials] [varchar] (32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL ,
[RDGatewayUsername] [varchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[RDGatewayPassword] [varchar] (1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL ,
[RDGatewayDomain] [varchar] (512) COLLATE SQL_Latin1_General_CP1_CI_AS 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 ,
@@ -100,7 +110,13 @@ CREATE TABLE [dbo].[tblCons] (
[InheritVNCProxyPassword] [bit] NOT NULL ,
[InheritVNCColors] [bit] NOT NULL ,
[InheritVNCSmartSizeMode] [bit] NOT NULL ,
[InheritVNCViewOnly] [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
) ON [PRIMARY]
GO

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

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