Compare commits

..

5 Commits

Author SHA1 Message Date
Dimitrij
15149f9e2c Merge pull request #2133 from david-sway/v1.77.2-dev
Made changes to prevent two settings-scenarios that brick the app.
2022-01-18 16:14:43 +00:00
david-sway
ab3d85b089 Made changes to prevent two settings-scenarios that brick the app. 2022-01-18 11:00:58 -05:00
Dimitrij
2f3a03eab7 manual merge from Filippo125:add_winbox - Improve log 2022-01-18 12:19:49 +00:00
Dimitrij
629515b81a manual merge from Filippo125:add_winbox - Integrate winbox client mRemoteNG#895 2022-01-18 11:39:08 +00:00
Dimitrij
05c8da3ee4 manual merge from Filippo125:add_winbox - save only 2022-01-18 11:31:23 +00:00
162 changed files with 3738 additions and 8222 deletions

View File

@@ -3,13 +3,6 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [1.77.3]
### Added
- #2138: Improve compatibility with Remote Desktop Connection Manager v2.83
- #2123: Thycotic Secret Server - Added 2FA OTP support
### Changed
- #1546: Enable resize without reconnect for RDP Version Rdc9 or higher
## [1.77.2]
### Added
- #2086: Replace WebClient with async HttpClient for updater.

View File

@@ -11,8 +11,8 @@
</PropertyGroup>
<ItemGroup>
<PackageReference Include="AWSSDK.Core" Version="3.7.11.2" />
<PackageReference Include="AWSSDK.EC2" Version="3.7.72" />
<PackageReference Include="AWSSDK.Core" Version="3.7.6" />
<PackageReference Include="AWSSDK.EC2" Version="3.7.55.3" />
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
</ItemGroup>

View File

@@ -13,12 +13,7 @@
if (cbUseSSO.Checked)
btnOK.Focus();
else
{
if (tbPassword.Text.Length == 0)
tbPassword.Focus();
else
tbOTP.Focus();
}
tbPassword.Focus();
}
private void cbUseSSO_CheckedChanged(object sender, EventArgs e)

View File

@@ -22,7 +22,7 @@ namespace ExternalConnectors.TSS
public static void Init()
{
if (initdone == true)
if (ssPassword != "" || initdone == true)
return;
RegistryKey key = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\mRemoteSSInterface");
@@ -32,7 +32,6 @@ namespace ExternalConnectors.TSS
SSConnectionForm f = new SSConnectionForm();
string? un = key.GetValue("Username") as string;
f.tbUsername.Text = un ?? "";
f.tbPassword.Text = SSConnectionData.ssPassword; // in OTP refresh cases, this value might already be filled
string? url = key.GetValue("URL") as string;
if (url == null || !url.Contains("://"))
@@ -43,9 +42,12 @@ namespace ExternalConnectors.TSS
if (b == null || (string)b != "True")
ssSSO = false;
else
{
ssSSO = true;
initdone = true;
}
f.cbUseSSO.Checked = ssSSO;
// show dialog
while (true)
{
@@ -64,10 +66,7 @@ namespace ExternalConnectors.TSS
try
{
if (TestCredentials() == true)
{
initdone = true;
break;
}
}
catch (Exception)
{
@@ -165,72 +164,56 @@ namespace ExternalConnectors.TSS
private static string GetToken()
{
// if there is no token, fetch a fresh one
if (String.IsNullOrEmpty(SSConnectionData.ssTokenBearer))
string authUsername = SSConnectionData.ssUsername;
string authPassword = SSConnectionData.ssPassword;
string baseURL = SSConnectionData.ssUrl;
string OTP = SSConnectionData.ssOTP;
string Bearer = SSConnectionData.ssTokenBearer;
string Refresh = SSConnectionData.ssTokenRefresh;
DateTime ExpiresOn = SSConnectionData.ssTokenExpiresOn;
//Check if current token is valid
if (!String.IsNullOrEmpty(Bearer))
{
return GetTokenFresh();
}
// if there is a token, check if it is valid
if (SSConnectionData.ssTokenExpiresOn >= DateTime.UtcNow)
{
return SSConnectionData.ssTokenBearer;
}
else
{
// try using refresh token
using (var httpClient = new HttpClient())
if (ExpiresOn >= DateTime.UtcNow)
{
var tokenClient = new OAuth2ServiceClient(SSConnectionData.ssUrl, httpClient);
TokenResponse token = new();
try
return Bearer;
}
else
{
//try using refresh token
using (var httpClient = new HttpClient())
{
token = tokenClient.AuthorizeAsync(Grant_type.Refresh_token, null, null, SSConnectionData.ssTokenRefresh, null).Result;
var tokenClient = new OAuth2ServiceClient(baseURL, httpClient);
var token = tokenClient.AuthorizeAsync(Grant_type.Refresh_token, null, null, Refresh, null).Result;
var tokenResult = token.Access_token;
SSConnectionData.ssTokenBearer = tokenResult;
SSConnectionData.ssTokenRefresh = token.Refresh_token;
SSConnectionData.ssTokenExpiresOn = token.Expires_on;
return tokenResult;
}
catch (Exception)
{
// refresh token failed. clean memory and start fresh
SSConnectionData.ssTokenBearer = "";
SSConnectionData.ssTokenRefresh = "";
SSConnectionData.ssTokenExpiresOn = DateTime.Now;
// if OTP is required we need to ask user for a new OTP
if (!String.IsNullOrEmpty(SSConnectionData.ssOTP))
{
SSConnectionData.initdone = false;
// the call below executes a connection test, which fetches a valid token
SSConnectionData.Init();
// we now have a fresh token in memory. return it to caller
return SSConnectionData.ssTokenBearer;
}
else
{
// no user interaction required. get a fresh token and return it to caller
return GetTokenFresh();
}
}
}
}
}
static string GetTokenFresh()
{
using (var httpClient = new HttpClient())
{
// Authenticate:
var tokenClient = new OAuth2ServiceClient(SSConnectionData.ssUrl, httpClient);
// call below will throw an exception if the creds are invalid
var token = tokenClient.AuthorizeAsync(Grant_type.Password, SSConnectionData.ssUsername, SSConnectionData.ssPassword, null, SSConnectionData.ssOTP).Result;
// here we can be sure the creds are ok - return success state
var tokenResult = token.Access_token;
SSConnectionData.ssTokenBearer = tokenResult;
SSConnectionData.ssTokenRefresh = token.Refresh_token;
SSConnectionData.ssTokenExpiresOn = token.Expires_on;
return tokenResult;
}
else
{
using (var httpClient = new HttpClient())
{
// Authenticate:
var tokenClient = new OAuth2ServiceClient(baseURL, httpClient);
// call below will throw an exception if the creds are invalid
var token = tokenClient.AuthorizeAsync(Grant_type.Password, authUsername, authPassword, null, OTP).Result;
// here we can be sure the creds are ok - return success state
var tokenResult = token.Access_token;
SSConnectionData.ssTokenBearer = tokenResult;
SSConnectionData.ssTokenRefresh = token.Refresh_token;
SSConnectionData.ssTokenExpiresOn = token.Expires_on;
return tokenResult;
}
}
}

View File

@@ -88,14 +88,12 @@ You will need to compile it yourself using Visual Studio.
### Minimum Requirements
* [Microsoft Visual C++ Redistributable for Visual Studio 2015 - 2022](https://support.microsoft.com/en-us/help/2977003/the-latest-supported-visual-c-downloads)
* [Microsoft .NET 6.0 Desktop Runtime](https://dotnet.microsoft.com/download/dotnet/6.0)
* [Microsoft .NET 6.0](https://dotnet.microsoft.com/download/dotnet/6.0)
* Microsoft Terminal Service Client 6.0 or later
* Needed if you use RDP. mstscax.dll and/or msrdp.ocx be registered.
### Download
> :star: Starting Windows 11 you can use winget to install mRemoteNG. Just run `winget install -e --id mRemoteNG.mRemoteNG`
mRemoteNG is available as a redistributable MSI package or as a portable ZIP package and can be downloaded from the following locations:
* [GitHub](https://github.com/mRemoteNG/mRemoteNG/releases)
* [Project Website](https://mremoteng.org/download)

View File

@@ -37,9 +37,14 @@ namespace mRemoteNG.App
messageCollector.AddMessage(MessageClass.ErrorMsg, errorText, true);
//About to pop up a message, let's not block it...
FrmSplashScreenNew.GetInstance().Close();
FrmSplashScreen.getInstance().Close();
var ShouldIStayOrShouldIGo = CTaskDialog.MessageBox(Application.ProductName, Language.CompatibilityProblemDetected, errorText, "", "", Language.CheckboxDoNotShowThisMessageAgain, ETaskDialogButtons.OkCancel, ESysIcons.Warning, ESysIcons.Warning);
var ShouldIStayOrShouldIGo = CTaskDialog.MessageBox(Application.ProductName,
Language.CompatibilityProblemDetected, errorText, "",
"",
Language.CheckboxDoNotShowThisMessageAgain,
ETaskDialogButtons.OkCancel, ESysIcons.Warning,
ESysIcons.Warning);
if (CTaskDialog.VerificationChecked && ShouldIStayOrShouldIGo == DialogResult.OK)
{
messageCollector.AddMessage(MessageClass.ErrorMsg, "User requests that FIPS check be overridden", true);

View File

@@ -38,8 +38,8 @@ namespace mRemoteNG.App
return;
HeadlessFileImport(
openFileDialog.FileNames,
importDestinationContainer,
openFileDialog.FileNames,
importDestinationContainer,
Runtime.ConnectionsService,
fileName => MessageBox.Show(string.Format(Language.ImportFileFailedContent, fileName), Language.AskUpdatesMainInstruction,
MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1));
@@ -51,40 +51,9 @@ namespace mRemoteNG.App
}
}
public static void ImportFromRemoteDesktopManagerCsv(ContainerInfo importDestinationContainer)
{
try
{
using (Runtime.ConnectionsService.BatchedSavingContext())
{
using (var openFileDialog = new OpenFileDialog())
{
openFileDialog.CheckFileExists = true;
openFileDialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
openFileDialog.Multiselect = false;
var fileTypes = new List<string>();
fileTypes.AddRange(new[] {Language.FiltermRemoteRemoteDesktopManagerCSV, "*.csv"});
openFileDialog.Filter = string.Join("|", fileTypes.ToArray());
if (openFileDialog.ShowDialog() != DialogResult.OK)
return;
var importer = new RemoteDesktopManagerImporter();
importer.Import(openFileDialog.FileName, importDestinationContainer);
}
}
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage("App.Import.ImportFromRemoteDesktopManagerCsv() failed.", ex);
}
}
public static void HeadlessFileImport(
IEnumerable<string> filePaths,
ContainerInfo importDestinationContainer,
IEnumerable<string> filePaths,
ContainerInfo importDestinationContainer,
ConnectionsService connectionsService,
Action<string> exceptionAction = null)
{

View File

@@ -28,6 +28,7 @@ namespace mRemoteNG.App.Info
//public static string ReportingFilePath = "";
public static readonly string PuttyPath = HomePath + "\\PuTTYNG.exe";
public static readonly string WinboxPath = HomePath + "\\winbox.exe";
public static string UserAgent
{

View File

@@ -8,9 +8,13 @@ namespace mRemoteNG.App.Info
{
public static class SettingsFileInfo
{
private static readonly string ExePath = Path.GetDirectoryName(Assembly.GetAssembly(typeof(ConnectionInfo))?.Location);
private static readonly string ExePath =
Path.GetDirectoryName(Assembly.GetAssembly(typeof(ConnectionInfo))?.Location);
public static string SettingsPath => Runtime.IsPortableEdition ? ExePath : Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + Application.ProductName;
public static string SettingsPath =>
Runtime.IsPortableEdition
? ExePath
: Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\" + Application.ProductName;
public static string LayoutFileName { get; } = "pnlLayout.xml";
public static string ExtAppsFilesName { get; } = "extApps.xml";

View File

@@ -22,7 +22,7 @@ namespace mRemoteNG.App.Info
public static Uri GetUpdateChannelInfo()
{
var channel = IsValidChannel(Properties.OptionsUpdatesPage.Default.UpdateChannel) ? Properties.OptionsUpdatesPage.Default.UpdateChannel : STABLE;
var channel = IsValidChannel(Settings.Default.UpdateChannel) ? Settings.Default.UpdateChannel : STABLE;
return GetUpdateTxtUri(channel);
}
@@ -65,7 +65,7 @@ namespace mRemoteNG.App.Info
private static Uri GetUpdateTxtUri(string channel)
{
return new Uri(new Uri(Properties.OptionsUpdatesPage.Default.UpdateAddress),
return new Uri(new Uri(Settings.Default.UpdateAddress),
new Uri(GetChannelFileName(channel), UriKind.Relative));
}

View File

@@ -10,8 +10,10 @@ namespace mRemoteNG.App.Initialization
{
new SaveConnectionsOnEdit(Runtime.ConnectionsService);
if (Properties.App.Default.FirstStart && !Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation && !File.Exists(Runtime.ConnectionsService.GetStartupConnectionFileName()))
Runtime.ConnectionsService.NewConnectionsFile(Runtime.ConnectionsService.GetStartupConnectionFileName());
if (Settings.Default.FirstStart && !Settings.Default.LoadConsFromCustomLocation &&
!File.Exists(Runtime.ConnectionsService.GetStartupConnectionFileName()))
Runtime.ConnectionsService.NewConnectionsFile(Runtime.ConnectionsService
.GetStartupConnectionFileName());
Runtime.LoadConnections();
}

View File

@@ -27,10 +27,10 @@ namespace mRemoteNG.App
private void Initialize()
{
XmlConfigurator.Configure(LogManager.CreateRepository("mRemoteNG"));
if (string.IsNullOrEmpty(Properties.OptionsNotificationsPage.Default.LogFilePath))
Properties.OptionsNotificationsPage.Default.LogFilePath = BuildLogFilePath();
if (string.IsNullOrEmpty(Settings.Default.LogFilePath))
Settings.Default.LogFilePath = BuildLogFilePath();
SetLogPath(Properties.OptionsNotificationsPage.Default.LogToApplicationDirectory ? DefaultLogPath : Properties.OptionsNotificationsPage.Default.LogFilePath);
SetLogPath(Settings.Default.LogToApplicationDirectory ? DefaultLogPath : Settings.Default.LogFilePath);
}
public void SetLogPath(string path)

View File

@@ -1,8 +1,6 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.Threading;
using System.Windows;
using System.Windows.Forms;
using mRemoteNG.Properties;
using mRemoteNG.UI.Forms;
@@ -19,7 +17,7 @@ namespace mRemoteNG.App
[STAThread]
public static void Main(string[] args)
{
if (Properties.OptionsStartupExitPage.Default.SingleInstance)
if (Settings.Default.SingleInstance)
StartApplicationAsSingleInstance();
else
StartApplication();
@@ -28,23 +26,11 @@ namespace mRemoteNG.App
private static void StartApplication()
{
CatchAllUnhandledExceptions();
System.Windows.Forms.Application.EnableVisualStyles();
System.Windows.Forms.Application.SetCompatibleTextRenderingDefault(false);
var frmSplashScreen = FrmSplashScreenNew.GetInstance();
Screen targetScreen = (Screen.AllScreens.Length > 1) ? Screen.AllScreens[1] : Screen.AllScreens[0];
Rectangle viewport = targetScreen.WorkingArea;
frmSplashScreen.Top = viewport.Top;
frmSplashScreen.Left = viewport.Left;
// normaly it should be screens[1] however due DPI apply 1 size "same" as default with 100%
frmSplashScreen.Left = viewport.Left + (targetScreen.Bounds.Size.Width / 2) - (frmSplashScreen.Width / 2);
frmSplashScreen.Top = viewport.Top + (targetScreen.Bounds.Size.Height / 2) - (frmSplashScreen.Height / 2);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
var frmSplashScreen = FrmSplashScreen.getInstance();
frmSplashScreen.Show();
System.Windows.Forms.Application.Run(FrmMain.Default);
Application.Run(FrmMain.Default);
}
public static void CloseSingletonInstanceMutex()
@@ -92,15 +78,15 @@ namespace mRemoteNG.App
private static void CatchAllUnhandledExceptions()
{
System.Windows.Forms.Application.ThreadException += ApplicationOnThreadException;
System.Windows.Forms.Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
Application.ThreadException += ApplicationOnThreadException;
Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
}
private static void ApplicationOnThreadException(object sender, ThreadExceptionEventArgs e)
{
// if (PresentationSource.FromVisual(FrmSplashScreenNew))
FrmSplashScreenNew.GetInstance().Close();
if (!FrmSplashScreen.getInstance().IsDisposed)
FrmSplashScreen.getInstance().Close();
if (FrmMain.Default.IsDisposed) return;
@@ -111,9 +97,8 @@ namespace mRemoteNG.App
private static void CurrentDomainOnUnhandledException(object sender, UnhandledExceptionEventArgs e)
{
//TODO: Check if splash closed properly
//if (!FrmSplashScreenNew.GetInstance().IsDisposed)
// FrmSplashScreenNew.GetInstance().Close();
if (!FrmSplashScreen.getInstance().IsDisposed)
FrmSplashScreen.getInstance().Close();
var window = new FrmUnhandledException(e.ExceptionObject as Exception, e.IsTerminating);
window.ShowDialog(FrmMain.Default);

View File

@@ -91,17 +91,17 @@ namespace mRemoteNG.App
return;
connectionFileName = loadDialog.FileName;
Properties.OptionsDBsPage.Default.UseSQLServer = false;
Properties.OptionsDBsPage.Default.Save();
Settings.Default.UseSQLServer = false;
Settings.Default.Save();
}
else if (!Properties.OptionsDBsPage.Default.UseSQLServer)
else if (!Settings.Default.UseSQLServer)
{
connectionFileName = ConnectionsService.GetStartupConnectionFileName();
}
ConnectionsService.LoadConnections(Properties.OptionsDBsPage.Default.UseSQLServer, false, connectionFileName);
ConnectionsService.LoadConnections(Settings.Default.UseSQLServer, false, connectionFileName);
if (Properties.OptionsDBsPage.Default.UseSQLServer)
if (Settings.Default.UseSQLServer)
{
ConnectionsService.LastSqlUpdate = DateTime.Now;
}
@@ -115,20 +115,26 @@ namespace mRemoteNG.App
}
catch (Exception ex)
{
FrmSplashScreenNew.GetInstance().Close();
FrmSplashScreen.getInstance().Close();
if (Properties.OptionsDBsPage.Default.UseSQLServer)
if (Settings.Default.UseSQLServer)
{
MessageCollector.AddExceptionMessage(Language.LoadFromSqlFailed, ex);
var commandButtons = string.Join("|", Language._TryAgain, Language.CommandOpenConnectionFile, string.Format(Language.CommandExitProgram, Application.ProductName));
CTaskDialog.ShowCommandBox(Application.ProductName, Language.LoadFromSqlFailed, Language.LoadFromSqlFailedContent, MiscTools.GetExceptionMessageRecursive(ex), "", "", commandButtons, false, ESysIcons.Error, ESysIcons.Error);
var commandButtons = string.Join("|", Language._TryAgain,
Language.CommandOpenConnectionFile,
string.Format(Language.CommandExitProgram,
Application.ProductName));
CTaskDialog.ShowCommandBox(Application.ProductName, Language.LoadFromSqlFailed,
Language.LoadFromSqlFailedContent,
MiscTools.GetExceptionMessageRecursive(ex), "", "",
commandButtons, false, ESysIcons.Error, ESysIcons.Error);
switch (CTaskDialog.CommandButtonResult)
{
case 0:
LoadConnections(withDialog);
return;
case 1:
Properties.OptionsDBsPage.Default.UseSQLServer = false;
Settings.Default.UseSQLServer = false;
LoadConnections(true);
return;
default:
@@ -157,7 +163,14 @@ namespace mRemoteNG.App
{
try
{
CTaskDialog.ShowTaskDialogBox(GeneralAppInfo.ProductName, Language.ConnectionFileNotFound, "", "", "", "", "", string.Join(" | ", commandButtons), ETaskDialogButtons.None, ESysIcons.Question, ESysIcons.Question);
CTaskDialog.ShowTaskDialogBox(
GeneralAppInfo.ProductName,
Language.ConnectionFileNotFound,
"", "", "", "", "",
string.Join(" | ", commandButtons),
ETaskDialogButtons.None,
ESysIcons.Question,
ESysIcons.Question);
switch (CTaskDialog.CommandButtonResult)
{
@@ -182,7 +195,11 @@ namespace mRemoteNG.App
}
catch (Exception exc)
{
MessageCollector.AddExceptionMessage(string.Format(Language.ConnectionsFileCouldNotBeLoadedNew, connectionFileName), exc, MessageClass.InformationMsg);
MessageCollector.AddExceptionMessage(
string
.Format(Language.ConnectionsFileCouldNotBeLoadedNew,
connectionFileName), exc,
MessageClass.InformationMsg);
}
}
@@ -198,7 +215,12 @@ namespace mRemoteNG.App
}
else
{
MessageBox.Show(FrmMain.Default, string.Format(Language.ErrorStartupConnectionFileLoad, Environment.NewLine, Application.ProductName, ConnectionsService.GetStartupConnectionFileName(), MiscTools.GetExceptionMessageRecursive(ex)), @"Could not load startup file.", MessageBoxButtons.OK, MessageBoxIcon.Error);
MessageBox.Show(FrmMain.Default,
string.Format(Language.ErrorStartupConnectionFileLoad, Environment.NewLine,
Application.ProductName,
ConnectionsService.GetStartupConnectionFileName(),
MiscTools.GetExceptionMessageRecursive(ex)),
@"Could not load startup file.", MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
}

View File

@@ -66,14 +66,14 @@ namespace mRemoteNG.App
DateTime currentDate = DateTime.Now;
//OBSOLETE: Settings.Default.SaveConsOnExit is obsolete and should be removed in a future release
if (Properties.OptionsStartupExitPage.Default.SaveConnectionsOnExit || (Properties.OptionsBackupPage.Default.SaveConnectionsFrequency == (int)ConnectionsBackupFrequencyEnum.OnExit))
if (Settings.Default.SaveConsOnExit || (Settings.Default.SaveConnectionsFrequency == (int)ConnectionsBackupFrequencyEnum.OnExit))
{
Runtime.ConnectionsService.SaveConnections();
return;
}
lastUpdate = Runtime.ConnectionsService.UsingDatabase ? Runtime.ConnectionsService.LastSqlUpdate : Runtime.ConnectionsService.LastFileUpdate;
switch (Properties.OptionsBackupPage.Default.SaveConnectionsFrequency)
switch (Settings.Default.SaveConnectionsFrequency)
{
case (int)ConnectionsBackupFrequencyEnum.Daily:
updateDate = lastUpdate.AddDays(1);

View File

@@ -38,7 +38,8 @@ namespace mRemoteNG.App
public void InitializeProgram(MessageCollector messageCollector)
{
Debug.Print("---------------------------" + Environment.NewLine + "[START] - " + Convert.ToString(DateTime.Now, CultureInfo.InvariantCulture));
Debug.Print("---------------------------" + Environment.NewLine + "[START] - " +
Convert.ToString(DateTime.Now, CultureInfo.InvariantCulture));
var startupLogger = new StartupDataLogger(messageCollector);
startupLogger.LogStartupData();
CompatibilityChecker.CheckCompatibility(messageCollector);
@@ -58,9 +59,10 @@ namespace mRemoteNG.App
public void CreateConnectionsProvider(MessageCollector messageCollector)
{
messageCollector.AddMessage(MessageClass.DebugMsg, "Determining if we need a database syncronizer");
if (!Properties.OptionsDBsPage.Default.UseSQLServer) return;
if (!Settings.Default.UseSQLServer) return;
messageCollector.AddMessage(MessageClass.DebugMsg, "Creating database syncronizer");
Runtime.ConnectionsService.RemoteConnectionsSyncronizer = new RemoteConnectionsSyncronizer(new SqlConnectionsUpdateChecker());
Runtime.ConnectionsService.RemoteConnectionsSyncronizer =
new RemoteConnectionsSyncronizer(new SqlConnectionsUpdateChecker());
Runtime.ConnectionsService.RemoteConnectionsSyncronizer.Enable();
}
@@ -76,8 +78,12 @@ namespace mRemoteNG.App
}
var nextUpdateCheck =
Convert.ToDateTime(Properties.OptionsUpdatesPage.Default.CheckForUpdatesLastCheck.Add(TimeSpan.FromDays(Convert.ToDouble(Properties.OptionsUpdatesPage.Default.CheckForUpdatesFrequencyDays))));
if (!Properties.OptionsUpdatesPage.Default.UpdatePending && DateTime.UtcNow < nextUpdateCheck)
Convert.ToDateTime(Settings.Default.CheckForUpdatesLastCheck.Add(
TimeSpan
.FromDays(Convert.ToDouble(Settings
.Default
.CheckForUpdatesFrequencyDays))));
if (!Settings.Default.UpdatePending && DateTime.UtcNow < nextUpdateCheck)
{
return;
}

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.Globalization;
@@ -22,7 +22,7 @@ namespace mRemoteNG.App
private SupportedCultures()
{
foreach (var CultureName in Properties.AppUI.Default.SupportedUICultures.Split(','))
foreach (var CultureName in Settings.Default.SupportedUICultures.Split(','))
{
try
{

View File

@@ -58,18 +58,23 @@ namespace mRemoteNG.App.Update
private void SetDefaultProxySettings()
{
var shouldWeUseProxy = Properties.OptionsUpdatesPage.Default.UpdateUseProxy;
var proxyAddress = Properties.OptionsUpdatesPage.Default.UpdateProxyAddress;
var port = Properties.OptionsUpdatesPage.Default.UpdateProxyPort;
var useAuthentication = Properties.OptionsUpdatesPage.Default.UpdateProxyUseAuthentication;
var username = Properties.OptionsUpdatesPage.Default.UpdateProxyAuthUser;
var shouldWeUseProxy = Settings.Default.UpdateUseProxy;
var proxyAddress = Settings.Default.UpdateProxyAddress;
var port = Settings.Default.UpdateProxyPort;
var useAuthentication = Settings.Default.UpdateProxyUseAuthentication;
var username = Settings.Default.UpdateProxyAuthUser;
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
var password = cryptographyProvider.Decrypt(Properties.OptionsUpdatesPage.Default.UpdateProxyAuthPass, Runtime.EncryptionKey);
var password = cryptographyProvider.Decrypt(Settings.Default.UpdateProxyAuthPass, Runtime.EncryptionKey);
SetProxySettings(shouldWeUseProxy, proxyAddress, port, useAuthentication, username, password);
}
public void SetProxySettings(bool useProxy, string address, int port, bool useAuthentication, string username, string password)
public void SetProxySettings(bool useProxy,
string address,
int port,
bool useAuthentication,
string username,
string password)
{
if (useProxy && !string.IsNullOrEmpty(address))
{
@@ -224,11 +229,11 @@ namespace mRemoteNG.App.Update
_getUpdateInfoCancelToken = new CancellationTokenSource();
var updateInfo = await _httpClient.GetStringAsync(UpdateChannelInfo.GetUpdateChannelInfo(), _getUpdateInfoCancelToken.Token);
CurrentUpdateInfo = UpdateInfo.FromString(updateInfo);
Properties.OptionsUpdatesPage.Default.CheckForUpdatesLastCheck = DateTime.UtcNow;
Settings.Default.CheckForUpdatesLastCheck = DateTime.UtcNow;
if (!Properties.OptionsUpdatesPage.Default.UpdatePending)
if (!Settings.Default.UpdatePending)
{
Properties.OptionsUpdatesPage.Default.UpdatePending = IsUpdateAvailable();
Settings.Default.UpdatePending = IsUpdateAvailable();
}
}
finally

View File

@@ -1,9 +0,0 @@
namespace mRemoteNG.Config.ACL
{
public enum ACLPermissions
{
Hidden = 0,
ReadOnly = 1,
WriteAllow = 2
}
}

View File

@@ -20,7 +20,8 @@ namespace mRemoteNG.Config.Connections
connectionsService.ConnectionsLoaded += ConnectionsServiceOnConnectionsLoaded;
}
private void ConnectionsServiceOnConnectionsLoaded(object sender, ConnectionsLoadedEventArgs connectionsLoadedEventArgs)
private void ConnectionsServiceOnConnectionsLoaded(object sender,
ConnectionsLoadedEventArgs connectionsLoadedEventArgs)
{
connectionsLoadedEventArgs.NewConnectionTreeModel.CollectionChanged +=
ConnectionTreeModelOnCollectionChanged;
@@ -33,12 +34,15 @@ namespace mRemoteNG.Config.Connections
}
}
private void ConnectionTreeModelOnPropertyChanged(object sender, PropertyChangedEventArgs propertyChangedEventArgs)
private void ConnectionTreeModelOnPropertyChanged(object sender,
PropertyChangedEventArgs propertyChangedEventArgs)
{
SaveConnectionOnEdit(propertyChangedEventArgs.PropertyName);
}
private void ConnectionTreeModelOnCollectionChanged(object sender, NotifyCollectionChangedEventArgs notifyCollectionChangedEventArgs)
private void ConnectionTreeModelOnCollectionChanged(object sender,
NotifyCollectionChangedEventArgs
notifyCollectionChangedEventArgs)
{
SaveConnectionOnEdit();
}
@@ -46,7 +50,7 @@ namespace mRemoteNG.Config.Connections
private void SaveConnectionOnEdit(string propertyName = "")
{
//OBSOLETE: mRemoteNG.Settings.Default.SaveConnectionsAfterEveryEdit is obsolete and should be removed in a future release
if (Properties.OptionsBackupPage.Default.SaveConnectionsAfterEveryEdit || (Properties.OptionsBackupPage.Default.SaveConnectionsFrequency == (int)ConnectionsBackupFrequencyEnum.OnEdit))
if (mRemoteNG.Properties.Settings.Default.SaveConnectionsAfterEveryEdit || (mRemoteNG.Properties.Settings.Default.SaveConnectionsFrequency == (int)ConnectionsBackupFrequencyEnum.OnEdit))
{
if (FrmMain.Default.IsClosing)
return;

View File

@@ -18,7 +18,6 @@ using mRemoteNG.Tools;
using mRemoteNG.Tree;
using mRemoteNG.Tree.Root;
using mRemoteNG.Resources.Language;
using mRemoteNG.Properties;
namespace mRemoteNG.Config.Connections
{
@@ -28,7 +27,10 @@ namespace mRemoteNG.Config.Connections
private readonly ISerializer<IEnumerable<LocalConnectionPropertiesModel>, string> _localPropertiesSerializer;
private readonly IDataProvider<string> _dataProvider;
public SqlConnectionsSaver(SaveFilter saveFilter, ISerializer<IEnumerable<LocalConnectionPropertiesModel>, string> localPropertieSerializer, IDataProvider<string> localPropertiesDataProvider)
public SqlConnectionsSaver(SaveFilter saveFilter,
ISerializer<IEnumerable<LocalConnectionPropertiesModel>, string>
localPropertieSerializer,
IDataProvider<string> localPropertiesDataProvider)
{
if (saveFilter == null)
throw new ArgumentNullException(nameof(saveFilter));
@@ -45,13 +47,15 @@ namespace mRemoteNG.Config.Connections
if (PropertyIsLocalOnly(propertyNameTrigger))
{
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, $"Property {propertyNameTrigger} is local only. Not saving to database.");
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg,
$"Property {propertyNameTrigger} is local only. Not saving to database.");
return;
}
if (SqlUserIsReadOnly())
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Trying to save connection tree but the SQL read only checkbox is checked, aborting!");
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
"Trying to save connection tree but the SQL read only checkbox is checked, aborting!");
return;
}
@@ -64,7 +68,8 @@ namespace mRemoteNG.Config.Connections
if (!databaseVersionVerifier.VerifyDatabaseVersion(metaData.ConfVersion))
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ErrorConnectionListSaveFailed);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
Language.ErrorConnectionListSaveFailed);
return;
}
@@ -173,7 +178,7 @@ namespace mRemoteNG.Config.Connections
private bool SqlUserIsReadOnly()
{
return Properties.OptionsDBsPage.Default.SQLReadOnly;
return Properties.Settings.Default.SQLReadOnly;
}
}
}

View File

@@ -7,7 +7,6 @@ using mRemoteNG.Security;
using mRemoteNG.Security.Factories;
using mRemoteNG.Tree;
using mRemoteNG.Tree.Root;
using mRemoteNG.Properties;
namespace mRemoteNG.Config.Connections
{
@@ -38,7 +37,7 @@ namespace mRemoteNG.Config.Connections
cryptographyProvider,
connectionTreeModel,
_saveFilter,
Properties.OptionsSecurityPage.Default.EncryptCompleteConnectionsFile);
Properties.Settings.Default.EncryptCompleteConnectionsFile);
var rootNode = connectionTreeModel.RootNodes.OfType<RootNodeInfo>().First();
var xml = xmlConnectionsSerializer.Serialize(rootNode);

View File

@@ -16,7 +16,7 @@ namespace mRemoteNG.Config.DataProviders
return;
var backupFileName =
string.Format(Properties.OptionsBackupPage.Default.BackupFileNameFormat, fileName, DateTime.Now);
string.Format(Properties.Settings.Default.BackupFileNameFormat, fileName, DateTime.Now);
File.Copy(fileName, backupFileName);
}
catch (Exception ex)
@@ -39,7 +39,7 @@ namespace mRemoteNG.Config.DataProviders
private bool FeatureIsTurnedOff()
{
return Properties.OptionsBackupPage.Default.BackupFileKeepCount == 0;
return Properties.Settings.Default.BackupFileKeepCount == 0;
}
}
}

View File

@@ -13,7 +13,7 @@ namespace mRemoteNG.Config.DataProviders
if (string.IsNullOrEmpty(fileName) || string.IsNullOrEmpty(directoryName))
return;
var searchPattern = string.Format(Properties.OptionsBackupPage.Default.BackupFileNameFormat, fileName, "*");
var searchPattern = string.Format(Properties.Settings.Default.BackupFileNameFormat, fileName, "*");
var files = Directory.GetFiles(directoryName, searchPattern);
if (files.Length <= maxBackupsToKeep)

View File

@@ -2,7 +2,6 @@
using mRemoteNG.Config.DatabaseConnectors;
using mRemoteNG.Messages;
using mRemoteNG.App;
using mRemoteNG.Properties;
using MySql.Data.MySqlClient;
using System.Data.SqlClient;
@@ -109,7 +108,7 @@ namespace mRemoteNG.Config.DataProviders
private bool DbUserIsReadOnly()
{
return Properties.OptionsDBsPage.Default.SQLReadOnly;
return Properties.Settings.Default.SQLReadOnly;
}
}
}

View File

@@ -1,5 +1,4 @@
using mRemoteNG.App;
using mRemoteNG.Properties;
using mRemoteNG.Security.SymmetricEncryption;
namespace mRemoteNG.Config.DatabaseConnectors
@@ -8,12 +7,12 @@ namespace mRemoteNG.Config.DatabaseConnectors
{
public static IDatabaseConnector DatabaseConnectorFromSettings()
{
var sqlType = Properties.OptionsDBsPage.Default.SQLServerType;
var sqlHost = Properties.OptionsDBsPage.Default.SQLHost;
var sqlCatalog = Properties.OptionsDBsPage.Default.SQLDatabaseName;
var sqlUsername = Properties.OptionsDBsPage.Default.SQLUser;
var sqlType = Properties.Settings.Default.SQLServerType;
var sqlHost = Properties.Settings.Default.SQLHost;
var sqlCatalog = Properties.Settings.Default.SQLDatabaseName;
var sqlUsername = Properties.Settings.Default.SQLUser;
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
var sqlPassword = cryptographyProvider.Decrypt(Properties.OptionsDBsPage.Default.SQLPass, Runtime.EncryptionKey);
var sqlPassword = cryptographyProvider.Decrypt(Properties.Settings.Default.SQLPass, Runtime.EncryptionKey);
return DatabaseConnector(sqlType, sqlHost, sqlCatalog, sqlUsername, sqlPassword);
}

View File

@@ -1,47 +0,0 @@
#region
using System.IO;
using Castle.Core.Internal;
using mRemoteNG.App;
using mRemoteNG.Config.DataProviders;
using mRemoteNG.Config.Serializers.ConnectionSerializers.Csv.RemoteDesktopManager;
using mRemoteNG.Container;
using mRemoteNG.Messages;
#endregion
namespace mRemoteNG.Config.Import;
public class RemoteDesktopManagerImporter : IConnectionImporter<string>
{
public void Import(string filePath, ContainerInfo destinationContainer)
{
if (string.IsNullOrEmpty(filePath))
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "Unable to import file. File path is null.");
return;
}
if (!File.Exists(filePath))
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
$"Unable to import file. File does not exist. Path: {filePath}");
var dataProvider = new FileDataProvider(filePath);
var csvString = dataProvider.Load();
if (string.IsNullOrEmpty(csvString))
{
var csvDeserializer = new CsvConnectionsDeserializerRdmFormat();
var connectionTreeModel = csvDeserializer.Deserialize(csvString);
var rootContainer = new ContainerInfo { Name = Path.GetFileNameWithoutExtension(filePath) };
rootContainer.AddChildRange(connectionTreeModel.RootNodes);
destinationContainer.AddChild(rootContainer);
}
else
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "Unable to import file. File is empty.");
return;
}
}
}

View File

@@ -226,18 +226,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
connectionRecord.UseCredSsp = value;
}
if (headers.Contains("UseRestrictedAdmin"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("UseRestrictedAdmin")], out bool value))
connectionRecord.UseRestrictedAdmin = value;
}
if (headers.Contains("UseRCG"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("UseRCG")], out bool value))
connectionRecord.UseRCG = value;
}
if (headers.Contains("UseVmId"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("UseVmId")], out bool value))
@@ -648,19 +636,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
connectionRecord.Inheritance.UseCredSsp = value;
}
if (headers.Contains("InheritUseRestrictedAdmin"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseRestrictedAdmin")], out bool value))
connectionRecord.Inheritance.UseRestrictedAdmin = value;
}
if (headers.Contains("InheritUseRCG"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseRCG")], out bool value))
connectionRecord.Inheritance.UseRCG = value;
}
if (headers.Contains("InheritUseVmId"))
{
if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseVmId")], out bool value))

View File

@@ -56,7 +56,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
if (_saveFilter.SaveDomain)
sb.Append("Domain;");
sb.Append("Hostname;Port;VmId;Protocol;SSHTunnelConnectionName;OpeningCommand;SSHOptions;PuttySession;ConnectToConsole;UseCredSsp;UseRestrictedAdmin;UseRCG;UseVmId;UseEnhancedMode;RenderingEngine;RDPAuthenticationLevel;" +
sb.Append("Hostname;Port;VmId;Protocol;SSHTunnelConnectionName;OpeningCommand;SSHOptions;PuttySession;ConnectToConsole;UseCredSsp;UseVmId;UseEnhancedMode;RenderingEngine;RDPAuthenticationLevel;" +
"LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;DisableFullWindowDrag;DisableMenuAnimations;DisableCursorShadow;DisableCursorBlinking;" +
"CacheBitmaps;RedirectDiskDrives;RedirectPorts;RedirectPrinters;RedirectClipboard;RedirectSmartCards;RedirectSound;RedirectKeys;" +
"PreExtApp;PostExtApp;MacAddress;UserField;ExtApp;Favorite;VNCCompression;VNCEncoding;VNCAuthMode;VNCProxyType;VNCProxyIP;" +
@@ -68,7 +68,7 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
"InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDisableFullWindowDrag;InheritDisableMenuAnimations;InheritDisableCursorShadow;InheritDisableCursorBlinking;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;" +
"InheritProtocol;InheritSSHTunnelConnectionName;InheritOpeningCommand;InheritSSHOptions;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;" +
"InheritRedirectClipboard;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritAutomaticResize;" +
"InheritUseConsoleSession;InheritUseCredSsp;InheritUseRestrictedAdmin;InheritUseRCG;InheritUseVmId;InheritUseEnhancedMode;InheritVmId;InheritRenderingEngine;InheritUsername;" +
"InheritUseConsoleSession;InheritUseCredSsp;InheritUseVmId;InheritUseEnhancedMode;InheritVmId;InheritRenderingEngine;InheritUsername;" +
"InheritRDPAuthenticationLevel;InheritLoadBalanceInfo;InheritPreExtApp;InheritPostExtApp;InheritMacAddress;InheritUserField;" +
"InheritFavorite;InheritExtApp;InheritVNCCompression;InheritVNCEncoding;InheritVNCAuthMode;InheritVNCProxyType;InheritVNCProxyIP;" +
"InheritVNCProxyPort;InheritVNCProxyUsername;InheritVNCProxyPassword;InheritVNCColors;InheritVNCSmartSizeMode;InheritVNCViewOnly;" +
@@ -125,8 +125,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
.Append(FormatForCsv(con.PuttySession))
.Append(FormatForCsv(con.UseConsoleSession))
.Append(FormatForCsv(con.UseCredSsp))
.Append(FormatForCsv(con.UseRestrictedAdmin))
.Append(FormatForCsv(con.UseRCG))
.Append(FormatForCsv(con.UseVmId))
.Append(FormatForCsv(con.UseEnhancedMode))
.Append(FormatForCsv(con.RenderingEngine))
@@ -218,8 +216,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv
.Append(FormatForCsv(con.Inheritance.AutomaticResize))
.Append(FormatForCsv(con.Inheritance.UseConsoleSession))
.Append(FormatForCsv(con.Inheritance.UseCredSsp))
.Append(FormatForCsv(con.Inheritance.UseRestrictedAdmin))
.Append(FormatForCsv(con.Inheritance.UseRCG))
.Append(FormatForCsv(con.Inheritance.UseVmId))
.Append(FormatForCsv(con.Inheritance.UseEnhancedMode))
.Append(FormatForCsv(con.Inheritance.VmId))

View File

@@ -1,226 +0,0 @@
#region
using System;
using System.Collections.Generic;
using System.Linq;
using mRemoteNG.Connection;
using mRemoteNG.Connection.Protocol;
using mRemoteNG.Container;
using mRemoteNG.Tree;
#endregion
namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv.RemoteDesktopManager;
/// <summary>
/// Import of connections from the Remote Desktop Manager (RDM) in a CSV file format
/// </summary>
public partial class CsvConnectionsDeserializerRdmFormat : IDeserializer<string, ConnectionTreeModel>
{
private readonly List<RemoteDesktopManagerConnectionInfo> _connectionTypes;
private readonly HashSet<string> _groups;
public CsvConnectionsDeserializerRdmFormat()
{
_connectionTypes = new List<RemoteDesktopManagerConnectionInfo>
{
new(ProtocolType.RDP, "RDP (Microsoft Remote Desktop)", 3389, "Remote Desktop"),
new(ProtocolType.SSH2, "SSH Shell", 22, "SSH")
};
_groups = new HashSet<string>();
Containers = new List<ContainerInfo>();
}
private List<ContainerInfo> Containers { get; }
/// <summary>
/// Deserializes the CSV file into a <see cref="ConnectionTreeModel" />
/// </summary>
/// <param name="serializedData">Data from the CSV file</param>
/// <returns></returns>
public ConnectionTreeModel Deserialize(string serializedData)
{
var lines = serializedData.Split(new[] { "\r\n", "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
var csvHeaders = new List<string>();
var connections = new List<(ConnectionInfo, string)>(); // (ConnectionInfo, group)
for (var lineNumber = 0; lineNumber < lines.Length; lineNumber++)
{
var line = lines[lineNumber].Split(',');
if (lineNumber == 0)
{
csvHeaders = line.ToList();
}
else
{
var (connectionInfo, group) = ParseConnectionInfo(csvHeaders, line);
if (connectionInfo == default) continue;
connections.Add((connectionInfo, group));
}
}
var connectionTreeModel = new ConnectionTreeModel();
var unsortedConnections = new ContainerInfo { Name = "Unsorted" };
foreach (var containerInfo in Containers) connectionTreeModel.AddRootNode(containerInfo);
var allChildren = Containers.SelectMany(x => x.GetRecursiveChildList().Select(y => (ContainerInfo)y)).ToList();
foreach (var (connection, path) in connections)
if (string.IsNullOrEmpty(path))
{
unsortedConnections.AddChild(connection);
}
else
{
var container = allChildren.FirstOrDefault(x => x.ConstantID == path);
if (container == default) continue;
container.AddChild(connection);
}
if (unsortedConnections.HasChildren())
connectionTreeModel.AddRootNode(unsortedConnections);
return connectionTreeModel;
}
/// <summary>
/// Parses a line from the CSV file and returns <see cref="ConnectionInfo" />
/// </summary>
/// <param name="headers">CSV Headers</param>
/// <param name="connectionCsv">CSV Columns</param>
/// <returns></returns>
private (ConnectionInfo connectionInfo, string) ParseConnectionInfo(IList<string> headers, IReadOnlyList<string> connectionCsv)
{
if (headers.Count != connectionCsv.Count) return default;
var hostString = connectionCsv[headers.IndexOf("Host")].Trim();
if (string.IsNullOrEmpty(hostString)) return default;
var hostType = Uri.CheckHostName(hostString);
if (hostType == UriHostNameType.Unknown) return default;
var connectionTypeString = connectionCsv[headers.IndexOf("ConnectionType")];
if (string.IsNullOrEmpty(connectionTypeString)) return default;
var connectionType = _connectionTypes.FirstOrDefault(x => x.Name == connectionTypeString);
if (connectionType == default) return default;
var portString = connectionCsv[headers.IndexOf("Port")] ?? connectionType.Port.ToString();
if (!int.TryParse(portString, out var port)) port = connectionType.Port;
var name = connectionCsv[headers.IndexOf("Name")];
var description = connectionCsv[headers.IndexOf("Description")];
var group = connectionCsv[headers.IndexOf("Group")];
var username = connectionCsv[headers.IndexOf("CredentialUserName")];
var domain = connectionCsv[headers.IndexOf("CredentialDomain")];
var password = connectionCsv[headers.IndexOf("CredentialPassword")];
var connectionInfo = new ConnectionInfo(Guid.NewGuid().ToString())
{
Name = name,
Hostname = hostString,
Port = port,
Username = username,
Password = password,
Domain = domain,
Icon = connectionType.IconName ?? "mRemoteNG",
Description = description,
Protocol = connectionType.Protocol
};
if (!string.IsNullOrEmpty(group))
if (group.Contains('\\'))
{
var groupParts = group.Split('\\').ToList();
var parentContainerName = groupParts[0];
var parentContainer = Containers.FirstOrDefault(x => x.Name == parentContainerName);
if (parentContainer == default)
{
parentContainer = new ContainerInfo(group) { Name = parentContainerName };
Containers.Add(parentContainer);
}
groupParts.RemoveAt(0);
AddChildrenRecursive(group, groupParts, parentContainer);
}
return string.IsNullOrEmpty(group) ? (connectionInfo, default) : (connectionInfo, group);
}
/// <summary>
/// Adds a child to a container recursively
/// </summary>
/// <param name="group">Full path of the RDM Grouping</param>
/// <param name="groupParts">Segements of the group path</param>
/// <param name="parentContainer">Parent container to add children to</param>
private void AddChildrenRecursive(string group, IList<string> groupParts, ContainerInfo parentContainer)
{
if (_groups.Contains(group)) return;
var groupCount = groupParts.Count;
while (groupCount > 0)
{
var childName = groupParts[0];
var newContainer = new ContainerInfo(group) { Name = childName };
var childrenNames = parentContainer.GetRecursiveChildList().Select(x => x.Name).ToList();
if (!childrenNames.Any())
{
groupCount = AddChild(parentContainer, newContainer, groupCount);
_groups.Add(group);
continue;
}
if (groupParts.Count > 1)
{
var childContainer = (ContainerInfo)parentContainer.Children.FirstOrDefault(x => x.Name == childName);
if (childContainer == default)
{
groupCount = AddChild(parentContainer, newContainer, groupCount);
continue;
}
AddChildrenRecursive(group, groupParts.Skip(1).ToList(), childContainer);
}
else
{
parentContainer.AddChild(newContainer);
_groups.Add(group);
}
groupCount--;
}
}
/// <summary>
/// Adds a child to a container and returns the remaining group count
/// </summary>
/// <param name="parentContainer">Parent container</param>
/// <param name="newContainer">New child container</param>
/// <param name="groupCount">Remaining group count</param>
/// <returns></returns>
private static int AddChild(ContainerInfo parentContainer, ContainerInfo newContainer, int groupCount)
{
parentContainer.AddChild(newContainer);
groupCount--;
return groupCount;
}
}
/// <summary>
/// Record of supported connection types
/// </summary>
/// <param name="Protocol">Procotol</param>
/// <param name="Name">Display Name</param>
/// <param name="Port">Default Port</param>
/// <param name="IconName">Icon Name</param>
internal sealed record RemoteDesktopManagerConnectionInfo(ProtocolType Protocol, string Name, int Port, string IconName);

View File

@@ -1,18 +0,0 @@
#region
using System;
using mRemoteNG.Connection;
#endregion
namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Csv.RemoteDesktopManager;
public partial class CsvConnectionsDeserializerRdmFormat : ISerializer<ConnectionInfo, string>
{
public string Serialize(ConnectionInfo model)
{
throw new NotImplementedException();
}
public Version Version { get; }
}

View File

@@ -97,8 +97,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
connectionInfo.Port = (int)dataRow["Port"];
connectionInfo.UseConsoleSession = (bool)dataRow["ConnectToConsole"];
connectionInfo.UseCredSsp = (bool)dataRow["UseCredSsp"];
connectionInfo.UseRestrictedAdmin = (bool)dataRow["UseRestrictedAdmin"];
connectionInfo.UseRCG = (bool)dataRow["UseRCG"];
connectionInfo.UseVmId = (bool)dataRow["UseVmId"];
connectionInfo.RenderingEngine = (HTTPBase.RenderingEngine)Enum.Parse(typeof(HTTPBase.RenderingEngine), (string)dataRow["RenderingEngine"]);
connectionInfo.RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse(typeof(AuthenticationLevel), (string)dataRow["RDPAuthenticationLevel"]);
@@ -190,8 +188,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
connectionInfo.Inheritance.AutomaticResize = (bool)dataRow["InheritAutomaticResize"];
connectionInfo.Inheritance.UseConsoleSession = (bool)dataRow["InheritUseConsoleSession"];
connectionInfo.Inheritance.UseCredSsp = (bool)dataRow["InheritUseCredSsp"];
connectionInfo.Inheritance.UseRestrictedAdmin = (bool)dataRow["InheritUseRestrictedAdmin"];
connectionInfo.Inheritance.UseRCG = (bool)dataRow["InheritUseRCG"];
connectionInfo.Inheritance.UseVmId = (bool)dataRow["InheritUseVmId"];
connectionInfo.Inheritance.UseEnhancedMode = (bool)dataRow["InheritUseEnhancedMode"];
connectionInfo.Inheritance.VmId = (bool)dataRow["InheritVmId"];

View File

@@ -116,8 +116,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataTable.Columns.Add("PuttySession", typeof(string));
dataTable.Columns.Add("ConnectToConsole", typeof(bool));
dataTable.Columns.Add("UseCredSsp", typeof(bool));
dataTable.Columns.Add("UseRestrictedAdmin", typeof(bool));
dataTable.Columns.Add("UseRCG", typeof(bool));
dataTable.Columns.Add("RenderingEngine", typeof(string));
dataTable.Columns.Add("RDPAuthenticationLevel", typeof(string));
dataTable.Columns.Add("Colors", typeof(string));
@@ -194,8 +192,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataTable.Columns.Add("InheritResolution", typeof(bool));
dataTable.Columns.Add("InheritUseConsoleSession", typeof(bool));
dataTable.Columns.Add("InheritUseCredSsp", typeof(bool));
dataTable.Columns.Add("InheritUseRestrictedAdmin", typeof(bool));
dataTable.Columns.Add("InheritUseRCG", typeof(bool));
dataTable.Columns.Add("InheritRenderingEngine", typeof(bool));
dataTable.Columns.Add("InheritRDPAuthenticationLevel", typeof(bool));
dataTable.Columns.Add("InheritUsername", typeof(bool));
@@ -289,10 +285,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
isFieldNotChange = isFieldNotChange &&
dataRow["UseCredSsp"].Equals(connectionInfo.UseCredSsp);
isFieldNotChange = isFieldNotChange &&
dataRow["UseRestrictedAdmin"].Equals(connectionInfo.UseRestrictedAdmin);
isFieldNotChange = isFieldNotChange &&
dataRow["UseRCG"].Equals(connectionInfo.UseRCG);
isFieldNotChange = isFieldNotChange &&
dataRow["UseVmId"].Equals(connectionInfo.UseVmId);
isFieldNotChange = isFieldNotChange &&
dataRow["UseEnhancedMode"].Equals(connectionInfo.UseEnhancedMode);
@@ -393,8 +385,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataRow["InheritAutomaticResize"].Equals(connectionInfo.Inheritance.AutomaticResize) &&
dataRow["InheritUseConsoleSession"].Equals(connectionInfo.Inheritance.UseConsoleSession) &&
dataRow["InheritUseCredSsp"].Equals(connectionInfo.Inheritance.UseCredSsp) &&
dataRow["InheritUseRestrictedAdmin"].Equals(connectionInfo.Inheritance.UseRestrictedAdmin) &&
dataRow["InheritUseRCG"].Equals(connectionInfo.Inheritance.UseRCG) &&
dataRow["InheritRenderingEngine"].Equals(connectionInfo.Inheritance.RenderingEngine) &&
dataRow["InheritUsername"].Equals(connectionInfo.Inheritance.Username) &&
dataRow["InheritVmId"].Equals(connectionInfo.Inheritance.VmId) &&
@@ -462,8 +452,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataRow["InheritAutomaticResize"].Equals(false) &&
dataRow["InheritUseConsoleSession"].Equals(false) &&
dataRow["InheritUseCredSsp"].Equals(false) &&
dataRow["InheritUseRestrictedAdmin"].Equals(false) &&
dataRow["InheritUseRCG"].Equals(false) &&
dataRow["InheritRenderingEngine"].Equals(false) &&
dataRow["InheritUsername"].Equals(false) &&
dataRow["InheritRDPAuthenticationLevel"].Equals(false) &&
@@ -546,8 +534,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataRow["Port"] = connectionInfo.Port;
dataRow["ConnectToConsole"] = connectionInfo.UseConsoleSession;
dataRow["UseCredSsp"] = connectionInfo.UseCredSsp;
dataRow["UseRestrictedAdmin"] = connectionInfo.UseRestrictedAdmin;
dataRow["UseRCG"] = connectionInfo.UseRCG;
dataRow["UseVmId"] = connectionInfo.UseVmId;
dataRow["UseEnhancedMode"] = connectionInfo.UseEnhancedMode;
dataRow["RenderingEngine"] = connectionInfo.RenderingEngine;
@@ -643,8 +629,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataRow["InheritAutomaticResize"] = connectionInfo.Inheritance.AutomaticResize;
dataRow["InheritUseConsoleSession"] = connectionInfo.Inheritance.UseConsoleSession;
dataRow["InheritUseCredSsp"] = connectionInfo.Inheritance.UseCredSsp;
dataRow["InheritUseRestrictedAdmin"] = connectionInfo.Inheritance.UseRestrictedAdmin;
dataRow["InheritUseRCG"] = connectionInfo.Inheritance.UseRCG;
dataRow["InheritRenderingEngine"] = connectionInfo.Inheritance.RenderingEngine;
dataRow["InheritUsername"] = connectionInfo.Inheritance.Username;
dataRow["InheritVmId"] = connectionInfo.Inheritance.VmId;
@@ -716,8 +700,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.MsSql
dataRow["InheritAutomaticResize"] = false;
dataRow["InheritUseConsoleSession"] = false;
dataRow["InheritUseCredSsp"] = false;
dataRow["InheritUseRestrictedAdmin"] = false;
dataRow["InheritUseRCG"] = false;
dataRow["InheritRenderingEngine"] = false;
dataRow["InheritUsername"] = false;
dataRow["InheritRDPAuthenticationLevel"] = false;

View File

@@ -151,9 +151,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
? new XAttribute("RDGatewayDomain", connectionInfo.RDGatewayDomain)
: new XAttribute("RDGatewayDomain", ""));
element.Add(new XAttribute("UseRCG", connectionInfo.UseRCG));
element.Add(new XAttribute("UseRestrictedAdmin", connectionInfo.UseRestrictedAdmin));
element.Add(new XAttribute("UserViaAPI", connectionInfo.UserViaAPI));
element.Add(new XAttribute("EC2InstanceId", connectionInfo.EC2InstanceId));
element.Add(new XAttribute("EC2Region", connectionInfo.EC2Region));
@@ -301,10 +298,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
element.Add(new XAttribute("InheritUseEnhancedMode", inheritance.UseEnhancedMode.ToString().ToLowerInvariant()));
if (inheritance.UserViaAPI)
element.Add(new XAttribute("InheritUserViaAPI", inheritance.UserViaAPI.ToString().ToLowerInvariant()));
if (inheritance.UseRCG)
element.Add(new XAttribute("InheritUseRCG", inheritance.UseRCG.ToString().ToLowerInvariant()));
if (inheritance.UseRestrictedAdmin)
element.Add(new XAttribute("InheritUseRestrictedAdmin", inheritance.UseRestrictedAdmin.ToString().ToLowerInvariant()));
}
}
}

View File

@@ -569,10 +569,6 @@ namespace mRemoteNG.Config.Serializers.ConnectionSerializers.Xml
connectionInfo.Inheritance.UserViaAPI = xmlnode.GetAttributeAsBool("InheritUserViaAPI");
connectionInfo.EC2InstanceId = xmlnode.GetAttributeAsString("EC2InstanceId");
connectionInfo.EC2Region = xmlnode.GetAttributeAsString("EC2Region");
connectionInfo.UseRestrictedAdmin = xmlnode.GetAttributeAsBool("UseRestrictedAdmin");
connectionInfo.Inheritance.UseRestrictedAdmin = xmlnode.GetAttributeAsBool("InheritUseRestrictedAdmin");
connectionInfo.UseRCG = xmlnode.GetAttributeAsBool("UseRCG");
connectionInfo.Inheritance.UseRCG = xmlnode.GetAttributeAsBool("InheritUseRCG");
}
}
catch (Exception ex)

View File

@@ -57,7 +57,7 @@ namespace mRemoteNG.Config.Serializers.MiscSerializers
if (versionAttribute != null)
{
var version = new Version(versionAttribute);
if (!(version == new Version(2, 7)) && !(version == new Version(2, 83)))
if (!(version == new Version(2, 7)))
{
throw new FileFormatException($"Unsupported file version ({version}).");
}
@@ -183,8 +183,8 @@ namespace mRemoteNG.Config.Serializers.MiscSerializers
{
if (bool.TryParse(connectionSettingsNode.SelectSingleNode("./connectToConsole")?.InnerText, out var useConsole))
connectionInfo.UseConsoleSession = useConsole;
connectionInfo.RDPStartProgram = connectionSettingsNode.SelectSingleNode("./startProgram")?.InnerText ?? string.Empty;
connectionInfo.RDPStartProgramWorkDir = connectionSettingsNode.SelectSingleNode("./startProgramWorkDir")?.InnerText ?? string.Empty;
connectionInfo.RDPStartProgram = connectionSettingsNode.SelectSingleNode("./startProgram")?.InnerText;
connectionInfo.RDPStartProgramWorkDir = connectionSettingsNode.SelectSingleNode("./startProgramWorkDir")?.InnerText;
if (int.TryParse(connectionSettingsNode.SelectSingleNode("./port")?.InnerText, out var port))
connectionInfo.Port = port;
}

View File

@@ -11,7 +11,7 @@ using mRemoteNG.Messages;
using mRemoteNG.Tools;
using mRemoteNG.UI.Controls;
using mRemoteNG.UI.Forms;
using mRemoteNG.Connection.Protocol.Winbox;
namespace mRemoteNG.Config.Settings
{
@@ -27,7 +27,12 @@ namespace mRemoteNG.Config.Settings
private FrmMain MainForm { get; }
public SettingsLoader(FrmMain mainForm, MessageCollector messageCollector, QuickConnectToolStrip quickConnectToolStrip, ExternalToolsToolStrip externalToolsToolStrip, MultiSshToolStrip multiSshToolStrip, MenuStrip mainMenu)
public SettingsLoader(FrmMain mainForm,
MessageCollector messageCollector,
QuickConnectToolStrip quickConnectToolStrip,
ExternalToolsToolStrip externalToolsToolStrip,
MultiSshToolStrip multiSshToolStrip,
MenuStrip mainMenu)
{
if (mainForm == null)
throw new ArgumentNullException(nameof(mainForm));
@@ -64,12 +69,13 @@ namespace mRemoteNG.Config.Settings
SetKioskMode();
SetPuttyPath();
SetWinboxPath();
SetShowSystemTrayIcon();
SetAutoSave();
LoadExternalAppsFromXml();
SetAlwaysShowPanelTabs();
if (Properties.App.Default.ResetToolbars)
if (Properties.Settings.Default.ResetToolbars)
SetToolbarsDefault();
else
LoadToolbarsFromSettings();
@@ -82,37 +88,40 @@ namespace mRemoteNG.Config.Settings
private static void SetAlwaysShowPanelTabs()
{
if (Properties.OptionsTabsPanelsPage.Default.AlwaysShowPanelTabs)
if (Properties.Settings.Default.AlwaysShowPanelTabs)
FrmMain.Default.pnlDock.DocumentStyle = DocumentStyle.DockingWindow;
}
private void SetSupportedCulture()
{
if (Properties.Settings.Default.OverrideUICulture == "" || !SupportedCultures.IsNameSupported(Properties.Settings.Default.OverrideUICulture)) return;
if (Properties.Settings.Default.OverrideUICulture == "" ||
!SupportedCultures.IsNameSupported(Properties.Settings.Default.OverrideUICulture)) return;
Thread.CurrentThread.CurrentUICulture = new CultureInfo(Properties.Settings.Default.OverrideUICulture);
_messageCollector.AddMessage(MessageClass.InformationMsg, $"Override Culture: {Thread.CurrentThread.CurrentUICulture.Name}/{Thread.CurrentThread.CurrentUICulture.NativeName}", true);
_messageCollector.AddMessage(MessageClass.InformationMsg,
$"Override Culture: {Thread.CurrentThread.CurrentUICulture.Name}/{Thread.CurrentThread.CurrentUICulture.NativeName}",
true);
}
private void SetApplicationWindowPositionAndSize()
{
MainForm.WindowState = FormWindowState.Normal;
if (Properties.App.Default.MainFormState == FormWindowState.Normal)
if (Properties.Settings.Default.MainFormState == FormWindowState.Normal)
{
if (!Properties.App.Default.MainFormLocation.IsEmpty)
MainForm.Location = Properties.App.Default.MainFormLocation;
if (!Properties.App.Default.MainFormSize.IsEmpty)
MainForm.Size = Properties.App.Default.MainFormSize;
if (!Properties.Settings.Default.MainFormLocation.IsEmpty)
MainForm.Location = Properties.Settings.Default.MainFormLocation;
if (!Properties.Settings.Default.MainFormSize.IsEmpty)
MainForm.Size = Properties.Settings.Default.MainFormSize;
}
else
{
if (!Properties.App.Default.MainFormRestoreLocation.IsEmpty)
MainForm.Location = Properties.App.Default.MainFormRestoreLocation;
if (!Properties.App.Default.MainFormRestoreSize.IsEmpty)
MainForm.Size = Properties.App.Default.MainFormRestoreSize;
if (!Properties.Settings.Default.MainFormRestoreLocation.IsEmpty)
MainForm.Location = Properties.Settings.Default.MainFormRestoreLocation;
if (!Properties.Settings.Default.MainFormRestoreSize.IsEmpty)
MainForm.Size = Properties.Settings.Default.MainFormRestoreSize;
}
if (Properties.App.Default.MainFormState == FormWindowState.Maximized)
if (Properties.Settings.Default.MainFormState == FormWindowState.Maximized)
{
MainForm.WindowState = FormWindowState.Maximized;
}
@@ -137,31 +146,38 @@ namespace mRemoteNG.Config.Settings
private void SetAutoSave()
{
if (Properties.OptionsConnectionsPage.Default.AutoSaveEveryMinutes <= 0) return;
MainForm.tmrAutoSave.Interval = Properties.OptionsConnectionsPage.Default.AutoSaveEveryMinutes * 60000;
if (Properties.Settings.Default.AutoSaveEveryMinutes <= 0) return;
MainForm.tmrAutoSave.Interval = Properties.Settings.Default.AutoSaveEveryMinutes * 60000;
MainForm.tmrAutoSave.Enabled = true;
}
private void SetKioskMode()
{
if (!Properties.App.Default.MainFormKiosk) return;
if (!Properties.Settings.Default.MainFormKiosk) return;
MainForm.Fullscreen.Value = true;
}
private static void SetShowSystemTrayIcon()
{
if (Properties.OptionsAppearancePage.Default.ShowSystemTrayIcon)
if (Properties.Settings.Default.ShowSystemTrayIcon)
Runtime.NotificationAreaIcon = new NotificationAreaIcon();
}
private static void SetPuttyPath()
{
PuttyBase.PuttyPath = Properties.OptionsAdvancedPage.Default.UseCustomPuttyPath ? Properties.OptionsAdvancedPage.Default.CustomPuttyPath : GeneralAppInfo.PuttyPath;
PuttyBase.PuttyPath = Properties.Settings.Default.UseCustomPuttyPath
? Properties.Settings.Default.CustomPuttyPath
: GeneralAppInfo.PuttyPath;
}
private static void SetWinboxPath()
{
ProtocolWinbox.WinboxPath = GeneralAppInfo.WinboxPath;
}
private void EnsureSettingsAreSavedInNewestVersion()
{
if (Properties.App.Default.DoUpgrade)
if (Properties.Settings.Default.DoUpgrade)
UpgradeSettingsVersion();
}
@@ -177,12 +193,12 @@ namespace mRemoteNG.Config.Settings
_messageCollector.AddExceptionMessage("Settings.Upgrade() failed", ex);
}
Properties.App.Default.DoUpgrade = false;
Properties.Settings.Default.DoUpgrade = false;
// Clear pending update flag
// This is used for automatic updates, not for settings migration, but it
// needs to be cleared here because we know that we just updated.
Properties.OptionsUpdatesPage.Default.UpdatePending = false;
Properties.Settings.Default.UpdatePending = false;
}
private void SetToolbarsDefault()
@@ -249,7 +265,9 @@ namespace mRemoteNG.Config.Settings
private void SetToolstripGripStyle(ToolStrip toolbar)
{
toolbar.GripStyle = Properties.Settings.Default.LockToolbars ? ToolStripGripStyle.Hidden : ToolStripGripStyle.Visible;
toolbar.GripStyle = Properties.Settings.Default.LockToolbars
? ToolStripGripStyle.Hidden
: ToolStripGripStyle.Visible;
}
private ToolStripPanel ToolStripPanelFromString(string panel)

View File

@@ -1,4 +1,4 @@
using System;
using System;
using System.Windows.Forms;
using mRemoteNG.App;
using mRemoteNG.App.Info;
@@ -11,7 +11,10 @@ namespace mRemoteNG.Config.Settings
{
public static class SettingsSaver
{
public static void SaveSettings(Control quickConnectToolStrip, ExternalToolsToolStrip externalToolsToolStrip, MultiSshToolStrip multiSshToolStrip, FrmMain frmMain)
public static void SaveSettings(Control quickConnectToolStrip,
ExternalToolsToolStrip externalToolsToolStrip,
MultiSshToolStrip multiSshToolStrip,
FrmMain frmMain)
{
try
{
@@ -22,46 +25,31 @@ namespace mRemoteNG.Config.Settings
frmMain.WindowState = FormWindowState.Maximized;
}
Properties.App.Default.MainFormLocation = frmMain.Location;
Properties.App.Default.MainFormSize = frmMain.Size;
Properties.Settings.Default.MainFormLocation = frmMain.Location;
Properties.Settings.Default.MainFormSize = frmMain.Size;
if (frmMain.WindowState != FormWindowState.Normal)
{
Properties.App.Default.MainFormRestoreLocation = frmMain.RestoreBounds.Location;
Properties.App.Default.MainFormRestoreSize = frmMain.RestoreBounds.Size;
Properties.Settings.Default.MainFormRestoreLocation = frmMain.RestoreBounds.Location;
Properties.Settings.Default.MainFormRestoreSize = frmMain.RestoreBounds.Size;
}
Properties.App.Default.MainFormState = frmMain.WindowState;
Properties.Settings.Default.MainFormState = frmMain.WindowState;
if (frmMain.Fullscreen != null)
{
Properties.App.Default.MainFormKiosk = frmMain.Fullscreen.Value;
Properties.Settings.Default.MainFormKiosk = frmMain.Fullscreen.Value;
}
Properties.App.Default.FirstStart = false;
Properties.App.Default.ResetPanels = false;
Properties.App.Default.ResetToolbars = false;
Properties.Settings.Default.FirstStart = false;
Properties.Settings.Default.ResetPanels = false;
Properties.Settings.Default.ResetToolbars = false;
Properties.Settings.Default.NoReconnect = false;
SaveExternalAppsToolbarLocation(externalToolsToolStrip);
SaveQuickConnectToolbarLocation(quickConnectToolStrip);
SaveMultiSshToolbarLocation(multiSshToolStrip);
Properties.App.Default.Save();
Properties.AppUI.Default.Save();
Properties.OptionsAdvancedPage.Default.Save();
Properties.OptionsAppearancePage.Default.Save();
Properties.OptionsBackupPage.Default.Save();
Properties.OptionsConnectionsPage.Default.Save();
Properties.OptionsCredentialsPage.Default.Save();
Properties.OptionsDBsPage.Default.Save();
Properties.OptionsNotificationsPage.Default.Save();
Properties.OptionsSecurityPage.Default.Save();
Properties.OptionsStartupExitPage.Default.Save();
Properties.OptionsTabsPanelsPage.Default.Save();
Properties.OptionsThemePage.Default.Save();
Properties.OptionsUpdatesPage.Default.Save();
Properties.Settings.Default.Save();
SaveDockPanelLayout();

View File

@@ -45,8 +45,6 @@ namespace mRemoteNG.Connection
private string _loadBalanceInfo;
private HTTPBase.RenderingEngine _renderingEngine;
private bool _useCredSsp;
private bool _useRestrictedAdmin;
private bool _useRCG;
private bool _useVmId;
private RDGatewayUsageMethod _rdGatewayUsageMethod;
@@ -396,28 +394,6 @@ namespace mRemoteNG.Connection
set => SetField(ref _useCredSsp, value, "UseCredSsp");
}
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 3),
LocalizedAttributes.LocalizedDisplayName(nameof(Language.UseRestrictedAdmin)),
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionUseRestrictedAdmin)),
TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
AttributeUsedInProtocol(ProtocolType.RDP)]
public bool UseRestrictedAdmin
{
get => GetPropertyValue("UseRestrictedAdmin", _useRestrictedAdmin);
set => SetField(ref _useRestrictedAdmin, value, "UseRestrictedAdmin");
}
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 3),
LocalizedAttributes.LocalizedDisplayName(nameof(Language.UseRCG)),
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionUseRCG)),
TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
AttributeUsedInProtocol(ProtocolType.RDP)]
public bool UseRCG
{
get => GetPropertyValue("UseRCG", _useRCG);
set => SetField(ref _useRCG, value, "UseRCG");
}
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 3),
LocalizedAttributes.LocalizedDisplayName(nameof(Language.UseVmId)),
LocalizedAttributes.LocalizedDescription(nameof(Language.PropertyDescriptionUseVmId)),

View File

@@ -18,6 +18,7 @@ using mRemoteNG.Properties;
using mRemoteNG.Tree;
using mRemoteNG.Resources.Language;
using mRemoteNG.Tree.Root;
using mRemoteNG.Connection.Protocol.Winbox;
namespace mRemoteNG.Connection
@@ -274,6 +275,8 @@ namespace mRemoteNG.Connection
return (int)ProtocolPowerShell.Defaults.Port;
case ProtocolType.IntApp:
return (int)IntegratedProgram.Defaults.Port;
case ProtocolType.Winbox:
return (int)ProtocolWinbox.Defaults.Port;
}
return 0;
@@ -312,8 +315,6 @@ namespace mRemoteNG.Connection
LoadBalanceInfo = Settings.Default.ConDefaultLoadBalanceInfo;
RenderingEngine = (HTTPBase.RenderingEngine)Enum.Parse(typeof(HTTPBase.RenderingEngine), Settings.Default.ConDefaultRenderingEngine);
UseCredSsp = Settings.Default.ConDefaultUseCredSsp;
UseRestrictedAdmin = Settings.Default.ConDefaultUseRestrictedAdmin;
UseRCG = Settings.Default.ConDefaultUseRCG;
UseVmId = Settings.Default.ConDefaultUseVmId;
UseEnhancedMode = Settings.Default.ConDefaultUseEnhancedMode;
}

View File

@@ -184,18 +184,6 @@ namespace mRemoteNG.Connection
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool UseCredSsp { get; set; }
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 4),
LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.UseRestrictedAdmin)),
LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.PropertyDescriptionUseRestrictedAdmin)),
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool UseRestrictedAdmin { get; set; }
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 4),
LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.UseRCG)),
LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.PropertyDescriptionUseRCG)),
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool UseRCG { get; set; }
[LocalizedAttributes.LocalizedCategory(nameof(Language.Protocol), 4),
LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.UseVmId)),
LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.PropertyDescriptionUseVmId)),

View File

@@ -299,7 +299,9 @@ namespace mRemoteNG.Connection
private static string SetConnectionPanel(ConnectionInfo connectionInfo, ConnectionInfo.Force force)
{
if (connectionInfo.Panel != "" && !force.HasFlag(ConnectionInfo.Force.OverridePanel) && !Properties.OptionsTabsPanelsPage.Default.AlwaysShowPanelSelectionDlg)
if (connectionInfo.Panel != "" &&
!force.HasFlag(ConnectionInfo.Force.OverridePanel) &&
!Settings.Default.AlwaysShowPanelSelectionDlg)
return connectionInfo.Panel;
var frmPnl = new FrmChoosePanel();

View File

@@ -94,7 +94,7 @@ namespace mRemoteNG.Connection
var newConnectionInfo = new ConnectionInfo();
newConnectionInfo.CopyFrom(DefaultConnectionInfo.Instance);
newConnectionInfo.Name = Properties.OptionsTabsPanelsPage.Default.IdentifyQuickConnectTabs
newConnectionInfo.Name = Settings.Default.IdentifyQuickConnectTabs
? string.Format(Language.Quick, uriBuilder.Host)
: uriBuilder.Host;
@@ -138,7 +138,8 @@ namespace mRemoteNG.Connection
var oldIsUsingDatabaseValue = UsingDatabase;
var connectionLoader = useDatabase
? (IConnectionsLoader)new SqlConnectionsLoader(_localConnectionPropertiesSerializer, _localConnectionPropertiesDataProvider)
? (IConnectionsLoader)new SqlConnectionsLoader(_localConnectionPropertiesSerializer,
_localConnectionPropertiesDataProvider)
: new XmlConnectionsLoader(connectionFileName);
var newConnectionTreeModel = connectionLoader.Load();
@@ -148,7 +149,8 @@ namespace mRemoteNG.Connection
if (newConnectionTreeModel == null)
{
DialogFactory.ShowLoadConnectionsFailedDialog(connectionFileName, "Decrypting connection file failed", IsConnectionsFileLoaded);
DialogFactory.ShowLoadConnectionsFailedDialog(connectionFileName, "Decrypting connection file failed",
IsConnectionsFileLoaded);
return;
}
@@ -164,8 +166,10 @@ namespace mRemoteNG.Connection
ConnectionTreeModel = newConnectionTreeModel;
UpdateCustomConsPathSetting(connectionFileName);
RaiseConnectionsLoadedEvent(oldConnectionTreeModel, newConnectionTreeModel, oldIsUsingDatabaseValue, useDatabase, connectionFileName);
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, $"Connections loaded using {connectionLoader.GetType().Name}");
RaiseConnectionsLoadedEvent(oldConnectionTreeModel, newConnectionTreeModel, oldIsUsingDatabaseValue,
useDatabase, connectionFileName);
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg,
$"Connections loaded using {connectionLoader.GetType().Name}");
}
/// <summary>
@@ -229,7 +233,12 @@ namespace mRemoteNG.Connection
/// Optional. The name of the property that triggered
/// this save.
/// </param>
public void SaveConnections(ConnectionTreeModel connectionTreeModel, bool useDatabase, SaveFilter saveFilter, string connectionFileName, bool forceSave = false, string propertyNameTrigger = "")
public void SaveConnections(ConnectionTreeModel connectionTreeModel,
bool useDatabase,
SaveFilter saveFilter,
string connectionFileName,
bool forceSave = false,
string propertyNameTrigger = "")
{
if (connectionTreeModel == null)
return;
@@ -251,7 +260,9 @@ namespace mRemoteNG.Connection
var previouslyUsingDatabase = UsingDatabase;
var saver = useDatabase
? (ISaver<ConnectionTreeModel>)new SqlConnectionsSaver(saveFilter, _localConnectionPropertiesSerializer, _localConnectionPropertiesDataProvider)
? (ISaver<ConnectionTreeModel>)new SqlConnectionsSaver(saveFilter,
_localConnectionPropertiesSerializer,
_localConnectionPropertiesDataProvider)
: new XmlConnectionsSaver(connectionFileName, saveFilter);
saver.Save(connectionTreeModel, propertyNameTrigger);
@@ -267,7 +278,9 @@ namespace mRemoteNG.Connection
}
catch (Exception ex)
{
Runtime.MessageCollector?.AddExceptionMessage(string.Format(Language.ConnectionsFileCouldNotSaveAs, connectionFileName), ex, logOnly: false);
Runtime.MessageCollector?.AddExceptionMessage(
string.Format(Language.ConnectionsFileCouldNotSaveAs,
connectionFileName), ex, logOnly: false);
}
finally
{
@@ -294,7 +307,12 @@ namespace mRemoteNG.Connection
{
lock (SaveLock)
{
SaveConnections(ConnectionTreeModel, UsingDatabase, new SaveFilter(), ConnectionFileName, propertyNameTrigger: propertyNameTrigger);
SaveConnections(
ConnectionTreeModel,
UsingDatabase,
new SaveFilter(),
ConnectionFileName,
propertyNameTrigger: propertyNameTrigger);
}
});
t.SetApartmentState(ApartmentState.STA);
@@ -303,45 +321,37 @@ namespace mRemoteNG.Connection
public string GetStartupConnectionFileName()
{
/*
if (Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation == true && Properties.OptionsBackupPage.Default.BackupLocation != "")
{
return Properties.OptionsBackupPage.Default.BackupLocation;
} else {
return GetDefaultStartupConnectionFileName();
}
*/
if (Properties.OptionsConnectionsPage.Default.ConnectrionFilePath != "")
{
return Properties.OptionsConnectionsPage.Default.ConnectrionFilePath;
}
else
{
return GetDefaultStartupConnectionFileName();
}
return Settings.Default.LoadConsFromCustomLocation == false
? GetDefaultStartupConnectionFileName()
: Settings.Default.CustomConsPath;
}
public string GetDefaultStartupConnectionFileName()
{
return Runtime.IsPortableEdition ? GetDefaultStartupConnectionFileNamePortableEdition() : GetDefaultStartupConnectionFileNameNormalEdition();
return Runtime.IsPortableEdition
? GetDefaultStartupConnectionFileNamePortableEdition()
: GetDefaultStartupConnectionFileNameNormalEdition();
}
private void UpdateCustomConsPathSetting(string filename)
{
if (filename == GetDefaultStartupConnectionFileName())
{
Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation = false;
Settings.Default.LoadConsFromCustomLocation = false;
}
else
{
Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation = true;
Properties.OptionsBackupPage.Default.BackupLocation = filename;
Settings.Default.LoadConsFromCustomLocation = true;
Settings.Default.CustomConsPath = filename;
}
}
private string GetDefaultStartupConnectionFileNameNormalEdition()
{
var appDataPath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), Application.ProductName, ConnectionsFileInfo.DefaultConnectionsFile);
var appDataPath = Path.Combine(
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData),
Application.ProductName,
ConnectionsFileInfo.DefaultConnectionsFile);
return File.Exists(appDataPath) ? appDataPath : GetDefaultStartupConnectionFileNamePortableEdition();
}
@@ -355,14 +365,29 @@ namespace mRemoteNG.Connection
public event EventHandler<ConnectionsLoadedEventArgs> ConnectionsLoaded;
public event EventHandler<ConnectionsSavedEventArgs> ConnectionsSaved;
private void RaiseConnectionsLoadedEvent(Optional<ConnectionTreeModel> previousTreeModel, ConnectionTreeModel newTreeModel, bool previousSourceWasDatabase, bool newSourceIsDatabase, string newSourcePath)
private void RaiseConnectionsLoadedEvent(Optional<ConnectionTreeModel> previousTreeModel,
ConnectionTreeModel newTreeModel,
bool previousSourceWasDatabase,
bool newSourceIsDatabase,
string newSourcePath)
{
ConnectionsLoaded?.Invoke(this, new ConnectionsLoadedEventArgs(previousTreeModel, newTreeModel, previousSourceWasDatabase, newSourceIsDatabase, newSourcePath));
ConnectionsLoaded?.Invoke(this, new ConnectionsLoadedEventArgs(
previousTreeModel,
newTreeModel,
previousSourceWasDatabase,
newSourceIsDatabase,
newSourcePath));
}
private void RaiseConnectionsSavedEvent(ConnectionTreeModel modelThatWasSaved, bool previouslyUsingDatabase, bool usingDatabase, string connectionFileName)
private void RaiseConnectionsSavedEvent(ConnectionTreeModel modelThatWasSaved,
bool previouslyUsingDatabase,
bool usingDatabase,
string connectionFileName)
{
ConnectionsSaved?.Invoke(this, new ConnectionsSavedEventArgs(modelThatWasSaved, previouslyUsingDatabase, usingDatabase, connectionFileName));
ConnectionsSaved?.Invoke(this,
new ConnectionsSavedEventArgs(modelThatWasSaved, previouslyUsingDatabase,
usingDatabase,
connectionFileName));
}
#endregion

View File

@@ -28,7 +28,9 @@ namespace mRemoteNG.Connection
var propertyFromSettings = typeof(TSource).GetProperty(propertyNameMutator(property.Name));
if (propertyFromSettings == null)
{
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg, $"DefaultConInherit-LoadFrom: Could not load {property.Name}", true);
Runtime.MessageCollector.AddMessage(Messages.MessageClass.ErrorMsg,
$"DefaultConInherit-LoadFrom: Could not load {property.Name}",
true);
continue;
}
@@ -48,7 +50,9 @@ namespace mRemoteNG.Connection
var localValue = property.GetValue(Instance, null);
if (propertyFromSettings == null)
{
Runtime.MessageCollector?.AddMessage(Messages.MessageClass.ErrorMsg, $"DefaultConInherit-SaveTo: Could not load {property.Name}", true);
Runtime.MessageCollector?.AddMessage(Messages.MessageClass.ErrorMsg,
$"DefaultConInherit-SaveTo: Could not load {property.Name}",
true);
continue;
}

View File

@@ -80,11 +80,11 @@ namespace mRemoteNG.Connection.Protocol
_process.Exited += ProcessExited;
_process.Start();
_process.WaitForInputIdle(Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime * 1000);
_process.WaitForInputIdle(Settings.Default.MaxPuttyWaitTime * 1000);
var startTicks = Environment.TickCount;
while (_handle.ToInt32() == 0 &
Environment.TickCount < startTicks + Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime * 1000)
Environment.TickCount < startTicks + Settings.Default.MaxPuttyWaitTime * 1000)
{
_process.Refresh();
if (_process.MainWindowTitle != "Default IME")

View File

@@ -9,6 +9,7 @@ using System;
using mRemoteNG.Connection.Protocol.PowerShell;
using mRemoteNG.Properties;
using mRemoteNG.Resources.Language;
using mRemoteNG.Connection.Protocol.Winbox;
namespace mRemoteNG.Connection.Protocol
{
@@ -23,7 +24,7 @@ namespace mRemoteNG.Connection.Protocol
{
case ProtocolType.RDP:
var rdp = _rdpProtocolFactory.Build(connectionInfo.RdpVersion);
rdp.LoadBalanceInfoUseUtf8 = Properties.OptionsAdvancedPage.Default.RdpLoadBalanceInfoUseUtf8;
rdp.LoadBalanceInfoUseUtf8 = Settings.Default.RdpLoadBalanceInfoUseUtf8;
return rdp;
case ProtocolType.VNC:
return new ProtocolVNC();
@@ -49,6 +50,8 @@ namespace mRemoteNG.Connection.Protocol
throw (new Exception(Language.NoExtAppDefined));
}
return new IntegratedProgram();
case ProtocolType.Winbox:
return new ProtocolWinbox();
}
return default(ProtocolBase);

View File

@@ -36,6 +36,9 @@ namespace mRemoteNG.Connection.Protocol
PowerShell = 10,
[LocalizedAttributes.LocalizedDescription(nameof(Language.ExternalTool))]
IntApp = 20
IntApp = 20,
[LocalizedAttributes.LocalizedDescription(nameof(Language.Winbox))]
Winbox = 11
}
}

View File

@@ -79,16 +79,13 @@ namespace mRemoteNG.Connection.Protocol
if (PuttyProtocol == Putty_Protocol.ssh)
{
var username = InterfaceControl.Info?.Username ?? "";
var password = InterfaceControl.Info?.Password ?? "";
var domain = InterfaceControl.Info?.Domain ?? "";
var UserViaAPI = InterfaceControl.Info?.UserViaAPI ?? "";
var username = "";
var password = "";
// access secret server api if necessary
if (!string.IsNullOrEmpty(UserViaAPI)) {
if (!string.IsNullOrEmpty(InterfaceControl.Info?.UserViaAPI))
{
var domain = ""; // dummy
try
{
ExternalConnectors.TSS.SecretServerInterface.FetchSecretFromServer("SSAPI:" + InterfaceControl.Info?.UserViaAPI, out username, out password, out domain);
@@ -98,39 +95,35 @@ namespace mRemoteNG.Connection.Protocol
Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0);
}
}
if (string.IsNullOrEmpty(username))
if (!string.IsNullOrEmpty(InterfaceControl.Info?.Username))
{
switch (Properties.OptionsCredentialsPage.Default.EmptyCredentials)
username = InterfaceControl.Info.Username;
}
else
{
// ReSharper disable once SwitchStatementMissingSomeCases
switch (Settings.Default.EmptyCredentials)
{
case "windows":
username = Environment.UserName;
break;
case "custom" when !string.IsNullOrEmpty(Properties.OptionsCredentialsPage.Default.DefaultUsername):
username = Properties.OptionsCredentialsPage.Default.DefaultUsername;
break;
case "custom":
try
{
ExternalConnectors.TSS.SecretServerInterface.FetchSecretFromServer(
"SSAPI:" + Properties.OptionsCredentialsPage.Default.UserViaAPDefault, out username, out password,
out domain);
}
catch (Exception ex)
{
Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0);
}
username = Settings.Default.DefaultUsername;
break;
}
}
if (string.IsNullOrEmpty(password))
if (!string.IsNullOrEmpty(InterfaceControl.Info?.Password))
{
if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
password = InterfaceControl.Info.Password;
}
else
{
if (Settings.Default.EmptyCredentials == "custom")
{
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
password = cryptographyProvider.Decrypt(Properties.OptionsCredentialsPage.Default.DefaultPassword, Runtime.EncryptionKey);
password = cryptographyProvider.Decrypt(Settings.Default.DefaultPassword,
Runtime.EncryptionKey);
}
}
@@ -170,15 +163,16 @@ namespace mRemoteNG.Connection.Protocol
PuttyProcess.Exited += ProcessExited;
PuttyProcess.Start();
PuttyProcess.WaitForInputIdle(Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime * 1000);
PuttyProcess.WaitForInputIdle(Settings.Default.MaxPuttyWaitTime * 1000);
var startTicks = Environment.TickCount;
while (PuttyHandle.ToInt32() == 0 &
Environment.TickCount < startTicks + Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime * 1000)
Environment.TickCount < startTicks + Settings.Default.MaxPuttyWaitTime * 1000)
{
if (_isPuttyNg)
{
PuttyHandle = NativeMethods.FindWindowEx(InterfaceControl.Handle, new IntPtr(0), null, null);
PuttyHandle = NativeMethods.FindWindowEx(
InterfaceControl.Handle, new IntPtr(0), null, null);
}
else
{
@@ -198,9 +192,14 @@ namespace mRemoteNG.Connection.Protocol
}
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, Language.PuttyStuff, true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, string.Format(Language.PuttyHandle, PuttyHandle), true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, string.Format(Language.PuttyTitle, PuttyProcess.MainWindowTitle), true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, string.Format(Language.PanelHandle, InterfaceControl.Parent.Handle), true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
string.Format(Language.PuttyHandle, PuttyHandle), true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
string.Format(Language.PuttyTitle, PuttyProcess.MainWindowTitle),
true);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
string.Format(Language.PanelHandle,
InterfaceControl.Parent.Handle), true);
if (!string.IsNullOrEmpty(InterfaceControl.Info?.OpeningCommand))
{
@@ -215,7 +214,9 @@ namespace mRemoteNG.Connection.Protocol
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ConnectionFailed + Environment.NewLine + ex.Message);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
Language.ConnectionFailed + Environment.NewLine +
ex.Message);
return false;
}
}
@@ -228,7 +229,9 @@ namespace mRemoteNG.Connection.Protocol
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.PuttyFocusFailed + Environment.NewLine + ex.Message, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
Language.PuttyFocusFailed + Environment.NewLine + ex.Message,
true);
}
}

View File

@@ -307,16 +307,6 @@ namespace mRemoteNG.Connection.Protocol.RDP
{
_rdpClient.AdvancedSettings7.EnableCredSspSupport = connectionInfo.UseCredSsp;
}
if(_rdpVersion >= Versions.RDC81)
{
if (connectionInfo.UseRestrictedAdmin)
SetExtendedProperty("RestrictedLogon", true);
else if (connectionInfo.UseRCG)
{
SetExtendedProperty("DisableCredentialsDelegation", true);
SetExtendedProperty("RedirectedAuthentication", true);
}
}
SetUseConsoleSession();
SetPort();
@@ -473,10 +463,9 @@ namespace mRemoteNG.Connection.Protocol.RDP
var userName = connectionInfo?.Username ?? "";
var password = connectionInfo?.Password ?? "";
var domain = connectionInfo?.Domain ?? "";
var UserViaAPI = connectionInfo?.UserViaAPI ?? "";
// access secret server api if necessary
if (!string.IsNullOrEmpty(UserViaAPI))
if (!string.IsNullOrEmpty(connectionInfo?.UserViaAPI))
{
try
{
@@ -491,26 +480,13 @@ namespace mRemoteNG.Connection.Protocol.RDP
if (string.IsNullOrEmpty(userName))
{
switch (Properties.OptionsCredentialsPage.Default.EmptyCredentials)
if (Settings.Default.EmptyCredentials == "windows")
{
case "windows":
_rdpClient.UserName = Environment.UserName;
break;
case "custom" when !string.IsNullOrEmpty(Properties.OptionsCredentialsPage.Default.DefaultUsername):
_rdpClient.UserName = Properties.OptionsCredentialsPage.Default.DefaultUsername;
break;
case "custom":
try
{
ExternalConnectors.TSS.SecretServerInterface.FetchSecretFromServer("SSAPI:" + Properties.OptionsCredentialsPage.Default.UserViaAPDefault, out userName, out password, out domain);
_rdpClient.UserName = userName;
}
catch (Exception ex)
{
Event_ErrorOccured(this, "Secret Server Interface Error: " + ex.Message, 0);
}
break;
_rdpClient.UserName = Environment.UserName;
}
else if (Settings.Default.EmptyCredentials == "custom")
{
_rdpClient.UserName = Settings.Default.DefaultUsername;
}
}
else
@@ -520,12 +496,13 @@ namespace mRemoteNG.Connection.Protocol.RDP
if (string.IsNullOrEmpty(password))
{
if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
if (Settings.Default.EmptyCredentials == "custom")
{
if (Properties.OptionsCredentialsPage.Default.DefaultPassword != "")
if (Settings.Default.DefaultPassword != "")
{
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
_rdpClient.AdvancedSettings2.ClearTextPassword = cryptographyProvider.Decrypt(Properties.OptionsCredentialsPage.Default.DefaultPassword, Runtime.EncryptionKey);
_rdpClient.AdvancedSettings2.ClearTextPassword =
cryptographyProvider.Decrypt(Settings.Default.DefaultPassword, Runtime.EncryptionKey);
}
}
}
@@ -536,12 +513,14 @@ namespace mRemoteNG.Connection.Protocol.RDP
if (string.IsNullOrEmpty(domain))
{
_rdpClient.Domain = Properties.OptionsCredentialsPage.Default.EmptyCredentials switch
if (Settings.Default.EmptyCredentials == "windows")
{
"windows" => Environment.UserDomainName,
"custom" => Properties.OptionsCredentialsPage.Default.DefaultDomain,
_ => _rdpClient.Domain
};
_rdpClient.Domain = Environment.UserDomainName;
}
else if (Settings.Default.EmptyCredentials == "custom")
{
_rdpClient.Domain = Settings.Default.DefaultDomain;
}
}
else
{
@@ -749,7 +728,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
Event_Disconnected(this, reason, discReason);
}
if (Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect)
if (Settings.Default.ReconnectOnDisconnect)
{
ReconnectGroup = new ReconnectGroup();
ReconnectGroup.CloseClicked += Event_ReconnectGroupCloseClicked;

View File

@@ -29,7 +29,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
protected set
{
base.SmartSize = value;
DoResizeClient();
ReconnectForResize();
}
}
@@ -39,7 +39,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
protected set
{
base.Fullscreen = value;
DoResizeClient();
ReconnectForResize();
}
}
@@ -50,19 +50,19 @@ namespace mRemoteNG.Connection.Protocol.RDP
public override void Resize(object sender, EventArgs e)
{
if (DoResizeControl() && _controlBeginningSize.IsEmpty)
if (DoResize() && _controlBeginningSize.IsEmpty)
{
DoResizeClient();
ReconnectForResize();
}
base.Resize(sender, e);
}
public override void ResizeEnd(object sender, EventArgs e)
{
DoResizeControl();
DoResize();
if (!(Control.Size == _controlBeginningSize))
{
DoResizeClient();
ReconnectForResize();
}
_controlBeginningSize = Size.Empty;
}
@@ -72,7 +72,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
return new AxMsRdpClient8NotSafeForScripting();
}
private void DoResizeClient()
private void ReconnectForResize()
{
if (!loginComplete)
return;
@@ -94,8 +94,8 @@ namespace mRemoteNG.Connection.Protocol.RDP
{
var size = Fullscreen
? Screen.FromControl(Control).Bounds.Size
: Control.Size;
UpdateSessionDisplaySettings((uint)size.Width, (uint)size.Height);
: Control.Size;
RdpClient8.Reconnect((uint)size.Width, (uint)size.Height);
}
catch (Exception ex)
{
@@ -106,7 +106,7 @@ namespace mRemoteNG.Connection.Protocol.RDP
}
}
private bool DoResizeControl()
private bool DoResize()
{
Control.Location = InterfaceControl.Location;
// kmscode - this doesn't look right to me. But I'm not aware of any functionality issues with this currently...
@@ -120,10 +120,5 @@ namespace mRemoteNG.Connection.Protocol.RDP
return false;
}
}
protected virtual void UpdateSessionDisplaySettings(uint width, uint height)
{
RdpClient8.Reconnect(width, height);
}
}
}

View File

@@ -1,26 +1,15 @@
using System;
using System.Windows.Forms;
using AxMSTSCLib;
using MSTSCLib;
namespace mRemoteNG.Connection.Protocol.RDP
{
public class RdpProtocol9 : RdpProtocol8
{
private MsRdpClient9NotSafeForScripting RdpClient9 =>
(MsRdpClient9NotSafeForScripting)((AxHost)Control).GetOcx();
protected override RdpVersion RdpProtocolVersion => RdpVersion.Rdc9;
protected override AxHost CreateActiveXRdpClientControl()
{
return new AxMsRdpClient9NotSafeForScripting();
}
protected override void UpdateSessionDisplaySettings(uint width, uint height)
{
RdpClient9.UpdateSessionDisplaySettings(width, height, width, height, 0, 1, 1);
}
}
}
using System.Windows.Forms;
using AxMSTSCLib;
namespace mRemoteNG.Connection.Protocol.RDP
{
public class RdpProtocol9 : RdpProtocol8
{
protected override RdpVersion RdpProtocolVersion => RdpVersion.Rdc9;
protected override AxHost CreateActiveXRdpClientControl()
{
return new AxMsRdpClient9NotSafeForScripting();
}
}
}

View File

@@ -0,0 +1,243 @@
using System;
using System.Threading;
using mRemoteNG.App;
using mRemoteNG.Messages;
using mRemoteNG.Security.SymmetricEncryption;
using mRemoteNG.Tools.Cmdline;
using mRemoteNG.UI;
using System.Diagnostics;
using System.Drawing;
using System.Windows.Forms;
using mRemoteNG.Resources.Language;
using mRemoteNG.Properties;
namespace mRemoteNG.Connection.Protocol.Winbox
{
public class ProtocolWinbox : ProtocolBase
{
public ProtocolWinbox() { }
public enum Defaults
{
Port = 8291
}
private const int IDM_RECONF = 0x50; // PuTTY Settings Menu ID
private readonly DisplayProperties _display = new DisplayProperties();
#region Public Properties
public IntPtr WinboxHandle { get; set; }
private Process WinboxProcess { get; set; }
public static string WinboxPath { get; set; }
public bool Focused
{
get { return NativeMethods.GetForegroundWindow() == WinboxHandle; }
}
#endregion
#region Private Events & Handlers
private void ProcessExited(object sender, EventArgs e)
{
Event_Closed(this);
}
#endregion
#region Public Methods
public override bool Connect()
{
try
{
WinboxProcess = new Process
{
StartInfo =
{
UseShellExecute = false,
FileName = WinboxPath,
RedirectStandardOutput = true
}
};
var arguments = new CommandLineArguments { EscapeForShell = false };
var username = "";
var password = "";
var host = InterfaceControl.Info.Hostname;
if (!string.IsNullOrEmpty(InterfaceControl.Info?.Username))
{
username = InterfaceControl.Info.Username;
}
else
{
// ReSharper disable once SwitchStatementMissingSomeCases
switch (Settings.Default.EmptyCredentials)
{
case "windows":
username = Environment.UserName;
break;
case "custom":
username = Settings.Default.DefaultUsername;
break;
}
}
if (!string.IsNullOrEmpty(InterfaceControl.Info?.Password))
{
password = InterfaceControl.Info.Password;
}
else
{
if (Settings.Default.EmptyCredentials == "custom")
{
var cryptographyProvider = new LegacyRijndaelCryptographyProvider();
password = cryptographyProvider.Decrypt(Settings.Default.DefaultPassword,
Runtime.EncryptionKey);
}
}
if (!InterfaceControl.Info.Port.Equals(Defaults.Port))
{
host += ":" + InterfaceControl.Info.Port.ToString();
}
arguments.Add(host, username, password);
WinboxProcess.StartInfo.Arguments = arguments.ToString();
WinboxProcess.EnableRaisingEvents = true;
WinboxProcess.Exited += ProcessExited;
WinboxProcess.Start();
WinboxProcess.WaitForInputIdle(Settings.Default.MaxPuttyWaitTime * 1000);
while (!WinboxProcess.StandardOutput.EndOfStream)
{
var line = WinboxProcess.StandardOutput.ReadLine();
Console.WriteLine(line);
if (line.Contains("startServices done"))
{
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, "Winbox - Find connection done");
break;
}
else if (line.Contains("disconnect"))
{
Runtime.MessageCollector.AddMessage(MessageClass.DebugMsg, "Winbox - Cannot Connect");
break;
}
}
var startTicks = Environment.TickCount;
while (WinboxHandle.ToInt32() == 0 &
Environment.TickCount < startTicks + Settings.Default.MaxPuttyWaitTime * 1000)
{
WinboxHandle = NativeMethods.FindWindowEx(InterfaceControl.Handle, new IntPtr(0), null, null);
WinboxProcess.Refresh();
WinboxHandle = WinboxProcess.MainWindowHandle;
if (WinboxHandle.ToInt32() == 0)
{
Thread.Sleep(0);
}
}
NativeMethods.SetParent(WinboxHandle, InterfaceControl.Handle);
Resize(this, new EventArgs());
base.Connect();
return true;
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.ConnectionFailed + Environment.NewLine + ex.Message);
return false;
}
}
public override void Focus()
{
try
{
NativeMethods.SetForegroundWindow(WinboxHandle);
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.PuttyFocusFailed + Environment.NewLine + ex.Message, true);
}
}
public override void Resize(object sender, EventArgs e)
{
try
{
if (InterfaceControl.Size == Size.Empty)
return;
//NativeMethods.MoveWindow(WinboxHandle, 0, 0, InterfaceControl.Width, InterfaceControl.Height, true);
var scaledFrameBorderHeight = _display.ScaleHeight(SystemInformation.FrameBorderSize.Height);
var scaledFrameBorderWidth = _display.ScaleWidth(SystemInformation.FrameBorderSize.Width);
NativeMethods.MoveWindow(WinboxHandle, -scaledFrameBorderWidth,
-(SystemInformation.CaptionHeight + scaledFrameBorderHeight),
InterfaceControl.Width + scaledFrameBorderWidth * 2,
InterfaceControl.Height + SystemInformation.CaptionHeight +
scaledFrameBorderHeight * 2,
true);
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.PuttyResizeFailed + Environment.NewLine + ex.Message, true);
}
}
public override void Close()
{
try
{
if (WinboxProcess.HasExited == false)
{
WinboxProcess.Kill();
}
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "Winbox - Kill process failed" + Environment.NewLine + ex.Message, true);
}
try
{
WinboxProcess.Dispose();
}
catch (Exception ex)
{
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, Language.PuttyDisposeFailed + Environment.NewLine + ex.Message, true);
}
base.Close();
}
public void ShowSettingsDialog()
{
}
#endregion
#region Enums
protected enum Winbox_Protocol
{
winbox = 0,
}
#endregion
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -112,10 +112,10 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="About" xml:space="preserve">
<value>About</value>
@@ -1086,12 +1086,6 @@ If you run into such an error, please create a new connection file!</value>
<data name="PropertyDescriptionUseCredSsp" xml:space="preserve">
<value>Use the Credential Security Support Provider (CredSSP) for authentication if it is available.</value>
</data>
<data name="PropertyDescriptionUseRestrictedAdmin" xml:space="preserve">
<value>Use restricted admin mode on the target host (local system context).</value>
</data>
<data name="PropertyDescriptionUseRCG" xml:space="preserve">
<value>Use Remote Credential Guard to tunnel authentication on target back to source through the RDP channel.</value>
</data>
<data name="PropertyDescriptionUser1" xml:space="preserve">
<value>Feel free to enter any information you need here.</value>
</data>
@@ -1245,12 +1239,6 @@ If you run into such an error, please create a new connection file!</value>
<data name="UseCredSsp" xml:space="preserve">
<value>Use CredSSP</value>
</data>
<data name="UseRestrictedAdmin" xml:space="preserve">
<value>Use Restricted Admin</value>
</data>
<data name="UseRCG" xml:space="preserve">
<value>Use Remote Credential Guard</value>
</data>
<data name="UserField" xml:space="preserve">
<value>User Field</value>
</data>
@@ -2235,49 +2223,7 @@ Nightly Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="PropertyDescriptionEC2Region" xml:space="preserve">
<value>fetch aws instance info from this region</value>
</data>
<data name="ACLPermissionsHidden" xml:space="preserve">
<value>Hidden</value>
<comment>Permission then option will be hide completly from user</comment>
</data>
<data name="ACLPermissionsReadOnly" xml:space="preserve">
<value>ReadOnly</value>
<comment>Permission then option is visible but user can't modify it</comment>
</data>
<data name="ACLPermissionsWriteAllow" xml:space="preserve">
<value>WriteAllow</value>
<comment>Permission then user could modify an option value</comment>
</data>
<data name="lblConnectionsBackupPath" xml:space="preserve">
<value>Select location for connection data backup folder</value>
</data>
<data name="btnBrowsePath" xml:space="preserve">
<value>Browse</value>
</data>
<data name="lblACL" xml:space="preserve">
<value>ACL for user</value>
</data>
<data name="lblBackupEnable" xml:space="preserve">
<value>Backups for connection data</value>
</data>
<data name="lblBackupNameFormat" xml:space="preserve">
<value>Backup file name format</value>
</data>
<data name="lblBackupType" xml:space="preserve">
<value>Backup type</value>
</data>
<data name="lblConnectionsBackupFrequency" xml:space="preserve">
<value>Connection Backup Frequency</value>
</data>
<data name="lblConnectionsBackupMaxCount" xml:space="preserve">
<value>Maximum number of backups</value>
</data>
<data name="PageСontrolInOptionsMenu" xml:space="preserve">
<value>Page control in Options menu</value>
</data>
<data name="ShowForUser" xml:space="preserve">
<value>Show for user</value>
</data>
<data name="FiltermRemoteRemoteDesktopManagerCSV" xml:space="preserve">
<value>Remote Desktop Manager Files (*.csv)</value>
<data name="Winbox" xml:space="preserve">
<value>Winbox</value>
</data>
</root>

File diff suppressed because it is too large Load Diff

View File

@@ -6,26 +6,26 @@ namespace mRemoteNG.Messages.MessageFilteringOptions
{
public bool AllowDebugMessages
{
get => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteDebugMsgs;
set => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteDebugMsgs = value;
get => Settings.Default.TextLogMessageWriterWriteDebugMsgs;
set => Settings.Default.TextLogMessageWriterWriteDebugMsgs = value;
}
public bool AllowInfoMessages
{
get => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteInfoMsgs;
set => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteInfoMsgs = value;
get => Settings.Default.TextLogMessageWriterWriteInfoMsgs;
set => Settings.Default.TextLogMessageWriterWriteInfoMsgs = value;
}
public bool AllowWarningMessages
{
get => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteWarningMsgs;
set => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteWarningMsgs = value;
get => Settings.Default.TextLogMessageWriterWriteWarningMsgs;
set => Settings.Default.TextLogMessageWriterWriteWarningMsgs = value;
}
public bool AllowErrorMessages
{
get => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteErrorMsgs;
set => Properties.OptionsNotificationsPage.Default.TextLogMessageWriterWriteErrorMsgs = value;
get => Settings.Default.TextLogMessageWriterWriteErrorMsgs;
set => Settings.Default.TextLogMessageWriterWriteErrorMsgs = value;
}
}
}

View File

@@ -6,26 +6,26 @@ namespace mRemoteNG.Messages.MessageFilteringOptions
{
public bool AllowDebugMessages
{
get => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteDebugMsgs;
set => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteDebugMsgs = value;
get => Settings.Default.NotificationPanelWriterWriteDebugMsgs;
set => Settings.Default.NotificationPanelWriterWriteDebugMsgs = value;
}
public bool AllowInfoMessages
{
get => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteInfoMsgs;
set => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteInfoMsgs = value;
get => Settings.Default.NotificationPanelWriterWriteInfoMsgs;
set => Settings.Default.NotificationPanelWriterWriteInfoMsgs = value;
}
public bool AllowWarningMessages
{
get => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteWarningMsgs;
set => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteWarningMsgs = value;
get => Settings.Default.NotificationPanelWriterWriteWarningMsgs;
set => Settings.Default.NotificationPanelWriterWriteWarningMsgs = value;
}
public bool AllowErrorMessages
{
get => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteErrorMsgs;
set => Properties.OptionsNotificationsPage.Default.NotificationPanelWriterWriteErrorMsgs = value;
get => Settings.Default.NotificationPanelWriterWriteErrorMsgs;
set => Settings.Default.NotificationPanelWriterWriteErrorMsgs = value;
}
}
}

View File

@@ -12,20 +12,20 @@ namespace mRemoteNG.Messages.MessageFilteringOptions
public bool AllowInfoMessages
{
get => Properties.OptionsNotificationsPage.Default.SwitchToMCOnInformation;
set => Properties.OptionsNotificationsPage.Default.SwitchToMCOnInformation = value;
get => Settings.Default.SwitchToMCOnInformation;
set => Settings.Default.SwitchToMCOnInformation = value;
}
public bool AllowWarningMessages
{
get => Properties.OptionsNotificationsPage.Default.SwitchToMCOnWarning;
set => Properties.OptionsNotificationsPage.Default.SwitchToMCOnWarning = value;
get => Settings.Default.SwitchToMCOnWarning;
set => Settings.Default.SwitchToMCOnWarning = value;
}
public bool AllowErrorMessages
{
get => Properties.OptionsNotificationsPage.Default.SwitchToMCOnError;
set => Properties.OptionsNotificationsPage.Default.SwitchToMCOnError = value;
get => Settings.Default.SwitchToMCOnError;
set => Settings.Default.SwitchToMCOnError = value;
}
}
}

View File

@@ -6,26 +6,26 @@ namespace mRemoteNG.Messages.MessageFilteringOptions
{
public bool AllowDebugMessages
{
get => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteDebugMsgs;
set => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteDebugMsgs = value;
get => Settings.Default.PopupMessageWriterWriteDebugMsgs;
set => Settings.Default.PopupMessageWriterWriteDebugMsgs = value;
}
public bool AllowInfoMessages
{
get => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteInfoMsgs;
set => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteInfoMsgs = value;
get => Settings.Default.PopupMessageWriterWriteInfoMsgs;
set => Settings.Default.PopupMessageWriterWriteInfoMsgs = value;
}
public bool AllowWarningMessages
{
get => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteWarningMsgs;
set => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteWarningMsgs = value;
get => Settings.Default.PopupMessageWriterWriteWarningMsgs;
set => Settings.Default.PopupMessageWriterWriteWarningMsgs = value;
}
public bool AllowErrorMessages
{
get => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteErrorMsgs;
set => Properties.OptionsNotificationsPage.Default.PopupMessageWriterWriteErrorMsgs = value;
get => Settings.Default.PopupMessageWriterWriteErrorMsgs;
set => Settings.Default.PopupMessageWriterWriteErrorMsgs = value;
}
}
}

View File

@@ -1,170 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class App : global::System.Configuration.ApplicationSettingsBase {
private static App defaultInstance = ((App)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new App())));
public static App Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Point MainFormLocation {
get {
return ((global::System.Drawing.Point)(this["MainFormLocation"]));
}
set {
this["MainFormLocation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Size MainFormSize {
get {
return ((global::System.Drawing.Size)(this["MainFormSize"]));
}
set {
this["MainFormSize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("Normal")]
public global::System.Windows.Forms.FormWindowState MainFormState {
get {
return ((global::System.Windows.Forms.FormWindowState)(this["MainFormState"]));
}
set {
this["MainFormState"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Size MainFormRestoreSize {
get {
return ((global::System.Drawing.Size)(this["MainFormRestoreSize"]));
}
set {
this["MainFormRestoreSize"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0, 0")]
public global::System.Drawing.Point MainFormRestoreLocation {
get {
return ((global::System.Drawing.Point)(this["MainFormRestoreLocation"]));
}
set {
this["MainFormRestoreLocation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool MainFormKiosk {
get {
return ((bool)(this["MainFormKiosk"]));
}
set {
this["MainFormKiosk"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1")]
public string StartOnScreen {
get {
return ((string)(this["StartOnScreen"]));
}
set {
this["StartOnScreen"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool FirstStart {
get {
return ((bool)(this["FirstStart"]));
}
set {
this["FirstStart"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ResetPanels {
get {
return ((bool)(this["ResetPanels"]));
}
set {
this["ResetPanels"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ResetToolbars {
get {
return ((bool)(this["ResetToolbars"]));
}
set {
this["ResetToolbars"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool DoUpgrade {
get {
return ((bool)(this["DoUpgrade"]));
}
set {
this["DoUpgrade"] = value;
}
}
}
}

View File

@@ -1,42 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="App">
<Profiles />
<Settings>
<Setting Name="MainFormLocation" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormState" Type="System.Windows.Forms.FormWindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
</Setting>
<Setting Name="MainFormRestoreSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormRestoreLocation" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormKiosk" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="StartOnScreen" Type="System.String" Scope="User">
<Value Profile="(Default)">1</Value>
</Setting>
<Setting Name="FirstStart" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ResetPanels" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ResetToolbars" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoUpgrade" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,36 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class AppUI : global::System.Configuration.ApplicationSettingsBase {
private static AppUI defaultInstance = ((AppUI)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new AppUI())));
public static AppUI Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("cs-CZ,de,el,en,en-US,es-AR,es,fr,hu,it,lt,ja-JP,ko-KR,nb-NO,nl,pt,pt-BR,pl,ru,uk," +
"tr-TR,zh-CN,zh-TW")]
public string SupportedUICultures {
get {
return ((string)(this["SupportedUICultures"]));
}
}
}
}

View File

@@ -1,9 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="AppUI">
<Profiles />
<Settings>
<Setting Name="SupportedUICultures" Type="System.String" Scope="Application">
<Value Profile="(Default)">cs-CZ,de,el,en,en-US,es-AR,es,fr,hu,it,lt,ja-JP,ko-KR,nb-NO,nl,pt,pt-BR,pl,ru,uk,tr-TR,zh-CN,zh-TW</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,110 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsAdvancedPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsAdvancedPage defaultInstance = ((OptionsAdvancedPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsAdvancedPage())));
public static OptionsAdvancedPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ReconnectOnDisconnect {
get {
return ((bool)(this["ReconnectOnDisconnect"]));
}
set {
this["ReconnectOnDisconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CustomPuttyPath {
get {
return ((string)(this["CustomPuttyPath"]));
}
set {
this["CustomPuttyPath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UseCustomPuttyPath {
get {
return ((bool)(this["UseCustomPuttyPath"]));
}
set {
this["UseCustomPuttyPath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("2")]
public int MaxPuttyWaitTime {
get {
return ((int)(this["MaxPuttyWaitTime"]));
}
set {
this["MaxPuttyWaitTime"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("5500")]
public int UVNCSCPort {
get {
return ((int)(this["UVNCSCPort"]));
}
set {
this["UVNCSCPort"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool RdpLoadBalanceInfoUseUtf8 {
get {
return ((bool)(this["RdpLoadBalanceInfoUseUtf8"]));
}
set {
this["RdpLoadBalanceInfoUseUtf8"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbAdvancedPageInOptionMenu {
get {
return ((bool)(this["cbAdvancedPageInOptionMenu"]));
}
set {
this["cbAdvancedPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,27 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsAdvancedPage">
<Profiles />
<Settings>
<Setting Name="ReconnectOnDisconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CustomPuttyPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UseCustomPuttyPath" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="MaxPuttyWaitTime" Type="System.Int32" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
<Setting Name="UVNCSCPort" Type="System.Int32" Scope="User">
<Value Profile="(Default)">5500</Value>
</Setting>
<Setting Name="RdpLoadBalanceInfoUseUtf8" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbAdvancedPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,98 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsAppearancePage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsAppearancePage defaultInstance = ((OptionsAppearancePage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsAppearancePage())));
public static OptionsAppearancePage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool ShowSystemTrayIcon {
get {
return ((bool)(this["ShowSystemTrayIcon"]));
}
set {
this["ShowSystemTrayIcon"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool MinimizeToTray {
get {
return ((bool)(this["MinimizeToTray"]));
}
set {
this["MinimizeToTray"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool CloseToTray {
get {
return ((bool)(this["CloseToTray"]));
}
set {
this["CloseToTray"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ShowDescriptionTooltipsInTree {
get {
return ((bool)(this["ShowDescriptionTooltipsInTree"]));
}
set {
this["ShowDescriptionTooltipsInTree"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ShowCompleteConsPathInTitle {
get {
return ((bool)(this["ShowCompleteConsPathInTitle"]));
}
set {
this["ShowCompleteConsPathInTitle"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbAppearancePageInOptionMenu {
get {
return ((bool)(this["cbAppearancePageInOptionMenu"]));
}
set {
this["cbAppearancePageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,24 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsAppearancePage">
<Profiles />
<Settings>
<Setting Name="ShowSystemTrayIcon" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="MinimizeToTray" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CloseToTray" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ShowDescriptionTooltipsInTree" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ShowCompleteConsPathInTitle" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbAppearancePageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,254 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsBackupPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsBackupPage defaultInstance = ((OptionsBackupPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsBackupPage())));
public static OptionsBackupPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("10")]
public int BackupFileKeepCount {
get {
return ((int)(this["BackupFileKeepCount"]));
}
set {
this["BackupFileKeepCount"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("{0}.{1:yyyyMMdd-HHmmssffff}.backup")]
public string BackupFileNameFormat {
get {
return ((string)(this["BackupFileNameFormat"]));
}
set {
this["BackupFileNameFormat"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string BackupLocation {
get {
return ((string)(this["BackupLocation"]));
}
set {
this["BackupLocation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool SaveConsOnExit {
get {
return ((bool)(this["SaveConsOnExit"]));
}
set {
this["SaveConsOnExit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int SaveConnectionsFrequency {
get {
return ((int)(this["SaveConnectionsFrequency"]));
}
set {
this["SaveConnectionsFrequency"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string CustomConsPath {
get {
return ((string)(this["CustomConsPath"]));
}
set {
this["CustomConsPath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool SaveConnectionsAfterEveryEdit {
get {
return ((bool)(this["SaveConnectionsAfterEveryEdit"]));
}
set {
this["SaveConnectionsAfterEveryEdit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("50")]
public int AutoSaveEveryMinutes {
get {
return ((int)(this["AutoSaveEveryMinutes"]));
}
set {
this["AutoSaveEveryMinutes"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool LoadConsFromCustomLocation {
get {
return ((bool)(this["LoadConsFromCustomLocation"]));
}
set {
this["LoadConsFromCustomLocation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupEnableACL {
get {
return ((int)(this["cbBackupEnableACL"]));
}
set {
this["cbBackupEnableACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupTypeACL {
get {
return ((int)(this["cbBackupTypeACL"]));
}
set {
this["cbBackupTypeACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupFrequencyACL {
get {
return ((int)(this["cbBackupFrequencyACL"]));
}
set {
this["cbBackupFrequencyACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupNumberACL {
get {
return ((int)(this["cbBackupNumberACL"]));
}
set {
this["cbBackupNumberACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupNameFormatACL {
get {
return ((int)(this["cbBackupNameFormatACL"]));
}
set {
this["cbBackupNameFormatACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int cbBackupLocationACL {
get {
return ((int)(this["cbBackupLocationACL"]));
}
set {
this["cbBackupLocationACL"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbBacupPageInOptionMenu {
get {
return ((bool)(this["cbBacupPageInOptionMenu"]));
}
set {
this["cbBacupPageInOptionMenu"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool BackupConnectionsOnExit {
get {
return ((bool)(this["BackupConnectionsOnExit"]));
}
set {
this["BackupConnectionsOnExit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool BackupConnectionsOnEdit {
get {
return ((bool)(this["BackupConnectionsOnEdit"]));
}
set {
this["BackupConnectionsOnEdit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool BackupConnectionsOnSave {
get {
return ((bool)(this["BackupConnectionsOnSave"]));
}
set {
this["BackupConnectionsOnSave"] = value;
}
}
}
}

View File

@@ -1,63 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsBackupPage">
<Profiles />
<Settings>
<Setting Name="BackupFileKeepCount" Type="System.Int32" Scope="User">
<Value Profile="(Default)">10</Value>
</Setting>
<Setting Name="BackupFileNameFormat" Type="System.String" Scope="User">
<Value Profile="(Default)">{0}.{1:yyyyMMdd-HHmmssffff}.backup</Value>
</Setting>
<Setting Name="BackupLocation" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SaveConsOnExit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SaveConnectionsFrequency" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="CustomConsPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SaveConnectionsAfterEveryEdit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AutoSaveEveryMinutes" Type="System.Int32" Scope="User">
<Value Profile="(Default)">50</Value>
</Setting>
<Setting Name="LoadConsFromCustomLocation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbBackupEnableACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBackupTypeACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBackupFrequencyACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBackupNumberACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBackupNameFormatACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBackupLocationACL" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="cbBacupPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="BackupConnectionsOnExit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="BackupConnectionsOnEdit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="BackupConnectionsOnSave" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,62 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsConnectionsPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsConnectionsPage defaultInstance = ((OptionsConnectionsPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsConnectionsPage())));
public static OptionsConnectionsPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("0")]
public int AutoSaveEveryMinutes {
get {
return ((int)(this["AutoSaveEveryMinutes"]));
}
set {
this["AutoSaveEveryMinutes"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ConnectrionFilePath {
get {
return ((string)(this["ConnectrionFilePath"]));
}
set {
this["ConnectrionFilePath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbConnectionsPageInOptionMenu {
get {
return ((bool)(this["cbConnectionsPageInOptionMenu"]));
}
set {
this["cbConnectionsPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,15 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsConnectionsPage">
<Profiles />
<Settings>
<Setting Name="AutoSaveEveryMinutes" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="ConnectrionFilePath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="cbConnectionsPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,98 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsCredentialsPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsCredentialsPage defaultInstance = ((OptionsCredentialsPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsCredentialsPage())));
public static OptionsCredentialsPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string DefaultUsername {
get {
return ((string)(this["DefaultUsername"]));
}
set {
this["DefaultUsername"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string DefaultPassword {
get {
return ((string)(this["DefaultPassword"]));
}
set {
this["DefaultPassword"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string DefaultDomain {
get {
return ((string)(this["DefaultDomain"]));
}
set {
this["DefaultDomain"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UserViaAPDefault {
get {
return ((string)(this["UserViaAPDefault"]));
}
set {
this["UserViaAPDefault"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("noinfo")]
public string EmptyCredentials {
get {
return ((string)(this["EmptyCredentials"]));
}
set {
this["EmptyCredentials"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbCredentialsPageInOptionMenu {
get {
return ((bool)(this["cbCredentialsPageInOptionMenu"]));
}
set {
this["cbCredentialsPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,24 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsCredentialsPage">
<Profiles />
<Settings>
<Setting Name="DefaultUsername" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="DefaultPassword" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="DefaultDomain" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UserViaAPDefault" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="EmptyCredentials" Type="System.String" Scope="User">
<Value Profile="(Default)">noinfo</Value>
</Setting>
<Setting Name="cbCredentialsPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,122 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsDBsPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsDBsPage defaultInstance = ((OptionsDBsPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsDBsPage())));
public static OptionsDBsPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UseSQLServer {
get {
return ((bool)(this["UseSQLServer"]));
}
set {
this["UseSQLServer"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("mssql")]
public string SQLServerType {
get {
return ((string)(this["SQLServerType"]));
}
set {
this["SQLServerType"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string SQLHost {
get {
return ((string)(this["SQLHost"]));
}
set {
this["SQLHost"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool SQLReadOnly {
get {
return ((bool)(this["SQLReadOnly"]));
}
set {
this["SQLReadOnly"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string SQLDatabaseName {
get {
return ((string)(this["SQLDatabaseName"]));
}
set {
this["SQLDatabaseName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string SQLUser {
get {
return ((string)(this["SQLUser"]));
}
set {
this["SQLUser"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string SQLPass {
get {
return ((string)(this["SQLPass"]));
}
set {
this["SQLPass"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbDBsPageInOptionMenu {
get {
return ((bool)(this["cbDBsPageInOptionMenu"]));
}
set {
this["cbDBsPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,30 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsDBsPage">
<Profiles />
<Settings>
<Setting Name="UseSQLServer" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SQLServerType" Type="System.String" Scope="User">
<Value Profile="(Default)">mssql</Value>
</Setting>
<Setting Name="SQLHost" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLReadOnly" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SQLDatabaseName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLUser" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLPass" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="cbDBsPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,242 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsNotificationsPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsNotificationsPage defaultInstance = ((OptionsNotificationsPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsNotificationsPage())));
public static OptionsNotificationsPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NotificationPanelWriterWriteDebugMsgs {
get {
return ((bool)(this["NotificationPanelWriterWriteDebugMsgs"]));
}
set {
this["NotificationPanelWriterWriteDebugMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NotificationPanelWriterWriteInfoMsgs {
get {
return ((bool)(this["NotificationPanelWriterWriteInfoMsgs"]));
}
set {
this["NotificationPanelWriterWriteInfoMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NotificationPanelWriterWriteWarningMsgs {
get {
return ((bool)(this["NotificationPanelWriterWriteWarningMsgs"]));
}
set {
this["NotificationPanelWriterWriteWarningMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool NotificationPanelWriterWriteErrorMsgs {
get {
return ((bool)(this["NotificationPanelWriterWriteErrorMsgs"]));
}
set {
this["NotificationPanelWriterWriteErrorMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool SwitchToMCOnInformation {
get {
return ((bool)(this["SwitchToMCOnInformation"]));
}
set {
this["SwitchToMCOnInformation"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool SwitchToMCOnWarning {
get {
return ((bool)(this["SwitchToMCOnWarning"]));
}
set {
this["SwitchToMCOnWarning"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool SwitchToMCOnError {
get {
return ((bool)(this["SwitchToMCOnError"]));
}
set {
this["SwitchToMCOnError"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool PopupMessageWriterWriteDebugMsgs {
get {
return ((bool)(this["PopupMessageWriterWriteDebugMsgs"]));
}
set {
this["PopupMessageWriterWriteDebugMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool PopupMessageWriterWriteInfoMsgs {
get {
return ((bool)(this["PopupMessageWriterWriteInfoMsgs"]));
}
set {
this["PopupMessageWriterWriteInfoMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool PopupMessageWriterWriteWarningMsgs {
get {
return ((bool)(this["PopupMessageWriterWriteWarningMsgs"]));
}
set {
this["PopupMessageWriterWriteWarningMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool PopupMessageWriterWriteErrorMsgs {
get {
return ((bool)(this["PopupMessageWriterWriteErrorMsgs"]));
}
set {
this["PopupMessageWriterWriteErrorMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool LogToApplicationDirectory {
get {
return ((bool)(this["LogToApplicationDirectory"]));
}
set {
this["LogToApplicationDirectory"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string LogFilePath {
get {
return ((string)(this["LogFilePath"]));
}
set {
this["LogFilePath"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool TextLogMessageWriterWriteDebugMsgs {
get {
return ((bool)(this["TextLogMessageWriterWriteDebugMsgs"]));
}
set {
this["TextLogMessageWriterWriteDebugMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool TextLogMessageWriterWriteErrorMsgs {
get {
return ((bool)(this["TextLogMessageWriterWriteErrorMsgs"]));
}
set {
this["TextLogMessageWriterWriteErrorMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool TextLogMessageWriterWriteInfoMsgs {
get {
return ((bool)(this["TextLogMessageWriterWriteInfoMsgs"]));
}
set {
this["TextLogMessageWriterWriteInfoMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool TextLogMessageWriterWriteWarningMsgs {
get {
return ((bool)(this["TextLogMessageWriterWriteWarningMsgs"]));
}
set {
this["TextLogMessageWriterWriteWarningMsgs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbNotificationsPageInOptionMenu {
get {
return ((bool)(this["cbNotificationsPageInOptionMenu"]));
}
set {
this["cbNotificationsPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,60 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsNotificationsPage">
<Profiles />
<Settings>
<Setting Name="NotificationPanelWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SwitchToMCOnInformation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SwitchToMCOnWarning" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SwitchToMCOnError" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="LogToApplicationDirectory" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="LogFilePath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="TextLogMessageWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="cbNotificationsPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,86 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsSecurityPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsSecurityPage defaultInstance = ((OptionsSecurityPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsSecurityPage())));
public static OptionsSecurityPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool EncryptCompleteConnectionsFile {
get {
return ((bool)(this["EncryptCompleteConnectionsFile"]));
}
set {
this["EncryptCompleteConnectionsFile"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("AES")]
public global::mRemoteNG.Security.BlockCipherEngines EncryptionEngine {
get {
return ((global::mRemoteNG.Security.BlockCipherEngines)(this["EncryptionEngine"]));
}
set {
this["EncryptionEngine"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("GCM")]
public global::mRemoteNG.Security.BlockCipherModes EncryptionBlockCipherMode {
get {
return ((global::mRemoteNG.Security.BlockCipherModes)(this["EncryptionBlockCipherMode"]));
}
set {
this["EncryptionBlockCipherMode"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("10000")]
public int EncryptionKeyDerivationIterations {
get {
return ((int)(this["EncryptionKeyDerivationIterations"]));
}
set {
this["EncryptionKeyDerivationIterations"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbSecurityPageInOptionMenu {
get {
return ((bool)(this["cbSecurityPageInOptionMenu"]));
}
set {
this["cbSecurityPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,21 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsSecurityPage">
<Profiles />
<Settings>
<Setting Name="EncryptCompleteConnectionsFile" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="EncryptionEngine" Type="mRemoteNG.Security.BlockCipherEngines" Scope="User">
<Value Profile="(Default)">AES</Value>
</Setting>
<Setting Name="EncryptionBlockCipherMode" Type="mRemoteNG.Security.BlockCipherModes" Scope="User">
<Value Profile="(Default)">GCM</Value>
</Setting>
<Setting Name="EncryptionKeyDerivationIterations" Type="System.Int32" Scope="User">
<Value Profile="(Default)">10000</Value>
</Setting>
<Setting Name="cbSecurityPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,98 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsStartupExitPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsStartupExitPage defaultInstance = ((OptionsStartupExitPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsStartupExitPage())));
public static OptionsStartupExitPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool StartFullScreen {
get {
return ((bool)(this["StartFullScreen"]));
}
set {
this["StartFullScreen"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool StartMinimized {
get {
return ((bool)(this["StartMinimized"]));
}
set {
this["StartMinimized"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool SaveConnectionsOnExit {
get {
return ((bool)(this["SaveConnectionsOnExit"]));
}
set {
this["SaveConnectionsOnExit"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool SingleInstance {
get {
return ((bool)(this["SingleInstance"]));
}
set {
this["SingleInstance"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool OpenConsFromLastSession {
get {
return ((bool)(this["OpenConsFromLastSession"]));
}
set {
this["OpenConsFromLastSession"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbStartupExitPageInOptionMenu {
get {
return ((bool)(this["cbStartupExitPageInOptionMenu"]));
}
set {
this["cbStartupExitPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,24 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsStartupExitPage">
<Profiles />
<Settings>
<Setting Name="StartFullScreen" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="StartMinimized" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SaveConnectionsOnExit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SingleInstance" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="OpenConsFromLastSession" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbStartupExitPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,158 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsTabsPanelsPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsTabsPanelsPage defaultInstance = ((OptionsTabsPanelsPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsTabsPanelsPage())));
public static OptionsTabsPanelsPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("General")]
public string StartUpPanelName {
get {
return ((string)(this["StartUpPanelName"]));
}
set {
this["StartUpPanelName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool AlwaysShowPanelTabs {
get {
return ((bool)(this["AlwaysShowPanelTabs"]));
}
set {
this["AlwaysShowPanelTabs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool CreateEmptyPanelOnStartUp {
get {
return ((bool)(this["CreateEmptyPanelOnStartUp"]));
}
set {
this["CreateEmptyPanelOnStartUp"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool AlwaysShowConnectionTabs {
get {
return ((bool)(this["AlwaysShowConnectionTabs"]));
}
set {
this["AlwaysShowConnectionTabs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool OpenTabsRightOfSelected {
get {
return ((bool)(this["OpenTabsRightOfSelected"]));
}
set {
this["OpenTabsRightOfSelected"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ShowLogonInfoOnTabs {
get {
return ((bool)(this["ShowLogonInfoOnTabs"]));
}
set {
this["ShowLogonInfoOnTabs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ShowProtocolOnTabs {
get {
return ((bool)(this["ShowProtocolOnTabs"]));
}
set {
this["ShowProtocolOnTabs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool IdentifyQuickConnectTabs {
get {
return ((bool)(this["IdentifyQuickConnectTabs"]));
}
set {
this["IdentifyQuickConnectTabs"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool DoubleClickOnTabClosesIt {
get {
return ((bool)(this["DoubleClickOnTabClosesIt"]));
}
set {
this["DoubleClickOnTabClosesIt"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool AlwaysShowPanelSelectionDlg {
get {
return ((bool)(this["AlwaysShowPanelSelectionDlg"]));
}
set {
this["AlwaysShowPanelSelectionDlg"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbTabsPanelsPageInOptionMenu {
get {
return ((bool)(this["cbTabsPanelsPageInOptionMenu"]));
}
set {
this["cbTabsPanelsPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,39 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsTabsPanelsPage">
<Profiles />
<Settings>
<Setting Name="StartUpPanelName" Type="System.String" Scope="User">
<Value Profile="(Default)">General</Value>
</Setting>
<Setting Name="AlwaysShowPanelTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CreateEmptyPanelOnStartUp" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="AlwaysShowConnectionTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="OpenTabsRightOfSelected" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ShowLogonInfoOnTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ShowProtocolOnTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="IdentifyQuickConnectTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoubleClickOnTabClosesIt" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AlwaysShowPanelSelectionDlg" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbTabsPanelsPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,62 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsThemePage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsThemePage defaultInstance = ((OptionsThemePage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsThemePage())));
public static OptionsThemePage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool ThemingActive {
get {
return ((bool)(this["ThemingActive"]));
}
set {
this["ThemingActive"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string ThemeName {
get {
return ((string)(this["ThemeName"]));
}
set {
this["ThemeName"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbThemePageInOptionMenu {
get {
return ((bool)(this["cbThemePageInOptionMenu"]));
}
set {
this["cbThemePageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,15 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsThemePage">
<Profiles />
<Settings>
<Setting Name="ThemingActive" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ThemeName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="cbThemePageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,200 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class OptionsUpdatesPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsUpdatesPage defaultInstance = ((OptionsUpdatesPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsUpdatesPage())));
public static OptionsUpdatesPage Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UpdatePending {
get {
return ((bool)(this["UpdatePending"]));
}
set {
this["UpdatePending"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("release")]
public string UpdateChannel {
get {
return ((string)(this["UpdateChannel"]));
}
set {
this["UpdateChannel"] = value;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("https://mremoteng.org/")]
public string UpdateAddress {
get {
return ((string)(this["UpdateAddress"]));
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UpdateProxyAddress {
get {
return ((string)(this["UpdateProxyAddress"]));
}
set {
this["UpdateProxyAddress"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UpdateProxyAuthPass {
get {
return ((string)(this["UpdateProxyAuthPass"]));
}
set {
this["UpdateProxyAuthPass"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("")]
public string UpdateProxyAuthUser {
get {
return ((string)(this["UpdateProxyAuthUser"]));
}
set {
this["UpdateProxyAuthUser"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("80")]
public int UpdateProxyPort {
get {
return ((int)(this["UpdateProxyPort"]));
}
set {
this["UpdateProxyPort"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UpdateProxyUseAuthentication {
get {
return ((bool)(this["UpdateProxyUseAuthentication"]));
}
set {
this["UpdateProxyUseAuthentication"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool UpdateUseProxy {
get {
return ((bool)(this["UpdateUseProxy"]));
}
set {
this["UpdateUseProxy"] = value;
}
}
[global::System.Configuration.ApplicationScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("dev")]
public string CurrentUpdateChannelType {
get {
return ((string)(this["CurrentUpdateChannelType"]));
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool CheckForUpdatesOnStartup {
get {
return ((bool)(this["CheckForUpdatesOnStartup"]));
}
set {
this["CheckForUpdatesOnStartup"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("1980-01-01")]
public global::System.DateTime CheckForUpdatesLastCheck {
get {
return ((global::System.DateTime)(this["CheckForUpdatesLastCheck"]));
}
set {
this["CheckForUpdatesLastCheck"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("14")]
public int CheckForUpdatesFrequencyDays {
get {
return ((int)(this["CheckForUpdatesFrequencyDays"]));
}
set {
this["CheckForUpdatesFrequencyDays"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool CheckForUpdatesAsked {
get {
return ((bool)(this["CheckForUpdatesAsked"]));
}
set {
this["CheckForUpdatesAsked"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]
public bool cbUpdatesPageInOptionMenu {
get {
return ((bool)(this["cbUpdatesPageInOptionMenu"]));
}
set {
this["cbUpdatesPageInOptionMenu"] = value;
}
}
}
}

View File

@@ -1,51 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="OptionsUpdatesPage">
<Profiles />
<Settings>
<Setting Name="UpdatePending" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateChannel" Type="System.String" Scope="User">
<Value Profile="(Default)">release</Value>
</Setting>
<Setting Name="UpdateAddress" Type="System.String" Scope="Application">
<Value Profile="(Default)">https://mremoteng.org/</Value>
</Setting>
<Setting Name="UpdateProxyAddress" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UpdateProxyAuthPass" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UpdateProxyAuthUser" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UpdateProxyPort" Type="System.Int32" Scope="User">
<Value Profile="(Default)">80</Value>
</Setting>
<Setting Name="UpdateProxyUseAuthentication" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateUseProxy" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CurrentUpdateChannelType" Type="System.String" Scope="Application">
<Value Profile="(Default)">dev</Value>
</Setting>
<Setting Name="CheckForUpdatesOnStartup" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="CheckForUpdatesLastCheck" Type="System.DateTime" Scope="User">
<Value Profile="(Default)">1980-01-01</Value>
</Setting>
<Setting Name="CheckForUpdatesFrequencyDays" Type="System.Int32" Scope="User">
<Value Profile="(Default)">14</Value>
</Setting>
<Setting Name="CheckForUpdatesAsked" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="cbUpdatesPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -112,12 +112,12 @@
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="ConnectedOverlay" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\ConnectedOverlay.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>

File diff suppressed because it is too large Load Diff

View File

@@ -2,9 +2,102 @@
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="Settings" UseMySettingsClassName="true">
<Profiles />
<Settings>
<Setting Name="MainFormLocation" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
<Setting Name="MainFormState" Type="System.Windows.Forms.FormWindowState" Scope="User">
<Value Profile="(Default)">Normal</Value>
</Setting>
<Setting Name="MainFormKiosk" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoUpgrade" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="CustomPuttyPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SwitchToMCOnInformation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SwitchToMCOnWarning" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SwitchToMCOnError" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="LoadConsFromCustomLocation" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CustomConsPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SaveConsOnExit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="CheckForUpdatesOnStartup" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ShowDescriptionTooltipsInTree" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ShowSystemTrayIcon" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="OpenTabsRightOfSelected" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ShowLogonInfoOnTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SingleClickOnConnectionOpensIt" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="EmptyCredentials" Type="System.String" Scope="User">
<Value Profile="(Default)">noinfo</Value>
</Setting>
<Setting Name="DefaultUsername" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="DefaultPassword" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="DefaultDomain" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UseCustomPuttyPath" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="FirstStart" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ShowProtocolOnTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ResetPanels" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateUseProxy" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateProxyAddress" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UpdateProxyPort" Type="System.Int32" Scope="User">
<Value Profile="(Default)">80</Value>
</Setting>
<Setting Name="UpdateProxyUseAuthentication" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateProxyAuthUser" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="UpdateProxyAuthPass" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultDescription" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
@@ -59,9 +152,21 @@
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="MaxPuttyWaitTime" Type="System.Int32" Scope="User">
<Value Profile="(Default)">2</Value>
</Setting>
<Setting Name="SingleInstance" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="OpenConsFromLastSession" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="AutoSaveEveryMinutes" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="ExtAppsTBVisible" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -83,6 +188,21 @@
<Setting Name="QuickyTBParentDock" Type="System.String" Scope="User">
<Value Profile="(Default)">Top</Value>
</Setting>
<Setting Name="ResetToolbars" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UseSQLServer" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SQLHost" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLUser" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLPass" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InhDefaultCacheBitmaps" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -167,6 +287,15 @@
<Setting Name="SetHostnameLikeDisplayName" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoubleClickOnTabClosesIt" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ReconnectOnDisconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="AlwaysShowPanelSelectionDlg" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultVNCAuthMode" Type="System.String" Scope="User">
<Value Profile="(Default)">AuthVNC</Value>
</Setting>
@@ -233,6 +362,9 @@
<Setting Name="InhDefaultVNCProxyUsername" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="MinimizeToTray" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SingleClickSwitchesToOpenConnection" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -242,6 +374,9 @@
<Setting Name="InhDefaultRDPAuthenticationLevel" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UVNCSCPort" Type="System.Int32" Scope="User">
<Value Profile="(Default)">5500</Value>
</Setting>
<Setting Name="XULRunnerPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
@@ -254,6 +389,9 @@
<Setting Name="InhDefaultMacAddress" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="EncryptCompleteConnectionsFile" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUserField" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
@@ -266,6 +404,18 @@
<Setting Name="InhDefaultExtApp" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CheckForUpdatesAsked" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CheckForUpdatesFrequencyDays" Type="System.Int32" Scope="User">
<Value Profile="(Default)">14</Value>
</Setting>
<Setting Name="CheckForUpdatesLastCheck" Type="System.DateTime" Scope="User">
<Value Profile="(Default)">1980-01-01</Value>
</Setting>
<Setting Name="UpdatePending" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultRDGatewayUsageMethod" Type="System.String" Scope="User">
<Value Profile="(Default)">Never</Value>
</Setting>
@@ -338,27 +488,42 @@
<Setting Name="ConfirmCloseConnection" Type="System.Int32" Scope="User">
<Value Profile="(Default)">4</Value>
</Setting>
<Setting Name="MainFormRestoreSize" Type="System.Drawing.Size" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="MainFormRestoreLocation" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="SQLDatabaseName" Type="System.String" Scope="User">
<Value Profile="(Default)">mRemoteNG</Value>
</Setting>
<Setting Name="BackupFileKeepCount" Roaming="true" Type="System.Int32" Scope="User">
<Value Profile="(Default)">10</Value>
</Setting>
<Setting Name="BackupFileNameFormat" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">{0}.{1:yyyyMMdd-HHmmssffff}.backup</Value>
</Setting>
<Setting Name="InhDefaultUseCredSsp" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseCredSsp" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="InhDefaultUseRestrictedAdmin" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseRestrictedAdmin" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultUseRCG" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseRCG" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseVmId" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="AlwaysShowPanelTabs" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="IdentifyQuickConnectTabs" Roaming="true" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="UpdateChannel" Type="System.String" Scope="User">
<Value Profile="(Default)">release</Value>
</Setting>
<Setting Name="ThemeName" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ShowConfigHelpText" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
@@ -371,6 +536,9 @@
<Setting Name="CompatibilityWarnLenovoAutoScrollUtility" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="UpdateAddress" Type="System.String" Scope="Application">
<Value Profile="(Default)">https://mremoteng.org/</Value>
</Setting>
<Setting Name="ConDefaultLoadBalanceInfo" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
@@ -392,9 +560,21 @@
<Setting Name="KeysNextTab" Roaming="true" Type="System.String" Scope="User">
<Value Profile="(Default)">9/8, 34/8</Value>
</Setting>
<Setting Name="ShowCompleteConsPathInTitle" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConRDPOverallConnectionTimeout" Type="System.Int32" Scope="User">
<Value Profile="(Default)">20</Value>
</Setting>
<Setting Name="EncryptionEngine" Type="mRemoteNG.Security.BlockCipherEngines" Scope="User">
<Value Profile="(Default)">AES</Value>
</Setting>
<Setting Name="EncryptionBlockCipherMode" Type="mRemoteNG.Security.BlockCipherModes" Scope="User">
<Value Profile="(Default)">GCM</Value>
</Setting>
<Setting Name="EncryptionKeyDerivationIterations" Type="System.Int32" Scope="User">
<Value Profile="(Default)">10000</Value>
</Setting>
<Setting Name="ConDefaultSoundQuality" Type="System.String" Scope="User">
<Value Profile="(Default)">Dynamic</Value>
</Setting>
@@ -419,9 +599,57 @@
<Setting Name="ConDefaultCredentialRecord" Type="System.Guid" Scope="User">
<Value Profile="(Default)">00000000-0000-0000-0000-000000000000</Value>
</Setting>
<Setting Name="LogFilePath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="TextLogMessageWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="TextLogMessageWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="NotificationPanelWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteDebugMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteInfoMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteWarningMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PopupMessageWriterWriteErrorMsgs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="LogToApplicationDirectory" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="PromptUnlockCredReposOnStartup" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="SupportedUICultures" Type="System.String" Scope="Application">
<Value Profile="(Default)">cs-CZ,de,el,en,en-US,es-AR,es,fr,hu,it,lt,ja-JP,ko-KR,nb-NO,nl,pt,pt-BR,pl,ru,uk,tr-TR,zh-CN,zh-TW</Value>
</Setting>
<Setting Name="ThemingActive" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="ConDefaultUsername" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
@@ -434,12 +662,21 @@
<Setting Name="ConDefaultPanel" Type="System.String" Scope="User">
<Value Profile="(Default)">General</Value>
</Setting>
<Setting Name="SaveConnectionsAfterEveryEdit" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="UseFilterSearch" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SQLReadOnly" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="LockToolbars" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="RdpLoadBalanceInfoUseUtf8" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="MultiSshToolbarLocation" Type="System.Drawing.Point" Scope="User">
<Value Profile="(Default)">0, 0</Value>
</Setting>
@@ -449,12 +686,21 @@
<Setting Name="MultiSshToolbarVisible" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CreateEmptyPanelOnStartUp" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="StartUpPanelName" Type="System.String" Scope="User">
<Value Profile="(Default)">General</Value>
</Setting>
<Setting Name="TrackActiveConnectionInConnectionTree" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="PlaceSearchBarAboveConnectionTree" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="AlwaysShowConnectionTabs" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="OverrideFIPSCheck" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -464,6 +710,9 @@
<Setting Name="InhDefaultFavorite" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SQLServerType" Type="System.String" Scope="User">
<Value Profile="(Default)">mssql</Value>
</Setting>
<Setting Name="DoNotTrimUsername" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -476,6 +725,9 @@
<Setting Name="InhDefaultUseVmId" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="SaveConnectionsFrequency" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value>
</Setting>
<Setting Name="ConDefaultRdpVersion" Type="System.String" Scope="User">
<Value Profile="(Default)">Highest</Value>
</Setting>
@@ -494,12 +746,18 @@
<Setting Name="ConDefaultSSHOptions" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="StartMinimized" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ConDefaultUseEnhancedMode" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultUseEnhancedMode" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="CloseToTray" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="StartupComponentsCheck" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -527,6 +785,9 @@
<Setting Name="InhDefaultICAEncryptionStrength" Type="System.String" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="StartFullScreen" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ViewMenuMessages" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
@@ -545,26 +806,14 @@
<Setting Name="OpeningCommand" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="CurrentUpdateChannelType" Type="System.String" Scope="User">
<Value Profile="(Default)">dev</Value>
</Setting>
<Setting Name="ConDefaultRDPStartProgram" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultRDPStartProgramWorkDir" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultEC2InstanceId" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultUserViaAPI" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="ConDefaultOpeningCommand" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>
<Setting Name="InhDefaultUserViaAPI" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="InhDefaultOpeningCommand" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -1,56 +1,50 @@
<?xml version="1.0" encoding="utf-8"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv1="urn:schemas-microsoft-com:asm.v1" xmlns:asmv2="urn:schemas-microsoft-com:asm.v2" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.77.3.0" name="mRemoteNG" />
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2019/WindowsSettings">
<activeCodePage>UTF-8</activeCodePage>
</asmv3:windowsSettings>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<dpiAwareness>PerMonitorV2</dpiAwareness>
</asmv3:windowsSettings>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
<asmv3:windowsSettings xmlns:ws2="http://schemas.microsoft.com/SMI/2016/WindowsSettings">
<ws2:longPathAware>true</ws2:longPathAware>
</asmv3:windowsSettings>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2020/WindowsSettings">
<heapType>SegmentHeap</heapType>
</asmv3:windowsSettings>
</asmv3:application>
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<asmv1:assembly manifestVersion="1.0" xmlns="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv1="urn:schemas-microsoft-com:asm.v1"
xmlns:asmv2="urn:schemas-microsoft-com:asm.v2"
xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<assemblyIdentity version="1.0.0.0" name="MyApplication.app" />
<trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
<security>
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<!-- UAC Manifest Options
If you want to change the Windows User Account Control level replace the
requestedExecutionLevel node with one of the following.
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
<requestedExecutionLevel level="highestAvailable" uiAccess="false" />
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows 10, 11 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
</application>
</compatibility>
</assembly>
If you want to utilize File and Registry Virtualization for backward
compatibility then delete the requestedExecutionLevel node.
-->
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
<applicationRequestMinimum>
<PermissionSet Unrestricted="true" ID="Custom" SameSite="site" />
<defaultAssemblyRequest permissionSetReference="Custom" />
</applicationRequestMinimum>
</security>
</trustInfo>
<compatibility xmlns="urn:schemas-microsoft-com:compatibility.v1">
<application>
<!-- Windows 10 -->
<supportedOS Id="{8e0f7a12-bfb3-4fe8-b9a5-48fd50a15a9a}"/>
<!-- Windows 8.1 -->
<supportedOS Id="{1f676c76-80e1-4239-95bb-83d0f6d0da78}"/>
<!-- Windows Vista -->
<supportedOS Id="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/>
<!-- Windows 7 -->
<supportedOS Id="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/>
<!-- Windows 8 -->
<supportedOS Id="{4a2f28e3-53b9-4441-ba9c-d69d4a4a6e38}"/>
</application>
</compatibility>
<asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<dpiAware>true</dpiAware>
</asmv3:windowsSettings>
</asmv3:application>
</asmv1:assembly>

View File

@@ -1,50 +0,0 @@
//------------------------------------------------------------------------------
// <auto-generated>
// This code was generated by a tool.
// Runtime Version:4.0.30319.42000
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------
namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
internal sealed partial class rbac : global::System.Configuration.ApplicationSettingsBase {
private static rbac defaultInstance = ((rbac)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new rbac())));
public static rbac Default {
get {
return defaultInstance;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("AdminRole")]
public string ActiveRole {
get {
return ((string)(this["ActiveRole"]));
}
set {
this["ActiveRole"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("mR3m0t3NG!")]
public string AdminRolePassword {
get {
return ((string)(this["AdminRolePassword"]));
}
set {
this["AdminRolePassword"] = value;
}
}
}
}

View File

@@ -1,12 +0,0 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="mRemoteNG.Properties" GeneratedClassName="rbac">
<Profiles />
<Settings>
<Setting Name="ActiveRole" Type="System.String" Scope="User">
<Value Profile="(Default)">AdminRole</Value>
</Setting>
<Setting Name="AdminRolePassword" Type="System.String" Scope="User">
<Value Profile="(Default)">mR3m0t3NG!</Value>
</Setting>
</Settings>
</SettingsFile>

Binary file not shown.

View File

@@ -175,10 +175,5 @@
<xs:attribute name="UserViaAPI" type="xs:string" use="optional" />
<xs:attribute name="EC2InstanceId" type="xs:string" use="optional" />
<xs:attribute name="EC2Region" type="xs:string" use="optional" />
<xs:attribute name="UseRCG" type="xs:boolean" use="optional" />
<xs:attribute name="UseRestrictedAdmin" type="xs:boolean" use="optional" />
<xs:attribute name="InheritUseRCG" type="xs:boolean" use="optional" />
<xs:attribute name="InheritUseRestrictedAdmin" type="xs:boolean" use="optional" />
</xs:complexType>
</xs:schema>

View File

@@ -7,8 +7,9 @@ namespace mRemoteNG.Security.Factories
public ICryptographyProvider Build()
{
var provider =
new CryptoProviderFactory(Properties.OptionsSecurityPage.Default.EncryptionEngine, Properties.OptionsSecurityPage.Default.EncryptionBlockCipherMode).Build();
provider.KeyDerivationIterations = Properties.OptionsSecurityPage.Default.EncryptionKeyDerivationIterations;
new CryptoProviderFactory(Settings.Default.EncryptionEngine, Settings.Default.EncryptionBlockCipherMode)
.Build();
provider.KeyDerivationIterations = Settings.Default.EncryptionKeyDerivationIterations;
return provider;
}
}

View File

@@ -39,18 +39,18 @@ namespace mRemoteNG.Themes
private void SetActive()
{
if (themes[Properties.OptionsThemePage.Default.ThemeName] != null)
ActiveTheme = (ThemeInfo)themes[Properties.OptionsThemePage.Default.ThemeName];
if (themes[Settings.Default.ThemeName] != null)
ActiveTheme = (ThemeInfo)themes[Settings.Default.ThemeName];
else
{
ActiveTheme = DefaultTheme;
if (string.IsNullOrEmpty(Properties.OptionsThemePage.Default.ThemeName)) return;
if (string.IsNullOrEmpty(Settings.Default.ThemeName)) return;
//too early for logging to be enabled...
Debug.WriteLine("Detected invalid Theme in settings file. Resetting to default.");
// if we got here, then there's an invalid theme name in use, so just empty it out...
Properties.OptionsThemePage.Default.ThemeName = "";
Properties.OptionsThemePage.Default.Save();
Settings.Default.ThemeName = "";
Settings.Default.Save();
}
}
@@ -168,27 +168,45 @@ namespace mRemoteNG.Themes
//Load the embedded themes, extended palettes are taken from the vs2015 themes, trying to match the color theme
// 2012
var vs2012Light = new ThemeInfo("vs2012Light", new VS2012LightTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2012, ((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
var vs2012Light = new ThemeInfo("vs2012Light", new VS2012LightTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2012,
((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
themes.Add(vs2012Light.Name, vs2012Light);
var vs2012Dark = new ThemeInfo("vs2012Dark", new VS2012DarkTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2012, ((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
var vs2012Dark = new ThemeInfo("vs2012Dark", new VS2012DarkTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2012,
((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
themes.Add(vs2012Dark.Name, vs2012Dark);
var vs2012Blue = new ThemeInfo("vs2012Blue", new VS2012BlueTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2012, ((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
var vs2012Blue = new ThemeInfo("vs2012Blue", new VS2012BlueTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2012,
((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
themes.Add(vs2012Blue.Name, vs2012Blue);
// 2013
var vs2013Light = new ThemeInfo("vs2013Light", new VS2013LightTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2013, ((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
var vs2013Light = new ThemeInfo("vs2013Light", new VS2013LightTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2013,
((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
themes.Add(vs2013Light.Name, vs2013Light);
var vs2013Dark = new ThemeInfo("vs2013Dark", new VS2013DarkTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2013, ((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
var vs2013Dark = new ThemeInfo("vs2013Dark", new VS2013DarkTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2013,
((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
themes.Add(vs2013Dark.Name, vs2013Dark);
var vs2013Blue = new ThemeInfo("vs2013Blue", new VS2013BlueTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2013, ((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
var vs2013Blue = new ThemeInfo("vs2013Blue", new VS2013BlueTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2013,
((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
themes.Add(vs2013Blue.Name, vs2013Blue);
// 2015
var vs2015Light = new ThemeInfo("vs2015Light", new VS2015LightTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2015, ((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
var vs2015Light = new ThemeInfo("vs2015Light", new VS2015LightTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2015,
((ThemeInfo)themes["vs2015lightNG"]).ExtendedPalette);
themes.Add(vs2015Light.Name, vs2015Light);
var vs2015Dark = new ThemeInfo("vs2015Dark", new VS2015DarkTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2015, ((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
var vs2015Dark = new ThemeInfo("vs2015Dark", new VS2015DarkTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2015,
((ThemeInfo)themes["vs2015darkNG"]).ExtendedPalette);
themes.Add(vs2015Dark.Name, vs2015Dark);
var vs2015Blue = new ThemeInfo("vs2015Blue", new VS2015BlueTheme(), "", VisualStudioToolStripExtender.VsVersion.Vs2015, ((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
var vs2015Blue = new ThemeInfo("vs2015Blue", new VS2015BlueTheme(), "",
VisualStudioToolStripExtender.VsVersion.Vs2015,
((ThemeInfo)themes["vs2015blueNG"]).ExtendedPalette);
themes.Add(vs2015Blue.Name, vs2015Blue);
}
}
@@ -285,7 +303,7 @@ namespace mRemoteNG.Themes
{
if (themes.Count == 0) return;
_themeActive = value;
Properties.OptionsThemePage.Default.ThemingActive = value;
Settings.Default.ThemingActive = value;
NotifyThemeChanged(this, new PropertyChangedEventArgs(""));
}
}
@@ -306,20 +324,20 @@ namespace mRemoteNG.Themes
// Default accordingly...
if (value == null)
{
var changed = !Properties.OptionsThemePage.Default.ThemeName.Equals(DefaultTheme.Name);
var changed = !Settings.Default.ThemeName.Equals(DefaultTheme.Name);
Properties.OptionsThemePage.Default.ThemeName = DefaultTheme.Name;
Settings.Default.ThemeName = DefaultTheme.Name;
_activeTheme = DefaultTheme;
if (changed)
NotifyThemeChanged(this, new PropertyChangedEventArgs("theme"));
Properties.OptionsThemePage.Default.Save();
Settings.Default.Save();
return;
}
_activeTheme = value;
Properties.OptionsThemePage.Default.ThemeName = value.Name;
Settings.Default.ThemeName = value.Name;
NotifyThemeChanged(this, new PropertyChangedEventArgs("theme"));
}
}

View File

@@ -48,28 +48,28 @@ namespace mRemoteNG.Tools.Cmdline
{
if (args["resetpos"] == null && args["rp"] == null && args["reset"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg, "Cmdline arg: Resetting window positions.");
Properties.App.Default.MainFormKiosk = false;
Settings.Default.MainFormKiosk = false;
var newWidth = 900;
var newHeight = 600;
var newX = Screen.PrimaryScreen.WorkingArea.Width / 2 - newWidth / 2;
var newY = Screen.PrimaryScreen.WorkingArea.Height / 2 - newHeight / 2;
Properties.App.Default.MainFormLocation = new Point(newX, newY);
Properties.App.Default.MainFormSize = new Size(newWidth, newHeight);
Properties.App.Default.MainFormState = FormWindowState.Normal;
Settings.Default.MainFormLocation = new Point(newX, newY);
Settings.Default.MainFormSize = new Size(newWidth, newHeight);
Settings.Default.MainFormState = FormWindowState.Normal;
}
private void ParseResetPanelsArg(CmdArgumentsInterpreter args)
{
if (args["resetpanels"] == null && args["rpnl"] == null && args["reset"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg, "Cmdline arg: Resetting panels");
Properties.App.Default.ResetPanels = true;
Settings.Default.ResetPanels = true;
}
private void ParseResetToolbarArg(CmdArgumentsInterpreter args)
{
if (args["resettoolbar"] == null && args["rtbr"] == null && args["reset"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg, "Cmdline arg: Resetting toolbar position");
Properties.App.Default.ResetToolbars = true;
Settings.Default.ResetToolbars = true;
}
private void ParseNoReconnectArg(CmdArgumentsInterpreter args)
@@ -77,7 +77,7 @@ namespace mRemoteNG.Tools.Cmdline
if (args["noreconnect"] == null && args["norc"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg,
"Cmdline arg: Disabling reconnection to previously connected hosts");
Properties.App.Default.NoReconnect = true;
Settings.Default.NoReconnect = true;
}
private void ParseCustomConnectionPathArg(CmdArgumentsInterpreter args)
@@ -94,19 +94,20 @@ namespace mRemoteNG.Tools.Cmdline
{
if (File.Exists(Path.Combine(GeneralAppInfo.HomePath, args[consParam])))
{
Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation = true;
Properties.OptionsBackupPage.Default.BackupLocation = Path.Combine(GeneralAppInfo.HomePath, args[consParam]);
Settings.Default.LoadConsFromCustomLocation = true;
Settings.Default.CustomConsPath = Path.Combine(GeneralAppInfo.HomePath, args[consParam]);
return;
}
if (!File.Exists(Path.Combine(ConnectionsFileInfo.DefaultConnectionsPath, args[consParam]))) return;
Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation = true;
Properties.OptionsBackupPage.Default.BackupLocation = Path.Combine(ConnectionsFileInfo.DefaultConnectionsPath, args[consParam]);
Settings.Default.LoadConsFromCustomLocation = true;
Settings.Default.CustomConsPath =
Path.Combine(ConnectionsFileInfo.DefaultConnectionsPath, args[consParam]);
}
else
{
Properties.OptionsBackupPage.Default.LoadConsFromCustomLocation = true;
Properties.OptionsBackupPage.Default.BackupLocation = args[consParam];
Settings.Default.LoadConsFromCustomLocation = true;
Settings.Default.CustomConsPath = args[consParam];
}
}
}

View File

@@ -178,23 +178,25 @@ namespace mRemoteNG.Tools
case "username":
replacement = _connectionInfo.Username;
if (string.IsNullOrEmpty(replacement))
if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "windows")
if (Settings.Default.EmptyCredentials == "windows")
replacement = Environment.UserName;
else if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
replacement = Properties.OptionsCredentialsPage.Default.DefaultUsername;
else if (Settings.Default.EmptyCredentials == "custom")
replacement = Settings.Default.DefaultUsername;
break;
case "password":
replacement = _connectionInfo.Password;
if (string.IsNullOrEmpty(replacement) && Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
replacement = new LegacyRijndaelCryptographyProvider().Decrypt(Convert.ToString(Properties.OptionsCredentialsPage.Default.DefaultPassword), Runtime.EncryptionKey);
if (string.IsNullOrEmpty(replacement) && Settings.Default.EmptyCredentials == "custom")
replacement = new LegacyRijndaelCryptographyProvider()
.Decrypt(Convert.ToString(Settings.Default.DefaultPassword),
Runtime.EncryptionKey);
break;
case "domain":
replacement = _connectionInfo.Domain;
if (string.IsNullOrEmpty(replacement))
if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "windows")
if (Settings.Default.EmptyCredentials == "windows")
replacement = Environment.UserDomainName;
else if (Properties.OptionsCredentialsPage.Default.EmptyCredentials == "custom")
replacement = Properties.OptionsCredentialsPage.Default.DefaultDomain;
else if (Settings.Default.EmptyCredentials == "custom")
replacement = Settings.Default.DefaultDomain;
break;
case "description":
replacement = _connectionInfo.Description;

View File

@@ -13,7 +13,6 @@ using mRemoteNG.UI.Forms;
using MySql.Data.Types;
using mRemoteNG.Resources.Language;
using static System.String;
using System.Windows;
namespace mRemoteNG.Tools
{
@@ -44,10 +43,9 @@ namespace mRemoteNG.Tools
public static Optional<SecureString> PasswordDialog(string passwordName = null, bool verify = true)
{
var splash = FrmSplashScreenNew.GetInstance();
//TODO: something not right there
//if (PresentationSource.FromVisual(splash))
// splash.Close();
var splash = FrmSplashScreen.getInstance();
if (!splash.IsDisposed && splash.Visible)
splash.Close();
var passwordForm = new FrmPassword(passwordName, verify);
return passwordForm.GetKey();
@@ -66,7 +64,7 @@ namespace mRemoteNG.Tools
public static string DBDate(DateTime Dt)
{
switch (Properties.OptionsDBsPage.Default.SQLServerType)
switch (Settings.Default.SQLServerType)
{
case "mysql":
return Dt.ToString("yyyy/MM/dd HH:mm:ss");
@@ -78,7 +76,7 @@ namespace mRemoteNG.Tools
public static Type DBTimeStampType()
{
switch (Properties.OptionsDBsPage.Default.SQLServerType)
switch (Settings.Default.SQLServerType)
{
case "mysql":
return typeof(MySqlDateTime);
@@ -90,7 +88,7 @@ namespace mRemoteNG.Tools
public static object DBTimeStampNow()
{
switch (Properties.OptionsDBsPage.Default.SQLServerType)
switch (Settings.Default.SQLServerType)
{
case "mysql":
return new MySqlDateTime(DateTime.Now);
@@ -128,7 +126,8 @@ namespace mRemoteNG.Tools
{
var bmp = new Bitmap(sender.Width, sender.Height, PixelFormat.Format32bppRgb);
Graphics g = Graphics.FromImage(bmp);
g.CopyFromScreen(sender.PointToScreen(System.Drawing.Point.Empty), System.Drawing.Point.Empty, bmp.Size, CopyPixelOperation.SourceCopy);
g.CopyFromScreen(sender.PointToScreen(Point.Empty), Point.Empty, bmp.Size,
CopyPixelOperation.SourceCopy);
return bmp;
}
}

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