diff --git a/CHANGELOG.md b/CHANGELOG.md
index d85f77801..76b6c88b8 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -5,9 +5,10 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
## [Unreleased]
### Added
+- #1770: Added missing RDP performance settings
- #545: Option to minimize to system tray on closing
-- #283: Support for native PowerShell remoting as new protocol
- #420: SSH tunneling implemented
+- #283: Support for native PowerShell remoting as new protocol
### Changed
- #1767: Turned about window into a simple popup form
- #1766: Converted components check page into options page
diff --git a/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs b/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs
index 35a7e8862..b9b3f0d68 100644
--- a/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs
+++ b/mRemoteNGTests/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormatTests.cs
@@ -109,6 +109,10 @@ namespace mRemoteNGTests.Config.Serializers.ConnectionSerializers.Csv
DisplayThemes = true,
EnableFontSmoothing = true,
EnableDesktopComposition = true,
+ DisableFullWindowDrag = false,
+ DisableMenuAnimations = false,
+ DisableCursorShadow = false,
+ DisableCursorBlinking = false,
CacheBitmaps = true,
RedirectDiskDrives = true,
RedirectPorts = true,
diff --git a/mRemoteNGTests/TestHelpers/SerializableConnectionInfoAllPropertiesOfType.cs b/mRemoteNGTests/TestHelpers/SerializableConnectionInfoAllPropertiesOfType.cs
index 31fe21c7d..9923f5d91 100644
--- a/mRemoteNGTests/TestHelpers/SerializableConnectionInfoAllPropertiesOfType.cs
+++ b/mRemoteNGTests/TestHelpers/SerializableConnectionInfoAllPropertiesOfType.cs
@@ -37,6 +37,10 @@
public TType DisplayThemes { get; set; }
public TType EnableFontSmoothing { get; set; }
public TType EnableDesktopComposition { get; set; }
+ public TType DisableFullWindowDrag { get; set; }
+ public TType DisableMenuAnimations { get; set; }
+ public TType DisableCursorShadow { get; set; }
+ public TType DisableCursorBlinking { get; set; }
public TType RedirectKeys { get; set; }
public TType RedirectDiskDrives { get; set; }
public TType RedirectPrinters { get; set; }
diff --git a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs
index 51f47b172..4e0eb1e00 100644
--- a/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs
+++ b/mRemoteNGTests/UI/Window/ConfigWindowTests/ConfigWindowGeneralTests.cs
@@ -282,6 +282,10 @@ namespace mRemoteNGTests.UI.Window.ConfigWindowTests
nameof(ConnectionInfo.DisplayThemes),
nameof(ConnectionInfo.EnableFontSmoothing),
nameof(ConnectionInfo.EnableDesktopComposition),
+ nameof(ConnectionInfo.DisableFullWindowDrag),
+ nameof(ConnectionInfo.DisableMenuAnimations),
+ nameof(ConnectionInfo.DisableCursorShadow),
+ nameof(ConnectionInfo.DisableCursorBlinking),
nameof(ConnectionInfo.RedirectKeys),
nameof(ConnectionInfo.RedirectDiskDrives),
nameof(ConnectionInfo.RedirectPrinters),
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
index 064773a21..94c3cd785 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsDeserializerMremotengFormat.cs
@@ -86,302 +86,344 @@ namespace mRemoteNG.Config.Serializers.Csv
? new ConnectionInfo(nodeId)
: new ContainerInfo(nodeId);
- connectionRecord.Name = headers.Contains("Name") ? connectionCsv[headers.IndexOf("Name")] : "";
- connectionRecord.Description =
- headers.Contains("Description") ? connectionCsv[headers.IndexOf("Description")] : "";
- connectionRecord.Icon = headers.Contains("Icon") ? connectionCsv[headers.IndexOf("Icon")] : "";
- connectionRecord.Panel = headers.Contains("Panel") ? connectionCsv[headers.IndexOf("Panel")] : "";
- connectionRecord.Username = headers.Contains("Username") ? connectionCsv[headers.IndexOf("Username")] : "";
- connectionRecord.Password = headers.Contains("Password") ? connectionCsv[headers.IndexOf("Password")] : "";
- connectionRecord.Domain = headers.Contains("Domain") ? connectionCsv[headers.IndexOf("Domain")] : "";
- connectionRecord.Hostname = headers.Contains("Hostname") ? connectionCsv[headers.IndexOf("Hostname")] : "";
- connectionRecord.VmId = headers.Contains("VmId") ? connectionCsv[headers.IndexOf("VmId")] : "";
- connectionRecord.SSHOptions =
- headers.Contains("SSHOptions") ? connectionCsv[headers.IndexOf("SSHOptions")] : "";
- connectionRecord.SSHTunnelConnectionName =
- headers.Contains("SSHTunnelConnectionName") ? connectionCsv[headers.IndexOf("SSHTunnelConnectionName")] : "";
- connectionRecord.PuttySession = headers.Contains("PuttySession") ? connectionCsv[headers.IndexOf("PuttySession")] : "";
+ connectionRecord.Name = headers.Contains("Name")
+ ? connectionCsv[headers.IndexOf("Name")]
+ : "";
+
+ connectionRecord.Description = headers.Contains("Description")
+ ? connectionCsv[headers.IndexOf("Description")]
+ : "";
+
+ connectionRecord.Icon = headers.Contains("Icon")
+ ? connectionCsv[headers.IndexOf("Icon")]
+ : "";
+
+ connectionRecord.Panel = headers.Contains("Panel")
+ ? connectionCsv[headers.IndexOf("Panel")]
+ : "";
+
+ connectionRecord.Username = headers.Contains("Username")
+ ? connectionCsv[headers.IndexOf("Username")]
+ : "";
+
+ connectionRecord.Password = headers.Contains("Password")
+ ? connectionCsv[headers.IndexOf("Password")]
+ : "";
+
+ connectionRecord.Domain = headers.Contains("Domain")
+ ? connectionCsv[headers.IndexOf("Domain")]
+ : "";
+
+ connectionRecord.Hostname = headers.Contains("Hostname")
+ ? connectionCsv[headers.IndexOf("Hostname")]
+ : "";
+
+ connectionRecord.VmId = headers.Contains("VmId")
+ ? connectionCsv[headers.IndexOf("VmId")] : "";
+
+ connectionRecord.SSHOptions =headers.Contains("SSHOptions")
+ ? connectionCsv[headers.IndexOf("SSHOptions")]
+ : "";
+
+ connectionRecord.SSHTunnelConnectionName = headers.Contains("SSHTunnelConnectionName")
+ ? connectionCsv[headers.IndexOf("SSHTunnelConnectionName")]
+ : "";
+
+ connectionRecord.PuttySession = headers.Contains("PuttySession")
+ ? connectionCsv[headers.IndexOf("PuttySession")]
+ : "";
+
connectionRecord.LoadBalanceInfo = headers.Contains("LoadBalanceInfo")
? connectionCsv[headers.IndexOf("LoadBalanceInfo")]
: "";
- connectionRecord.PreExtApp = headers.Contains("PreExtApp") ? connectionCsv[headers.IndexOf("PreExtApp")] : "";
+
+ connectionRecord.PreExtApp = headers.Contains("PreExtApp")
+ ? connectionCsv[headers.IndexOf("PreExtApp")]
+ : "";
+
connectionRecord.PostExtApp =
- headers.Contains("PostExtApp") ? connectionCsv[headers.IndexOf("PostExtApp")] : "";
+ headers.Contains("PostExtApp")
+ ? connectionCsv[headers.IndexOf("PostExtApp")]
+ : "";
+
connectionRecord.MacAddress =
- headers.Contains("MacAddress") ? connectionCsv[headers.IndexOf("MacAddress")] : "";
+ headers.Contains("MacAddress")
+ ? connectionCsv[headers.IndexOf("MacAddress")]
+ : "";
+
connectionRecord.UserField =
- headers.Contains("UserField") ? connectionCsv[headers.IndexOf("UserField")] : "";
- connectionRecord.ExtApp = headers.Contains("ExtApp") ? connectionCsv[headers.IndexOf("ExtApp")] : "";
+ headers.Contains("UserField")
+ ? connectionCsv[headers.IndexOf("UserField")]
+ : "";
+
+ connectionRecord.ExtApp = headers.Contains("ExtApp")
+ ? connectionCsv[headers.IndexOf("ExtApp")] : "";
+
connectionRecord.VNCProxyUsername = headers.Contains("VNCProxyUsername")
? connectionCsv[headers.IndexOf("VNCProxyUsername")]
: "";
+
connectionRecord.VNCProxyPassword = headers.Contains("VNCProxyPassword")
? connectionCsv[headers.IndexOf("VNCProxyPassword")]
: "";
+
connectionRecord.RDGatewayUsername = headers.Contains("RDGatewayUsername")
? connectionCsv[headers.IndexOf("RDGatewayUsername")]
: "";
+
connectionRecord.RDGatewayPassword = headers.Contains("RDGatewayPassword")
? connectionCsv[headers.IndexOf("RDGatewayPassword")]
: "";
+
connectionRecord.RDGatewayDomain = headers.Contains("RDGatewayDomain")
? connectionCsv[headers.IndexOf("RDGatewayDomain")]
: "";
- connectionRecord.VNCProxyIP =
- headers.Contains("VNCProxyIP") ? connectionCsv[headers.IndexOf("VNCProxyIP")] : "";
+
+ connectionRecord.VNCProxyIP = headers.Contains("VNCProxyIP")
+ ? connectionCsv[headers.IndexOf("VNCProxyIP")]
+ : "";
+
connectionRecord.RDGatewayHostname = headers.Contains("RDGatewayHostname")
? connectionCsv[headers.IndexOf("RDGatewayHostname")]
: "";
if (headers.Contains("Protocol"))
{
- ProtocolType protocolType;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("Protocol")], out protocolType))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("Protocol")], out ProtocolType protocolType))
connectionRecord.Protocol = protocolType;
}
if (headers.Contains("Port"))
{
- int port;
- if (int.TryParse(connectionCsv[headers.IndexOf("Port")], out port))
+ if (int.TryParse(connectionCsv[headers.IndexOf("Port")], out int port))
connectionRecord.Port = port;
}
if (headers.Contains("ConnectToConsole"))
{
- bool useConsoleSession;
- if (bool.TryParse(connectionCsv[headers.IndexOf("ConnectToConsole")], out useConsoleSession))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("ConnectToConsole")], out bool useConsoleSession))
connectionRecord.UseConsoleSession = useConsoleSession;
}
if (headers.Contains("UseCredSsp"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("UseCredSsp")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("UseCredSsp")], out bool value))
connectionRecord.UseCredSsp = value;
}
if (headers.Contains("UseVmId"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("UseVmId")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("UseVmId")], out bool value))
connectionRecord.UseVmId = value;
}
if (headers.Contains("UseEnhancedMode"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("UseEnhancedMode")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("UseEnhancedMode")], out bool value))
connectionRecord.UseEnhancedMode = value;
}
if (headers.Contains("RenderingEngine"))
{
- HTTPBase.RenderingEngine value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("RenderingEngine")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("RenderingEngine")], out HTTPBase.RenderingEngine value))
connectionRecord.RenderingEngine = value;
}
if (headers.Contains("ICAEncryptionStrength"))
{
- IcaProtocol.EncryptionStrength value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("ICAEncryptionStrength")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("ICAEncryptionStrength")], out IcaProtocol.EncryptionStrength value))
connectionRecord.ICAEncryptionStrength = value;
}
if (headers.Contains("RDPAuthenticationLevel"))
{
- AuthenticationLevel value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("RDPAuthenticationLevel")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("RDPAuthenticationLevel")], out AuthenticationLevel value))
connectionRecord.RDPAuthenticationLevel = value;
}
if (headers.Contains("Colors"))
{
- RDPColors value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("Colors")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("Colors")], out RDPColors value))
connectionRecord.Colors = value;
}
if (headers.Contains("Resolution"))
{
- RDPResolutions value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("Resolution")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("Resolution")], out RDPResolutions value))
connectionRecord.Resolution = value;
}
if (headers.Contains("AutomaticResize"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("AutomaticResize")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("AutomaticResize")], out bool value))
connectionRecord.AutomaticResize = value;
}
if (headers.Contains("DisplayWallpaper"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("DisplayWallpaper")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisplayWallpaper")], out bool value))
connectionRecord.DisplayWallpaper = value;
}
if (headers.Contains("DisplayThemes"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("DisplayThemes")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisplayThemes")], out bool value))
connectionRecord.DisplayThemes = value;
}
if (headers.Contains("EnableFontSmoothing"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("EnableFontSmoothing")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("EnableFontSmoothing")], out bool value))
connectionRecord.EnableFontSmoothing = value;
}
if (headers.Contains("EnableDesktopComposition"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("EnableDesktopComposition")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("EnableDesktopComposition")], out bool value))
connectionRecord.EnableDesktopComposition = value;
}
+ if (headers.Contains("DisableFullWindowDrag"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableFullWindowDrag")], out bool value))
+ connectionRecord.DisableFullWindowDrag = value;
+ }
+
+ if (headers.Contains("DisableMenuAnimations"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableMenuAnimations")], out bool value))
+ connectionRecord.DisableMenuAnimations = value;
+ }
+
+ if (headers.Contains("DisableCursorShadow"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableCursorShadow")], out bool value))
+ connectionRecord.DisableCursorShadow = value;
+ }
+
+ if (headers.Contains("DisableCursorBlinking"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("DisableCursorBlinking")], out bool value))
+ connectionRecord.DisableCursorBlinking = value;
+ }
+
if (headers.Contains("CacheBitmaps"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("CacheBitmaps")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("CacheBitmaps")], out bool value))
connectionRecord.CacheBitmaps = value;
}
if (headers.Contains("RedirectDiskDrives"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectDiskDrives")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectDiskDrives")], out bool value))
connectionRecord.RedirectDiskDrives = value;
}
if (headers.Contains("RedirectPorts"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectPorts")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectPorts")], out bool value))
connectionRecord.RedirectPorts = value;
}
if (headers.Contains("RedirectPrinters"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectPrinters")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectPrinters")], out bool value))
connectionRecord.RedirectPrinters = value;
}
if (headers.Contains("RedirectClipboard"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectClipboard")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectClipboard")], out bool value))
connectionRecord.RedirectClipboard = value;
}
if (headers.Contains("RedirectSmartCards"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectSmartCards")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectSmartCards")], out bool value))
connectionRecord.RedirectSmartCards = value;
}
if (headers.Contains("RedirectSound"))
{
- RDPSounds value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("RedirectSound")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("RedirectSound")], out RDPSounds value))
connectionRecord.RedirectSound = value;
}
if (headers.Contains("RedirectAudioCapture"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectAudioCapture")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectAudioCapture")], out bool value))
connectionRecord.RedirectAudioCapture = value;
}
if (headers.Contains("RedirectKeys"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectKeys")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("RedirectKeys")], out bool value))
connectionRecord.RedirectKeys = value;
}
if (headers.Contains("VNCCompression"))
{
- ProtocolVNC.Compression value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCCompression")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCCompression")], out ProtocolVNC.Compression value))
connectionRecord.VNCCompression = value;
}
if (headers.Contains("VNCEncoding"))
{
- ProtocolVNC.Encoding value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCEncoding")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCEncoding")], out ProtocolVNC.Encoding value))
connectionRecord.VNCEncoding = value;
}
if (headers.Contains("VNCAuthMode"))
{
- ProtocolVNC.AuthMode value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCAuthMode")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCAuthMode")], out ProtocolVNC.AuthMode value))
connectionRecord.VNCAuthMode = value;
}
if (headers.Contains("VNCProxyType"))
{
- ProtocolVNC.ProxyType value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCProxyType")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCProxyType")], out ProtocolVNC.ProxyType value))
connectionRecord.VNCProxyType = value;
}
if (headers.Contains("VNCProxyPort"))
{
- int value;
- if (int.TryParse(connectionCsv[headers.IndexOf("VNCProxyPort")], out value))
+ if (int.TryParse(connectionCsv[headers.IndexOf("VNCProxyPort")], out int value))
connectionRecord.VNCProxyPort = value;
}
if (headers.Contains("VNCColors"))
{
- ProtocolVNC.Colors value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCColors")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCColors")], out ProtocolVNC.Colors value))
connectionRecord.VNCColors = value;
}
if (headers.Contains("VNCSmartSizeMode"))
{
- ProtocolVNC.SmartSizeMode value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCSmartSizeMode")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("VNCSmartSizeMode")], out ProtocolVNC.SmartSizeMode value))
connectionRecord.VNCSmartSizeMode = value;
}
if (headers.Contains("VNCViewOnly"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("VNCViewOnly")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("VNCViewOnly")], out bool value))
connectionRecord.VNCViewOnly = value;
}
if (headers.Contains("RDGatewayUsageMethod"))
{
- RDGatewayUsageMethod value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUsageMethod")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUsageMethod")], out RDGatewayUsageMethod value))
connectionRecord.RDGatewayUsageMethod = value;
}
if (headers.Contains("RDGatewayUseConnectionCredentials"))
{
- RDGatewayUseConnectionCredentials value;
- if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUseConnectionCredentials")], out value))
+ if (Enum.TryParse(connectionCsv[headers.IndexOf("RDGatewayUseConnectionCredentials")], out RDGatewayUseConnectionCredentials value))
connectionRecord.RDGatewayUseConnectionCredentials = value;
}
if (headers.Contains("Favorite"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("Favorite")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("Favorite")], out bool value))
connectionRecord.Favorite = value;
}
@@ -395,443 +437,404 @@ namespace mRemoteNG.Config.Serializers.Csv
if (headers.Contains("InheritCacheBitmaps"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritCacheBitmaps")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritCacheBitmaps")], out bool value))
connectionRecord.Inheritance.CacheBitmaps = value;
}
if (headers.Contains("InheritColors"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritColors")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritColors")], out bool value))
connectionRecord.Inheritance.Colors = value;
}
if (headers.Contains("InheritDescription"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDescription")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDescription")], out bool value))
connectionRecord.Inheritance.Description = value;
}
if (headers.Contains("InheritDisplayThemes"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisplayThemes")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisplayThemes")], out bool value))
connectionRecord.Inheritance.DisplayThemes = value;
}
if (headers.Contains("InheritDisplayWallpaper"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisplayWallpaper")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisplayWallpaper")], out bool value))
connectionRecord.Inheritance.DisplayWallpaper = value;
}
if (headers.Contains("InheritEnableFontSmoothing"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritEnableFontSmoothing")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritEnableFontSmoothing")], out bool value))
connectionRecord.Inheritance.EnableFontSmoothing = value;
}
if (headers.Contains("InheritEnableDesktopComposition"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritEnableDesktopComposition")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritEnableDesktopComposition")], out bool value))
connectionRecord.Inheritance.EnableDesktopComposition = value;
}
+ if (headers.Contains("InheritDisableFullWindowDrag"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableFullWindowDrag")], out bool value))
+ connectionRecord.Inheritance.DisableFullWindowDrag = value;
+ }
+
+ if (headers.Contains("InheritDisableMenuAnimations"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableMenuAnimations")], out bool value))
+ connectionRecord.Inheritance.DisableMenuAnimations = value;
+ }
+
+ if (headers.Contains("InheritDisableCursorShadow"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableCursorShadow")], out bool value))
+ connectionRecord.Inheritance.DisableCursorShadow = value;
+ }
+
+ if (headers.Contains("InheritDisableCursorBlinking"))
+ {
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDisableCursorBlinking")], out bool value))
+ connectionRecord.Inheritance.DisableCursorBlinking = value;
+ }
+
if (headers.Contains("InheritDomain"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDomain")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritDomain")], out bool value))
connectionRecord.Inheritance.Domain = value;
}
if (headers.Contains("InheritIcon"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritIcon")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritIcon")], out bool value))
connectionRecord.Inheritance.Icon = value;
}
if (headers.Contains("InheritPanel"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPanel")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPanel")], out bool value))
connectionRecord.Inheritance.Panel = value;
}
if (headers.Contains("InheritPassword"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPassword")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPassword")], out bool value))
connectionRecord.Inheritance.Password = value;
}
if (headers.Contains("InheritPort"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPort")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPort")], out bool value))
connectionRecord.Inheritance.Port = value;
}
if (headers.Contains("InheritProtocol"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritProtocol")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritProtocol")], out bool value))
connectionRecord.Inheritance.Protocol = value;
}
if (headers.Contains("InheritSSHTunnelConnectionName"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSSHTunnelConnectionName")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSSHTunnelConnectionName")], out bool value))
connectionRecord.Inheritance.SSHTunnelConnectionName = value;
}
if (headers.Contains("InheritSSHOptions"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSSHOptions")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSSHOptions")], out bool value))
connectionRecord.Inheritance.SSHOptions = value;
}
if (headers.Contains("InheritPuttySession"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPuttySession")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPuttySession")], out bool value))
connectionRecord.Inheritance.PuttySession = value;
}
if (headers.Contains("InheritRedirectDiskDrives"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectDiskDrives")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectDiskDrives")], out bool value))
connectionRecord.Inheritance.RedirectDiskDrives = value;
}
if (headers.Contains("InheritRedirectKeys"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectKeys")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectKeys")], out bool value))
connectionRecord.Inheritance.RedirectKeys = value;
}
if (headers.Contains("InheritRedirectPorts"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectPorts")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectPorts")], out bool value))
connectionRecord.Inheritance.RedirectPorts = value;
}
if (headers.Contains("InheritRedirectPrinters"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectPrinters")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectPrinters")], out bool value))
connectionRecord.Inheritance.RedirectPrinters = value;
}
if (headers.Contains("InheritRedirectClipboard"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectClipboard")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectClipboard")], out bool value))
connectionRecord.Inheritance.RedirectClipboard = value;
}
if (headers.Contains("InheritRedirectSmartCards"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectSmartCards")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectSmartCards")], out bool value))
connectionRecord.Inheritance.RedirectSmartCards = value;
}
if (headers.Contains("InheritRedirectSound"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectSound")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectSound")], out bool value))
connectionRecord.Inheritance.RedirectSound = value;
}
if (headers.Contains("InheritResolution"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritResolution")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritResolution")], out bool value))
connectionRecord.Inheritance.Resolution = value;
}
if (headers.Contains("InheritAutomaticResize"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritAutomaticResize")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritAutomaticResize")], out bool value))
connectionRecord.Inheritance.AutomaticResize = value;
}
if (headers.Contains("InheritUseConsoleSession"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseConsoleSession")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseConsoleSession")], out bool value))
connectionRecord.Inheritance.UseConsoleSession = value;
}
if (headers.Contains("InheritUseCredSsp"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseCredSsp")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseCredSsp")], out bool value))
connectionRecord.Inheritance.UseCredSsp = value;
}
if (headers.Contains("InheritUseVmId"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseVmId")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseVmId")], out bool value))
connectionRecord.Inheritance.UseVmId = value;
}
if (headers.Contains("InheritUseEnhancedMode"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseEnhancedMode")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUseEnhancedMode")], out bool value))
connectionRecord.Inheritance.UseEnhancedMode = value;
}
if (headers.Contains("InheritRenderingEngine"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRenderingEngine")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRenderingEngine")], out bool value))
connectionRecord.Inheritance.RenderingEngine = value;
}
if (headers.Contains("InheritUsername"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUsername")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUsername")], out bool value))
connectionRecord.Inheritance.Username = value;
}
if (headers.Contains("InheritVmId"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVmId")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVmId")], out bool value))
connectionRecord.Inheritance.VmId = value;
}
if (headers.Contains("InheritICAEncryptionStrength"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritICAEncryptionStrength")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritICAEncryptionStrength")], out bool value))
connectionRecord.Inheritance.ICAEncryptionStrength = value;
}
if (headers.Contains("InheritRDPAuthenticationLevel"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPAuthenticationLevel")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPAuthenticationLevel")], out bool value))
connectionRecord.Inheritance.RDPAuthenticationLevel = value;
}
if (headers.Contains("InheritLoadBalanceInfo"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritLoadBalanceInfo")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritLoadBalanceInfo")], out bool value))
connectionRecord.Inheritance.LoadBalanceInfo = value;
}
if (headers.Contains("InheritPreExtApp"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPreExtApp")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPreExtApp")], out bool value))
connectionRecord.Inheritance.PreExtApp = value;
}
if (headers.Contains("InheritPostExtApp"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPostExtApp")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritPostExtApp")], out bool value))
connectionRecord.Inheritance.PostExtApp = value;
}
if (headers.Contains("InheritMacAddress"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritMacAddress")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritMacAddress")], out bool value))
connectionRecord.Inheritance.MacAddress = value;
}
if (headers.Contains("InheritUserField"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUserField")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritUserField")], out bool value))
connectionRecord.Inheritance.UserField = value;
}
if (headers.Contains("InheritFavorite"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritFavorite")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritFavorite")], out bool value))
connectionRecord.Inheritance.Favorite = value;
}
if (headers.Contains("InheritExtApp"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritExtApp")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritExtApp")], out bool value))
connectionRecord.Inheritance.ExtApp = value;
}
if (headers.Contains("InheritVNCCompression"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCCompression")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCCompression")], out bool value))
connectionRecord.Inheritance.VNCCompression = value;
}
if (headers.Contains("InheritVNCEncoding"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCEncoding")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCEncoding")], out bool value))
connectionRecord.Inheritance.VNCEncoding = value;
}
if (headers.Contains("InheritVNCAuthMode"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCAuthMode")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCAuthMode")], out bool value))
connectionRecord.Inheritance.VNCAuthMode = value;
}
if (headers.Contains("InheritVNCProxyType"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyType")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyType")], out bool value))
connectionRecord.Inheritance.VNCProxyType = value;
}
if (headers.Contains("InheritVNCProxyIP"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyIP")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyIP")], out bool value))
connectionRecord.Inheritance.VNCProxyIP = value;
}
if (headers.Contains("InheritVNCProxyPort"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyPort")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyPort")], out bool value))
connectionRecord.Inheritance.VNCProxyPort = value;
}
if (headers.Contains("InheritVNCProxyUsername"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyUsername")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyUsername")], out bool value))
connectionRecord.Inheritance.VNCProxyUsername = value;
}
if (headers.Contains("InheritVNCProxyPassword"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyPassword")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCProxyPassword")], out bool value))
connectionRecord.Inheritance.VNCProxyPassword = value;
}
if (headers.Contains("InheritVNCColors"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCColors")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCColors")], out bool value))
connectionRecord.Inheritance.VNCColors = value;
}
if (headers.Contains("InheritVNCSmartSizeMode"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCSmartSizeMode")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCSmartSizeMode")], out bool value))
connectionRecord.Inheritance.VNCSmartSizeMode = value;
}
if (headers.Contains("InheritVNCViewOnly"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCViewOnly")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritVNCViewOnly")], out bool value))
connectionRecord.Inheritance.VNCViewOnly = value;
}
if (headers.Contains("InheritRDGatewayUsageMethod"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayUsageMethod")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayUsageMethod")], out bool value))
connectionRecord.Inheritance.RDGatewayUsageMethod = value;
}
if (headers.Contains("InheritRDGatewayHostname"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayHostname")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayHostname")], out bool value))
connectionRecord.Inheritance.RDGatewayHostname = value;
}
if (headers.Contains("InheritRDGatewayUseConnectionCredentials"))
{
- bool value;
if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayUseConnectionCredentials")],
- out value))
+ out bool value))
connectionRecord.Inheritance.RDGatewayUseConnectionCredentials = value;
}
if (headers.Contains("InheritRDGatewayUsername"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayUsername")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayUsername")], out bool value))
connectionRecord.Inheritance.RDGatewayUsername = value;
}
if (headers.Contains("InheritRDGatewayPassword"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayPassword")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayPassword")], out bool value))
connectionRecord.Inheritance.RDGatewayPassword = value;
}
if (headers.Contains("InheritRDGatewayDomain"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayDomain")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDGatewayDomain")], out bool value))
connectionRecord.Inheritance.RDGatewayDomain = value;
}
if (headers.Contains("InheritRDPAlertIdleTimeout"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPAlertIdleTimeout")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPAlertIdleTimeout")], out bool value))
connectionRecord.Inheritance.RDPAlertIdleTimeout = value;
}
if (headers.Contains("InheritRDPMinutesToIdleTimeout"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPMinutesToIdleTimeout")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRDPMinutesToIdleTimeout")], out bool value))
connectionRecord.Inheritance.RDPMinutesToIdleTimeout = value;
}
if (headers.Contains("InheritSoundQuality"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSoundQuality")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritSoundQuality")], out bool value))
connectionRecord.Inheritance.SoundQuality = value;
}
if (headers.Contains("InheritRedirectAudioCapture"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectAudioCapture")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRedirectAudioCapture")], out bool value))
connectionRecord.Inheritance.RedirectAudioCapture = value;
}
if (headers.Contains("InheritRdpVersion"))
{
- bool value;
- if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRdpVersion")], out value))
+ if (bool.TryParse(connectionCsv[headers.IndexOf("InheritRdpVersion")], out bool value))
connectionRecord.Inheritance.RdpVersion = value;
}
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
index b49091599..38f243b45 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Csv/CsvConnectionsSerializerMremotengFormat.cs
@@ -57,7 +57,7 @@ namespace mRemoteNG.Config.Serializers.Csv
sb.Append("Domain;");
sb.Append("Hostname;Port;VmId;Protocol;SSHTunnelConnectionName;SSHOptions;PuttySession;ConnectToConsole;UseCredSsp;UseVmId;UseEnhancedMode;RenderingEngine;ICAEncryptionStrength;RDPAuthenticationLevel;" +
- "LoadBalanceInfo;Colors;Resolution;AutomaticResize;DisplayWallpaper;DisplayThemes;EnableFontSmoothing;EnableDesktopComposition;" +
+ "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;" +
"VNCProxyPort;VNCProxyUsername;VNCProxyPassword;VNCColors;VNCSmartSizeMode;VNCViewOnly;RDGatewayUsageMethod;RDGatewayHostname;" +
@@ -65,7 +65,7 @@ namespace mRemoteNG.Config.Serializers.Csv
if (_saveFilter.SaveInheritance)
sb.Append("InheritCacheBitmaps;InheritColors;InheritDescription;InheritDisplayThemes;InheritDisplayWallpaper;" +
- "InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;" +
+ "InheritEnableFontSmoothing;InheritEnableDesktopComposition;InheritDisableFullWindowDrag;InheritDisableMenuAnimations;InheritDisableCursorShadow;InheritDisableCursorBlinking;InheritDomain;InheritIcon;InheritPanel;InheritPassword;InheritPort;" +
"InheritProtocol;InheritSSHTunnelConnectionName;InheritSSHOptions;InheritPuttySession;InheritRedirectDiskDrives;InheritRedirectKeys;InheritRedirectPorts;InheritRedirectPrinters;" +
"InheritRedirectClipboard;InheritRedirectSmartCards;InheritRedirectSound;InheritResolution;InheritAutomaticResize;" +
"InheritUseConsoleSession;InheritUseCredSsp;InheritUseVmId;InheritUseEnhancedMode;InheritVmId;InheritRenderingEngine;InheritUsername;InheritICAEncryptionStrength;" +
@@ -137,6 +137,10 @@ namespace mRemoteNG.Config.Serializers.Csv
.Append(FormatForCsv(con.DisplayThemes))
.Append(FormatForCsv(con.EnableFontSmoothing))
.Append(FormatForCsv(con.EnableDesktopComposition))
+ .Append(FormatForCsv(con.DisableFullWindowDrag))
+ .Append(FormatForCsv(con.DisableMenuAnimations))
+ .Append(FormatForCsv(con.DisableCursorShadow))
+ .Append(FormatForCsv(con.DisableCursorBlinking))
.Append(FormatForCsv(con.CacheBitmaps))
.Append(FormatForCsv(con.RedirectDiskDrives))
.Append(FormatForCsv(con.RedirectPorts))
@@ -182,6 +186,10 @@ namespace mRemoteNG.Config.Serializers.Csv
.Append(FormatForCsv(con.Inheritance.DisplayWallpaper))
.Append(FormatForCsv(con.Inheritance.EnableFontSmoothing))
.Append(FormatForCsv(con.Inheritance.EnableDesktopComposition))
+ .Append(FormatForCsv(con.Inheritance.DisableFullWindowDrag))
+ .Append(FormatForCsv(con.Inheritance.DisableMenuAnimations))
+ .Append(FormatForCsv(con.Inheritance.DisableCursorShadow))
+ .Append(FormatForCsv(con.Inheritance.DisableCursorBlinking))
.Append(FormatForCsv(con.Inheritance.Domain))
.Append(FormatForCsv(con.Inheritance.Icon))
.Append(FormatForCsv(con.Inheritance.Panel))
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
index d435735be..e22c5dc0a 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableDeserializer.cs
@@ -119,6 +119,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
connectionInfo.DisplayThemes = (bool)dataRow["DisplayThemes"];
connectionInfo.EnableFontSmoothing = (bool)dataRow["EnableFontSmoothing"];
connectionInfo.EnableDesktopComposition = (bool)dataRow["EnableDesktopComposition"];
+ connectionInfo.DisableFullWindowDrag = (bool)dataRow["DisableFullWindowDrag"];
+ connectionInfo.DisableMenuAnimations = (bool)dataRow["DisableMenuAnimations"];
+ connectionInfo.DisableCursorShadow = (bool)dataRow["DisableCursorShadow"];
+ connectionInfo.DisableCursorBlinking = (bool)dataRow["DisableCursorBlinking"];
connectionInfo.CacheBitmaps = (bool)dataRow["CacheBitmaps"];
connectionInfo.RedirectDiskDrives = (bool)dataRow["RedirectDiskDrives"];
connectionInfo.RedirectPorts = (bool)dataRow["RedirectPorts"];
@@ -177,6 +181,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
connectionInfo.Inheritance.DisplayWallpaper = (bool)dataRow["InheritDisplayWallpaper"];
connectionInfo.Inheritance.EnableFontSmoothing = (bool)dataRow["InheritEnableFontSmoothing"];
connectionInfo.Inheritance.EnableDesktopComposition = (bool)dataRow["InheritEnableDesktopComposition"];
+ connectionInfo.Inheritance.DisableFullWindowDrag = (bool)dataRow["InheritDisableFullWindowDrag"];
+ connectionInfo.Inheritance.DisableMenuAnimations = (bool)dataRow["InheritDisableMenuAnimations"];
+ connectionInfo.Inheritance.DisableCursorShadow = (bool)dataRow["InheritDisableCursorShadow"];
+ connectionInfo.Inheritance.DisableCursorBlinking = (bool)dataRow["InheritDisableCursorBlinking"];
connectionInfo.Inheritance.Domain = (bool)dataRow["InheritDomain"];
connectionInfo.Inheritance.Icon = (bool)dataRow["InheritIcon"];
connectionInfo.Inheritance.Panel = (bool)dataRow["InheritPanel"];
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
index 7b9a7a255..8a79a728d 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/MsSql/DataTableSerializer.cs
@@ -125,6 +125,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataTable.Columns.Add("DisplayThemes", typeof(bool));
dataTable.Columns.Add("EnableFontSmoothing", typeof(bool));
dataTable.Columns.Add("EnableDesktopComposition", typeof(bool));
+ dataTable.Columns.Add("DisableFullWindowDrag", typeof(bool));
+ dataTable.Columns.Add("DisableMenuAnimations", typeof(bool));
+ dataTable.Columns.Add("DisableCursorShadow", typeof(bool));
+ dataTable.Columns.Add("DisableCursorBlinking", typeof(bool));
dataTable.Columns.Add("CacheBitmaps", typeof(bool));
dataTable.Columns.Add("RedirectDiskDrives", typeof(bool));
dataTable.Columns.Add("RedirectPorts", typeof(bool));
@@ -164,6 +168,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataTable.Columns.Add("InheritDisplayWallpaper", typeof(bool));
dataTable.Columns.Add("InheritEnableFontSmoothing", typeof(bool));
dataTable.Columns.Add("InheritEnableDesktopComposition", typeof(bool));
+ dataTable.Columns.Add("InheritDisableFullWindowDrag", typeof(bool));
+ dataTable.Columns.Add("InheritDisableMenuAnimations", typeof(bool));
+ dataTable.Columns.Add("InheritDisableCursorShadow", typeof(bool));
+ dataTable.Columns.Add("InheritDisableCursorBlinking", typeof(bool));
dataTable.Columns.Add("InheritDomain", typeof(bool));
dataTable.Columns.Add("InheritIcon", typeof(bool));
dataTable.Columns.Add("InheritPanel", typeof(bool));
@@ -297,6 +305,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["DisplayThemes"].Equals(connectionInfo.DisplayThemes) &&
dataRow["EnableFontSmoothing"].Equals(connectionInfo.EnableFontSmoothing) &&
dataRow["EnableDesktopComposition"].Equals(connectionInfo.EnableDesktopComposition) &&
+ dataRow["DisableFullWindowDrag"].Equals(connectionInfo.DisableFullWindowDrag) &&
+ dataRow["DisableMenuAnimations"].Equals(connectionInfo.DisableMenuAnimations) &&
+ dataRow["DisableCursorShadow"].Equals(connectionInfo.DisableCursorShadow) &&
+ dataRow["DisableCursorBlinking"].Equals(connectionInfo.DisableCursorBlinking) &&
dataRow["CacheBitmaps"].Equals(connectionInfo.CacheBitmaps) &&
dataRow["RedirectDiskDrives"].Equals(connectionInfo.RedirectDiskDrives) &&
dataRow["RedirectPorts"].Equals(connectionInfo.RedirectPorts) &&
@@ -343,6 +355,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["InheritDisplayWallpaper"].Equals(connectionInfo.Inheritance.DisplayWallpaper) &&
dataRow["InheritEnableFontSmoothing"].Equals(connectionInfo.Inheritance.EnableFontSmoothing) &&
dataRow["InheritEnableDesktopComposition"].Equals(connectionInfo.Inheritance.EnableDesktopComposition) &&
+ dataRow["InheritDisableFullWindowDrag"].Equals(connectionInfo.Inheritance.DisableFullWindowDrag) &&
+ dataRow["InheritDisableMenuAnimations"].Equals(connectionInfo.Inheritance.DisableMenuAnimations) &&
+ dataRow["InheritDisableCursorShadow"].Equals(connectionInfo.Inheritance.DisableCursorShadow) &&
+ dataRow["InheritDisableCursorBlinking"].Equals(connectionInfo.Inheritance.DisableCursorBlinking) &&
dataRow["InheritDomain"].Equals(connectionInfo.Inheritance.Domain) &&
dataRow["InheritIcon"].Equals(connectionInfo.Inheritance.Icon) &&
dataRow["InheritPanel"].Equals(connectionInfo.Inheritance.Panel) &&
@@ -406,6 +422,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["InheritDisplayWallpaper"].Equals(false) &&
dataRow["InheritEnableFontSmoothing"].Equals(false) &&
dataRow["InheritEnableDesktopComposition"].Equals(false) &&
+ dataRow["InheritDisableFullWindowDrag"].Equals(false) &&
+ dataRow["InheritDisableMenuAnimations"].Equals(false) &&
+ dataRow["InheritDisableCursorShadow"].Equals(false) &&
+ dataRow["InheritDisableCursorBlinking"].Equals(false) &&
dataRow["InheritDomain"].Equals(false) &&
dataRow["InheritIcon"].Equals(false) &&
dataRow["InheritPanel"].Equals(false) &&
@@ -522,6 +542,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["DisplayThemes"] = connectionInfo.DisplayThemes;
dataRow["EnableFontSmoothing"] = connectionInfo.EnableFontSmoothing;
dataRow["EnableDesktopComposition"] = connectionInfo.EnableDesktopComposition;
+ dataRow["DisableFullWindowDrag"] = connectionInfo.DisableFullWindowDrag;
+ dataRow["DisableMenuAnimations"] = connectionInfo.DisableMenuAnimations;
+ dataRow["DisableCursorShadow"] = connectionInfo.DisableCursorShadow;
+ dataRow["DisableCursorBlinking"] = connectionInfo.DisableCursorBlinking;
dataRow["CacheBitmaps"] = connectionInfo.CacheBitmaps;
dataRow["RedirectDiskDrives"] = connectionInfo.RedirectDiskDrives;
dataRow["RedirectPorts"] = connectionInfo.RedirectPorts;
@@ -568,6 +592,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["InheritDisplayWallpaper"] = connectionInfo.Inheritance.DisplayWallpaper;
dataRow["InheritEnableFontSmoothing"] = connectionInfo.Inheritance.EnableFontSmoothing;
dataRow["InheritEnableDesktopComposition"] = connectionInfo.Inheritance.EnableDesktopComposition;
+ dataRow["InheritDisableFullWindowDrag"] = connectionInfo.Inheritance.DisableFullWindowDrag;
+ dataRow["InheritDisableMenuAnimations"] = connectionInfo.Inheritance.DisableMenuAnimations;
+ dataRow["InheritDisableCursorShadow"] = connectionInfo.Inheritance.DisableCursorShadow;
+ dataRow["InheritDisableCursorBlinking"] = connectionInfo.Inheritance.DisableCursorBlinking;
dataRow["InheritDomain"] = connectionInfo.Inheritance.Domain;
dataRow["InheritIcon"] = connectionInfo.Inheritance.Icon;
dataRow["InheritPanel"] = connectionInfo.Inheritance.Panel;
@@ -633,6 +661,10 @@ namespace mRemoteNG.Config.Serializers.MsSql
dataRow["InheritDisplayWallpaper"] = false;
dataRow["InheritEnableFontSmoothing"] = false;
dataRow["InheritEnableDesktopComposition"] = false;
+ dataRow["InheritDisableFullWindowDrag"] = false;
+ dataRow["InheritDisableMenuAnimations"] = false;
+ dataRow["InheritDisableCursorShadow"] = false;
+ dataRow["InheritDisableCursorBlinking"] = false;
dataRow["InheritDomain"] = false;
dataRow["InheritIcon"] = false;
dataRow["InheritPanel"] = false;
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
index 0d00a088d..43d4f3eda 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionNodeSerializer27.cs
@@ -101,6 +101,14 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.EnableFontSmoothing.ToString().ToLowerInvariant()));
element.Add(new XAttribute("EnableDesktopComposition",
connectionInfo.EnableDesktopComposition.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableFullWindowDrag",
+ connectionInfo.DisableFullWindowDrag.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableMenuAnimations",
+ connectionInfo.DisableMenuAnimations.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableCursorShadow",
+ connectionInfo.DisableCursorShadow.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("DisableCursorBlinking",
+ connectionInfo.DisableCursorBlinking.ToString().ToLowerInvariant()));
element.Add(new XAttribute("CacheBitmaps", connectionInfo.CacheBitmaps.ToString().ToLowerInvariant()));
element.Add(new XAttribute("RedirectDiskDrives",
connectionInfo.RedirectDiskDrives.ToString().ToLowerInvariant()));
@@ -183,6 +191,18 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritEnableDesktopComposition",
connectionInfo
.Inheritance.EnableDesktopComposition.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableFullWindowDrag",
+ connectionInfo
+ .Inheritance.DisableFullWindowDrag.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableMenuAnimations",
+ connectionInfo
+ .Inheritance.DisableMenuAnimations.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableCursorShadow",
+ connectionInfo
+ .Inheritance.DisableCursorShadow.ToString().ToLowerInvariant()));
+ element.Add(new XAttribute("InheritDisableCursorBlinking",
+ connectionInfo
+ .Inheritance.DisableCursorBlinking.ToString().ToLowerInvariant()));
element.Add(new XAttribute("InheritDomain",
connectionInfo.Inheritance.Domain.ToString().ToLowerInvariant()));
element.Add(
@@ -316,6 +336,10 @@ namespace mRemoteNG.Config.Serializers.Xml
element.Add(new XAttribute("InheritDisplayWallpaper", falseString));
element.Add(new XAttribute("InheritEnableFontSmoothing", falseString));
element.Add(new XAttribute("InheritEnableDesktopComposition", falseString));
+ element.Add(new XAttribute("InheritDisableFullWindowDrag", falseString));
+ element.Add(new XAttribute("InheritDisableMenuAnimations", falseString));
+ element.Add(new XAttribute("InheritDisableCursorShadow", falseString));
+ element.Add(new XAttribute("InheritDisableCursorBlinking", falseString));
element.Add(new XAttribute("InheritDomain", falseString));
element.Add(new XAttribute("InheritIcon", falseString));
element.Add(new XAttribute("InheritPanel", falseString));
diff --git a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
index dcd6ffa5c..c1e8ed514 100644
--- a/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
+++ b/mRemoteV1/Config/Serializers/ConnectionSerializers/Xml/XmlConnectionsDeserializer.cs
@@ -545,6 +545,10 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.RdpVersion = xmlnode.GetAttributeAsEnum("RdpVersion", RdpVersion.Highest);
connectionInfo.SSHTunnelConnectionName = xmlnode.GetAttributeAsString("SSHTunnelConnectionName");
connectionInfo.SSHOptions = xmlnode.GetAttributeAsString("SSHOptions");
+ connectionInfo.DisableFullWindowDrag = xmlnode.GetAttributeAsBool("DisableFullWindowDrag");
+ connectionInfo.DisableMenuAnimations = xmlnode.GetAttributeAsBool("DisableMenuAnimations");
+ connectionInfo.DisableCursorShadow = xmlnode.GetAttributeAsBool("DisableCursorShadow");
+ connectionInfo.DisableCursorBlinking = xmlnode.GetAttributeAsBool("DisableCursorBlinking");
connectionInfo.Inheritance.RedirectClipboard = xmlnode.GetAttributeAsBool("InheritRedirectClipboard");
connectionInfo.Inheritance.Favorite = xmlnode.GetAttributeAsBool("InheritFavorite");
connectionInfo.Inheritance.RdpVersion = xmlnode.GetAttributeAsBool("InheritRdpVersion");
@@ -553,6 +557,10 @@ namespace mRemoteNG.Config.Serializers.Xml
connectionInfo.Inheritance.UseEnhancedMode = xmlnode.GetAttributeAsBool("InheritUseEnhancedMode");
connectionInfo.Inheritance.SSHTunnelConnectionName = xmlnode.GetAttributeAsBool("InheritSSHTunnelConnectionName");
connectionInfo.Inheritance.SSHOptions = xmlnode.GetAttributeAsBool("InheritSSHOptions");
+ connectionInfo.Inheritance.DisableFullWindowDrag = xmlnode.GetAttributeAsBool("InheritDisableFullWindowDrag");
+ connectionInfo.Inheritance.DisableMenuAnimations = xmlnode.GetAttributeAsBool("InheritDisableMenuAnimations");
+ connectionInfo.Inheritance.DisableCursorShadow = xmlnode.GetAttributeAsBool("InheritDisableCursorShadow");
+ connectionInfo.Inheritance.DisableCursorBlinking = xmlnode.GetAttributeAsBool("InheritDisableCursorBlinking");
}
}
catch (Exception ex)
diff --git a/mRemoteV1/Connection/AbstractConnectionRecord.cs b/mRemoteV1/Connection/AbstractConnectionRecord.cs
index 6b97759be..6dc7a1cd8 100644
--- a/mRemoteV1/Connection/AbstractConnectionRecord.cs
+++ b/mRemoteV1/Connection/AbstractConnectionRecord.cs
@@ -59,6 +59,10 @@ namespace mRemoteNG.Connection
private bool _displayThemes;
private bool _enableFontSmoothing;
private bool _enableDesktopComposition;
+ private bool _disableFullWindowDrag;
+ private bool _disableMenuAnimations;
+ private bool _disableCursorShadow;
+ private bool _disableCursorBlinking;
private bool _redirectKeys;
private bool _redirectDiskDrives;
@@ -536,6 +540,49 @@ namespace mRemoteNG.Connection
set => SetField(ref _enableDesktopComposition, value, "EnableDesktopComposition");
}
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableFullWindowDrag)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableFullWindowDrag)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableFullWindowDrag
+ {
+ get => GetPropertyValue("DisableFullWindowDrag", _disableFullWindowDrag);
+ set => SetField(ref _disableFullWindowDrag, value, "DisableFullWindowDrag");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableMenuAnimations)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableMenuAnimations)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableMenuAnimations
+ {
+ get => GetPropertyValue("DisableMenuAnimations", _disableMenuAnimations);
+ set => SetField(ref _disableMenuAnimations, value, "DisableMenuAnimations");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableCursorShadow
+ {
+ get => GetPropertyValue("DisableCursorShadow", _disableCursorShadow);
+ set => SetField(ref _disableCursorShadow, value, "DisableCursorShadow");
+ }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 5),
+ LocalizedAttributes.LocalizedDisplayName(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescription(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter)),
+ UsedInProtocol(ProtocolType.RDP)]
+ public bool DisableCursorBlinking
+ {
+ get => GetPropertyValue("DisableCursorBlinking", _disableCursorBlinking);
+ set => SetField(ref _disableCursorBlinking, value, "DisableCursorBlinking");
+ }
#endregion
#region Redirect
diff --git a/mRemoteV1/Connection/ConnectionInfo.cs b/mRemoteV1/Connection/ConnectionInfo.cs
index 654d777db..27d593196 100644
--- a/mRemoteV1/Connection/ConnectionInfo.cs
+++ b/mRemoteV1/Connection/ConnectionInfo.cs
@@ -300,16 +300,13 @@ namespace mRemoteNG.Connection
ExtApp = Settings.Default.ConDefaultExtApp;
Port = 0;
PuttySession = Settings.Default.ConDefaultPuttySession;
- ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(
- typeof(IcaProtocol.EncryptionStrength), Settings.Default.ConDefaultICAEncryptionStrength);
+ ICAEncryptionStrength = (IcaProtocol.EncryptionStrength)Enum.Parse(typeof(IcaProtocol.EncryptionStrength), Settings.Default.ConDefaultICAEncryptionStrength);
UseConsoleSession = Settings.Default.ConDefaultUseConsoleSession;
- RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse(
- typeof(AuthenticationLevel), Settings.Default.ConDefaultRDPAuthenticationLevel);
+ RDPAuthenticationLevel = (AuthenticationLevel)Enum.Parse(typeof(AuthenticationLevel), Settings.Default.ConDefaultRDPAuthenticationLevel);
RDPMinutesToIdleTimeout = Settings.Default.ConDefaultRDPMinutesToIdleTimeout;
RDPAlertIdleTimeout = Settings.Default.ConDefaultRDPAlertIdleTimeout;
LoadBalanceInfo = Settings.Default.ConDefaultLoadBalanceInfo;
- RenderingEngine = (HTTPBase.RenderingEngine)Enum.Parse(typeof(HTTPBase.RenderingEngine),
- Settings.Default.ConDefaultRenderingEngine);
+ RenderingEngine = (HTTPBase.RenderingEngine)Enum.Parse(typeof(HTTPBase.RenderingEngine), Settings.Default.ConDefaultRenderingEngine);
UseCredSsp = Settings.Default.ConDefaultUseCredSsp;
UseVmId = Settings.Default.ConDefaultUseVmId;
UseEnhancedMode = Settings.Default.ConDefaultUseEnhancedMode;
@@ -317,11 +314,9 @@ namespace mRemoteNG.Connection
private void SetRdGatewayDefaults()
{
- RDGatewayUsageMethod = (RDGatewayUsageMethod)Enum.Parse(
- typeof(RDGatewayUsageMethod), Settings.Default.ConDefaultRDGatewayUsageMethod);
+ RDGatewayUsageMethod = (RDGatewayUsageMethod)Enum.Parse(typeof(RDGatewayUsageMethod), Settings.Default.ConDefaultRDGatewayUsageMethod);
RDGatewayHostname = Settings.Default.ConDefaultRDGatewayHostname;
- RDGatewayUseConnectionCredentials = (RDGatewayUseConnectionCredentials)Enum.Parse(
- typeof(RDGatewayUseConnectionCredentials), Settings.Default.ConDefaultRDGatewayUseConnectionCredentials);
+ RDGatewayUseConnectionCredentials = (RDGatewayUseConnectionCredentials)Enum.Parse(typeof(RDGatewayUseConnectionCredentials), Settings.Default.ConDefaultRDGatewayUseConnectionCredentials);
RDGatewayUsername = Settings.Default.ConDefaultRDGatewayUsername;
RDGatewayPassword = Settings.Default.ConDefaultRDGatewayPassword;
RDGatewayDomain = Settings.Default.ConDefaultRDGatewayDomain;
@@ -329,8 +324,7 @@ namespace mRemoteNG.Connection
private void SetAppearanceDefaults()
{
- Resolution = (RDPResolutions)Enum.Parse(
- typeof(RDPResolutions), Settings.Default.ConDefaultResolution);
+ Resolution = (RDPResolutions)Enum.Parse(typeof(RDPResolutions), Settings.Default.ConDefaultResolution);
AutomaticResize = Settings.Default.ConDefaultAutomaticResize;
Colors = (RDPColors)Enum.Parse(typeof(RDPColors), Settings.Default.ConDefaultColors);
CacheBitmaps = Settings.Default.ConDefaultCacheBitmaps;
@@ -338,6 +332,10 @@ namespace mRemoteNG.Connection
DisplayThemes = Settings.Default.ConDefaultDisplayThemes;
EnableFontSmoothing = Settings.Default.ConDefaultEnableFontSmoothing;
EnableDesktopComposition = Settings.Default.ConDefaultEnableDesktopComposition;
+ DisableFullWindowDrag = Settings.Default.ConDefaultDisableFullWindowDrag;
+ DisableMenuAnimations = Settings.Default.ConDefaultDisableMenuAnimations;
+ DisableCursorShadow = Settings.Default.ConDefaultDisableCursorShadow;
+ DisableCursorBlinking = Settings.Default.ConDefaultDisableCursorBlinking;
}
private void SetRedirectDefaults()
@@ -364,20 +362,16 @@ namespace mRemoteNG.Connection
private void SetVncDefaults()
{
- VNCCompression = (ProtocolVNC.Compression)Enum.Parse(typeof(ProtocolVNC.Compression),
- Settings.Default.ConDefaultVNCCompression);
+ VNCCompression = (ProtocolVNC.Compression)Enum.Parse(typeof(ProtocolVNC.Compression), Settings.Default.ConDefaultVNCCompression);
VNCEncoding = (ProtocolVNC.Encoding)Enum.Parse(typeof(ProtocolVNC.Encoding), Settings.Default.ConDefaultVNCEncoding);
VNCAuthMode = (ProtocolVNC.AuthMode)Enum.Parse(typeof(ProtocolVNC.AuthMode), Settings.Default.ConDefaultVNCAuthMode);
- VNCProxyType = (ProtocolVNC.ProxyType)Enum.Parse(typeof(ProtocolVNC.ProxyType),
- Settings.Default.ConDefaultVNCProxyType);
+ VNCProxyType = (ProtocolVNC.ProxyType)Enum.Parse(typeof(ProtocolVNC.ProxyType), Settings.Default.ConDefaultVNCProxyType);
VNCProxyIP = Settings.Default.ConDefaultVNCProxyIP;
VNCProxyPort = Settings.Default.ConDefaultVNCProxyPort;
VNCProxyUsername = Settings.Default.ConDefaultVNCProxyUsername;
VNCProxyPassword = Settings.Default.ConDefaultVNCProxyPassword;
- VNCColors = (ProtocolVNC.Colors)Enum.Parse(typeof(ProtocolVNC.Colors),
- Settings.Default.ConDefaultVNCColors);
- VNCSmartSizeMode = (ProtocolVNC.SmartSizeMode)Enum.Parse(typeof(ProtocolVNC.SmartSizeMode),
- Settings.Default.ConDefaultVNCSmartSizeMode);
+ VNCColors = (ProtocolVNC.Colors)Enum.Parse(typeof(ProtocolVNC.Colors), Settings.Default.ConDefaultVNCColors);
+ VNCSmartSizeMode = (ProtocolVNC.SmartSizeMode)Enum.Parse(typeof(ProtocolVNC.SmartSizeMode), Settings.Default.ConDefaultVNCSmartSizeMode);
VNCViewOnly = Settings.Default.ConDefaultVNCViewOnly;
}
@@ -390,8 +384,7 @@ namespace mRemoteNG.Connection
private void SetNewOpenConnectionList()
{
OpenConnections = new ProtocolList();
- OpenConnections.CollectionChanged += (sender, args) =>
- RaisePropertyChangedEvent(this, new PropertyChangedEventArgs("OpenConnections"));
+ OpenConnections.CollectionChanged += (sender, args) => RaisePropertyChangedEvent(this, new PropertyChangedEventArgs("OpenConnections"));
}
#endregion
diff --git a/mRemoteV1/Connection/ConnectionInfoInheritance.cs b/mRemoteV1/Connection/ConnectionInfoInheritance.cs
index 37c6b8846..6665005dd 100644
--- a/mRemoteV1/Connection/ConnectionInfoInheritance.cs
+++ b/mRemoteV1/Connection/ConnectionInfoInheritance.cs
@@ -277,6 +277,30 @@ namespace mRemoteNG.Connection
TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
public bool EnableDesktopComposition { get; set; }
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableFullWindowDrag)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableFullWindowDrag)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableFullWindowDrag { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableMenuAnimations)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableMenuAnimations)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableMenuAnimations { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableCursorShadow)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableCursorShadow)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableCursorShadow { get; set; }
+
+ [LocalizedAttributes.LocalizedCategory(nameof(Language.strCategoryAppearance), 6),
+ LocalizedAttributes.LocalizedDisplayNameInherit(nameof(Language.strPropertyNameDisableCursorBlinking)),
+ LocalizedAttributes.LocalizedDescriptionInherit(nameof(Language.strPropertyDescriptionDisableCursorBlinking)),
+ TypeConverter(typeof(MiscTools.YesNoTypeConverter))]
+ public bool DisableCursorBlinking { get; set; }
+
#endregion
#region Redirect
diff --git a/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
index 59924179c..6e8eafcd3 100644
--- a/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
+++ b/mRemoteV1/Connection/Protocol/RDP/RDPPerformanceFlags.cs
@@ -7,25 +7,25 @@ namespace mRemoteNG.Connection.Protocol.RDP
[Description("strRDPDisableWallpaper")]
DisableWallpaper = 0x1,
-// [Description("strRDPDisableFullWindowdrag")]
-// DisableFullWindowDrag = 0x2,
-
-// [Description("strRDPDisableMenuAnimations")]
-// DisableMenuAnimations = 0x4,
+ [Description("strRDPDisableFullWindowdrag")]
+ DisableFullWindowDrag = 0x2,
+
+ [Description("strRDPDisableMenuAnimations")]
+ DisableMenuAnimations = 0x4,
[Description("strRDPDisableThemes")]
DisableThemes = 0x8,
-// [Description("strRDPDisableCursorShadow")]
-// DisableCursorShadow = 0x20,
+ [Description("strRDPDisableCursorShadow")]
+ DisableCursorShadow = 0x20,
-// [Description("strRDPDisableCursorblinking")]
-// DisableCursorBlinking = 0x40,
+ [Description("strRDPDisableCursorblinking")]
+ DisableCursorBlinking = 0x40,
[Description("strRDPEnableFontSmoothing")]
EnableFontSmoothing = 0x80,
[Description("strRDPEnableDesktopComposition")]
- EnableDesktopComposition = 0x100
+ EnableDesktopComposition = 0x100,
}
}
\ No newline at end of file
diff --git a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
index afd9af2c8..ed724a1fe 100644
--- a/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
+++ b/mRemoteV1/Connection/Protocol/RDP/RdpProtocol6.cs
@@ -603,25 +603,29 @@ namespace mRemoteNG.Connection.Protocol.RDP
{
var pFlags = 0;
if (connectionInfo.DisplayThemes == false)
- {
pFlags += (int)RDPPerformanceFlags.DisableThemes;
- }
-
+
if (connectionInfo.DisplayWallpaper == false)
- {
pFlags += (int)RDPPerformanceFlags.DisableWallpaper;
- }
-
+
if (connectionInfo.EnableFontSmoothing)
- {
pFlags += (int)RDPPerformanceFlags.EnableFontSmoothing;
- }
if (connectionInfo.EnableDesktopComposition)
- {
pFlags += (int)RDPPerformanceFlags.EnableDesktopComposition;
- }
-
+
+ if (connectionInfo.DisableFullWindowDrag)
+ pFlags += (int)RDPPerformanceFlags.DisableFullWindowDrag;
+
+ if (connectionInfo.DisableMenuAnimations)
+ pFlags += (int)RDPPerformanceFlags.DisableMenuAnimations;
+
+ if (connectionInfo.DisableCursorShadow)
+ pFlags += (int)RDPPerformanceFlags.DisableCursorShadow;
+
+ if (connectionInfo.DisableCursorBlinking)
+ pFlags += (int)RDPPerformanceFlags.DisableCursorBlinking;
+
_rdpClient.AdvancedSettings2.PerformanceFlags = pFlags;
}
catch (Exception ex)
diff --git a/mRemoteV1/Documentation/mssql_db_setup.sql b/mRemoteV1/Documentation/mssql_db_setup.sql
index b92685496..04085234a 100644
--- a/mRemoteV1/Documentation/mssql_db_setup.sql
+++ b/mRemoteV1/Documentation/mssql_db_setup.sql
@@ -45,6 +45,13 @@ CREATE TABLE [dbo].[tblCons] (
DisplayThemes bit NOT NULL,
EnableFontSmoothing bit NOT NULL,
EnableDesktopComposition bit NOT NULL,
+
+
+ DisableFullWindowDrag bit NOT NULL,
+ DisableMenuAnimations bit NOT NULL,
+ DisableCursorShadow bit NOT NULL,
+ DisableCursorBlinking bit NOT NULL,
+
CacheBitmaps bit NOT NULL,
RedirectDiskDrives bit NOT NULL,
RedirectPorts bit NOT NULL,
diff --git a/mRemoteV1/Documentation/mysql_db_setup.sql b/mRemoteV1/Documentation/mysql_db_setup.sql
index d8e543c47..7cbe55a50 100644
--- a/mRemoteV1/Documentation/mysql_db_setup.sql
+++ b/mRemoteV1/Documentation/mysql_db_setup.sql
@@ -50,6 +50,10 @@ CREATE TABLE `tblCons` (
`DisplayThemes` tinyint(1) NOT NULL,
`EnableFontSmoothing` tinyint(1) NOT NULL,
`EnableDesktopComposition` tinyint(1) NOT NULL,
+ `DisableFullWindowDrag` tinyint(1) NOT NULL,
+ `DisableMenuAnimations` tinyint(1) NOT NULL,
+ `DisableCursorShadow` tinyint(1) NOT NULL,
+ `DisableCursorBlinking` tinyint(1) NOT NULL,
`CacheBitmaps` tinyint(1) NOT NULL,
`RedirectDiskDrives` tinyint(1) NOT NULL,
`RedirectPorts` tinyint(1) NOT NULL,
diff --git a/mRemoteV1/Properties/Settings.Designer.cs b/mRemoteV1/Properties/Settings.Designer.cs
index d060e2a87..488173735 100644
--- a/mRemoteV1/Properties/Settings.Designer.cs
+++ b/mRemoteV1/Properties/Settings.Designer.cs
@@ -12,7 +12,7 @@ namespace mRemoteNG {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
- [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.7.0.0")]
+ [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.6.0.0")]
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
@@ -1931,6 +1931,54 @@ namespace mRemoteNG {
}
}
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool InhDefaultDisableFullWindowDrag {
+ get {
+ return ((bool)(this["InhDefaultDisableFullWindowDrag"]));
+ }
+ set {
+ this["InhDefaultDisableFullWindowDrag"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool InhDefaultDisableMenuAnimations {
+ get {
+ return ((bool)(this["InhDefaultDisableMenuAnimations"]));
+ }
+ set {
+ this["InhDefaultDisableMenuAnimations"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool InhDefaultDisableCursorShadow {
+ get {
+ return ((bool)(this["InhDefaultDisableCursorShadow"]));
+ }
+ set {
+ this["InhDefaultDisableCursorShadow"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool InhDefaultDisableCursorBlinking {
+ get {
+ return ((bool)(this["InhDefaultDisableCursorBlinking"]));
+ }
+ set {
+ this["InhDefaultDisableCursorBlinking"] = value;
+ }
+ }
+
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("4")]
@@ -2998,5 +3046,65 @@ namespace mRemoteNG {
this["CloseToTray"] = value;
}
}
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public string StartupComponentsCheck {
+ get {
+ return ((string)(this["StartupComponentsCheck"]));
+ }
+ set {
+ this["StartupComponentsCheck"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ConDefaultDisableFullWindowDrag {
+ get {
+ return ((bool)(this["ConDefaultDisableFullWindowDrag"]));
+ }
+ set {
+ this["ConDefaultDisableFullWindowDrag"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ConDefaultDisableMenuAnimations {
+ get {
+ return ((bool)(this["ConDefaultDisableMenuAnimations"]));
+ }
+ set {
+ this["ConDefaultDisableMenuAnimations"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ConDefaultDisableCursorShadow {
+ get {
+ return ((bool)(this["ConDefaultDisableCursorShadow"]));
+ }
+ set {
+ this["ConDefaultDisableCursorShadow"] = value;
+ }
+ }
+
+ [global::System.Configuration.UserScopedSettingAttribute()]
+ [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
+ [global::System.Configuration.DefaultSettingValueAttribute("False")]
+ public bool ConDefaultDisableCursorBlinking {
+ get {
+ return ((bool)(this["ConDefaultDisableCursorBlinking"]));
+ }
+ set {
+ this["ConDefaultDisableCursorBlinking"] = value;
+ }
+ }
}
}
diff --git a/mRemoteV1/Properties/Settings.settings b/mRemoteV1/Properties/Settings.settings
index b81bb62bc..853d3b55f 100644
--- a/mRemoteV1/Properties/Settings.settings
+++ b/mRemoteV1/Properties/Settings.settings
@@ -479,6 +479,18 @@
False
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
4
@@ -746,5 +758,20 @@
False
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
+
+ False
+
\ No newline at end of file
diff --git a/mRemoteV1/Resources/Language/Language.Designer.cs b/mRemoteV1/Resources/Language/Language.Designer.cs
index 0b721a4a4..2a90ef6c6 100644
--- a/mRemoteV1/Resources/Language/Language.Designer.cs
+++ b/mRemoteV1/Resources/Language/Language.Designer.cs
@@ -4800,6 +4800,42 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Determines whether cursor flashes should be disabled..
+ ///
+ internal static string strPropertyDescriptionDisableCursorBlinking {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableCursorBlinking", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether a mouse shadow should be visible..
+ ///
+ internal static string strPropertyDescriptionDisableCursorShadow {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableCursorShadow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether window content is displayed when you drag the window to a new location..
+ ///
+ internal static string strPropertyDescriptionDisableFullWindowDrag {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableFullWindowDrag", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Determines whether menus and windows can be displayed with animation effects in the remote session..
+ ///
+ internal static string strPropertyDescriptionDisableMenuAnimations {
+ get {
+ return ResourceManager.GetString("strPropertyDescriptionDisableMenuAnimations", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Select yes if the theme of the remote host should be displayed..
///
@@ -5403,6 +5439,42 @@ namespace mRemoteNG {
}
}
+ ///
+ /// Looks up a localized string similar to Disable Cursor blinking.
+ ///
+ internal static string strPropertyNameDisableCursorBlinking {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableCursorBlinking", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Cursor Shadow.
+ ///
+ internal static string strPropertyNameDisableCursorShadow {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableCursorShadow", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Full Window drag.
+ ///
+ internal static string strPropertyNameDisableFullWindowDrag {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableFullWindowDrag", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to Disable Menu Animations.
+ ///
+ internal static string strPropertyNameDisableMenuAnimations {
+ get {
+ return ResourceManager.GetString("strPropertyNameDisableMenuAnimations", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Display Themes.
///
@@ -6268,42 +6340,6 @@ namespace mRemoteNG {
}
}
- ///
- /// Looks up a localized string similar to Disable Cursor blinking.
- ///
- internal static string strRDPDisableCursorblinking {
- get {
- return ResourceManager.GetString("strRDPDisableCursorblinking", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Disable Cursor Shadow.
- ///
- internal static string strRDPDisableCursorShadow {
- get {
- return ResourceManager.GetString("strRDPDisableCursorShadow", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Disable Full Window drag.
- ///
- internal static string strRDPDisableFullWindowdrag {
- get {
- return ResourceManager.GetString("strRDPDisableFullWindowdrag", resourceCulture);
- }
- }
-
- ///
- /// Looks up a localized string similar to Disable Menu Animations.
- ///
- internal static string strRDPDisableMenuAnimations {
- get {
- return ResourceManager.GetString("strRDPDisableMenuAnimations", resourceCulture);
- }
- }
-
///
/// Looks up a localized string similar to Disable Themes.
///
diff --git a/mRemoteV1/Resources/Language/Language.cs-CZ.resx b/mRemoteV1/Resources/Language/Language.cs-CZ.resx
index 15f1ade14..bc50eddb3 100644
--- a/mRemoteV1/Resources/Language/Language.cs-CZ.resx
+++ b/mRemoteV1/Resources/Language/Language.cs-CZ.resx
@@ -1786,16 +1786,16 @@ Zpráva:
Nebylo možné aktivovat ovládací prvek okna RDP, prosím zkontrolujte požadavky mRemoteNG na prerekvizity.
-
+
Vypnout blikání kurzoru
-
+
Vypnout stín kurzoru
-
+
Vypnout přetahování celého okna (Full Window)
-
+
Vypnout animace menu
diff --git a/mRemoteV1/Resources/Language/Language.de.resx b/mRemoteV1/Resources/Language/Language.de.resx
index 9ceb34aa5..32bc7c4e4 100644
--- a/mRemoteV1/Resources/Language/Language.de.resx
+++ b/mRemoteV1/Resources/Language/Language.de.resx
@@ -1609,16 +1609,16 @@ Wenn Sie Fehler feststellen, dann sollten Sie eine neue Verbindungsdatei erstell
Konte das RDP-Plugin nicht einbinden, bitte prüfen Sie die mRemoteNG-Voraussetzungen.
-
+
Cursor-Blinken abschalten
-
+
Cursorschatten deaktivieren
-
+
Fensterinhalt beim Ziehen nicht anzeigen
-
+
Menüanimationen deaktivieren
@@ -2714,4 +2714,16 @@ Development umfasst Alphas, Betas und Release Candidates.
Lizenz
+
+ Legt fest, ob das Blinken des Cursors deaktiviert werden soll.
+
+
+ Legt fest, ob ein Mausschatten sichtbar sein soll.
+
+
+ Legt fest, ob Menüs und Fenster mit Animationseffekten in der Remote-Sitzung angezeigt werden können.
+
+
+ Legt fest, ob der Fensterinhalt angezeigt wird, wenn Sie das Fenster an eine neue Position ziehen.
+
\ No newline at end of file
diff --git a/mRemoteV1/Resources/Language/Language.es.resx b/mRemoteV1/Resources/Language/Language.es.resx
index 47800da88..54374efd2 100644
--- a/mRemoteV1/Resources/Language/Language.es.resx
+++ b/mRemoteV1/Resources/Language/Language.es.resx
@@ -1584,16 +1584,16 @@ Mensaje:
No se pudo crear el control RDP, por favor verifique los requerimientos de mRemoteNG.
-
+
Desactivar Parpadeo del Cursor
-
+
Desactivar Sombra del Cursor
-
+
Desactivar Mostar Ventana al arrastrar
-
+
Desactivar Animaciones de Menús
diff --git a/mRemoteV1/Resources/Language/Language.fr.resx b/mRemoteV1/Resources/Language/Language.fr.resx
index c778bcd29..92a59c292 100644
--- a/mRemoteV1/Resources/Language/Language.fr.resx
+++ b/mRemoteV1/Resources/Language/Language.fr.resx
@@ -1592,16 +1592,16 @@ Message:
Impossible de lancer une connexion RDP, vérifiez les prérequis mRemoteNG.
-
+
Désactiver le curseur clignotant
-
+
Désactiver l'Ombre du pointeur
-
+
Désactiver le glissement de fenêtre complet
-
+
Désactiver les animations du menu
diff --git a/mRemoteV1/Resources/Language/Language.it.resx b/mRemoteV1/Resources/Language/Language.it.resx
index 312787b15..5bb330be9 100644
--- a/mRemoteV1/Resources/Language/Language.it.resx
+++ b/mRemoteV1/Resources/Language/Language.it.resx
@@ -1591,16 +1591,16 @@ Messaggio:
Impossibile creare il controllo RDP, per favore controlla i requisiti di mRemoteNG.
-
+
Disattiva il lampeggio del cursore
-
+
Disattiva l'ombra del cursore
-
+
Disattiva il trascinamento finestra intera
-
+
Disattiva le animazioni dei menu
diff --git a/mRemoteV1/Resources/Language/Language.ja-JP.resx b/mRemoteV1/Resources/Language/Language.ja-JP.resx
index dad26be30..b2b070dff 100644
--- a/mRemoteV1/Resources/Language/Language.ja-JP.resx
+++ b/mRemoteV1/Resources/Language/Language.ja-JP.resx
@@ -1808,16 +1808,16 @@ Message:
Couldn't create RDP control, please check mRemoteNG requirements.
-
+
Disable Cursor blinking
-
+
Disable Cursor Shadow
-
+
Disable Full Window drag
-
+
メニューのアニメーションを無効にする
diff --git a/mRemoteV1/Resources/Language/Language.ko-KR.resx b/mRemoteV1/Resources/Language/Language.ko-KR.resx
index 8e6c6fc17..3ac686262 100644
--- a/mRemoteV1/Resources/Language/Language.ko-KR.resx
+++ b/mRemoteV1/Resources/Language/Language.ko-KR.resx
@@ -1923,16 +1923,16 @@ VncSharp 제어 버전 {0}
RDP 컨트롤을 만들 수 없습니다. mRemoteNG 요구 사항을 확인하십시오.
-
+
커서 깜박임 해제
-
+
커서 그림자 해제
-
+
전체 창 끌기 해제
-
+
메뉴 애니메이션 해제
diff --git a/mRemoteV1/Resources/Language/Language.nb-NO.resx b/mRemoteV1/Resources/Language/Language.nb-NO.resx
index 30eb84931..b1cd234fd 100644
--- a/mRemoteV1/Resources/Language/Language.nb-NO.resx
+++ b/mRemoteV1/Resources/Language/Language.nb-NO.resx
@@ -1607,16 +1607,16 @@ Starter med ny tilkoblingsfil.
Kunne ikke opprette RDP-kontroll, vennligst kontroller mRemoteNGs systemkrav.
-
+
Deaktiver blinkende markør
-
+
Deaktiver markørskygge
-
+
Deaktiver fullvindudragning
-
+
Deaktiver menyanimasjoner
diff --git a/mRemoteV1/Resources/Language/Language.nl.resx b/mRemoteV1/Resources/Language/Language.nl.resx
index 5d267dcb9..3761863d0 100644
--- a/mRemoteV1/Resources/Language/Language.nl.resx
+++ b/mRemoteV1/Resources/Language/Language.nl.resx
@@ -1610,16 +1610,16 @@ Bericht:
Kan geen RDP controle aanmaken, controleer mRemoteNG systeemeisen.
-
+
Cursor Knipperen Uitschakelen
-
+
Cursor Schaduw Uitschakelen
-
+
Slepen van volledig venster uitschakelen
-
+
Menu Animaties Uitschakelen
diff --git a/mRemoteV1/Resources/Language/Language.pl.resx b/mRemoteV1/Resources/Language/Language.pl.resx
index e146a774c..b950f1f52 100644
--- a/mRemoteV1/Resources/Language/Language.pl.resx
+++ b/mRemoteV1/Resources/Language/Language.pl.resx
@@ -1,4 +1,4 @@
-
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- text/microsoft-resx
-
-
- 2.0
-
-
- System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
+ text/microsoft-resx
+
+
+ 2.0
+
+
+ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
+
+
Про програму
-
+
Активно
-
+
Активність
-
+
Нове з'єднання
-
+
Нова папка
-
+
AddNodeFromXML не вдалося!
-
+
AddNodesFromSQL не вдалося!
-
+
Дозволити лише один екземпляр програми (необхіден перезапуск)
-
+
Завжди
-
+
Підключатися, навіть якщо не пройшов перевірку
-
+
Завжди показувати діалог вибору вкладки при відкритті з'єднання
-
+
Завжди показувати значок в системному треї
-
+
Запитати пізніше
-
+
Налаштувати параметри зараз
-
+
Використовувати рекомендовані параметри
-
+
{0} автоматично перевіряє наявність оновлень з новими можливостями і виправленням помилок. Рекомендуємо дозволити {0} щотижневу перевірку оновлень.
-
+
Параметри автоматичного оновлення
-
+
Вигляд
-
+
Автозбереження кожні (0 - вимкнено):
-
+
Хвилин (0 означає вимкнено)
-
+
Остання версія
-
+
&Огляд…
-
+
&Скасувати
-
+
Змінити
-
+
&Закрити
-
+
Успадковувння по замовчуванню
-
+
Властивості по замовчуванню
-
+
Відключити
-
+
Значок
-
+
&Імпорт
-
+
Успадковування
-
+
Запустити PuTTY
-
+
&Новий
-
+
&ОК
-
+
Властивості
-
+
&Сканувати
-
+
&Стоп
-
+
Перевірити проксі
-
+
Ви не можете імпортувати звичайний файл з'єднання.
Для звичайних файлів з'єднань використовуйте Файл - Відкрити з'єднання!
-
+
Не вдається запустити сканування портів, невірний формат IP!
-
+
Зовнішній вигляд
-
+
З'єднання
-
+
Облікові дані
-
+
Вигляд
-
+
Шлюз
-
+
Основна
-
+
Різне
-
+
Протокол
-
+
Локальні ресурси
-
+
Завжди показувати це вікно при запуску
-
+
Оновити
-
+
Помилка перевірки!
-
+
Успішно перевірено!
-
+
Функція (RDP) сесій вимагає, щоб у вас була зареєстрована копія eolwtscom.dll у вашій системі.
mRemoteNG постачається з цим компонентом, але він не реєструється автоматично, якщо ви не використовуєте mRemoteNG Installer.
Щоб зареєструвати його вручну, запустіть таку команду з підвищеного командного рядка від імені адміністратора: regsvr32 "C:\Program Files\mRemoteNG\eolwtscom.dll" (де C:\Program Files\mRemoteNG\ це шлях до встановленого mRemoteNG).
Якщо ця перевірка все-таки не є успішною, або ви не можете скористатися функцією сеансів (RDP), зверніться за адресою: {0}.
-
+
EOLWTSCOM знайдено і зареєстровано.
-
+
Для використання Gecko Rendering Engine вам потрібен мати XULrunner 1.8.1.x та шлях до установки, вказаний у ваших опціях.
Завантажити XULrunner 1.8.1.3 можна тут: https://ftp.mozilla.org/pub/xulrunner/releases/1.8.1.3/contrib/win32/
Після завантаження, розпакуйте архів до обраного вами шляху. Потім у mRemoteNG перейдіть в меню Інструменти - Опції - Додатково і введіть правильний шлях у полі шляху XULRunner.
Якщо у вас нічого не вийшло зверніться за адресою: {0}.
-
+
GeckoFx було знайдено і встановлено правильно.
-
+
ICA вимагає встановити XenDesktop Online Plugin та зареєструвати бібліотеку wfica.ocx. Ви можете завантажити клієнт тут: http://www.citrix.com/download/
Якщо у вас є встановлений XenDesktop Online Plugin і нічого не працює, спробуйте зареєструвати wfica.ocx вручну.
Для цього відкрийте (Пуск - Виконати) і введіть наступну команду: regsvr32 "C:\Program Files\Citrix\ICA Client\wfica.ocx" (де C:\Program Files\Citrix ICA Client\ це шлях до XenDesktop Online Plugin).
Якщо у вас все таки не працює ICA в mRemoteNG зверніться за адресою: {0}.
-
+
Всі компоненти ICA були знайдені і зареєстровані.
Citrix ICA Client Control версії {0}
-
+
встановлений неправильно
-
+
SSH, Telnet, Rlogin і RAW протоколам потрібен для роботи PuTTY. PuTTY поставляється з кожним mRemoteNG і знаходиться в папці з програмою.
Переконайтеся, що putty.exe є в папці з mRemoteNG (за замовчунням: C:\Program Files mRemoteNG\), або ящо ви вказали правильний шлях до виконуваного файлу PuTTY в Інструменти - Опції - Додатково - Шлях до PuTTY)
-
+
Виконуваний файл PuTTY знайдений і готовий до використання.
-
+
Для правильної роботи RDP необхідно мати встановлений клієнт Remote Desktop Connection (Terminal Services) не менше версії 8.0. Ви можете отримати його тут: https://support.microsoft.com/kb/2592687
Якщо у вас є встановлений RDP 8.0 і підключитися не вдається, спробуйте зареєструватися mstscax.dll вручну. Для цього відкрийте (Пуск - Виконати) і введіть наступну команду: regsvr32 "C:\Windows\system32\mstscax.dll" (де C: \ - ваш системний диск).
Якщо у вас виникли проблеми при роботі з RDP зверніться зверніться за адресою: {0}.
-
+
На цій машині підтримуються наступні версії протоколів RDP: {0}
-
+
VNC вимагає, щоб VncSharp.dll знаходився у папці додатків mRemoteNG.
Переконайтеся, що у папці програми mRemoteNG файл VncSharp.dll (як правило, C:C:\Program Files\mRemoteNG\).
Якщо ви все ще не можете пройти цю перевірку або використовувати VNC в mRemoteNG, будь ласка, зверніться за адресою {0}.
-
+
Всі VNC компоненти були знайдені і зареєстровані.
VncSharp Control Version {0}
-
+
Автоматично намагатися відновити зв'язок при відключенні від сервера (тільки RDP і ICA)
-
+
Домен
-
+
Більше не показувати це повідомлення.
-
+
Успадковування
-
+
Пароль
-
+
Цей проксі-сервер вимагає аутентифікації
-
+
Використовувати власний шлях до PuTTY:
-
+
Перепідключитися, коли буде готово
-
+
Використовувати проксі-сервер для підключення
-
+
Користувач
-
+
Чекати виходу
-
+
Перевірити знову
-
+
Перевіряти наявність оновлень при запуску
-
+
Перевірити зараз
-
+
При запуску перевіряти правильність встановлення компонентів
-
+
Вибрати вкладку перед з'єднанням
-
+
Закриті порти
-
+
Згорнути всі папки
-
+
Аргументи
-
+
Коротке ім'я
-
+
Файл
-
+
Ім'я хосту/IP
-
+
Повідомлення
-
+
Користувач
-
+
Чекати виходу
-
+
Неможливо розібрати аргументи командного рядка!
-
+
Перевірка компонентів
-
+
Помилка btnIcon_Click!
-
+
Помилка ShowHideGridItems!
-
+
Помилка IconMenu_Click!
-
+
Помилка властивостей Grid object!
-
+
Помилка SetHostStatus!
-
+
Помилка pGrid_PopertyValueChanged!
-
+
Помилка завантаження Config UI!
-
+
Хочете закрити з'єднання:
«{0}»?
-
+
Дійсно хочете закрити вкладку «{0}»? Всі її з'єднання також будуть закриті.
-
+
Хочете видалити зовнішній інструмент, «{0}»?
-
+
Хочете видалити {0} вибраних зовнішніх інструментів?
-
+
Хочете видалити з'єднання, «{0}»?
-
+
Хочете видалити порожню папку, «{0}»?
-
+
Хочете видалити папку «{0}»? Будь-які папки або з'єднання, які вона містить також будуть видалені.
-
+
Хочете закрити всі відкриті з'єднання?
-
+
Ви дійсно бажаєте скинути налаштування вкладок до значень по замовчуванню?
-
+
З'єднатися
-
+
З'єднатися в повноекранному режимі
-
+
З'єднання...
-
+
Протокол події підключено
-
+
Підключення до системи «{0}» через «{1}» створеного користувача «{2}» (Опис: «{3}»; Користувач: «{4}»)
З'єднатися не вдалося!
-
+
Виникла помилка протоколу з'єднання. Хост «{1}»; Код помилки: «{2}»; Опис помилки: «{0}»
-
+
Відкрити з'єднання не вдалася!
-
+
Неможливо відкрити з'єднання: ім'я хоста не вказано!
-
+
Помилка RDP!
Код помилки: {0}
Опис помилки: {1}
-
+
З'єднання
-
+
Не вдається встановити порт за замовчуванням!
-
+
Не вдалося створити резервну копію файлу з'єднань!
-
+
Не вдалося імпортувати файл з'єднань!
-
+
Не можу завантажити файл з'єднань «{0}»!
-
+
Не можу завантажити файл з'єднань «{0}»!
Запускаюсь з новим файлом з'єднань.
-
+
Не вдалося зберегти файл з'єднань!
-
+
Не вдалося зберегти файл з'єднань як «{0}»!
-
+
З'єднатися з консольним сеансом
-
+
З'єднатися (з параметрами)
-
+
З'єднання до {0} через {1} закрито користувачем {2}.
-
+
З'єднання до {0} через {1} закрито користувачем {2}. (Опис: «{3}»; Користувач: «{4}»)
-
+
З'єднання закрито
-
+
З'єднання закрити не вдалося!
-
+
Не вдається створити новий файл з'єднань!
-
+
Встановлена версія
-
+
Виявлення
-
+
Не під'єднувати без перевірки
-
+
Подвійний клік для закриття вкладки
-
+
Завантажити і встановити
-
+
Дублювати
-
+
Бажаєте продовжити без пароля?
-
+
Використовувати пусте ім'я користувача, пароль або домен:
-
+
128-біт
-
+
128-біт (тільки при вході)
-
+
40-біт
-
+
56-біт
-
+
Основне
-
+
Повністю зашифрувати файл з'єднання
-
+
Кінцевий IP
-
+
Кінцевий порт
-
+
Помилка AddExternalToolsToToolBar (frmMain). {0}
-
+
Помилка AddFolder (UI.Window.Tree). {0}
-
+
Версія бази даних {0} не сумісна з цією версією {1}.
-
+
Помилка CloneNode (Tree.Node). {0}
-
+
Код помилки: {0}.
-
+
Неможливо зберегти список з'єднань.
-
+
Не вдалося розшифрувати. {0}
-
+
Не вдалося зашифрувати. {0}
-
+
Помилки
-
+
Файл з'єднання не може бути завантажений. {0}{0}{2}{0}{3}{0}{0} Для того, щоб запобігти втраті даних, {1} завершить роботу.
-
+
Помилка VerifyDatabaseVersion (Config.Connections.Save). {0}
-
+
Розкрити всі папки
-
+
Експериментально
-
+
Експорт
-
+
Експорт mRemote / mRemoteNG XML
-
+
Зовн. Інструмент
-
+
Використовує значки [FAMFAMFAM]
-
+
Всі файли (*.*)
-
+
Файли додатків (*.exe)
-
+
Файли mRemote CSV (*.csv)
-
+
Файли mRemote XML (*.xml)
-
+
Файли RDP (*.rdp)
-
+
Файли visionapp Remote Desktop 2008 CSV (*.csv)
-
+
Успадковувати {0}
-
+
Опис успадкованої властивості: {0}
-
+
На весь екран
-
+
Головна
-
+
Отримати інформацію про з'єднання з SQL не вдалося
-
+
Помилка при завантаженні з'єднання «{0}» на «{1}». {2}
-
+
Автоперепідключення
-
+
З'єднання
-
+
Властивості зовнішніх інструментів
-
+
Файли
-
+
Хост
-
+
Помилка HTTP з'єднання!
-
+
Не вдається створити нове HTTP з'єднання!
-
+
Не вдалося задати параметри HTTP!
-
+
Не вдається створити нове з'єднання ICA!
-
+
Не вдалося завантажити ICA-плагін!
-
+
Помилка встановлення облікових даних ICA!
-
+
Не вдалося встановити оброблювач подій ICA!
-
+
Не вдалося задати параметри ICA!
-
+
Помилка встановлення дозволів ICA!
-
+
Імпорт з Active Directory
-
+
Імпорт / Експорт
-
+
Імпорт mRemote / mRemoteNG XML
-
+
Імпорт з просканованих портів
-
+
Імпорт з RDP-файлу(ів)
-
+
Неактивний
-
+
Інформація
-
+
mRemoteNG не потребує оновлення
Зовнішній інструмент: Помилка отримання фокусу!
-
+
Оброблювач подій Зовн. інструментів: {0}
-
+
Не вдалося завершити процес зовнішнього інструменту!
-
+
Вкладка оброблювача: {0}
-
+
Зовнішній інструмент: Помилка зміни розміру!
-
+
Заголовок зовнішнього інструменту: {0}
-
+
CTRL+ALT+DEL
-
+