Compare commits

..

76 Commits

Author SHA1 Message Date
rmcardle
68cee49830 Upgrade solution to Visual Studio 2010 format. 2011-12-09 01:47:11 -06:00
rmcardle
5892c0cda8 Update EstimatedSize in installer. 2011-12-09 01:45:24 -06:00
rmcardle
59e09e3762 Update BUILD.CMD for VS2010. Clean up code in BUILD.CMD. Replace GetVersion.nsi with Sigcheck. 2011-12-09 01:44:57 -06:00
rmcardle
79dad7e319 Add Visual Studio solution upgrade files to .gitignore. 2011-12-09 01:36:48 -06:00
rmcardle
4455f9c71d Update CHANGELOG.TXT. 2011-12-09 01:35:21 -06:00
Riley McArdle
ed8e4e0303 Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable. 2011-12-08 23:07:15 -06:00
Riley McArdle
56993c0785 Fixed missing link between chkUseOnlyErrorsAndInfosPanel and CheckedChanged event handler. 2011-12-08 23:01:10 -06:00
rmcardle
ec830a3fc4 Add issue #72 to CHANGELOG.TXT. 2011-12-08 01:18:35 -06:00
rmcardle
99b981b988 Merge remote-tracking branch 'origin/release/1.69' into release/1.69 2011-12-08 01:12:42 -06:00
rmcardle
e88cf2be5e Fixed issue #72 - scrollbars added to RDP window after minimize/restore of mRemoteNG 2011-12-07 23:19:51 -06:00
rmcardle
91262db838 Fixed file name in window title changing when exporting an XML file. Removed redundant code. 2011-12-06 23:05:42 -06:00
rmcardle
e339fb1390 Revert AssemblyCompany change from 72e2d9c2ab to fix settings migration. 2011-12-06 22:59:39 -06:00
rmcardle
4644741849 Fixed issue #67 - Connection file gets erased 2011-12-06 03:21:28 -06:00
Riley McArdle
87b0f317d1 Updated AssemblyVersion to 1.69. 2011-07-29 02:12:11 -05:00
Riley McArdle
2778f8d1c3 Disabled automatic updates in the portable edition 2011-07-29 02:10:15 -05:00
Riley McArdle
b67a68b100 Added code to BUILD.CMD to digitally sign binaries 2011-07-29 01:22:01 -05:00
Riley McArdle
72e2d9c2ab Changed company name to Next Generation Software 2011-07-29 01:21:56 -05:00
Riley McArdle
2af9e02029 Updated PuTTY to version 0.61 2011-07-29 01:21:47 -05:00
Riley McArdle
7b6d01a965 Fixed issue #66 - Fresh Install Fails to Create Config 2011-07-29 01:21:37 -05:00
Riley McArdle
d9cfda43b6 Updated BUILD.CMD, CHANGELOG.TXT, and AssemblyInfo.vb for version 1.68. 2011-07-07 16:22:07 -05:00
Riley McArdle
d15aa639f5 Fixed issue #48 - VerifyDatabaseVersion fails with new (empty) database tables. 2011-07-07 16:11:30 -05:00
Riley McArdle
8a70a3e64b Fixed issue #60 - Can't save connections file and issue #62 - Connection file error upon launch. 2011-07-07 16:10:55 -05:00
Riley McArdle
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
52 changed files with 5012 additions and 2440 deletions

11
.gitignore vendored
View File

@@ -1,7 +1,7 @@
Release
mRemoteV1/bin
mRemoteV1/obj
mRemoteV1/publish
Release/
mRemoteV1/bin/
mRemoteV1/obj/
mRemoteV1/publish/
*.pfx
*.suo
*.vbproj.user
@@ -17,3 +17,6 @@ _Re[Ss]harper.*
*.user*
*.pidb
*.gpState
_UpgradeReport_Files/
Backup/
UpgradeLog.XML

View File

@@ -1,16 +1,22 @@
@echo off
SET VERSIONTAG=RC1
setlocal enabledelayedexpansion
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"
set VERSIONTAG=
call %VCVARSALL% x86 > NUL 2>&1
set VCVARSALL="%ProgramFiles(x86)%\Microsoft Visual Studio 10.0\VC\vcvarsall.bat"
set DEVENV="devenv.exe"
set MAKENSIS="%ProgramFiles(x86)%\NSIS\Unicode\makensis.exe"
set RAR="%ProgramFiles%\WinRAR\WinRAR.exe"
set SIGNCMD=signtool.exe sign /n "Next Generation Software" /sha1 "c4ece717747eb7d0cac824f6c7431e5237138b02" /t http://timestamp.verisign.com/scripts/timstamp.dll
rmdir /s /q "%~dp0\mRemoteV1\bin" > NUL 2>&1
rmdir /s /q "%~dp0\mRemoteV1\obj" > NUL 2>&1
rem Windows Sysinternals Sigcheck from http://technet.microsoft.com/en-us/sysinternals/bb897441
set SIGCHECK="%ProgramFiles(x86)%\Sigcheck\sigcheck.exe"
call %VCVARSALL% x86
rmdir /s /q "%~dp0\mRemoteV1\bin" > nul 2>&1
rmdir /s /q "%~dp0\mRemoteV1\obj" > nul 2>&1
echo Building release version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release"
@@ -18,34 +24,59 @@ echo Building release version...
echo Building portable version...
%DEVENV% "%~dp0\mRemoteV1.sln" /build "Release Portable"
mkdir "%~dp0\Release"
echo Signing binaries...
%SIGNCMD% "%~dp0\mRemoteV1\bin\Release\de\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release\en-US\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release\fr\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release\AxInterop.WFICALib.dll" "%~dp0\mRemoteV1\bin\Release\AxInterop.MSTSCLib.dll" "%~dp0\mRemoteV1\bin\Release\Interop.WFICALib.dll" "%~dp0\mRemoteV1\bin\Release\Interop.ShDocVw.dll" "%~dp0\mRemoteV1\bin\Release\Interop.MSTSCLib.dll" "%~dp0\mRemoteV1\bin\Release\Interop.EOLWTSCOM.dll" "%~dp0\mRemoteV1\bin\Release\Interop.EOLWTSCOM.dll" "%~dp0\mRemoteV1\bin\Release\mRemoteNG.exe" "%~dp0\mRemoteV1\bin\Release Portable\de\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release Portable\en-US\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release Portable\fr\mRemoteNG.resources.dll" "%~dp0\mRemoteV1\bin\Release Portable\AxInterop.WFICALib.dll" "%~dp0\mRemoteV1\bin\Release Portable\AxInterop.MSTSCLib.dll" "%~dp0\mRemoteV1\bin\Release Portable\Interop.WFICALib.dll" "%~dp0\mRemoteV1\bin\Release Portable\Interop.ShDocVw.dll" "%~dp0\mRemoteV1\bin\Release Portable\Interop.MSTSCLib.dll" "%~dp0\mRemoteV1\bin\Release Portable\Interop.EOLWTSCOM.dll" "%~dp0\mRemoteV1\bin\Release Portable\Interop.EOLWTSCOM.dll" "%~dp0\mRemoteV1\bin\Release Portable\mRemoteNG.exe"
mkdir "%~dp0\Release" > nul 2>&1
echo Getting product version...
%MAKENSIS% "%~dp0\Installer\GetVersion.nsi"
"%~dp0\Release\GetVersion.exe"
call "%~dp0\Release\Version.cmd"
set VERSIONNSH="%~dp0\Release\Version.nsh"
set SIGCHECK=!SIGCHECK:"=^"!
set SIGCHECK=!SIGCHECK: =^^ !
set SIGCHECK=!SIGCHECK:(=^^(!
set SIGCHECK=!SIGCHECK:)=^^)!
for /F "usebackq delims=. tokens=1-4" %%i in (`!SIGCHECK! /accepteula -q -n "%~dp0\mRemoteV1\bin\Release\mRemoteNG.exe"`) do (
set PRODUCT_VERSION_SHORT=%%i.%%j
echo ^^!define PRODUCT_VERSION "%%i.%%j.%%k.%%l" > %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_SHORT "%%i.%%j" >> %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_MAJOR "%%i" >> %VERSIONNSH%
echo ^^!define PRODUCT_VERSION_MINOR "%%j" >> %VERSIONNSH%
)
echo Version is %PRODUCT_VERSION_SHORT%
echo Creating installer package...
if defined VERSIONTAG (
%MAKENSIS% /DPRODUCT_VERSION_TAG=%VERSIONTAG% "%~dp0\Installer\mRemote.nsi"
set INSTALLEREXE="%~dp0\Release\mRemoteNG-Installer-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.exe"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%-%VERSIONTAG%.zip"
) else (
%MAKENSIS% "%~dp0\Installer\mRemote.nsi"
set INSTALLEREXE="%~dp0\Release\mRemoteNG-Installer-%PRODUCT_VERSION_SHORT%.exe"
set BINARYZIP="%~dp0\Release\mRemoteNG-%PRODUCT_VERSION_SHORT%.zip"
set PORTABLEZIP="%~dp0\Release\mRemoteNG-Portable-%PRODUCT_VERSION_SHORT%.zip"
)
del %VERSIONNSH%
echo Signing installer package...
%SIGNCMD% %INSTALLEREXE%
echo Creating release ZIP file...
del /f /q %BINARYZIP% > NUL 2>&1
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
del /f /q %PORTABLEZIP% > nul 2>&1
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\mRemoteV1\bin\Release Portable\*.*"
%RAR% a -m5 -r -ep1 -afzip -inul %PORTABLEZIP% "%~dp0\Installer\Dependencies\*.*"
%RAR% a -m5 -ep -afzip -inul %PORTABLEZIP% "%~dp0\*.TXT"
echo.
echo Build process complete.
echo.
pause

View File

@@ -1,7 +1,9 @@
Contributors
============
Lionel Caignec
Felix Deimel
Holger Henke
Tom Hiller
Riley McArdle
Apisitt Rattana

Binary file not shown.

View File

@@ -1,30 +0,0 @@
!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

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_CZECH} "Please select the language of
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."
LangString RequiresAdminUser ${LANG_CZECH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_CZECH} "Credits"
LangString CopyingLinkName ${LANG_CZECH} "License"
LangString UninstallLinkName ${LANG_CZECH} "Uninstall"
LangString ChangeLogLinkName ${LANG_CZECH} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_DUTCH} "Please select the language of
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."
LangString RequiresAdminUser ${LANG_DUTCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_DUTCH} "Credits"
LangString CopyingLinkName ${LANG_DUTCH} "License"
LangString UninstallLinkName ${LANG_DUTCH} "Uninstall"
LangString ChangeLogLinkName ${LANG_DUTCH} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_ENGLISH} "Please select the language o
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."
LangString RequiresAdminUser ${LANG_ENGLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_ENGLISH} "Credits"
LangString CopyingLinkName ${LANG_ENGLISH} "License"
LangString UninstallLinkName ${LANG_ENGLISH} "Uninstall"
LangString ChangeLogLinkName ${LANG_ENGLISH} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_FRENCH} "Please select the language of
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."
LangString RequiresAdminUser ${LANG_FRENCH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_FRENCH} "Credits"
LangString CopyingLinkName ${LANG_FRENCH} "License"
LangString UninstallLinkName ${LANG_FRENCH} "Uninstall"
LangString ChangeLogLinkName ${LANG_FRENCH} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_GERMAN} "Bitte w
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."
LangString RequiresAdminUser ${LANG_GERMAN} "Sie m<>ssen Mitglied der Grupper 'Power Users' or 'Administratoren' sein, damit Sie mRemoteNG installieren k<>nnen."
; Start Menu items
LangString CreditsLinkName ${LANG_GERMAN} "Credits"
LangString CopyingLinkName ${LANG_GERMAN} "License"
LangString UninstallLinkName ${LANG_GERMAN} "Uninstall"
LangString ChangeLogLinkName ${LANG_GERMAN} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_POLISH} "Please select the language of
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."
LangString RequiresAdminUser ${LANG_POLISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_POLISH} "Credits"
LangString CopyingLinkName ${LANG_POLISH} "License"
LangString UninstallLinkName ${LANG_POLISH} "Uninstall"
LangString ChangeLogLinkName ${LANG_POLISH} "Version History"

View File

@@ -13,4 +13,10 @@ LangString SelectInstallerLanguage ${LANG_SPANISH} "Please select the language o
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."
LangString RequiresAdminUser ${LANG_SPANISH} "You must be a member of the 'Power Users' or 'Administrators' group to install mRemoteNG."
; Start Menu items
LangString CreditsLinkName ${LANG_SPANISH} "Credits"
LangString CopyingLinkName ${LANG_SPANISH} "License"
LangString UninstallLinkName ${LANG_SPANISH} "Uninstall"
LangString ChangeLogLinkName ${LANG_SPANISH} "Version History"

View File

@@ -15,3 +15,9 @@ LangString RequiresNetFramework ${LANG_THAI} "mRemoteNG มีความต้
; User needs to be Admin
LangString RequiresAdminUser ${LANG_THAI} "คุณต้องเป็นสมาชิกในกลุ่มของ 'Power Users' หรือ 'Administrators' เพื่อการติดตั้ง mRemoteNG"
; Start Menu items
LangString CreditsLinkName ${LANG_THAI} "Credits"
LangString CopyingLinkName ${LANG_THAI} "License"
LangString UninstallLinkName ${LANG_THAI} "Uninstall"
LangString ChangeLogLinkName ${LANG_THAI} "Version History"

View File

@@ -1,4 +1,4 @@
!include "MUI.nsh"
!include "MUI.nsh"
!include "WordFunc.nsh"
!insertmacro VersionCompare
@@ -6,7 +6,7 @@
; This will be passed in using the /D switch by BUILD.CMD
!ifdef PRODUCT_VERSION_TAG
!define PRODUCT_VERSION_FRIENDLY "${PRODUCT_VERSION_SHORT} ${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}"
@@ -26,6 +26,7 @@ RequestExecutionLevel admin
; Version Information
VIProductVersion ${PRODUCT_VERSION}
VIAddVersionKey "CompanyName" "Next Generation Software"
VIAddVersionKey "ProductName" "mRemoteNG"
VIAddVersionKey "ProductVersion" ${PRODUCT_VERSION}
VIAddVersionKey "LegalCopyright" "Copyright © 2007-2009 Felix Deimel, 2010-2011 Riley McArdle"
@@ -169,15 +170,18 @@ Section "" ; Install
; Start Menu
CreateDirectory "$SMPROGRAMS\mRemoteNG"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(CreditsLinkName).lnk" "$INSTDIR\CREDITS.TXT"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(CopyingLinkName).lnk" "$INSTDIR\COPYING.TXT"
CreateShortCut "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk" "$INSTDIR\mRemoteNG.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\Uninstall.lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(UninstallLinkName).lnk" "$INSTDIR\Uninstall.exe"
CreateShortCut "$SMPROGRAMS\mRemoteNG\$(ChangeLogLinkName).lnk" "$INSTDIR\CHANGELOG.TXT"
; Registry
WriteRegStr HKLM "Software\mRemoteNG" "InstallPath" $INSTDIR
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayName" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "Publisher" "mRemoteNG"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "Publisher" "Next Generation Software"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayIcon" "$INSTDIR\mRemoteNG.exe"
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "EstimatedSize" 6464
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "EstimatedSize" 7080
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "DisplayVersion" ${PRODUCT_VERSION}
WriteRegDWORD HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\mRemoteNG" "VersionMajor" ${PRODUCT_VERSION_MAJOR}
@@ -197,13 +201,9 @@ Section "un.Uninstall"
; Start Menu
SetShellVarContext all
Delete "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk"
Delete "$SMPROGRAMS\mRemoteNG\Uninstall.lnk"
RMDir "$SMPROGRAMS\mRemoteNG"
RMDir /r "$SMPROGRAMS\mRemoteNG"
SetShellVarContext current
Delete "$SMPROGRAMS\mRemoteNG\mRemoteNG.lnk"
Delete "$SMPROGRAMS\mRemoteNG\Uninstall.lnk"
RMDir "$SMPROGRAMS\mRemoteNG"
RMDir /r "$SMPROGRAMS\mRemoteNG"
; Registry
DeleteRegValue HKLM "Software\mRemoteNG" "InstallPath"

View File

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

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

View File

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

View File

@@ -4,6 +4,7 @@ Imports Crownwood
Imports System.Threading
Imports System.Xml
Imports System.Environment
Imports System.Management
Namespace App
Public Class Runtime
@@ -54,7 +55,7 @@ Namespace App
Public Shared screenshotPanel As New DockContent
Public Shared quickyForm As UI.Window.QuickConnect
Public Shared quickyPanel As New DockContent
Public Shared optionsForm As UI.Window.Options
Public Shared optionsForm As frmOptions
Public Shared optionsPanel As New DockContent
Public Shared saveasForm As UI.Window.SaveAs
Public Shared saveasPanel As New DockContent
@@ -93,9 +94,7 @@ Namespace App
Windows.adimportPanel.Show(frmMain.pnlDock)
Case UI.Window.Type.Options
Windows.optionsForm = New UI.Window.Options(Windows.optionsPanel)
Windows.optionsPanel = Windows.optionsForm
Windows.optionsForm = New frmOptions(Windows.optionsPanel)
Windows.optionsForm.Show(frmMain.pnlDock)
Case UI.Window.Type.SaveAs
Windows.saveasForm = New UI.Window.SaveAs(Windows.saveasPanel)
@@ -147,6 +146,11 @@ Namespace App
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Show (App.Runtime.Windows) failed" & vbNewLine & ex.Message, True)
End Try
End Sub
Public Shared Sub ShowUpdatesTab()
Windows.optionsForm = New frmOptions(Windows.optionsPanel)
Windows.optionsForm.Show(frmMain.pnlDock, 5)
End Sub
End Class
Public Class Screens
@@ -203,24 +207,21 @@ Namespace App
Public Shared Sub SetDefaultLayout()
frmMain.pnlDock.Visible = False
Windows.configPanel.Show(frmMain.pnlDock, DockState.DockLeft)
frmMain.pnlDock.DockLeftPortion = 0.25
frmMain.pnlDock.DockRightPortion = 0.25
frmMain.pnlDock.DockTopPortion = 0.25
frmMain.pnlDock.DockBottomPortion = 0.25
Windows.treePanel.Show(frmMain.pnlDock, DockState.DockLeft)
For Each pane As DockPane In frmMain.pnlDock.Panes
If pane.DockState = DockState.DockLeft Then
Windows.treePanel.DockTo(pane, DockStyle.Top, 0)
Exit For
End If
Next
Windows.errorsPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.sessionsPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotForm.Hide()
Windows.configPanel.Show(frmMain.pnlDock)
Windows.configPanel.DockTo(Windows.treePanel.Pane, DockStyle.Bottom, -1)
Windows.quickyPanel.Show(frmMain.pnlDock, DockState.DockBottomAutoHide)
Windows.screenshotPanel.Show(Windows.quickyPanel.Pane, Windows.quickyPanel)
Windows.sessionsPanel.Show(Windows.quickyPanel.Pane, Windows.screenshotPanel)
Windows.errorsPanel.Show(Windows.quickyPanel.Pane, Windows.sessionsPanel)
Windows.screenshotForm.Hide()
Windows.quickyForm.Hide()
frmMain.pnlDock.Visible = True
@@ -247,8 +248,29 @@ Namespace App
Public Shared Sub CreateLogger()
log4net.Config.XmlConfigurator.Configure(New FileInfo("mRemoteNG.exe.config"))
log = log4net.LogManager.GetLogger("mRemoteNG.Log")
log.InfoFormat("{0} started.", My.Application.Info.ProductName)
log.InfoFormat("Command Line: {0}", Environment.GetCommandLineArgs)
Try
Dim servicePack As Integer
For Each managementObject As ManagementObject In New ManagementObjectSearcher("SELECT * FROM Win32_OperatingSystem").Get()
servicePack = managementObject.GetPropertyValue("ServicePackMajorVersion")
If servicePack = 0 Then
log.InfoFormat("{0} {1}", managementObject.GetPropertyValue("Caption").Trim, managementObject.GetPropertyValue("OSArchitecture"))
Else
log.InfoFormat("{0} Service Pack {1} {2}", managementObject.GetPropertyValue("Caption").Trim, servicePack.ToString, managementObject.GetPropertyValue("OSArchitecture"))
End If
Next
Catch ex As Exception
log.WarnFormat("Error retrieving operating system information from WMI. {0}", ex.Message)
End Try
log.InfoFormat("Microsoft .NET Framework {0}", System.Environment.Version.ToString)
#If Not PORTABLE Then
log.InfoFormat("{0} {1}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString)
#Else
log.InfoFormat("{0} {1} {2}", My.Application.Info.ProductName.ToString, My.Application.Info.Version.ToString, My.Resources.strLabelPortableEdition)
#End If
log.InfoFormat("System Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End Sub
Public Shared Sub UpdateCheck()
@@ -385,8 +407,10 @@ Namespace App
Try
LastSQLUpdate = Nothing
RemoveHandler Tools.Misc.SQLUpdateCheckFinished, AddressOf SQLUpdateCheckFinished
tmrSqlWatcher.Stop()
tmrSqlWatcher.Close()
If tmrSqlWatcher IsNot Nothing Then
tmrSqlWatcher.Stop()
tmrSqlWatcher.Close()
End If
Catch ex As Exception
End Try
End Sub
@@ -449,6 +473,8 @@ Namespace App
My.Settings.ConDefaultCacheBitmaps = .CacheBitmaps
My.Settings.ConDefaultDisplayWallpaper = .DisplayWallpaper
My.Settings.ConDefaultDisplayThemes = .DisplayThemes
My.Settings.ConDefaultEnableFontSmoothing = .EnableFontSmoothing
My.Settings.ConDefaultEnableDesktopComposition = .EnableDesktopComposition
My.Settings.ConDefaultRedirectKeys = .RedirectKeys
My.Settings.ConDefaultRedirectDiskDrives = .RedirectDiskDrives
My.Settings.ConDefaultRedirectPrinters = .RedirectPrinters
@@ -509,6 +535,8 @@ Namespace App
My.Settings.InhDefaultCacheBitmaps = .CacheBitmaps
My.Settings.InhDefaultDisplayWallpaper = .DisplayWallpaper
My.Settings.InhDefaultDisplayThemes = .DisplayThemes
My.Settings.InhDefaultEnableFontSmoothing = .EnableFontSmoothing
My.Settings.InhDefaultEnableDesktopComposition = .EnableDesktopComposition
My.Settings.InhDefaultRedirectKeys = .RedirectKeys
My.Settings.InhDefaultRedirectDiskDrives = .RedirectDiskDrives
My.Settings.InhDefaultRedirectPrinters = .RedirectPrinters
@@ -580,11 +608,9 @@ Namespace App
pnlcForm.Show(frmMain.pnlDock, DockState.Document)
If NoTabber = True Then
If NoTabber Then
TryCast(cForm, UI.Window.Connection).TabController.Dispose()
End If
If NoTabber = False Then
Else
wL.Add(cForm)
End If
@@ -656,6 +682,7 @@ Namespace App
My.Settings.LoadConsFromCustomLocation = False
Directory.CreateDirectory(Path.GetDirectoryName(filename))
Dim xW As New XmlTextWriter(filename, System.Text.Encoding.UTF8)
xW.Formatting = Formatting.Indented
xW.Indentation = 4
@@ -702,6 +729,8 @@ Namespace App
End Sub
Public Shared Sub LoadConnections(Optional ByVal WithDialog As Boolean = False, Optional ByVal Update As Boolean = False)
Dim conL As New Config.Connections.Load
Try
Dim tmrWasEnabled As Boolean
If tmrSqlWatcher IsNot Nothing Then
@@ -720,38 +749,17 @@ Namespace App
cL = New Connection.List
ctL = New Container.List
Dim conL As New Config.Connections.Load
If My.Settings.UseSQLServer = False Then
If WithDialog Then
Dim lD As OpenFileDialog = Tools.Controls.ConnectionsLoadDialog
If lD.ShowDialog = System.Windows.Forms.DialogResult.OK Then
conL.ConnectionFileName = lD.FileName
If conL.ConnectionFileName = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = conL.ConnectionFileName
End If
Else
Exit Sub
End If
Else
If My.Settings.LoadConsFromCustomLocation = False Then
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Connections.DefaultConnectionsFile
Dim newPath As String = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile
If File.Exists(newPath) Then
conL.ConnectionFileName = newPath
#If Not PORTABLE Then
Else If File.Exists(oldPath) Then
conL.ConnectionFileName = oldPath
#End If
End If
Else
conL.ConnectionFileName = My.Settings.CustomConsPath
End If
conL.ConnectionFileName = GetStartupConnectionFileName()
End If
If File.Exists(conL.ConnectionFileName) = False Then
@@ -794,6 +802,7 @@ Namespace App
conL.UseSQL = My.Settings.UseSQLServer
conL.SQLHost = My.Settings.SQLHost
conL.SQLDatabaseName = My.Settings.SQLDatabaseName
conL.SQLUsername = My.Settings.SQLUser
conL.SQLPassword = Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey)
conL.SQLUpdate = Update
@@ -802,6 +811,13 @@ Namespace App
If My.Settings.UseSQLServer = True Then
LastSQLUpdate = Now
Else
If conL.ConnectionFileName = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile Then
My.Settings.LoadConsFromCustomLocation = False
Else
My.Settings.LoadConsFromCustomLocation = True
My.Settings.CustomConsPath = conL.ConnectionFileName
End If
End If
If tmrWasEnabled And tmrSqlWatcher IsNot Nothing Then
@@ -809,9 +825,40 @@ Namespace App
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strConnectionsFileCouldNotBeLoaded & vbNewLine & ex.Message)
If My.Settings.UseSQLServer = False Then
If Not conL.ConnectionFileName = GetStartupConnectionFileName() Then
LoadConnections()
Exit Sub
Else
MsgBox(String.Format(My.Resources.strErrorStartupConnectionFileLoad, vbNewLine, Application.ProductName, GetStartupConnectionFileName(), ex.Message), MsgBoxStyle.OkOnly + MsgBoxStyle.Critical)
Application.Exit()
End If
End If
End Try
End Sub
Protected Shared Function GetStartupConnectionFileName() As String
Dim fileName As New String("")
If My.Settings.LoadConsFromCustomLocation = False Then
Dim oldPath As String = GetFolderPath(SpecialFolder.LocalApplicationData) & "\" & My.Application.Info.ProductName & "\" & App.Info.Connections.DefaultConnectionsFile
Dim newPath As String = App.Info.Connections.DefaultConnectionsPath & "\" & App.Info.Connections.DefaultConnectionsFile
#If Not PORTABLE Then
If File.Exists(oldPath) Then
fileName = oldPath
Else
fileName = newPath
End If
#Else
fileName = newPath
#End If
Else
fileName = My.Settings.CustomConsPath
End If
Return fileName
End Function
Public Shared Sub ImportConnections()
Try
Dim lD As OpenFileDialog = Tools.Controls.ConnectionsLoadDialog
@@ -886,6 +933,8 @@ Namespace App
Select Case pValue
Case 8
nConI.Colors = Connection.Protocol.RDP.RDPColors.Colors256
Case 15
nConI.Colors = Connection.Protocol.RDP.RDPColors.Colors15Bit
Case 16
nConI.Colors = Connection.Protocol.RDP.RDPColors.Colors16Bit
Case 24
@@ -921,6 +970,18 @@ Namespace App
Else
nConI.DisplayThemes = False
End If
Case "allow font smoothing"
If pValue = 1 Then
nConI.EnableFontSmoothing = True
Else
nConI.EnableFontSmoothing = False
End If
Case "allow desktop composition"
If pValue = 1 Then
nConI.EnableDesktopComposition = True
Else
nConI.EnableDesktopComposition = False
End If
Case "redirectsmartcards"
If pValue = 1 Then
nConI.RedirectSmartCards = True
@@ -1094,6 +1155,7 @@ Namespace App
If My.Settings.UseSQLServer = True Then
conS.SaveFormat = Config.Connections.Save.Format.SQL
conS.SQLHost = My.Settings.SQLHost
conS.SQLDatabaseName = My.Settings.SQLDatabaseName
conS.SQLUsername = My.Settings.SQLUser
conS.SQLPassword = Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey)
End If
@@ -1580,7 +1642,7 @@ Namespace App
Public Shared Sub SetMainFormText(Optional ByVal ConnectionFileName As String = "")
Try
Dim txt As String = "mRemoteNG"
Dim txt As String = My.Application.Info.ProductName
If App.Editions.Spanlink.Enabled Then
txt &= " | Spanlink Communications"

View File

@@ -7,7 +7,7 @@
For Each CultureName As String In My.Settings.SupportedUICultures.Split(",")
Try
CultureInfo = New Globalization.CultureInfo(CultureName.Trim)
Add(CultureInfo.Name, CultureInfo.NativeName)
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

View File

@@ -1,10 +1,49 @@
1.67 (2011-XX-XX):
1.69 (2011-12-09):
Fixed issue #66 - Fresh Install Fails to Create Config
Fixed issue #67 - Connection file gets erased
Fixed issue #72 - scrollbars added to RDP window after minimize/restore of mRemoteNG
Disabled automatic updates in the portable edition
Fixed file name in window title changing when exporting an XML file.
Fixed Use only Notifications panel checkbox.
Updated PuTTY to version 0.61
Binaries are now digitally signed
Added Credits, License, and Version History items to the Start Menu and made Start Menu item names localizable.
1.68 (2011-07-07):
Fixed issue #48 - VerifyDatabaseVersion fails with new (empty) database tables.
Fixed issue #60 - Can't save connections file
Fixed issue #62 - Connection file error upon launch.
1.67 (2011-06-05):
Fixed migration of external tools configuration and panel layout from Local to Roaming folder.
Disable ICA Hotkeys for Citrix connections. Fixes issue with international users.
Added a language selection option so users can override the language if they don't want it automatically detected.
Added partial French translation to the application.
Addded Thai translation to the installer.
Updated graphics in the installer to mRemoteNG logo.
Fixed RD Gateway default properties and RDP reconnection count setting not being saved.
Fixed bug 33 - IPv6 doesn't work in quick Connect box.
Moved the items under Tools in the Connections panel context menu up to the top level.
Added buttons for Add Connection, Add Folder, and Sort Ascending (A-Z) to the Connections panel toolbar.
Fixed rename edit control staying open when collapsing all folders.
Changed sorting to sort all subfolders below the selected folder.
Allow sorting of connections if a connection entry is selected.
Fixed adding a connection entry if nothing is selected in the tree.
Added 15-bit Color RDP setting.
Fixed loading of RDP Colors setting from SQL.
Added Font Smoothing and Desktop Composition RDP settings.
Improved error handling when loading XML connection files.
Added the mRemoteNG icon to the list of selectable icons for connection entries.
Added confirmation before closing connection tabs.
Fixed bug 42 - Maximized location not remembered with multiple monitors.
Improved loading and saving of window location.
Removed flickering on start up.
Changed the Options page into a normal dialog.
Improved Reset Layout function.
Changed to use full four part version numbers with major, minor, build, and revision.
Changed hard coded SQL database name into a user configurable setting.
Fixed tab order of controls in Options dialog.
Fixed bug 45 - Changing some settings in the config file may not save.
1.66 (2011-05-02):
Fixed connections not working

View File

@@ -18,8 +18,6 @@ Namespace Config
Private sqlQuery As SqlCommand
Private sqlRd As SqlDataReader
Private sqlDB As String = "mRemoteNG"
Private selNode As TreeNode
#End Region
@@ -44,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
@@ -177,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()
@@ -440,7 +448,7 @@ Namespace Config
conI.Port = .Item("Port")
conI.PuttySession = .Item("PuttySession")
conI.Colors = .Item("Colors")
conI.Colors = Tools.Misc.StringToEnum(GetType(Connection.Protocol.RDP.RDPColors), .Item("Colors"))
conI.Resolution = Tools.Misc.StringToEnum(GetType(Connection.Protocol.RDP.RDPResolutions), .Item("Resolution"))
conI.Inherit = New Connection.Info.Inheritance(conI)
@@ -545,6 +553,13 @@ Namespace Config
conI.Inherit.RDGatewayDomain = .Item("InheritRDGatewayDomain")
End If
If Me.confVersion >= 2.3 Then
conI.EnableFontSmoothing = .Item("EnableFontSmoothing")
conI.EnableDesktopComposition = .Item("EnableDesktopComposition")
conI.Inherit.EnableFontSmoothing = .Item("InheritEnableFontSmoothing")
conI.Inherit.EnableDesktopComposition = .Item("InheritEnableDesktopComposition")
End If
If SQLUpdate = True Then
conI.PleaseConnect = .Item("Connected")
End If
@@ -701,6 +716,7 @@ Namespace Config
Catch ex As Exception
App.Runtime.ConnectionsFileLoaded = False
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strLoadFromXmlFailed & vbNewLine & ex.Message, True)
Throw
End Try
End Sub
@@ -781,9 +797,9 @@ Namespace Config
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
@@ -879,6 +895,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
@@ -998,13 +1016,21 @@ Namespace Config
conI.Inherit.RDGatewayPassword = .Attributes("InheritRDGatewayPassword").Value
conI.Inherit.RDGatewayDomain = .Attributes("InheritRDGatewayDomain").Value
End If
End With
Return conI
If Me.confVersion > 2.2 Then '2.3
' Get settings
conI.EnableFontSmoothing = .Attributes("EnableFontSmoothing").Value
conI.EnableDesktopComposition = .Attributes("EnableDesktopComposition").Value
' Get inheritance settings
conI.Inherit.EnableFontSmoothing = .Attributes("InheritEnableFontSmoothing").Value
conI.Inherit.EnableDesktopComposition = .Attributes("InheritEnableDesktopComposition").Value
End If
End With
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strGetConnectionInfoFromXmlFailed & 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 mRemoteNG.Root.Info = Nothing) As Boolean

View File

@@ -5,6 +5,7 @@ Imports System.Globalization
Imports mRemoteNG.App.Runtime
Imports System.Data.SqlClient
Imports mRemoteNG.Tools.Misc
Imports mRemoteNG.My.Resources
Namespace Config
Namespace Connections
@@ -24,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
@@ -45,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
@@ -148,32 +157,70 @@ Namespace Config
SaveToVRE()
Case Format.vRDCSV
SaveTovRDCSV()
Case Format.mRXML Or Format.None
SaveToXML()
If My.Settings.EncryptCompleteConnectionsFile Then
EncryptCompleteFile()
End If
SetMainFormText(_ConnectionFileName)
Case Else
SaveToXML()
If My.Settings.EncryptCompleteConnectionsFile Then
EncryptCompleteFile()
End If
SetMainFormText(_ConnectionFileName)
If Not _Export Then SetMainFormText(_ConnectionFileName)
End Select
End Sub
#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
@@ -220,14 +267,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, " & _
"RDGatewayUsageMethod, RDGatewayHostname, RDGatewayUseConnectionCredentials, RDGatewayUsername, RDGatewayPassword, RDGatewayDomain, " & _
"InheritCacheBitmaps, InheritColors, " & _
"InheritDescription, InheritDisplayThemes, InheritDisplayWallpaper, InheritDomain, " & _
"InheritDescription, InheritDisplayThemes, InheritDisplayWallpaper, InheritEnableFontSmoothing, InheritEnableDesktopComposition, InheritDomain, " & _
"InheritIcon, InheritPanel, InheritPassword, InheritPort, " & _
"InheritProtocol, InheritPuttySession, InheritRedirectDiskDrives, " & _
"InheritRedirectKeys, InheritRedirectPorts, InheritRedirectPrinters, " & _
@@ -308,6 +355,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 & "',"
@@ -369,6 +418,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 & "',"
@@ -634,6 +685,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)
@@ -701,6 +756,8 @@ Namespace Config
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)
@@ -748,6 +805,8 @@ Namespace Config
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)
@@ -828,10 +887,10 @@ 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;RDGatewayUsageMethod;RDGatewayHostname;RDGatewayUseConnectionCredentials;RDGatewayUsername;RDGatewayPassword;RDGatewayDomain;"
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;InheritRDGatewayUsageMethod;InheritRDGatewayHostname;InheritRDGatewayUseConnectionCredentials;InheritRDGatewayUsername;InheritRDGatewayPassword;InheritRDGatewayDomain"
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)
@@ -882,10 +941,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

@@ -38,28 +38,44 @@ Namespace Config
My.Settings.UpdatePending = False
End If
If My.Settings.MainFormLocation <> New Point(999, 999) Then
.Location = My.Settings.MainFormLocation
App.SupportedCultures.InstantiateSingleton()
If Not My.Settings.OverrideUICulture = "" And App.SupportedCultures.IsNameSupported(My.Settings.OverrideUICulture) Then
Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo(My.Settings.OverrideUICulture)
log.InfoFormat("Override Culture: {0}/{1}", Threading.Thread.CurrentThread.CurrentUICulture.Name, Threading.Thread.CurrentThread.CurrentUICulture.NativeName)
End If
If My.Settings.MainFormSize <> Nothing Then
.Size = My.Settings.MainFormSize
End If
'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()

View File

@@ -1,6 +1,7 @@
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

@@ -706,6 +706,60 @@ Namespace Connection
Me._DisplayThemes = value
End Set
End Property
Private _EnableFontSmoothing As Boolean = My.Settings.ConDefaultEnableFontSmoothing
<LocalizedCategory("strCategoryAppearance", 5), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameEnableFontSmoothing"), _
LocalizedDescription("strPropertyDescriptionEnableFontSmoothing"), _
TypeConverter(GetType(mRemoteNG.Tools.Misc.YesNoTypeConverter))> _
Public Property EnableFontSmoothing() As Boolean
Get
If Me._Inherit.EnableFontSmoothing And Me._Parent IsNot Nothing Then
Dim parCon As Connection.Info = TryCast(Me._Parent, Container.Info).ConnectionInfo
If Me._IsContainer = True Then
Dim curCont As Container.Info = Me._Parent
Dim parCont As Container.Info = curCont.Parent
parCon = parCont.ConnectionInfo
End If
Return parCon.EnableFontSmoothing
Else
Return Me._EnableFontSmoothing
End If
End Get
Set(ByVal value As Boolean)
Me._EnableFontSmoothing = value
End Set
End Property
Private _EnableDesktopComposition As Boolean = My.Settings.ConDefaultEnableDesktopComposition
<LocalizedCategory("strCategoryAppearance", 5), _
Browsable(True), _
LocalizedDisplayName("strPropertyNameEnableDesktopComposition"), _
LocalizedDescription("strPropertyDescriptionEnableDesktopComposition"), _
TypeConverter(GetType(mRemoteNG.Tools.Misc.YesNoTypeConverter))> _
Public Property EnableDesktopComposition() As Boolean
Get
If Me._Inherit.EnableDesktopComposition And Me._Parent IsNot Nothing Then
Dim parCon As Connection.Info = TryCast(Me._Parent, Container.Info).ConnectionInfo
If Me._IsContainer = True Then
Dim curCont As Container.Info = Me._Parent
Dim parCont As Container.Info = curCont.Parent
parCon = parCont.ConnectionInfo
End If
Return parCon.EnableDesktopComposition
Else
Return Me._EnableDesktopComposition
End If
End Get
Set(ByVal value As Boolean)
Me._EnableDesktopComposition = value
End Set
End Property
#End Region
#Region "6 Redirect"
Private _RedirectKeys As Boolean = My.Settings.ConDefaultRedirectKeys
@@ -1478,6 +1532,8 @@ Namespace Connection
Me._Description = val
Me._DisplayThemes = val
Me._DisplayWallpaper = val
Me._EnableFontSmoothing = val
Me._EnableDesktopComposition = val
Me._Domain = val
Me._Icon = val
Me._Password = val
@@ -1558,6 +1614,7 @@ Namespace Connection
'LocalizedDisplayName("strPropertyNameInheritAll"), _
Get
If Me._CacheBitmaps And Me._Colors And Me._Description And Me._DisplayThemes And Me._DisplayWallpaper _
And Me._EnableFontSmoothing And Me._EnableDesktopComposition _
And Me._Domain And Me._Icon And Me._Password And Me._Port And Me._Protocol And Me._PuttySession _
And Me._RedirectDiskDrives And Me._RedirectKeys And Me._RedirectPorts And Me._RedirectPrinters _
And Me._RedirectSmartCards And Me._RedirectSound And Me._Resolution And Me._UseConsoleSession _
@@ -1957,6 +2014,36 @@ Namespace Connection
Me._DisplayThemes = value
End Set
End Property
Private _EnableFontSmoothing As Boolean = My.Settings.InhDefaultEnableFontSmoothing
<LocalizedCategory("strCategoryAppearance", 6), _
Browsable(True), _
LocalizedDisplayNameInheritAttribute("strPropertyNameEnableFontSmoothing"), _
LocalizedDescriptionInheritAttribute("strPropertyDescriptionEnableFontSmoothing"), _
TypeConverter(GetType(mRemoteNG.Tools.Misc.YesNoTypeConverter))> _
Public Property EnableFontSmoothing() As Boolean
Get
Return Me._EnableFontSmoothing
End Get
Set(ByVal value As Boolean)
Me._EnableFontSmoothing = value
End Set
End Property
Private _EnableDesktopComposition As Boolean = My.Settings.InhDefaultEnableDesktopComposition
<LocalizedCategory("strCategoryAppearance", 6), _
Browsable(True), _
LocalizedDisplayNameInheritAttribute("strPropertyNameEnableDesktopComposition"), _
LocalizedDescriptionInheritAttribute("strPropertyDescriptionEnableEnableDesktopComposition"), _
TypeConverter(GetType(mRemoteNG.Tools.Misc.YesNoTypeConverter))> _
Public Property EnableDesktopComposition() As Boolean
Get
Return Me._EnableDesktopComposition
End Get
Set(ByVal value As Boolean)
Me._EnableDesktopComposition = value
End Set
End Property
#End Region
#Region "7 Redirect"
Private _RedirectKeys As Boolean = My.Settings.InhDefaultRedirectKeys

View File

@@ -168,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

View File

@@ -98,6 +98,8 @@ Namespace Connection
RDP.ConnectingText = My.Resources.strConnecting
Control.Anchor = AnchorStyles.None
Return True
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpSetPropsFailed & vbNewLine & ex.Message, True)
@@ -153,6 +155,12 @@ Namespace Connection
mC.AddMessage(Messages.MessageClass.ErrorMsg, My.Resources.strRdpFocusFailed & vbNewLine & ex.Message, True)
End Try
End Sub
Public Overrides Sub Resize()
Control.Location = InterfaceControl.Location
Control.Size = InterfaceControl.Size
MyBase.Resize()
End Sub
#End Region
#Region "Private Methods"
@@ -334,7 +342,15 @@ 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, My.Resources.strRdpSetPerformanceFlagsFailed & vbNewLine & ex.Message, True)
End Try
@@ -410,6 +426,8 @@ Namespace Connection
Public Enum RDPColors
<LocalizedDescription("strRDP256Colors")> _
Colors256 = 8
<LocalizedDescription("strRDP32768Colors")> _
Colors15Bit = 15
<LocalizedDescription("strRDP65536Colors")> _
Colors16Bit = 16
<LocalizedDescription("strRDP16777216Colors")> _
@@ -429,17 +447,21 @@ Namespace Connection
Private Enum RDPPerformanceFlags
<Description("strRDPDisableWallpaper")> _
DisableWallpaper = 1
DisableWallpaper = &H1
<Description("strRDPDisableFullWindowdrag")> _
DisableFullWindowDrag = 2
DisableFullWindowDrag = &H2
<Description("strRDPDisableMenuAnimations")> _
DisableMenuAnimations = 4
DisableMenuAnimations = &H4
<Description("strRDPDisableThemes")> _
DisableThemes = 8
DisableThemes = &H8
<Description("strRDPDisableCursorShadow")> _
DisableCursorShadow = 20
DisableCursorShadow = &H20
<Description("strRDPDisableCursorblinking")> _
DisableCursorBlinking = 40
DisableCursorBlinking = &H40
<Description("strRDPEnableFontSmoothing")> _
EnableFontSmoothing = &H80
<Description("strRDPEnableDesktopComposition")> _
EnableDesktopComposition = &H100
End Enum
Public Enum RDPResolutions

View File

@@ -274,6 +274,7 @@ Partial Class frmMain
Me.mMenFileImportExport.Name = "mMenFileImportExport"
Me.mMenFileImportExport.Size = New System.Drawing.Size(334, 22)
Me.mMenFileImportExport.Text = "Import/Export Folder"
Me.mMenFileImportExport.Visible = False
'
'ImportFromXMLFileToolStripMenuItem
'
@@ -314,6 +315,7 @@ Partial Class frmMain
'
Me.mMenFileSep3.Name = "mMenFileSep3"
Me.mMenFileSep3.Size = New System.Drawing.Size(331, 6)
Me.mMenFileSep3.Visible = False
'
'mMenFileDelete
'
@@ -740,7 +742,7 @@ Partial Class frmMain
Me.ToolStrip1.Name = "ToolStrip1"
Me.ToolStrip1.Size = New System.Drawing.Size(264, 25)
Me.ToolStrip1.TabIndex = 19
Me.ToolStrip1.Visible = False
Me.ToolStrip1.Visible = False
'
'ToolStripButton1
'
@@ -806,6 +808,7 @@ Partial Class frmMain
Me.Icon = Global.mRemoteNG.My.Resources.Resources.mRemote_Icon
Me.MainMenuStrip = Me.msMain
Me.Name = "frmMain"
Me.Opacity = 0
Me.Text = "mRemoteNG"
Me.msMain.ResumeLayout(False)
Me.msMain.PerformLayout()

View File

@@ -10,32 +10,37 @@ Public Class frmMain
Public Shared Event clipboardchange()
Private fpChainedWindowHandle As IntPtr
#Region "Properties"
Private _IsClosing As Boolean = False
Public ReadOnly Property IsClosing() As Boolean
Get
Return _IsClosing
End Get
End Property
#End Region
#Region "Startup & Shutdown"
Private Sub frmMain_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'insert enable edition code here
App.Editions.Spanlink.Enabled = False
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)
End If
ApplyLanguage()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
Startup.CreateLogger()
' Create gui config load and save objects
sL = New Config.Settings.Load(Me)
sS = New Config.Settings.Save(Me)
Startup.CreateLogger()
' Load GUI Configuration
sL.Load()
Debug.Print("---------------------------" & vbNewLine & "[START] - " & Now)
Startup.ParseCommandLineArgs()
ApplyLanguage()
fpChainedWindowHandle = SetClipboardViewer(Me.Handle)
mC = New Messages.Collector(Windows.errorsForm)
Connection.Protocol.RDP.Resolutions.AddResolutions()
@@ -60,6 +65,7 @@ Public Class frmMain
Windows.Show(UI.Window.Type.ComponentsCheck)
End If
#If Not PORTABLE Then
If Not My.Settings.CheckForUpdatesAsked Then
Dim CommandButtons() As String = {My.Resources.strAskUpdatesCommandRecommended, My.Resources.strAskUpdatesCommandCustom, My.Resources.strAskUpdatesCommandAskLater}
Dim Result As DialogResult = cTaskDialog.ShowTaskDialogBox(Me, My.Application.Info.ProductName, My.Resources.strAskUpdatesMainInstruction, String.Format(My.Resources.strAskUpdatesContent, My.Application.Info.ProductName), "", "", "", "", String.Join("|", CommandButtons), eTaskDialogButtons.None, eSysIcons.Question, eSysIcons.Question)
@@ -67,17 +73,24 @@ Public Class frmMain
My.Settings.CheckForUpdatesAsked = True
End If
If cTaskDialog.CommandButtonResult = 1 Then
Windows.Show(UI.Window.Type.Options)
Windows.optionsForm.ShowUpdatesTab()
Windows.ShowUpdatesTab()
End If
End If
Startup.UpdateCheck()
Startup.AnnouncementCheck()
#Else
mMenInfoAnnouncements.Visible = False
mMenToolsUpdate.Visible = False
mMenInfoSep2.Visible = False
#End If
Startup.CreateSQLUpdateHandlerAndStartTimer()
AddSysMenuItems()
AddHandler Microsoft.Win32.SystemEvents.DisplaySettingsChanged, AddressOf DisplayChanged
Me.Opacity = 1
End Sub
Private Sub ApplyLanguage()
@@ -157,6 +170,8 @@ Public Class frmMain
End If
End If
_IsClosing = True
For Each Window As UI.Window.Base In wL
Window.Close()
Next

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

File diff suppressed because it is too large Load Diff

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 ,
@@ -72,6 +74,8 @@ CREATE TABLE [dbo].[tblCons] (
[InheritDescription] [bit] NOT NULL ,
[InheritDisplayThemes] [bit] NOT NULL ,
[InheritDisplayWallpaper] [bit] NOT NULL ,
[InheritEnableFontSmoothing] [bit] NOT NULL ,
[InheritEnableDesktopComposition] [bit] NOT NULL ,
[InheritDomain] [bit] NOT NULL ,
[InheritIcon] [bit] NOT NULL ,
[InheritPanel] [bit] NOT NULL ,

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

View File

@@ -994,7 +994,7 @@ Wenn Sie noch immer Probleme mit ICA haben, konsultieren sie bitte das mRemoteNG
<data name="strCcGeckoFailed" xml:space="preserve">
<value>Um die Gecko Rendering Engine benutzen zu können benötigen Sie XULrunner 1.8.1.x und einen korrekt eingetragenen Pfad in den Optionen.
Hier können Sie XULrunner 1.8.1.3 herunterladen: ftp://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/
Wenn der Download abgeschlossen ist entpacken Sie das Paket (Der Speicherort ist dabei ihnen überlassen). Als nächstes öffnen Sie (in mRemote) Extras - Optionen - Erweitert und geben Sie den korrekten Pfad im XULrunner Feld an.
Wenn der Download abgeschlossen ist entpacken Sie das Paket (Der Speicherort ist dabei ihnen überlassen). Als nächstes öffnen Sie (in mRemoteNG) Extras - Optionen - Erweitert und geben Sie den korrekten Pfad im XULrunner Feld an.
Wenn Sie noch immer Probleme mit der Gecko Engine in mRemote haben, konsultieren Sie bitte das mRemoteNG Forum: http://forum.mremoteng.org/</value>
</data>
<data name="strCcEOLOK" xml:space="preserve">
@@ -1016,7 +1016,7 @@ Wenn Sie noch immer Probleme mit der (RDP) Sitzungs Funktion in mRemoteNG haben,
<value>Anfang/Ende</value>
</data>
<data name="strAllowOnlySingleInstance" xml:space="preserve">
<value>Nur eine Instanz zulassen (mRemote Neustart benötigt)</value>
<value>Nur eine Instanz zulassen (mRemoteNG Neustart benötigt)</value>
</data>
<data name="strReconnectAtStartup" xml:space="preserve">
<value>Offene Verbindungen speichern und beim nächsten Start wiederverbinden</value>
@@ -1360,9 +1360,6 @@ Wenn Sie noch immer Probleme mit der (RDP) Sitzungs Funktion in mRemoteNG haben,
<data name="strCurrentVersion" xml:space="preserve">
<value>Aktuelle Version</value>
</data>
<data name="strVersion" xml:space="preserve">
<value>Version</value>
</data>
<data name="strUpdateDownloadComplete" xml:space="preserve">
<value>Download fertiggestellt!
mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
@@ -1395,7 +1392,7 @@ mRemoteNG wird nun geschlossen und die Installation gestartet.</value>
<value>16777216 Farben (24Bit)</value>
</data>
<data name="strRDP4294967296Colors" xml:space="preserve">
<value>4294967296 Farben (32Bit)</value>
<value>16777216 Farben (32Bit)</value>
</data>
<data name="strRDPDisableWallpaper" xml:space="preserve">
<value>Entferne Hintergrundbild</value>
@@ -1465,9 +1462,6 @@ Bitte verwenden Sie Datei - Verbindungen laden für normale Verbindungs Dateien!
<data name="strAddNodeFromXmlFailed" xml:space="preserve">
<value>Knoten von XML laden ist fehlgeschlagen!</value>
</data>
<data name="strGetConnectionInfoFromXmlFailed" xml:space="preserve">
<value>Verbindungs Informationen von XML holen ist fehlgeschlagen!</value>
</data>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>Kann keine neue Verbindungsdatei erstellen!</value>
</data>
@@ -1680,7 +1674,7 @@ Starte mit neuer Datei.</value>
<value>Setzen der RDP Fehlderbehandlungsroutine fehlgeschlagen!</value>
</data>
<data name="strRdpControlCreationFailed" xml:space="preserve">
<value>Konte das RDP Plugin nicht einbinden, bitte prüfen Sie die mRemote Voraussetzungen.</value>
<value>Konte das RDP Plugin nicht einbinden, bitte prüfen Sie die mRemoteNG Voraussetzungen.</value>
</data>
<data name="strRdpSetPropsFailed" xml:space="preserve">
<value>Setzen der RDP Parameter fehlgeschlagen!</value>
@@ -1856,15 +1850,6 @@ Starte mit neuer Datei.</value>
<data name="strErrorCode" xml:space="preserve">
<value>Fehler Nummer {0}.</value>
</data>
<data name="strConnenctionEventDisconnected" xml:space="preserve">
<value>Protokoll Ereignis Verbindung getrennt.
Nachricht:
{0}</value>
</data>
<data name="strConnenctionEventDisconnectFailed" xml:space="preserve">
<value>Protokoll Ereignis Trennen der Verbindung fehlgeschlagen!
{0}</value>
</data>
<data name="strConnenctionClosedByUserDetail" xml:space="preserve">
<value>Verbindung zu {0} mit {1} wurde vom Benutzer {2} getrennt. (Beschreibung: "{3}"; Benutzer Feld: "{4}")</value>
</data>
@@ -1960,4 +1945,45 @@ Fehler Beschreibung: {1}</value>
<data name="strGeneral" xml:space="preserve">
<value>Allgemein</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Farben (15Bit)</value>
</data>
<data name="strNoUpdateAvailable" xml:space="preserve">
<value>Keine Updates verfügbar</value>
</data>
<data name="strTransferFailed" xml:space="preserve">
<value>Übertragung fehlgeschlagen!</value>
</data>
<data name="strProtocolEventDisconnected" xml:space="preserve">
<value>Protokollereignis Verbindung getrennnt.
{0}</value>
</data>
<data name="strProtocolEventDisconnectFailed" xml:space="preserve">
<value>Protokollereignis Verbindung trennen fehlgeschlagen.
{0}</value>
</data>
<data name="strLanguage" xml:space="preserve">
<value>Sprache</value>
</data>
<data name="strLanguageDefault" xml:space="preserve">
<value>(Automatisch erkannt)</value>
</data>
<data name="strLanguageRestartRequired" xml:space="preserve">
<value>{0} muss neu gestartet werden, bevor die Sprache aktiv wird.</value>
</data>
<data name="strAskUpdatesCommandAskLater" xml:space="preserve">
<value>Später nochmal fragen</value>
</data>
<data name="strAskUpdatesCommandCustom" xml:space="preserve">
<value>Einstellungen jetzt anpassen</value>
</data>
<data name="strAskUpdatesCommandRecommended" xml:space="preserve">
<value>Verwende die empflohlenen Einstellungen</value>
</data>
<data name="strAskUpdatesContent" xml:space="preserve">
<value>{0} kann automatisch nach Updates suchen die neue Funktionen und Bug Fixes enthalten können. Es wird empfohlen, dass Sie {0} erlauben wöchentlich nach Updates zu suchen.</value>
</data>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatische Update Einstellungen</value>
</data>
</root>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
<!--
Microsoft ResX Schema
Version 2.0
@@ -59,80 +59,95 @@
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strPropertyDescriptionColors" xml:space="preserve">
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="strPropertyDescriptionColors" xml:space="preserve">
<value>Select the color quality to be used.</value>
</data>
<data name="strPropertyNameColors" xml:space="preserve">
<data name="strPropertyNameColors" xml:space="preserve">
<value>Colors</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Components Check</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Always show this screen at startup</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Connecting...</value>
</data>
<data name="strComponentsCheck" xml:space="preserve">
<value>Components Check</value>
</data>
<data name="strCcAlwaysShowScreen" xml:space="preserve">
<value>Always show this screen at startup</value>
</data>
<data name="strCcCheckAgain" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="strConnecting" xml:space="preserve">
<value>Connecting...</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Colors (24-bit)</value>
</data>
<data name="strRDP256Colors" xml:space="preserve">
<value>256 Colors (8-bit)</value>
</data>
<data name="strRDP4294967296Colors" xml:space="preserve">
<value>16777216 Colors (32-bit)</value>
</data>
<data name="strRDP65536Colors" xml:space="preserve">
<value>65536 Colors (16-bit)</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Colors (15-bit)</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -1,10 +1,10 @@
'------------------------------------------------------------------------------
' <auto-generated>
' Dieser Code wurde von einem Tool generiert.
' Laufzeitversion:2.0.50727.4927
' This code was generated by a tool.
' Runtime Version:4.0.30319.239
'
' Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
' der Code erneut generiert wird.
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
@@ -14,10 +14,10 @@ Option Explicit On
Namespace My
'HINWEIS: Diese Datei wird automatisch generiert. Ändern Sie sie nicht direkt. Zum Ändern
' oder bei in dieser Datei auftretenden Buildfehlern wechseln Sie zum Projekt-Designer.
' (Wechseln Sie dazu zu den Projekteigenschaften, oder doppelklicken Sie auf den Knoten "Eigenes Projekt" im
' Projektmappen-Explorer). Nehmen Sie auf der Registerkarte "Anwendung" entsprechende Änderungen vor.
'NOTE: This file is auto-generated; do not modify it directly. To make changes,
' or if you encounter build errors in this file, go to the Project Designer
' (go to Project Properties or double-click the My Project node in
' Solution Explorer), and make changes on the Application tab.
'
Partial Friend Class MyApplication

View File

@@ -31,4 +31,4 @@ Imports System.Runtime.InteropServices
' by using the '*' as shown below:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.67.*")>
<Assembly: AssemblyVersion("1.69.*")>

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.4959
' Runtime Version:4.0.30319.239
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -22,7 +22,7 @@ Namespace My.Resources
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0"), _
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
@@ -1679,6 +1679,33 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Confirm closing connection tabs.
'''</summary>
Friend ReadOnly Property strConfirmCloseConnection() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnection", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Do you want to close the connection, &quot;{0}&quot;?.
'''</summary>
Friend ReadOnly Property strConfirmCloseConnectionMainInstruction() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnectionMainInstruction", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Are you sure you want to close the panel, &quot;{0}&quot;? Any connections that it contains will also be closed..
'''</summary>
Friend ReadOnly Property strConfirmCloseConnectionPanelMainInstruction() As String
Get
Return ResourceManager.GetString("strConfirmCloseConnectionPanelMainInstruction", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Are you sure you want to delete the external tool, &quot;{0}&quot;?.
'''</summary>
@@ -2052,7 +2079,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 128 Bit.
''' Looks up a localized string similar to 128-bit.
'''</summary>
Friend ReadOnly Property strEnc128Bit() As String
Get
@@ -2061,7 +2088,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 128Bit (logon only).
''' Looks up a localized string similar to 128-bit (logon only).
'''</summary>
Friend ReadOnly Property strEnc128BitLogonOnly() As String
Get
@@ -2070,7 +2097,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 40 Bit.
''' Looks up a localized string similar to 40-bit.
'''</summary>
Friend ReadOnly Property strEnc40Bit() As String
Get
@@ -2079,7 +2106,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 56 Bit.
''' Looks up a localized string similar to 56-bit.
'''</summary>
Friend ReadOnly Property strEnc56Bit() As String
Get
@@ -2123,6 +2150,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The database version {0} is not compatible with this version of {1}..
'''</summary>
Friend ReadOnly Property strErrorBadDatabaseVersion() As String
Get
Return ResourceManager.GetString("strErrorBadDatabaseVersion", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Error code {0}..
'''</summary>
@@ -2132,6 +2168,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The connection list could not be saved..
'''</summary>
Friend ReadOnly Property strErrorConnectionListSaveFailed() As String
Get
Return ResourceManager.GetString("strErrorConnectionListSaveFailed", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Errors.
'''</summary>
@@ -2141,6 +2186,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to The startup connection file could not be loaded.{0}{0}{2}{0}{3}{0}{0}In order to prevent data loss, {1} will now exit..
'''</summary>
Friend ReadOnly Property strErrorStartupConnectionFileLoad() As String
Get
Return ResourceManager.GetString("strErrorStartupConnectionFileLoad", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to VerifyDatabaseVersion (Config.Connections.Save) failed. {0}.
'''</summary>
Friend ReadOnly Property strErrorVerifyDatabaseVersionFailed() As String
Get
Return ResourceManager.GetString("strErrorVerifyDatabaseVersionFailed", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Expand all folders.
'''</summary>
@@ -2313,7 +2376,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Get Connection Info From Xml failed.
''' Looks up a localized string similar to An error occured while loading the connection entry for &quot;{0}&quot; from &quot;{1}&quot;. {2}.
'''</summary>
Friend ReadOnly Property strGetConnectionInfoFromXmlFailed() As String
Get
@@ -2834,6 +2897,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Database:.
'''</summary>
Friend ReadOnly Property strLabelSQLDatabaseName() As String
Get
Return ResourceManager.GetString("strLabelSQLDatabaseName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Database:.
'''</summary>
Friend ReadOnly Property strLabelSQLServerDatabaseName() As String
Get
Return ResourceManager.GetString("strLabelSQLServerDatabaseName", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Username:.
'''</summary>
@@ -3573,7 +3654,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to my current credentials (windows logon info).
''' Looks up a localized string similar to My current credentials (Windows logon information).
'''</summary>
Friend ReadOnly Property strMyCurrentWindowsCreds() As String
Get
@@ -3663,7 +3744,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to none.
''' Looks up a localized string similar to None.
'''</summary>
Friend ReadOnly Property strNoInformation() As String
Get
@@ -3879,6 +3960,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Select whether to use desktop composition or not..
'''</summary>
Friend ReadOnly Property strPropertyDescriptionEnableDesktopComposition() As String
Get
Return ResourceManager.GetString("strPropertyDescriptionEnableDesktopComposition", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Select whether to use font smoothing or not..
'''</summary>
Friend ReadOnly Property strPropertyDescriptionEnableFontSmoothing() As String
Get
Return ResourceManager.GetString("strPropertyDescriptionEnableFontSmoothing", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Select the encoding mode to be used..
'''</summary>
@@ -4302,6 +4401,24 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Desktop Composition.
'''</summary>
Friend ReadOnly Property strPropertyNameEnableDesktopComposition() As String
Get
Return ResourceManager.GetString("strPropertyNameEnableDesktopComposition", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Font Smoothing.
'''</summary>
Friend ReadOnly Property strPropertyNameEnableFontSmoothing() As String
Get
Return ResourceManager.GetString("strPropertyNameEnableFontSmoothing", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Encoding.
'''</summary>
@@ -4864,7 +4981,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 16777216 Colors (24bit).
''' Looks up a localized string similar to 16777216 Colours (24-bit).
'''</summary>
Friend ReadOnly Property strRDP16777216Colors() As String
Get
@@ -4873,7 +4990,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 256 Colors (8bit).
''' Looks up a localized string similar to 256 Colours (8-bit).
'''</summary>
Friend ReadOnly Property strRDP256Colors() As String
Get
@@ -4882,7 +4999,16 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 4294967296 Colors (32bit).
''' Looks up a localized string similar to 32768 Colours (15-bit).
'''</summary>
Friend ReadOnly Property strRDP32768Colors() As String
Get
Return ResourceManager.GetString("strRDP32768Colors", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to 16777216 Colours (32-bit).
'''</summary>
Friend ReadOnly Property strRDP4294967296Colors() As String
Get
@@ -4891,7 +5017,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to 65536 Colors (16bit).
''' Looks up a localized string similar to 65536 Colours (16-bit).
'''</summary>
Friend ReadOnly Property strRDP65536Colors() As String
Get
@@ -4945,7 +5071,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Couldn&apos;t create RDP control, please check mRemote requirements..
''' Looks up a localized string similar to Couldn&apos;t create RDP control, please check mRemoteNG requirements..
'''</summary>
Friend ReadOnly Property strRdpControlCreationFailed() As String
Get
@@ -5728,7 +5854,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to Ssh Transfee End (UI.Window.SSHTransfer) failed!.
''' Looks up a localized string similar to SSH Transfer End (UI.Window.SSHTransfer) failed!.
'''</summary>
Friend ReadOnly Property strSSHTransferEndFailed() As String
Get
@@ -5817,6 +5943,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Updates.
'''</summary>
Friend ReadOnly Property strTabUpdates() As String
Get
Return ResourceManager.GetString("strTabUpdates", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Telnet.
'''</summary>
@@ -5827,7 +5962,7 @@ Namespace My.Resources
End Property
'''<summary>
''' Looks up a localized string similar to the follwing.
''' Looks up a localized string similar to The follwing.
'''</summary>
Friend ReadOnly Property strTheFollowing() As String
Get
@@ -5979,6 +6114,15 @@ Namespace My.Resources
End Get
End Property
'''<summary>
''' Looks up a localized string similar to mRemoteNG Portable Edition does not currently support automatic updates..
'''</summary>
Friend ReadOnly Property strUpdateCheckPortableEdition() As String
Get
Return ResourceManager.GetString("strUpdateCheckPortableEdition", resourceCulture)
End Get
End Property
'''<summary>
''' Looks up a localized string similar to Error deleting update file!.
'''</summary>

View File

@@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
@@ -1223,7 +1223,7 @@
<value>Connecting...</value>
</data>
<data name="strRDP256Colors" xml:space="preserve">
<value>256 Colors (8bit)</value>
<value>256 Colours (8-bit)</value>
</data>
<data name="strRDPSoundBringToThisComputer" xml:space="preserve">
<value>Bring to this computer</value>
@@ -1540,13 +1540,13 @@ If you are still not able to pass this check or use the (RDP) Sessions feature i
<value>Logoff</value>
</data>
<data name="strTheFollowing" xml:space="preserve">
<value>the follwing</value>
<value>The follwing</value>
</data>
<data name="strMyCurrentWindowsCreds" xml:space="preserve">
<value>my current credentials (windows logon info)</value>
<value>My current credentials (Windows logon information)</value>
</data>
<data name="strNoInformation" xml:space="preserve">
<value>none</value>
<value>None</value>
</data>
<data name="strSingleClickOnOpenConnectionSwitchesToIt" xml:space="preserve">
<value>Single click on opened connection switches to it</value>
@@ -1703,13 +1703,13 @@ mRemoteNG will now quit and begin with the installation.</value>
<value>CTRL-ESC</value>
</data>
<data name="strRDP65536Colors" xml:space="preserve">
<value>65536 Colors (16bit)</value>
<value>65536 Colours (16-bit)</value>
</data>
<data name="strRDP16777216Colors" xml:space="preserve">
<value>16777216 Colors (24bit)</value>
<value>16777216 Colours (24-bit)</value>
</data>
<data name="strRDP4294967296Colors" xml:space="preserve">
<value>4294967296 Colors (32bit)</value>
<value>16777216 Colours (32-bit)</value>
</data>
<data name="strRDPDisableWallpaper" xml:space="preserve">
<value>Disable Wallpaper</value>
@@ -1763,7 +1763,7 @@ mRemoteNG will now quit and begin with the installation.</value>
<value>Transfer successful!</value>
</data>
<data name="strSSHTransferEndFailed" xml:space="preserve">
<value>Ssh Transfee End (UI.Window.SSHTransfer) failed!</value>
<value>SSH Transfer End (UI.Window.SSHTransfer) failed!</value>
</data>
<data name="strTransfer" xml:space="preserve">
<value>Transfer</value>
@@ -1783,7 +1783,7 @@ Please use File - Load Connections for normal connection files!</value>
<value>AddNodeFromXML failed!</value>
</data>
<data name="strGetConnectionInfoFromXmlFailed" xml:space="preserve">
<value>Get Connection Info From Xml failed</value>
<value>An error occured while loading the connection entry for "{0}" from "{1}". {2}</value>
</data>
<data name="strCouldNotCreateNewConnectionsFile" xml:space="preserve">
<value>Couldn't create new connections file!</value>
@@ -1997,7 +1997,7 @@ Starting with new connections file.</value>
<value>RDP SetEventHandlers failed!</value>
</data>
<data name="strRdpControlCreationFailed" xml:space="preserve">
<value>Couldn't create RDP control, please check mRemote requirements.</value>
<value>Couldn't create RDP control, please check mRemoteNG requirements.</value>
</data>
<data name="strRdpSetPropsFailed" xml:space="preserve">
<value>RDP SetProps failed!</value>
@@ -2060,16 +2060,16 @@ Starting with new connections file.</value>
<value>Basic</value>
</data>
<data name="strEnc128BitLogonOnly" xml:space="preserve">
<value>128Bit (logon only)</value>
<value>128-bit (logon only)</value>
</data>
<data name="strEnc40Bit" xml:space="preserve">
<value>40 Bit</value>
<value>40-bit</value>
</data>
<data name="strEnc56Bit" xml:space="preserve">
<value>56 Bit</value>
<value>56-bit</value>
</data>
<data name="strEnc128Bit" xml:space="preserve">
<value>128 Bit</value>
<value>128-bit</value>
</data>
<data name="strIntAppConnectionFailed" xml:space="preserve">
<value>Connection failed!</value>
@@ -2304,4 +2304,52 @@ Error Description: {1}</value>
<data name="strAskUpdatesMainInstruction" xml:space="preserve">
<value>Automatic update settings</value>
</data>
<data name="strRDP32768Colors" xml:space="preserve">
<value>32768 Colours (15-bit)</value>
</data>
<data name="strPropertyDescriptionEnableFontSmoothing" xml:space="preserve">
<value>Select whether to use font smoothing or not.</value>
</data>
<data name="strPropertyNameEnableFontSmoothing" xml:space="preserve">
<value>Font Smoothing</value>
</data>
<data name="strPropertyDescriptionEnableDesktopComposition" xml:space="preserve">
<value>Select whether to use desktop composition or not.</value>
</data>
<data name="strPropertyNameEnableDesktopComposition" xml:space="preserve">
<value>Desktop Composition</value>
</data>
<data name="strConfirmCloseConnection" xml:space="preserve">
<value>Confirm closing connection tabs</value>
</data>
<data name="strConfirmCloseConnectionMainInstruction" xml:space="preserve">
<value>Do you want to close the connection, "{0}"?</value>
</data>
<data name="strConfirmCloseConnectionPanelMainInstruction" xml:space="preserve">
<value>Are you sure you want to close the panel, "{0}"? Any connections that it contains will also be closed.</value>
</data>
<data name="strTabUpdates" xml:space="preserve">
<value>Updates</value>
</data>
<data name="strLabelSQLDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strLabelSQLServerDatabaseName" xml:space="preserve">
<value>Database:</value>
</data>
<data name="strErrorVerifyDatabaseVersionFailed">
<value xml:space="preserve">VerifyDatabaseVersion (Config.Connections.Save) failed. {0}</value>
</data>
<data name="strErrorConnectionListSaveFailed">
<value xml:space="preserve">The connection list could not be saved.</value>
</data>
<data name="strErrorBadDatabaseVersion">
<value xml:space="preserve">The database version {0} is not compatible with this version of {1}.</value>
</data>
<data name="strUpdateCheckPortableEdition">
<value xml:space="preserve">mRemoteNG Portable Edition does not currently support automatic updates.</value>
</data>
<data name="strErrorStartupConnectionFileLoad">
<value xml:space="preserve">The startup connection file could not be loaded.{0}{0}{2}{0}{3}{0}{0}In order to prevent data loss, {1} will now exit.</value>
</data>
</root>

View File

@@ -1,7 +1,7 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:2.0.50727.4959
' Runtime Version:4.0.30319.239
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
@@ -15,12 +15,12 @@ Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "9.0.0.0"), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "10.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings),MySettings)
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings()),MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
@@ -56,8 +56,7 @@ Namespace My
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("999, 999")> _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormLocation() As Global.System.Drawing.Point
Get
Return CType(Me("MainFormLocation"),Global.System.Drawing.Point)
@@ -69,8 +68,7 @@ Namespace My
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("900, 600")> _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormSize() As Global.System.Drawing.Size
Get
Return CType(Me("MainFormSize"),Global.System.Drawing.Size)
@@ -2095,7 +2093,7 @@ Namespace My
<Global.System.Configuration.ApplicationScopedSettingAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("de,en,en-US")> _
Global.System.Configuration.DefaultSettingValueAttribute("de,en,en-US,fr")> _
Public ReadOnly Property SupportedUICultures() As String
Get
Return CType(Me("SupportedUICultures"),String)
@@ -2153,6 +2151,108 @@ Namespace My
Me("ConDefaultRDGatewayDomain") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property ConDefaultEnableFontSmoothing() As Boolean
Get
Return CType(Me("ConDefaultEnableFontSmoothing"),Boolean)
End Get
Set
Me("ConDefaultEnableFontSmoothing") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property InhDefaultEnableFontSmoothing() As Boolean
Get
Return CType(Me("InhDefaultEnableFontSmoothing"),Boolean)
End Get
Set
Me("InhDefaultEnableFontSmoothing") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property ConDefaultEnableDesktopComposition() As Boolean
Get
Return CType(Me("ConDefaultEnableDesktopComposition"),Boolean)
End Get
Set
Me("ConDefaultEnableDesktopComposition") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("False")> _
Public Property InhDefaultEnableDesktopComposition() As Boolean
Get
Return CType(Me("InhDefaultEnableDesktopComposition"),Boolean)
End Get
Set
Me("InhDefaultEnableDesktopComposition") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("True")> _
Public Property ConfirmCloseConnection() As Boolean
Get
Return CType(Me("ConfirmCloseConnection"),Boolean)
End Get
Set
Me("ConfirmCloseConnection") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormRestoreSize() As Global.System.Drawing.Size
Get
Return CType(Me("MainFormRestoreSize"),Global.System.Drawing.Size)
End Get
Set
Me("MainFormRestoreSize") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute()> _
Public Property MainFormRestoreLocation() As Global.System.Drawing.Point
Get
Return CType(Me("MainFormRestoreLocation"),Global.System.Drawing.Point)
End Get
Set
Me("MainFormRestoreLocation") = value
End Set
End Property
<Global.System.Configuration.UserScopedSettingAttribute(), _
Global.System.Configuration.SettingsProviderAttribute(GetType(mRemoteNG.Config.Settings.Providers.ChooseProvider)), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Configuration.DefaultSettingValueAttribute("mRemoteNG")> _
Public Property SQLDatabaseName() As String
Get
Return CType(Me("SQLDatabaseName"),String)
End Get
Set
Me("SQLDatabaseName") = value
End Set
End Property
End Class
End Namespace

View File

@@ -3,10 +3,10 @@
<Profiles />
<Settings>
<Setting Name="MainFormLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">999, 999</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">900, 600</Value>
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormState" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Windows.Forms.FormWindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
@@ -474,7 +474,7 @@
<Value Profile="(Default)" />
</Setting>
<Setting Name="SupportedUICultures" Type="System.String" Scope="Application">
<Value Profile="(Default)">de,en,en-US</Value>
<Value Profile="(Default)">de,en,en-US,fr</Value>
</Setting>
<Setting Name="ConDefaultRDGatewayHostname" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
@@ -488,5 +488,29 @@
<Setting Name="ConDefaultRDGatewayDomain" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultEnableFontSmoothing" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultEnableFontSmoothing" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultEnableDesktopComposition" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultEnableDesktopComposition" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConfirmCloseConnection" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="MainFormRestoreSize" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormRestoreLocation" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLDatabaseName" Provider="mRemoteNG.Config.Settings.Providers.ChooseProvider" Type="System.String" Scope="User">
<Value Profile="(Default)">mRemoteNG</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

After

Width:  |  Height:  |  Size: 824 B

View File

@@ -71,13 +71,12 @@ Namespace Tools
Dim sqlQuery As SqlCommand
Dim sqlRd As SqlDataReader
Dim sqlDB As String = "mRemote"
Dim LastUpdateInDB As Date
If My.Settings.SQLUser <> "" Then
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & sqlDB & ";User Id=" & My.Settings.SQLUser & ";Password=" & Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey))
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & My.Settings.SQLDatabaseName & ";User Id=" & My.Settings.SQLUser & ";Password=" & Security.Crypt.Decrypt(My.Settings.SQLPass, App.Info.General.EncryptionKey))
Else
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & sqlDB & ";Integrated Security=True")
sqlCon = New SqlConnection("Data Source=" & My.Settings.SQLHost & ";Initial Catalog=" & My.Settings.SQLDatabaseName & ";Integrated Security=True")
End If
sqlCon.Open()

View File

@@ -0,0 +1,120 @@
Imports System.Runtime.InteropServices
Namespace Tools
Public Class WindowPlacement
#Region "Windows API"
#Region "Functions"
Private Declare Function GetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
Private Declare Function SetWindowPlacement Lib "user32" (ByVal hWnd As System.IntPtr, ByRef lpwndpl As WINDOWPLACEMENT) As Boolean
#End Region
#Region "Structures"
Private Structure WINDOWPLACEMENT
Public length As UInteger
Public flags As UInteger
Public showCmd As UInteger
Public ptMinPosition As POINT
Public ptMaxPosition As POINT
Public rcNormalPosition As RECT
End Structure
Private Structure POINT
Public x As Long
Public y As Long
End Structure
Private Structure RECT
Public left As Long
Public top As Long
Public right As Long
Public bottom As Long
End Structure
#End Region
#Region "Constants"
' WINDOWPLACEMENT.flags values
Private Const WPF_SETMINPOSITION As UInteger = &H1
Private Const WPF_RESTORETOMAXIMIZED As UInteger = &H2
Private Const WPF_ASYNCWINDOWPLACEMENT As UInteger = &H4
' WINDOWPLACEMENT.showCmd values
Private Const SW_HIDE As UInteger = 0
Private Const SW_SHOWNORMAL As UInteger = 1
Private Const SW_SHOWMINIMIZED As UInteger = 2
Private Const SW_SHOWMAXIMIZED As UInteger = 3
Private Const SW_MAXIMIZE As UInteger = 3
Private Const SW_SHOWNOACTIVATE As UInteger = 4
Private Const SW_SHOW As UInteger = 5
Private Const SW_MINIMIZE As UInteger = 6
Private Const SW_SHOWMINNOACTIVE As UInteger = 7
Private Const SW_SHOWNA As UInteger = 8
Private Const SW_RESTORE As UInteger = 9
#End Region
#End Region
#Region "Private Variables"
Private _form As Windows.Forms.Form
#End Region
#Region "Constructors/Destructors"
Public Sub New(ByRef form As Windows.Forms.Form)
_form = form
End Sub
#End Region
#Region "Public Properties"
Public Property Form() As Windows.Forms.Form
Get
Return _form
End Get
Set(ByVal value As Windows.Forms.Form)
_form = value
End Set
End Property
Public Property RestoreToMaximized() As Boolean
Get
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
Return windowPlacement.flags And WPF_RESTORETOMAXIMIZED
End Get
Set(ByVal value As Boolean)
Dim windowPlacement As WINDOWPLACEMENT = GetWindowPlacement()
If value Then
windowPlacement.flags = windowPlacement.flags Or WPF_RESTORETOMAXIMIZED
Else
windowPlacement.flags = windowPlacement.flags And Not WPF_RESTORETOMAXIMIZED
End If
SetWindowPlacement(windowPlacement)
End Set
End Property
#End Region
#Region "Private Functions"
Private Function GetWindowPlacement() As WINDOWPLACEMENT
If _form Is Nothing Then
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
End If
Dim windowPlacement As WINDOWPLACEMENT
windowPlacement.length = Marshal.SizeOf(windowPlacement)
Try
GetWindowPlacement(_form.Handle, windowPlacement)
Return windowPlacement
Catch ex As Exception
Throw ex
End Try
End Function
Private Function SetWindowPlacement(ByVal windowPlacement As WINDOWPLACEMENT) As Boolean
If _form Is Nothing Then
Throw New System.NullReferenceException("WindowPlacement.Form is not set.")
End If
windowPlacement.length = Marshal.SizeOf(windowPlacement)
Try
Return SetWindowPlacement(_form.Handle, windowPlacement)
Catch ex As Exception
Throw ex
End Try
End Function
#End Region
End Class
End Namespace

View File

@@ -303,6 +303,7 @@ Namespace Tree
Dim nConI As Connection.Info = conI.Copy
Dim nInh As Connection.Info.Inheritance = conI.Inherit.Copy()
nInh.Parent = nConI
nConI.Inherit = nInh
cL.Add(nConI)
@@ -479,13 +480,20 @@ Namespace Tree
Public Shared Sub Sort(ByVal treeNode As TreeNode, ByVal sortType As Tools.Controls.TreeNodeSorter.SortType)
Try
If Tree.Node.GetNodeType(treeNode) <> Type.Connection Then
Dim ns As New Tools.Controls.TreeNodeSorter(treeNode, sortType)
_TreeView.TreeViewNodeSorter = ns
_TreeView.Sort()
_TreeView.Sorted = False
If treeNode Is Nothing Then
treeNode = _TreeView.Nodes.Item(0)
ElseIf Tree.Node.GetNodeType(treeNode) = Type.Connection Then
treeNode = treeNode.Parent
End If
Dim ns As New Tools.Controls.TreeNodeSorter(treeNode, sortType)
_TreeView.TreeViewNodeSorter = ns
_TreeView.Sort()
For Each childNode As TreeNode In treeNode.Nodes
If GetNodeType(childNode) = Type.Container Then Sort(childNode, sortType)
Next
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "Sort nodes failed" & vbNewLine & ex.Message, True)
End Try

View File

@@ -542,6 +542,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
@@ -575,6 +577,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -610,6 +614,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -645,6 +651,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -682,6 +690,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -719,6 +729,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -756,6 +768,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -791,6 +805,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ExtApp")
strHide.Add("ICAEncryption")
@@ -823,6 +839,8 @@ Namespace UI
Case mRemoteNG.Connection.Protocol.Protocols.ICA
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("ExtApp")
strHide.Add("Port")
strHide.Add("PuttySession")
@@ -857,6 +875,8 @@ Namespace UI
strHide.Add("Colors")
strHide.Add("DisplayThemes")
strHide.Add("DisplayWallpaper")
strHide.Add("EnableFontSmoothing")
strHide.Add("EnableDesktopComposition")
strHide.Add("Domain")
strHide.Add("ICAEncryption")
strHide.Add("PuttySession")
@@ -911,6 +931,14 @@ Namespace UI
strHide.Add("DisplayWallpaper")
End If
If .EnableFontSmoothing Then
strHide.Add("EnableFontSmoothing")
End If
If .EnableDesktopComposition Then
strHide.Add("EnableDesktopComposition")
End If
If .Domain Then
strHide.Add("Domain")
End If

View File

@@ -3,6 +3,7 @@ Imports System.Windows
Imports System.Windows.Forms
Imports Crownwood
Imports WeifenLuo.WinFormsUI.Docking
Imports PSTaskDialog
Imports mRemoteNG.App.Runtime
Namespace UI
@@ -306,6 +307,17 @@ Namespace UI
End Sub
Private Sub Connection_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If Not frmMain.IsClosing And My.Settings.ConfirmCloseConnection And TabController.TabPages.Count > 0 Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionPanelMainInstruction, Me.Text), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
If Result = DialogResult.No Then
e.Cancel = True
Exit Sub
End If
End If
Try
For Each tabP As Magic.Controls.TabPage In Me.TabController.TabPages
If tabP.Tag IsNot Nothing Then
@@ -344,12 +356,23 @@ Namespace UI
End Sub
Private Sub CloseConnectionTab()
Dim SelectedTab As Crownwood.Magic.Controls.TabPage = Me.TabController.SelectedTab
If My.Settings.ConfirmCloseConnection Then
Dim Result As DialogResult = cTaskDialog.MessageBox(Me, My.Application.Info.ProductName, String.Format(My.Resources.strConfirmCloseConnectionMainInstruction, SelectedTab.Title), "", "", "", My.Resources.strCheckboxDoNotShowThisMessageAgain, eTaskDialogButtons.YesNo, eSysIcons.Question, Nothing)
If cTaskDialog.VerificationChecked Then
My.Settings.ConfirmCloseConnection = False
End If
If Result = DialogResult.No Then
Exit Sub
End If
End If
Try
If Me.TabController.SelectedTab.Tag IsNot Nothing Then
Dim IC As mRemoteNG.Connection.InterfaceControl = Me.TabController.SelectedTab.Tag
If SelectedTab.Tag IsNot Nothing Then
Dim IC As mRemoteNG.Connection.InterfaceControl = SelectedTab.Tag
IC.Protocol.Close()
Else
Me.CloseTab(Me.TabController.SelectedTab)
Me.CloseTab(SelectedTab)
End If
Catch ex As Exception
mC.AddMessage(Messages.MessageClass.ErrorMsg, "CloseConnectionTab (UI.Window.Connections) failed" & vbNewLine & ex.Message, True)

View File

@@ -1,123 +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="TabController.DrawGrid" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -47,6 +47,9 @@ Namespace UI
Friend WithEvents cMenTreeToolsImportExportImportFromPortScan As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cMenTreeConnectWithOptionsChoosePanelBeforeConnecting As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents cMenTreeConnectWithOptionsDontConnectToConsoleSession As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenSortAscending As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenAddConnection As System.Windows.Forms.ToolStripMenuItem
Friend WithEvents mMenAddFolder As System.Windows.Forms.ToolStripMenuItem
Public WithEvents tvConnections As System.Windows.Forms.TreeView
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container
@@ -88,9 +91,12 @@ Namespace UI
Me.PictureBox1 = New System.Windows.Forms.PictureBox
Me.txtSearch = New System.Windows.Forms.TextBox
Me.msMain = New System.Windows.Forms.MenuStrip
Me.mMenAddConnection = New System.Windows.Forms.ToolStripMenuItem
Me.mMenAddFolder = New System.Windows.Forms.ToolStripMenuItem
Me.mMenView = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewExpandAllFolders = New System.Windows.Forms.ToolStripMenuItem
Me.mMenViewCollapseAllFolders = New System.Windows.Forms.ToolStripMenuItem
Me.mMenSortAscending = New System.Windows.Forms.ToolStripMenuItem
Me.cMenTree.SuspendLayout()
Me.pnlConnections.SuspendLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
@@ -124,7 +130,7 @@ Namespace UI
Me.cMenTree.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.cMenTreeAddConnection, Me.cMenTreeAddFolder, Me.cMenTreeSep1, Me.cMenTreeConnect, Me.cMenTreeConnectWithOptions, Me.cMenTreeDisconnect, Me.cMenTreeSep2, Me.cMenTreeToolsTransferFile, Me.cMenTreeToolsImportExport, Me.cMenTreeToolsSort, Me.cMenTreeToolsExternalApps, Me.cMenTreeSep3, Me.cMenTreeDuplicate, Me.cMenTreeRename, Me.cMenTreeDelete, Me.cMenTreeSep4, Me.cMenTreeMoveUp, Me.cMenTreeMoveDown})
Me.cMenTree.Name = "cMenTree"
Me.cMenTree.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.cMenTree.Size = New System.Drawing.Size(187, 358)
Me.cMenTree.Size = New System.Drawing.Size(187, 336)
'
'cMenTreeAddConnection
'
@@ -376,14 +382,29 @@ Namespace UI
'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.mMenView})
Me.msMain.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.mMenAddConnection, Me.mMenAddFolder, Me.mMenView, Me.mMenSortAscending})
Me.msMain.Location = New System.Drawing.Point(0, 0)
Me.msMain.Name = "msMain"
Me.msMain.RenderMode = System.Windows.Forms.ToolStripRenderMode.Professional
Me.msMain.ShowItemToolTips = True
Me.msMain.Size = New System.Drawing.Size(192, 24)
Me.msMain.TabIndex = 10
Me.msMain.Text = "MenuStrip1"
'
'mMenAddConnection
'
Me.mMenAddConnection.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenAddConnection.Image = Global.mRemoteNG.My.Resources.Resources.Connection_Add
Me.mMenAddConnection.Name = "mMenAddConnection"
Me.mMenAddConnection.Size = New System.Drawing.Size(28, 20)
'
'mMenAddFolder
'
Me.mMenAddFolder.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenAddFolder.Image = Global.mRemoteNG.My.Resources.Resources.Folder_Add
Me.mMenAddFolder.Name = "mMenAddFolder"
Me.mMenAddFolder.Size = New System.Drawing.Size(28, 20)
'
'mMenView
'
Me.mMenView.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
@@ -407,6 +428,13 @@ Namespace UI
Me.mMenViewCollapseAllFolders.Size = New System.Drawing.Size(161, 22)
Me.mMenViewCollapseAllFolders.Text = "Collapse all folders"
'
'mMenSortAscending
'
Me.mMenSortAscending.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.mMenSortAscending.Image = Global.mRemoteNG.My.Resources.Resources.Sort_AZ
Me.mMenSortAscending.Name = "mMenSortAscending"
Me.mMenSortAscending.Size = New System.Drawing.Size(28, 20)
'
'Tree
'
Me.ClientSize = New System.Drawing.Size(192, 453)
@@ -492,9 +520,12 @@ Namespace UI
cMenTreeDelete.Text = My.Resources.strMenuDelete
cMenTreeMoveUp.Text = My.Resources.strMoveUp
cMenTreeMoveDown.Text = My.Resources.strMoveDown
mMenView.Text = My.Resources.strMenuView
mMenAddConnection.ToolTipText = My.Resources.strAddConnection
mMenAddFolder.ToolTipText = My.Resources.strAddFolder
mMenView.ToolTipText = My.Resources.strMenuView.Replace("&", "")
mMenViewExpandAllFolders.Text = My.Resources.strExpandAllFolders
mMenViewCollapseAllFolders.Text = My.Resources.strCollapseAllFolders
mMenSortAscending.ToolTipText = My.Resources.strSortAsc
TabText = My.Resources.strConnections
Text = My.Resources.strConnections
End Sub
@@ -671,11 +702,8 @@ Namespace UI
Me.cMenTreeConnectWithOptionsChoosePanelBeforeConnecting.Enabled = True
Me.cMenTreeToolsImportExport.Enabled = False
Me.cMenTreeToolsSort.Enabled = False
Me.cMenTreeToolsExternalApps.Enabled = True
Me.cMenTreeDuplicate.Enabled = True
@@ -708,8 +736,6 @@ Namespace UI
Me.cMenTreeToolsImportExportImportFromAD.Enabled = True
Me.cMenTreeToolsImportExportImportmRemoteXML.Enabled = True
Me.cMenTreeToolsSort.Enabled = True
Me.cMenTreeToolsExternalApps.Enabled = False
Me.cMenTreeDuplicate.Enabled = True
@@ -732,8 +758,6 @@ Namespace UI
Me.cMenTreeToolsImportExportImportFromAD.Enabled = True
Me.cMenTreeToolsImportExportImportmRemoteXML.Enabled = True
Me.cMenTreeToolsSort.Enabled = True
Me.cMenTreeToolsExternalApps.Enabled = False
Me.cMenTreeDuplicate.Enabled = False
@@ -899,12 +923,12 @@ Namespace UI
#End Region
#Region "Tree Context Menu"
Private Sub cMenTreeAddConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeAddConnection.Click
Private Sub cMenTreeAddConnection_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeAddConnection.Click, mMenAddConnection.Click
Me.AddConnection()
SaveConnectionsBG()
End Sub
Private Sub cMenTreeAddFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeAddFolder.Click
Private Sub cMenTreeAddFolder_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeAddFolder.Click, mMenAddFolder.Click
Me.AddFolder()
SaveConnectionsBG()
End Sub
@@ -957,13 +981,24 @@ Namespace UI
Me.ImportFromPortScan()
End Sub
Private Sub mMenSortAscending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenSortAscending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.Nodes.Item(0), Tools.Controls.TreeNodeSorter.SortType.Ascending)
Me.tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
Private Sub cMenTreeToolsSortAscending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeToolsSortAscending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.SelectedNode, Tools.Controls.TreeNodeSorter.SortType.Ascending)
Me.tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
Private Sub cMenTreeToolsSortDescending_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cMenTreeToolsSortDescending.Click
Me.tvConnections.BeginUpdate()
mRemoteNG.Tree.Node.Sort(Me.tvConnections.SelectedNode, Tools.Controls.TreeNodeSorter.SortType.Descending)
Me.tvConnections.EndUpdate()
SaveConnectionsBG()
End Sub
@@ -1008,6 +1043,7 @@ Namespace UI
If nNode IsNot Nothing Then
Dim nConI As New mRemoteNG.Connection.Info()
If Me.tvConnections.SelectedNode Is Nothing Then Me.tvConnections.SelectedNode = Me.tvConnections.Nodes.Item(0)
If TypeOf Me.tvConnections.SelectedNode.Tag Is mRemoteNG.Container.Info Then
nConI.Parent = Me.tvConnections.SelectedNode.Tag
Else
@@ -1200,6 +1236,7 @@ Namespace UI
End Sub
Private Sub mMenViewCollapseAllFolders_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mMenViewCollapseAllFolders.Click
If Me.tvConnections.SelectedNode.IsEditing Then Me.tvConnections.SelectedNode.EndEdit(False)
mRemoteNG.Tree.Node.CollapseAllNodes()
End Sub
#End Region
@@ -1261,7 +1298,6 @@ Namespace UI
End Try
End Sub
#End Region
End Class
End Namespace
End Namespace

View File

@@ -27,8 +27,6 @@
<!-- An alternate output encoding can be specified -->
<!-- <encoding value="unicodeFFFE" /> -->
<layout type="log4net.Layout.PatternLayout">
<header value="[mRemoteNG Start]&#xD;&#xA;" />
<footer value="[mRemoteNG Exit]&#xD;&#xA;" />
<conversionPattern value="%date [%thread] %-5level- %message%newline" />
</layout>
<!-- Alternate layout using XML
@@ -59,12 +57,6 @@
</system.diagnostics>
<userSettings>
<mRemoteNG.My.MySettings>
<setting name="MainFormLocation" serializeAs="String">
<value>999, 999</value>
</setting>
<setting name="MainFormSize" serializeAs="String">
<value>900, 600</value>
</setting>
<setting name="MainFormState" serializeAs="String">
<value>Normal</value>
</setting>
@@ -542,12 +534,30 @@
<setting name="ConDefaultRDGatewayDomain" serializeAs="String">
<value />
</setting>
<setting name="ConDefaultEnableFontSmoothing" serializeAs="String">
<value>False</value>
</setting>
<setting name="InhDefaultEnableFontSmoothing" serializeAs="String">
<value>False</value>
</setting>
<setting name="ConDefaultEnableDesktopComposition" serializeAs="String">
<value>False</value>
</setting>
<setting name="InhDefaultEnableDesktopComposition" serializeAs="String">
<value>False</value>
</setting>
<setting name="ConfirmCloseConnection" serializeAs="String">
<value>True</value>
</setting>
<setting name="SQLDatabaseName" serializeAs="String">
<value>mRemoteNG</value>
</setting>
</mRemoteNG.My.MySettings>
</userSettings>
<applicationSettings>
<mRemoteNG.My.MySettings>
<setting name="SupportedUICultures" serializeAs="String">
<value>de,en,en-US</value>
<value>de,en,en-US,fr</value>
</setting>
</mRemoteNG.My.MySettings>
</applicationSettings>

View File

@@ -1,9 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.21022</ProductVersion>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{4934A491-40BC-4E5B-9166-EA1169A220F6}</ProjectGuid>
<OutputType>WinExe</OutputType>
@@ -14,7 +14,7 @@
<OptionExplicit>On</OptionExplicit>
<FileUpgradeFlags>
</FileUpgradeFlags>
<OldToolsVersion>2.0</OldToolsVersion>
<OldToolsVersion>3.5</OldToolsVersion>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<IsWebBootstrapper>false</IsWebBootstrapper>
@@ -25,7 +25,7 @@
<ManifestKeyFile>mRemoteV1_TemporaryKey.pfx</ManifestKeyFile>
<GenerateManifests>true</GenerateManifests>
<SignManifests>false</SignManifests>
<PublishWizardCompleted>true</PublishWizardCompleted>
<TargetFrameworkVersion>v2.0</TargetFrameworkVersion>
<PublishUrl>publish\</PublishUrl>
<Install>true</Install>
<InstallFrom>Disk</InstallFrom>
@@ -39,6 +39,7 @@
<ApplicationRevision>1</ApplicationRevision>
<ApplicationVersion>1.64.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<PublishWizardCompleted>true</PublishWizardCompleted>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
@@ -49,43 +50,48 @@
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<NoWarn>41999,42016,42017,42018,42019,42032,42036,42353,42354,42355</NoWarn>
<WarningsAsErrors>
</WarningsAsErrors>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>None</DebugType>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<NoWarn>41999,42016,42017,42018,42019,42032,42036,42353,42354,42355</NoWarn>
<WarningsAsErrors>
</WarningsAsErrors>
<DebugSymbols>false</DebugSymbols>
<DebugSymbols>true</DebugSymbols>
<PlatformTarget>x86</PlatformTarget>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release Portable|AnyCPU' ">
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Release Portable\</OutputPath>
<Optimize>true</Optimize>
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<DebugType>None</DebugType>
<NoWarn>41999,42016,42017,42018,42019,42032,42036,42353,42354,42355</NoWarn>
<DebugType>pdbonly</DebugType>
<PlatformTarget>x86</PlatformTarget>
<DefineConstants>PORTABLE</DefineConstants>
<DebugSymbols>true</DebugSymbols>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug Portable|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug Portable\</OutputPath>
<NoWarn>41999,42016,42017,42018,42019,42032,42036</NoWarn>
<NoWarn>41999,42016,42017,42018,42019,42032,42036,42353,42354,42355</NoWarn>
<DebugType>full</DebugType>
<PlatformTarget>x86</PlatformTarget>
<DefineConstants>PORTABLE</DefineConstants>
<CodeAnalysisRuleSet>AllRules.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemGroup>
<Reference Include="ADTree, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
@@ -138,6 +144,7 @@
<Reference Include="System.Data" />
<Reference Include="System.DirectoryServices" />
<Reference Include="System.Drawing" />
<Reference Include="System.Management" />
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
@@ -263,6 +270,7 @@
<Compile Include="Tools\Tools.Misc.vb" />
<Compile Include="Tools\Tools.PortScan.vb" />
<Compile Include="Tools\Tools.SystemMenu.vb" />
<Compile Include="Tools\Tools.WindowPlacement.vb" />
<Compile Include="Tree\Tree.Node.vb" />
<Compile Include="UI\UI.Window.About.vb">
<SubType>Form</SubType>
@@ -295,7 +303,7 @@
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.List.vb" />
<Compile Include="UI\UI.Window.Options.vb">
<Compile Include="Forms\frmOptions.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\UI.Window.PortScan.vb">
@@ -346,6 +354,9 @@
<EmbeddedResource Include="Language\Resources.en-US.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Language\Resources.fr.resx">
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
@@ -392,8 +403,8 @@
<DependentUpon>UI.Window.Help.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.Options.resx">
<DependentUpon>UI.Window.Options.vb</DependentUpon>
<EmbeddedResource Include="Forms\frmOptions.resx">
<DependentUpon>frmOptions.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\UI.Window.PortScan.resx">
@@ -765,6 +776,9 @@
<Content Include="Icons\mRemote.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Icons\mRemoteNG.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Icons\Remote Desktop.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
@@ -807,6 +821,7 @@
<Content Include="Icons\Workstation.ico">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="Resources\Images\database.bmp" />
<None Include="Resources\Images\Copy.png" />
<None Include="Resources\Icons\mRemote_Icon.ico" />
<None Include="Resources\Icons\Sessions_Icon.ico" />
@@ -870,6 +885,11 @@
<None Include="Resources\Images\Website.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0 %28x86%29</ProductName>
@@ -885,6 +905,11 @@
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<COMReference Include="AxMSTSCLib">