Merge pull request #2346 from BlueBlock/add_feature_to_auto_reconnect_without_clicking_check

Modify "auto reconnect" to have the ability to really auto-reconnect
This commit is contained in:
Dimitrij
2023-02-11 12:35:02 +00:00
committed by GitHub
15 changed files with 245 additions and 270 deletions

View File

@@ -41,7 +41,6 @@ namespace mRemoteNG.Config.Settings
Properties.App.Default.FirstStart = false;
Properties.App.Default.ResetPanels = false;
Properties.App.Default.ResetToolbars = false;
Properties.Settings.Default.NoReconnect = false;
SaveExternalAppsToolbarLocation(externalToolsToolStrip);
SaveQuickConnectToolbarLocation(quickConnectToolStrip);

View File

@@ -60,7 +60,7 @@ namespace mRemoteNG.Connection.Protocol
public ConnectionInfo.Force Force { get; set; }
public readonly System.Timers.Timer tmrReconnect = new System.Timers.Timer(2000);
public readonly System.Timers.Timer tmrReconnect = new System.Timers.Timer(5000);
protected ReconnectGroup ReconnectGroup;
protected ProtocolBase(string name)

View File

@@ -247,7 +247,7 @@
<value>Check failed!</value>
</data>
<data name="CheckboxAutomaticReconnect" xml:space="preserve">
<value>Automatically try to reconnect when disconnected from server (RDP &amp;&amp; ICA only)</value>
<value>Display reconnection dialog when disconnected from server (RDP &amp;&amp; ICA only)</value>
</data>
<data name="CheckboxDoNotShowThisMessageAgain" xml:space="preserve">
<value>Do not show this message again.</value>
@@ -1367,7 +1367,7 @@ If you run into such an error, please create a new connection file!</value>
<value>Couldn't create RDP control, please check mRemoteNG requirements.</value>
</data>
<data name="DisableCursorBlinking" xml:space="preserve">
<value>Disable Cursor blinking</value>
<value>Disable Cursor Blinking</value>
</data>
<data name="DisableCursorShadow" xml:space="preserve">
<value>Disable Cursor Shadow</value>
@@ -2313,4 +2313,7 @@ Nightly Channel includes Alphas, Betas &amp; Release Candidates.</value>
<data name="UseExternalCredentialProvider" xml:space="preserve">
<value>Use External Credential Provider</value>
</data>
<data name="CheckboxNoReconnect" xml:space="preserve">
<value>Automatically try to reconnect when disconnected from server (RDP &amp;&amp; ICA only)</value>
</data>
</root>

View File

@@ -12,7 +12,7 @@ namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class App : global::System.Configuration.ApplicationSettingsBase {
private static App defaultInstance = ((App)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new App())));
@@ -143,18 +143,6 @@ namespace mRemoteNG.Properties {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")]

View File

@@ -32,9 +32,6 @@
<Setting Name="ResetToolbars" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="DoUpgrade" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>

View File

@@ -12,7 +12,7 @@ namespace mRemoteNG.Properties {
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.1.0.0")]
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "17.4.0.0")]
internal sealed partial class OptionsAdvancedPage : global::System.Configuration.ApplicationSettingsBase {
private static OptionsAdvancedPage defaultInstance = ((OptionsAdvancedPage)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new OptionsAdvancedPage())));
@@ -106,5 +106,17 @@ namespace mRemoteNG.Properties {
this["cbAdvancedPageInOptionMenu"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
}
}

View File

@@ -23,5 +23,8 @@
<Setting Name="cbAdvancedPageInOptionMenu" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
</Settings>
</SettingsFile>

View File

@@ -251,18 +251,6 @@ namespace mRemoteNG.Properties {
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool NoReconnect {
get {
return ((bool)(this["NoReconnect"]));
}
set {
this["NoReconnect"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]

View File

@@ -59,9 +59,6 @@
<Setting Name="ConDefaultRedirectAudioCapture" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="NoReconnect" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="ExtAppsTBVisible" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>

View File

@@ -77,7 +77,7 @@ namespace mRemoteNG.Tools.Cmdline
if (args["noreconnect"] == null && args["norc"] == null) return;
_messageCollector.AddMessage(MessageClass.DebugMsg,
"Cmdline arg: Disabling reconnection to previously connected hosts");
Properties.App.Default.NoReconnect = true;
Properties.OptionsAdvancedPage.Default.NoReconnect = true;
}
private void ParseCustomConnectionPathArg(CmdArgumentsInterpreter args)

View File

@@ -1,5 +1,6 @@
using System;
using System.Drawing;
using Google.Protobuf;
using mRemoteNG.Resources.Language;
namespace mRemoteNG.Tools
@@ -9,6 +10,7 @@ namespace mRemoteNG.Tools
public ReconnectGroup()
{
InitializeComponent();
chkReconnectWhenReady.Checked = Properties.OptionsAdvancedPage.Default.NoReconnect;
}
private bool _ServerReady;

View File

@@ -32,193 +32,222 @@ namespace mRemoteNG.UI.Forms.OptionsPages
[System.Diagnostics.DebuggerStepThrough()]
private void InitializeComponent()
{
this.lblMaximumPuttyWaitTime = new mRemoteNG.UI.Controls.MrngLabel();
this.chkAutomaticReconnect = new MrngCheckBox();
this.numPuttyWaitTime = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.chkUseCustomPuttyPath = new MrngCheckBox();
this.lblConfigurePuttySessions = new mRemoteNG.UI.Controls.MrngLabel();
this.numUVNCSCPort = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.txtCustomPuttyPath = new mRemoteNG.UI.Controls.MrngTextBox();
this.btnLaunchPutty = new MrngButton();
this.lblUVNCSCPort = new mRemoteNG.UI.Controls.MrngLabel();
this.lblSeconds = new mRemoteNG.UI.Controls.MrngLabel();
this.btnBrowseCustomPuttyPath = new MrngButton();
this.chkLoadBalanceInfoUseUtf8 = new MrngCheckBox();
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).BeginInit();
this.SuspendLayout();
//
// lblMaximumPuttyWaitTime
//
this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(3, 145);
this.lblMaximumPuttyWaitTime.Name = "lblMaximumPuttyWaitTime";
this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(364, 20);
this.lblMaximumPuttyWaitTime.TabIndex = 7;
this.lblMaximumPuttyWaitTime.Text = "Maximum PuTTY wait time:";
this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// chkAutomaticReconnect
//
this.chkAutomaticReconnect._mice = MrngCheckBox.MouseState.OUT;
this.chkAutomaticReconnect.AutoSize = true;
this.chkAutomaticReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkAutomaticReconnect.Location = new System.Drawing.Point(3, 3);
this.chkAutomaticReconnect.Name = "chkAutomaticReconnect";
this.chkAutomaticReconnect.Size = new System.Drawing.Size(430, 17);
this.chkAutomaticReconnect.TabIndex = 1;
this.chkAutomaticReconnect.Text = "Automatically try to reconnect when disconnected from server (RDP && ICA only)";
this.chkAutomaticReconnect.UseVisualStyleBackColor = true;
//
// numPuttyWaitTime
//
this.numPuttyWaitTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numPuttyWaitTime.Location = new System.Drawing.Point(373, 143);
this.numPuttyWaitTime.Maximum = new decimal(new int[] {
this.lblMaximumPuttyWaitTime = new mRemoteNG.UI.Controls.MrngLabel();
this.chkAutomaticReconnect = new mRemoteNG.UI.Controls.MrngCheckBox();
this.numPuttyWaitTime = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.chkUseCustomPuttyPath = new mRemoteNG.UI.Controls.MrngCheckBox();
this.lblConfigurePuttySessions = new mRemoteNG.UI.Controls.MrngLabel();
this.numUVNCSCPort = new mRemoteNG.UI.Controls.MrngNumericUpDown();
this.txtCustomPuttyPath = new mRemoteNG.UI.Controls.MrngTextBox();
this.btnLaunchPutty = new mRemoteNG.UI.Controls.MrngButton();
this.lblUVNCSCPort = new mRemoteNG.UI.Controls.MrngLabel();
this.lblSeconds = new mRemoteNG.UI.Controls.MrngLabel();
this.btnBrowseCustomPuttyPath = new mRemoteNG.UI.Controls.MrngButton();
this.chkLoadBalanceInfoUseUtf8 = new mRemoteNG.UI.Controls.MrngCheckBox();
this.chkNoReconnect = new mRemoteNG.UI.Controls.MrngCheckBox();
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).BeginInit();
this.SuspendLayout();
//
// lblMaximumPuttyWaitTime
//
this.lblMaximumPuttyWaitTime.Location = new System.Drawing.Point(4, 253);
this.lblMaximumPuttyWaitTime.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblMaximumPuttyWaitTime.Name = "lblMaximumPuttyWaitTime";
this.lblMaximumPuttyWaitTime.Size = new System.Drawing.Size(546, 30);
this.lblMaximumPuttyWaitTime.TabIndex = 7;
this.lblMaximumPuttyWaitTime.Text = "Maximum PuTTY wait time:";
this.lblMaximumPuttyWaitTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// chkAutomaticReconnect
//
this.chkAutomaticReconnect._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkAutomaticReconnect.AutoSize = true;
this.chkAutomaticReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkAutomaticReconnect.Location = new System.Drawing.Point(4, 4);
this.chkAutomaticReconnect.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkAutomaticReconnect.Name = "chkAutomaticReconnect";
this.chkAutomaticReconnect.Size = new System.Drawing.Size(625, 27);
this.chkAutomaticReconnect.TabIndex = 1;
this.chkAutomaticReconnect.Text = "Display reconnection dialog when disconnected from server (RDP && ICA only)";
this.chkAutomaticReconnect.UseVisualStyleBackColor = true;
this.chkAutomaticReconnect.CheckedChanged += new System.EventHandler(this.chkAutomaticReconnect_CheckedChanged);
//
// chkNoReconnect
//
this.chkNoReconnect._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkNoReconnect.AutoSize = true;
this.chkNoReconnect.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkNoReconnect.Location = new System.Drawing.Point(32, 39);
this.chkNoReconnect.Margin = new System.Windows.Forms.Padding(4);
this.chkNoReconnect.Name = "chkNoReconnect";
this.chkNoReconnect.Size = new System.Drawing.Size(645, 27);
this.chkNoReconnect.TabIndex = 11;
this.chkNoReconnect.Text = "Automatically try to reconnect when disconnected from server (RDP && ICA only)";
this.chkNoReconnect.UseVisualStyleBackColor = true;
this.chkNoReconnect.CheckedChanged += new System.EventHandler(this.chkNoReconnect_CheckedChanged);
//
// numPuttyWaitTime
//
this.numPuttyWaitTime.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numPuttyWaitTime.Location = new System.Drawing.Point(1260, 482);
this.numPuttyWaitTime.Margin = new System.Windows.Forms.Padding(9, 9, 9, 9);
this.numPuttyWaitTime.Maximum = new decimal(new int[] {
999,
0,
0,
0});
this.numPuttyWaitTime.Name = "numPuttyWaitTime";
this.numPuttyWaitTime.Size = new System.Drawing.Size(60, 22);
this.numPuttyWaitTime.TabIndex = 7;
this.numPuttyWaitTime.Value = new decimal(new int[] {
this.numPuttyWaitTime.Name = "numPuttyWaitTime";
this.numPuttyWaitTime.Size = new System.Drawing.Size(202, 29);
this.numPuttyWaitTime.TabIndex = 7;
this.numPuttyWaitTime.Value = new decimal(new int[] {
5,
0,
0,
0});
//
// chkUseCustomPuttyPath
//
this.chkUseCustomPuttyPath._mice = MrngCheckBox.MouseState.OUT;
this.chkUseCustomPuttyPath.AutoSize = true;
this.chkUseCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkUseCustomPuttyPath.Location = new System.Drawing.Point(3, 49);
this.chkUseCustomPuttyPath.Name = "chkUseCustomPuttyPath";
this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(146, 17);
this.chkUseCustomPuttyPath.TabIndex = 3;
this.chkUseCustomPuttyPath.Text = "Use custom PuTTY path:";
this.chkUseCustomPuttyPath.UseVisualStyleBackColor = true;
this.chkUseCustomPuttyPath.CheckedChanged += new System.EventHandler(this.chkUseCustomPuttyPath_CheckedChanged);
//
// lblConfigurePuttySessions
//
this.lblConfigurePuttySessions.Location = new System.Drawing.Point(3, 109);
this.lblConfigurePuttySessions.Name = "lblConfigurePuttySessions";
this.lblConfigurePuttySessions.Size = new System.Drawing.Size(364, 25);
this.lblConfigurePuttySessions.TabIndex = 5;
this.lblConfigurePuttySessions.Text = "To configure PuTTY sessions click this button:";
this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// numUVNCSCPort
//
this.numUVNCSCPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numUVNCSCPort.Location = new System.Drawing.Point(373, 171);
this.numUVNCSCPort.Maximum = new decimal(new int[] {
//
// chkUseCustomPuttyPath
//
this.chkUseCustomPuttyPath._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkUseCustomPuttyPath.AutoSize = true;
this.chkUseCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkUseCustomPuttyPath.Location = new System.Drawing.Point(4, 109);
this.chkUseCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkUseCustomPuttyPath.Name = "chkUseCustomPuttyPath";
this.chkUseCustomPuttyPath.Size = new System.Drawing.Size(221, 27);
this.chkUseCustomPuttyPath.TabIndex = 3;
this.chkUseCustomPuttyPath.Text = "Use custom PuTTY path:";
this.chkUseCustomPuttyPath.UseVisualStyleBackColor = true;
this.chkUseCustomPuttyPath.CheckedChanged += new System.EventHandler(this.chkUseCustomPuttyPath_CheckedChanged);
//
// lblConfigurePuttySessions
//
this.lblConfigurePuttySessions.Location = new System.Drawing.Point(4, 199);
this.lblConfigurePuttySessions.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblConfigurePuttySessions.Name = "lblConfigurePuttySessions";
this.lblConfigurePuttySessions.Size = new System.Drawing.Size(546, 38);
this.lblConfigurePuttySessions.TabIndex = 5;
this.lblConfigurePuttySessions.Text = "To configure PuTTY sessions click this button:";
this.lblConfigurePuttySessions.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
//
// numUVNCSCPort
//
this.numUVNCSCPort.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.numUVNCSCPort.Location = new System.Drawing.Point(1260, 576);
this.numUVNCSCPort.Margin = new System.Windows.Forms.Padding(9, 9, 9, 9);
this.numUVNCSCPort.Maximum = new decimal(new int[] {
65535,
0,
0,
0});
this.numUVNCSCPort.Name = "numUVNCSCPort";
this.numUVNCSCPort.Size = new System.Drawing.Size(60, 22);
this.numUVNCSCPort.TabIndex = 8;
this.numUVNCSCPort.Value = new decimal(new int[] {
this.numUVNCSCPort.Name = "numUVNCSCPort";
this.numUVNCSCPort.Size = new System.Drawing.Size(202, 29);
this.numUVNCSCPort.TabIndex = 8;
this.numUVNCSCPort.Value = new decimal(new int[] {
5500,
0,
0,
0});
this.numUVNCSCPort.Visible = false;
//
// txtCustomPuttyPath
//
this.txtCustomPuttyPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtCustomPuttyPath.Enabled = false;
this.txtCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCustomPuttyPath.Location = new System.Drawing.Point(21, 72);
this.txtCustomPuttyPath.Name = "txtCustomPuttyPath";
this.txtCustomPuttyPath.Size = new System.Drawing.Size(346, 22);
this.txtCustomPuttyPath.TabIndex = 4;
this.txtCustomPuttyPath.TextChanged += new System.EventHandler(this.txtCustomPuttyPath_TextChanged);
//
// btnLaunchPutty
//
this.btnLaunchPutty._mice = MrngButton.MouseState.OUT;
this.btnLaunchPutty.Image = global::mRemoteNG.Properties.Resources.PuttyConfig;
this.btnLaunchPutty.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnLaunchPutty.Location = new System.Drawing.Point(373, 109);
this.btnLaunchPutty.Name = "btnLaunchPutty";
this.btnLaunchPutty.Size = new System.Drawing.Size(122, 25);
this.btnLaunchPutty.TabIndex = 6;
this.btnLaunchPutty.Text = "Launch PuTTY";
this.btnLaunchPutty.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnLaunchPutty.UseVisualStyleBackColor = true;
this.btnLaunchPutty.Click += new System.EventHandler(this.btnLaunchPutty_Click);
//
// lblUVNCSCPort
//
this.lblUVNCSCPort.Location = new System.Drawing.Point(3, 174);
this.lblUVNCSCPort.Name = "lblUVNCSCPort";
this.lblUVNCSCPort.Size = new System.Drawing.Size(364, 19);
this.lblUVNCSCPort.TabIndex = 10;
this.lblUVNCSCPort.Text = "UltraVNC SingleClick Listening Port:";
this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblUVNCSCPort.Visible = false;
//
// lblSeconds
//
this.lblSeconds.AutoSize = true;
this.lblSeconds.Location = new System.Drawing.Point(439, 149);
this.lblSeconds.Name = "lblSeconds";
this.lblSeconds.Size = new System.Drawing.Size(49, 13);
this.lblSeconds.TabIndex = 9;
this.lblSeconds.Text = "seconds";
//
// btnBrowseCustomPuttyPath
//
this.btnBrowseCustomPuttyPath._mice = MrngButton.MouseState.OUT;
this.btnBrowseCustomPuttyPath.Enabled = false;
this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(373, 71);
this.btnBrowseCustomPuttyPath.Name = "btnBrowseCustomPuttyPath";
this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(122, 25);
this.btnBrowseCustomPuttyPath.TabIndex = 5;
this.btnBrowseCustomPuttyPath.Text = "Browse...";
this.btnBrowseCustomPuttyPath.UseVisualStyleBackColor = true;
this.btnBrowseCustomPuttyPath.Click += new System.EventHandler(this.btnBrowseCustomPuttyPath_Click);
//
// chkLoadBalanceInfoUseUtf8
//
this.chkLoadBalanceInfoUseUtf8._mice = MrngCheckBox.MouseState.OUT;
this.chkLoadBalanceInfoUseUtf8.AutoSize = true;
this.chkLoadBalanceInfoUseUtf8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(3, 26);
this.chkLoadBalanceInfoUseUtf8.Name = "chkLoadBalanceInfoUseUtf8";
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(317, 17);
this.chkLoadBalanceInfoUseUtf8.TabIndex = 2;
this.chkLoadBalanceInfoUseUtf8.Text = "Use UTF8 encoding for RDP \"Load Balance Info\" property";
this.chkLoadBalanceInfoUseUtf8.UseVisualStyleBackColor = true;
//
// AdvancedPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.chkLoadBalanceInfoUseUtf8);
this.Controls.Add(this.lblMaximumPuttyWaitTime);
this.Controls.Add(this.chkAutomaticReconnect);
this.Controls.Add(this.numPuttyWaitTime);
this.Controls.Add(this.chkUseCustomPuttyPath);
this.Controls.Add(this.lblConfigurePuttySessions);
this.Controls.Add(this.numUVNCSCPort);
this.Controls.Add(this.txtCustomPuttyPath);
this.Controls.Add(this.btnLaunchPutty);
this.Controls.Add(this.lblUVNCSCPort);
this.Controls.Add(this.lblSeconds);
this.Controls.Add(this.btnBrowseCustomPuttyPath);
this.Margin = new System.Windows.Forms.Padding(4);
this.Name = "AdvancedPage";
this.Size = new System.Drawing.Size(610, 490);
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
this.numUVNCSCPort.Visible = false;
//
// txtCustomPuttyPath
//
this.txtCustomPuttyPath.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.txtCustomPuttyPath.Enabled = false;
this.txtCustomPuttyPath.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.txtCustomPuttyPath.Location = new System.Drawing.Point(32, 143);
this.txtCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.txtCustomPuttyPath.Name = "txtCustomPuttyPath";
this.txtCustomPuttyPath.Size = new System.Drawing.Size(518, 29);
this.txtCustomPuttyPath.TabIndex = 4;
this.txtCustomPuttyPath.TextChanged += new System.EventHandler(this.txtCustomPuttyPath_TextChanged);
//
// btnLaunchPutty
//
this.btnLaunchPutty._mice = mRemoteNG.UI.Controls.MrngButton.MouseState.OUT;
this.btnLaunchPutty.Image = global::mRemoteNG.Properties.Resources.PuttyConfig;
this.btnLaunchPutty.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft;
this.btnLaunchPutty.Location = new System.Drawing.Point(560, 199);
this.btnLaunchPutty.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnLaunchPutty.Name = "btnLaunchPutty";
this.btnLaunchPutty.Size = new System.Drawing.Size(183, 38);
this.btnLaunchPutty.TabIndex = 6;
this.btnLaunchPutty.Text = "Launch PuTTY";
this.btnLaunchPutty.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.btnLaunchPutty.UseVisualStyleBackColor = true;
this.btnLaunchPutty.Click += new System.EventHandler(this.btnLaunchPutty_Click);
//
// lblUVNCSCPort
//
this.lblUVNCSCPort.Location = new System.Drawing.Point(4, 296);
this.lblUVNCSCPort.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblUVNCSCPort.Name = "lblUVNCSCPort";
this.lblUVNCSCPort.Size = new System.Drawing.Size(546, 28);
this.lblUVNCSCPort.TabIndex = 10;
this.lblUVNCSCPort.Text = "UltraVNC SingleClick Listening Port:";
this.lblUVNCSCPort.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
this.lblUVNCSCPort.Visible = false;
//
// lblSeconds
//
this.lblSeconds.AutoSize = true;
this.lblSeconds.Location = new System.Drawing.Point(658, 259);
this.lblSeconds.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0);
this.lblSeconds.Name = "lblSeconds";
this.lblSeconds.Size = new System.Drawing.Size(71, 23);
this.lblSeconds.TabIndex = 9;
this.lblSeconds.Text = "seconds";
//
// btnBrowseCustomPuttyPath
//
this.btnBrowseCustomPuttyPath._mice = mRemoteNG.UI.Controls.MrngButton.MouseState.OUT;
this.btnBrowseCustomPuttyPath.Enabled = false;
this.btnBrowseCustomPuttyPath.Location = new System.Drawing.Point(560, 141);
this.btnBrowseCustomPuttyPath.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.btnBrowseCustomPuttyPath.Name = "btnBrowseCustomPuttyPath";
this.btnBrowseCustomPuttyPath.Size = new System.Drawing.Size(183, 38);
this.btnBrowseCustomPuttyPath.TabIndex = 5;
this.btnBrowseCustomPuttyPath.Text = "Browse...";
this.btnBrowseCustomPuttyPath.UseVisualStyleBackColor = true;
this.btnBrowseCustomPuttyPath.Click += new System.EventHandler(this.btnBrowseCustomPuttyPath_Click);
//
// chkLoadBalanceInfoUseUtf8
//
this.chkLoadBalanceInfoUseUtf8._mice = mRemoteNG.UI.Controls.MrngCheckBox.MouseState.OUT;
this.chkLoadBalanceInfoUseUtf8.AutoSize = true;
this.chkLoadBalanceInfoUseUtf8.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
this.chkLoadBalanceInfoUseUtf8.Location = new System.Drawing.Point(4, 74);
this.chkLoadBalanceInfoUseUtf8.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.chkLoadBalanceInfoUseUtf8.Name = "chkLoadBalanceInfoUseUtf8";
this.chkLoadBalanceInfoUseUtf8.Size = new System.Drawing.Size(471, 27);
this.chkLoadBalanceInfoUseUtf8.TabIndex = 2;
this.chkLoadBalanceInfoUseUtf8.Text = "Use UTF8 encoding for RDP \"Load Balance Info\" property";
this.chkLoadBalanceInfoUseUtf8.UseVisualStyleBackColor = true;
//
// AdvancedPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(144F, 144F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.chkNoReconnect);
this.Controls.Add(this.chkLoadBalanceInfoUseUtf8);
this.Controls.Add(this.lblMaximumPuttyWaitTime);
this.Controls.Add(this.chkAutomaticReconnect);
this.Controls.Add(this.numPuttyWaitTime);
this.Controls.Add(this.chkUseCustomPuttyPath);
this.Controls.Add(this.lblConfigurePuttySessions);
this.Controls.Add(this.numUVNCSCPort);
this.Controls.Add(this.txtCustomPuttyPath);
this.Controls.Add(this.btnLaunchPutty);
this.Controls.Add(this.lblUVNCSCPort);
this.Controls.Add(this.lblSeconds);
this.Controls.Add(this.btnBrowseCustomPuttyPath);
this.Margin = new System.Windows.Forms.Padding(6, 6, 6, 6);
this.Name = "AdvancedPage";
this.Size = new System.Drawing.Size(915, 735);
((System.ComponentModel.ISupportInitialize)(this.numPuttyWaitTime)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.numUVNCSCPort)).EndInit();
this.ResumeLayout(false);
this.PerformLayout();
}
internal Controls.MrngLabel lblMaximumPuttyWaitTime;
@@ -233,5 +262,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
internal Controls.MrngLabel lblSeconds;
internal MrngButton btnBrowseCustomPuttyPath;
private MrngCheckBox chkLoadBalanceInfoUseUtf8;
internal MrngCheckBox chkNoReconnect;
}
}

View File

@@ -38,6 +38,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
lblSeconds.Text = Language.Seconds;
lblMaximumPuttyWaitTime.Text = Language.PuttyTimeout;
chkAutomaticReconnect.Text = Language.CheckboxAutomaticReconnect;
//chkNoReconnect.Text = Language.;
chkLoadBalanceInfoUseUtf8.Text = Language.LoadBalanceInfoUseUtf8;
lblConfigurePuttySessions.Text = Language.PuttySessionsConfig;
btnLaunchPutty.Text = Language.ButtonLaunchPutty;
@@ -49,6 +50,9 @@ namespace mRemoteNG.UI.Forms.OptionsPages
public override void LoadSettings()
{
chkAutomaticReconnect.Checked = Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect;
chkNoReconnect.Checked = Properties.OptionsAdvancedPage.Default.NoReconnect;
chkNoReconnect.Enabled = Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect;
chkLoadBalanceInfoUseUtf8.Checked = Properties.OptionsAdvancedPage.Default.RdpLoadBalanceInfoUseUtf8;
numPuttyWaitTime.Value = Properties.OptionsAdvancedPage.Default.MaxPuttyWaitTime;
@@ -62,6 +66,7 @@ namespace mRemoteNG.UI.Forms.OptionsPages
public override void SaveSettings()
{
Properties.OptionsAdvancedPage.Default.ReconnectOnDisconnect = chkAutomaticReconnect.Checked;
Properties.OptionsAdvancedPage.Default.NoReconnect= chkNoReconnect.Checked;
Properties.OptionsAdvancedPage.Default.RdpLoadBalanceInfoUseUtf8 = chkLoadBalanceInfoUseUtf8.Checked;
var puttyPathChanged = false;
@@ -158,7 +163,18 @@ namespace mRemoteNG.UI.Forms.OptionsPages
lblConfigurePuttySessions.Enabled = exists;
btnLaunchPutty.Enabled = exists;
}
private void chkNoReconnect_CheckedChanged(object sender, EventArgs e)
{
}
private void chkAutomaticReconnect_CheckedChanged(object sender, EventArgs e)
{
chkNoReconnect.Enabled = chkAutomaticReconnect.Checked;
}
#endregion
}
}

View File

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

View File

@@ -141,7 +141,7 @@ namespace mRemoteNG.UI.Window
new RootNodeExpander()
};
if (Properties.OptionsStartupExitPage.Default.OpenConsFromLastSession && !Settings.Default.NoReconnect)
if (Properties.OptionsStartupExitPage.Default.OpenConsFromLastSession && !Properties.OptionsAdvancedPage.Default.NoReconnect)
actions.Add(new PreviousSessionOpener(Runtime.ConnectionInitiator));
ConnectionTree.PostSetupActions = actions;