converted components check page into options page

This commit is contained in:
Faryan Rezagholi
2020-05-25 20:51:57 +02:00
parent f83ed6dfb2
commit d511976ba6
16 changed files with 669 additions and 843 deletions

View File

@@ -15,7 +15,6 @@ namespace mRemoteNG.App
private static PortScanWindow _portscanForm;
private static ScreenshotManagerWindow _screenshotmanagerForm;
private static UltraVNCWindow _ultravncscForm;
private static ComponentsCheckWindow _componentscheckForm;
private static ConnectionTreeWindow _treeForm;
internal static ConnectionTreeWindow TreeForm
@@ -89,13 +88,6 @@ namespace mRemoteNG.App
_ultravncscForm = new UltraVNCWindow();
_ultravncscForm.Show(dockPanel);
break;
case WindowType.ComponentsCheck:
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg,
"Showing ComponentsCheck window", true);
if (_componentscheckForm == null || _componentscheckForm.IsDisposed)
_componentscheckForm = new ComponentsCheckWindow();
_componentscheckForm.Show(dockPanel);
break;
}
}
catch (Exception ex)

View File

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

View File

@@ -380,9 +380,6 @@
<Setting Name="UVNCSCPort" Type="System.Int32" Scope="User">
<Value Profile="(Default)">5500</Value>
</Setting>
<Setting Name="StartupComponentsCheck" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="XULRunnerPath" Type="System.String" Scope="User">
<Value Profile="(Default)" />
</Setting>

View File

@@ -126,14 +126,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string ConnectionFailed
{
get
{
internal static string ConnectionFailed {
get {
return ResourceManager.GetString("ConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to The connection file could not be found..
/// </summary>
@@ -997,9 +995,7 @@ namespace mRemoteNG {
}
/// <summary>
/// Looks up a localized string similar to ICA requires that the XenDesktop Online Plugin is installed and that the wfica.ocx library is registered. You can download the client here: http://www.citrix.com/download/
///If you have the XenDesktop Online Plugin installed and the check still fails, try to register wfica.ocx manually.
///To do this open up the run dialog (Start - Run) and enter the following: regsvr32 &quot;c:\Program Files\Citrix\ICA Client\wfica.ocx&quot; (Where c:\Program Files\Citrix\ICA Client\ is the path to your XenDesktop Online Plugin install [rest of string was truncated]&quot;;.
/// Looks up a localized string similar to ICA requires that the XenDesktop Online Plugin is installed and that the wfica.ocx library is registered. You can download the client here: http://www.citrix.com/download/.
/// </summary>
internal static string strCcICAFailed {
get {
@@ -1259,14 +1255,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Close to notification area.
/// </summary>
internal static string strCloseToSysTray
{
get
{
internal static string strCloseToSysTray {
get {
return ResourceManager.GetString("strCloseToSysTray", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Collapse all folders.
/// </summary>
@@ -1619,15 +1613,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strConnectionEventConnectionFailed {
get {
return ResourceManager.GetString("strConnectionEventConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to A connection protocol error occurred. Host: &quot;{1}&quot;; Error code: &quot;{2}&quot;; Error Description: &quot;{0}&quot;.
/// </summary>
@@ -2897,15 +2882,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strIntAppConnectionFailed {
get {
return ResourceManager.GetString("strIntAppConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Dispose of Int App process failed!.
/// </summary>
@@ -4692,14 +4668,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to PowerShell.
/// </summary>
internal static string strPowerShell
{
get
{
internal static string strPowerShell {
get {
return ResourceManager.GetString("strPowerShell", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to (These properties will only be saved if you select mRemote/mRemoteNG XML as output file format!).
/// </summary>
@@ -5009,14 +4983,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Specifies the password of the Remote Desktop Gateway server..
/// </summary>
internal static string strPropertyDescriptionRDGatewayPassword
{
get
{
internal static string strPropertyDescriptionRDGatewayPassword {
get {
return ResourceManager.GetString("strPropertyDescriptionRDGatewayPassword", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Specifies when to use a Remote Desktop Gateway (RD Gateway) server..
/// </summary>
@@ -5110,14 +5082,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Select whether microphones should be shared..
/// </summary>
internal static string strPropertyDescriptionRedirectMicrophones
{
get
{
internal static string strPropertyDescriptionRedirectMicrophones {
get {
return ResourceManager.GetString("strPropertyDescriptionRedirectMicrophones", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Select whether local ports (ie. com, parallel) should be shown on the remote host..
/// </summary>
@@ -5965,15 +5935,6 @@ namespace mRemoteNG {
}
}
/// <summary>
/// Looks up a localized string similar to Connection failed!.
/// </summary>
internal static string strPuttyConnectionFailed {
get {
return ResourceManager.GetString("strPuttyConnectionFailed", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Dispose of Putty process failed!.
/// </summary>
@@ -8194,14 +8155,12 @@ namespace mRemoteNG {
/// <summary>
/// Looks up a localized string similar to Windows.
/// </summary>
internal static string strWindows
{
get
{
internal static string strWindows {
get {
return ResourceManager.GetString("strWindows", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Working directory.
/// </summary>

View File

@@ -305,10 +305,7 @@ If you are still not able to pass this check or use the Gecko Engine in mRemoteN
<value>GeckoFx was found and seems to be installed properly.</value>
</data>
<data name="strCcICAFailed" xml:space="preserve">
<value>ICA requires that the XenDesktop Online Plugin is installed and that the wfica.ocx library is registered. You can download the client here: http://www.citrix.com/download/
If you have the XenDesktop Online Plugin installed and the check still fails, try to register wfica.ocx manually.
To do this open up the run dialog (Start - Run) and enter the following: regsvr32 "c:\Program Files\Citrix\ICA Client\wfica.ocx" (Where c:\Program Files\Citrix\ICA Client\ is the path to your XenDesktop Online Plugin installation).
If you are still not able to pass this check or use ICA in mRemoteNG please consult the at {0}.</value>
<value>ICA requires that the XenDesktop Online Plugin is installed and that the wfica.ocx library is registered. You can download the client here: http://www.citrix.com/download/</value>
</data>
<data name="strCcICAOK" xml:space="preserve">
<value>All ICA components were found and seem to be registered properly.

View File

@@ -0,0 +1,399 @@

namespace mRemoteNG.UI.Forms.OptionsPages
{
public sealed partial class ComponentsPage : OptionsPage
{
//UserControl overrides dispose to clean up the component list.
[System.Diagnostics.DebuggerNonUserCode()]
protected override void Dispose(bool disposing)
{
try
{
if (disposing && components != null)
{
components.Dispose();
}
}
finally
{
base.Dispose(disposing);
}
}
//Required by the Windows Form Designer
private System.ComponentModel.Container components = null;
//NOTE: The following procedure is required by the Windows Form Designer
//It can be modified using the Windows Form Designer.
//Do not modify it using the code editor.
[System.Diagnostics.DebuggerStepThrough()]
private void InitializeComponent()
{
this.pnlCheck1 = new System.Windows.Forms.Panel();
this.txtCheck1 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck1 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck1 = new System.Windows.Forms.PictureBox();
this.pnlCheck2 = new System.Windows.Forms.Panel();
this.txtCheck2 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck2 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck2 = new System.Windows.Forms.PictureBox();
this.pnlCheck3 = new System.Windows.Forms.Panel();
this.txtCheck3 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck3 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck3 = new System.Windows.Forms.PictureBox();
this.pnlCheck4 = new System.Windows.Forms.Panel();
this.txtCheck4 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck4 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck4 = new System.Windows.Forms.PictureBox();
this.pnlCheck5 = new System.Windows.Forms.Panel();
this.txtCheck5 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck5 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck5 = new System.Windows.Forms.PictureBox();
this.btnCheckAgain = new mRemoteNG.UI.Controls.Base.NGButton();
this.tblCheck = new System.Windows.Forms.TableLayoutPanel();
this.pnlCheck1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck1)).BeginInit();
this.pnlCheck2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck2)).BeginInit();
this.pnlCheck3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck3)).BeginInit();
this.pnlCheck4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck4)).BeginInit();
this.pnlCheck5.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck5)).BeginInit();
this.tblCheck.SuspendLayout();
this.SuspendLayout();
//
// pnlCheck1
//
this.pnlCheck1.Controls.Add(this.txtCheck1);
this.pnlCheck1.Controls.Add(this.lblCheck1);
this.pnlCheck1.Controls.Add(this.pbCheck1);
this.pnlCheck1.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlCheck1.Location = new System.Drawing.Point(3, 3);
this.pnlCheck1.Name = "pnlCheck1";
this.pnlCheck1.Size = new System.Drawing.Size(604, 84);
this.pnlCheck1.TabIndex = 10;
this.pnlCheck1.Visible = false;
//
// txtCheck1
//
this.txtCheck1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck1.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck1.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCheck1.Location = new System.Drawing.Point(35, 25);
this.txtCheck1.Multiline = true;
this.txtCheck1.Name = "txtCheck1";
this.txtCheck1.ReadOnly = true;
this.txtCheck1.Size = new System.Drawing.Size(566, 55);
this.txtCheck1.TabIndex = 2;
//
// lblCheck1
//
this.lblCheck1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck1.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck1.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblCheck1.Location = new System.Drawing.Point(32, -1);
this.lblCheck1.Name = "lblCheck1";
this.lblCheck1.Size = new System.Drawing.Size(493, 23);
this.lblCheck1.TabIndex = 1;
this.lblCheck1.Text = "RDP check succeeded!";
//
// pbCheck1
//
this.pbCheck1.Location = new System.Drawing.Point(0, 0);
this.pbCheck1.Name = "pbCheck1";
this.pbCheck1.Size = new System.Drawing.Size(30, 30);
this.pbCheck1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbCheck1.TabIndex = 0;
this.pbCheck1.TabStop = false;
//
// pnlCheck2
//
this.pnlCheck2.Controls.Add(this.txtCheck2);
this.pnlCheck2.Controls.Add(this.lblCheck2);
this.pnlCheck2.Controls.Add(this.pbCheck2);
this.pnlCheck2.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlCheck2.Location = new System.Drawing.Point(3, 93);
this.pnlCheck2.Name = "pnlCheck2";
this.pnlCheck2.Size = new System.Drawing.Size(604, 84);
this.pnlCheck2.TabIndex = 20;
this.pnlCheck2.Visible = false;
//
// txtCheck2
//
this.txtCheck2.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck2.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck2.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck2.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCheck2.Location = new System.Drawing.Point(35, 25);
this.txtCheck2.Multiline = true;
this.txtCheck2.Name = "txtCheck2";
this.txtCheck2.ReadOnly = true;
this.txtCheck2.Size = new System.Drawing.Size(566, 55);
this.txtCheck2.TabIndex = 2;
//
// lblCheck2
//
this.lblCheck2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck2.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck2.Location = new System.Drawing.Point(32, -1);
this.lblCheck2.Name = "lblCheck2";
this.lblCheck2.Size = new System.Drawing.Size(489, 23);
this.lblCheck2.TabIndex = 1;
this.lblCheck2.Text = "RDP check succeeded!";
//
// pbCheck2
//
this.pbCheck2.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck2.Location = new System.Drawing.Point(0, -1);
this.pbCheck2.Name = "pbCheck2";
this.pbCheck2.Size = new System.Drawing.Size(30, 31);
this.pbCheck2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbCheck2.TabIndex = 0;
this.pbCheck2.TabStop = false;
//
// pnlCheck3
//
this.pnlCheck3.Controls.Add(this.txtCheck3);
this.pnlCheck3.Controls.Add(this.lblCheck3);
this.pnlCheck3.Controls.Add(this.pbCheck3);
this.pnlCheck3.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlCheck3.Location = new System.Drawing.Point(3, 183);
this.pnlCheck3.Name = "pnlCheck3";
this.pnlCheck3.Size = new System.Drawing.Size(604, 84);
this.pnlCheck3.TabIndex = 30;
this.pnlCheck3.Visible = false;
//
// txtCheck3
//
this.txtCheck3.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck3.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck3.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck3.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCheck3.Location = new System.Drawing.Point(35, 25);
this.txtCheck3.Multiline = true;
this.txtCheck3.Name = "txtCheck3";
this.txtCheck3.ReadOnly = true;
this.txtCheck3.Size = new System.Drawing.Size(566, 55);
this.txtCheck3.TabIndex = 2;
//
// lblCheck3
//
this.lblCheck3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck3.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck3.Location = new System.Drawing.Point(32, -1);
this.lblCheck3.Name = "lblCheck3";
this.lblCheck3.Size = new System.Drawing.Size(489, 23);
this.lblCheck3.TabIndex = 1;
this.lblCheck3.Text = "RDP check succeeded!";
//
// pbCheck3
//
this.pbCheck3.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck3.Location = new System.Drawing.Point(0, -1);
this.pbCheck3.Name = "pbCheck3";
this.pbCheck3.Size = new System.Drawing.Size(30, 31);
this.pbCheck3.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbCheck3.TabIndex = 0;
this.pbCheck3.TabStop = false;
//
// pnlCheck4
//
this.pnlCheck4.Controls.Add(this.txtCheck4);
this.pnlCheck4.Controls.Add(this.lblCheck4);
this.pnlCheck4.Controls.Add(this.pbCheck4);
this.pnlCheck4.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlCheck4.Location = new System.Drawing.Point(3, 273);
this.pnlCheck4.Name = "pnlCheck4";
this.pnlCheck4.Size = new System.Drawing.Size(604, 84);
this.pnlCheck4.TabIndex = 40;
this.pnlCheck4.Visible = false;
//
// txtCheck4
//
this.txtCheck4.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck4.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck4.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck4.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCheck4.Location = new System.Drawing.Point(35, 25);
this.txtCheck4.Multiline = true;
this.txtCheck4.Name = "txtCheck4";
this.txtCheck4.ReadOnly = true;
this.txtCheck4.Size = new System.Drawing.Size(566, 55);
this.txtCheck4.TabIndex = 2;
//
// lblCheck4
//
this.lblCheck4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck4.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck4.Location = new System.Drawing.Point(32, -1);
this.lblCheck4.Name = "lblCheck4";
this.lblCheck4.Size = new System.Drawing.Size(489, 23);
this.lblCheck4.TabIndex = 1;
this.lblCheck4.Text = "RDP check succeeded!";
//
// pbCheck4
//
this.pbCheck4.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck4.Location = new System.Drawing.Point(0, 0);
this.pbCheck4.Name = "pbCheck4";
this.pbCheck4.Size = new System.Drawing.Size(30, 31);
this.pbCheck4.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbCheck4.TabIndex = 0;
this.pbCheck4.TabStop = false;
//
// pnlCheck5
//
this.pnlCheck5.Controls.Add(this.txtCheck5);
this.pnlCheck5.Controls.Add(this.lblCheck5);
this.pnlCheck5.Controls.Add(this.pbCheck5);
this.pnlCheck5.Dock = System.Windows.Forms.DockStyle.Fill;
this.pnlCheck5.Location = new System.Drawing.Point(3, 363);
this.pnlCheck5.Name = "pnlCheck5";
this.pnlCheck5.Size = new System.Drawing.Size(604, 84);
this.pnlCheck5.TabIndex = 50;
this.pnlCheck5.Visible = false;
//
// txtCheck5
//
this.txtCheck5.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck5.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck5.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck5.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.txtCheck5.Location = new System.Drawing.Point(35, 25);
this.txtCheck5.Multiline = true;
this.txtCheck5.Name = "txtCheck5";
this.txtCheck5.ReadOnly = true;
this.txtCheck5.Size = new System.Drawing.Size(566, 55);
this.txtCheck5.TabIndex = 2;
//
// lblCheck5
//
this.lblCheck5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck5.Font = new System.Drawing.Font("Segoe UI", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck5.Location = new System.Drawing.Point(32, -1);
this.lblCheck5.Name = "lblCheck5";
this.lblCheck5.Size = new System.Drawing.Size(489, 23);
this.lblCheck5.TabIndex = 1;
this.lblCheck5.Text = "RDP check succeeded!";
//
// pbCheck5
//
this.pbCheck5.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck5.Location = new System.Drawing.Point(0, -1);
this.pbCheck5.Name = "pbCheck5";
this.pbCheck5.Size = new System.Drawing.Size(30, 31);
this.pbCheck5.SizeMode = System.Windows.Forms.PictureBoxSizeMode.Zoom;
this.pbCheck5.TabIndex = 0;
this.pbCheck5.TabStop = false;
//
// btnCheckAgain
//
this.btnCheckAgain._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.OUT;
this.btnCheckAgain.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
this.btnCheckAgain.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCheckAgain.Location = new System.Drawing.Point(503, 453);
this.btnCheckAgain.Name = "btnCheckAgain";
this.btnCheckAgain.Size = new System.Drawing.Size(104, 23);
this.btnCheckAgain.TabIndex = 0;
this.btnCheckAgain.Text = "Check again";
this.btnCheckAgain.UseVisualStyleBackColor = true;
this.btnCheckAgain.Click += new System.EventHandler(this.BtnCheckAgain_Click);
//
// tblCheck
//
this.tblCheck.ColumnCount = 1;
this.tblCheck.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100F));
this.tblCheck.Controls.Add(this.pnlCheck5, 0, 4);
this.tblCheck.Controls.Add(this.pnlCheck2, 0, 1);
this.tblCheck.Controls.Add(this.pnlCheck3, 0, 2);
this.tblCheck.Controls.Add(this.pnlCheck4, 0, 3);
this.tblCheck.Controls.Add(this.pnlCheck1, 0, 0);
this.tblCheck.Controls.Add(this.btnCheckAgain, 0, 5);
this.tblCheck.Dock = System.Windows.Forms.DockStyle.Fill;
this.tblCheck.Location = new System.Drawing.Point(0, 0);
this.tblCheck.Name = "tblCheck";
this.tblCheck.RowCount = 6;
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 90F));
this.tblCheck.RowStyles.Add(new System.Windows.Forms.RowStyle());
this.tblCheck.Size = new System.Drawing.Size(610, 490);
this.tblCheck.TabIndex = 51;
//
// ComponentsPage
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.Controls.Add(this.tblCheck);
this.Name = "ComponentsPage";
this.Size = new System.Drawing.Size(610, 490);
this.pnlCheck1.ResumeLayout(false);
this.pnlCheck1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck1)).EndInit();
this.pnlCheck2.ResumeLayout(false);
this.pnlCheck2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck2)).EndInit();
this.pnlCheck3.ResumeLayout(false);
this.pnlCheck3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck3)).EndInit();
this.pnlCheck4.ResumeLayout(false);
this.pnlCheck4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck4)).EndInit();
this.pnlCheck5.ResumeLayout(false);
this.pnlCheck5.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck5)).EndInit();
this.tblCheck.ResumeLayout(false);
this.ResumeLayout(false);
}
private System.Windows.Forms.PictureBox pbCheck1;
private Controls.Base.NGLabel lblCheck1;
private System.Windows.Forms.Panel pnlCheck2;
private Controls.Base.NGLabel lblCheck2;
private System.Windows.Forms.PictureBox pbCheck2;
private System.Windows.Forms.Panel pnlCheck3;
private Controls.Base.NGLabel lblCheck3;
private System.Windows.Forms.PictureBox pbCheck3;
private System.Windows.Forms.Panel pnlCheck4;
private Controls.Base.NGLabel lblCheck4;
private System.Windows.Forms.PictureBox pbCheck4;
private System.Windows.Forms.Panel pnlCheck5;
private Controls.Base.NGLabel lblCheck5;
private System.Windows.Forms.PictureBox pbCheck5;
private Controls.Base.NGButton btnCheckAgain;
private Controls.Base.NGTextBox txtCheck1;
private Controls.Base.NGTextBox txtCheck2;
private Controls.Base.NGTextBox txtCheck3;
private Controls.Base.NGTextBox txtCheck4;
private Controls.Base.NGTextBox txtCheck5;
private System.Windows.Forms.Panel pnlCheck1;
private System.Windows.Forms.TableLayoutPanel tblCheck;
}
}

View File

@@ -0,0 +1,237 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Threading;
using AxWFICALib;
using Gecko;
using mRemoteNG.App;
using mRemoteNG.App.Info;
using mRemoteNG.Connection.Protocol.RDP;
using mRemoteNG.Messages;
using mRemoteNG.Themes;
namespace mRemoteNG.UI.Forms.OptionsPages
{
public partial class ComponentsPage
{
public ComponentsPage()
{
ApplyTheme();
PageIcon = Resources.ComponentsCheck_Icon;
InitializeComponent();
CheckComponents();
FontOverrider.FontOverride(this);
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
}
public override string PageName
{
get => Language.strComponentsCheck;
set { }
}
#region Form Stuff
public override void ApplyLanguage()
{
base.ApplyLanguage();
Text = Language.strComponentsCheck;
btnCheckAgain.Text = Language.strCcCheckAgain;
}
private void BtnCheckAgain_Click(object sender, EventArgs e)
{
CheckComponents();
}
#endregion
private void CheckComponents()
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Beginning component check", true);
CheckRdp();
CheckVnc();
CheckPutty();
CheckIca();
CheckGeckoBrowser();
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Finished component check", true);
}
private void CheckRdp()
{
pnlCheck1.Visible = true;
var rdpProtocolFactory = new RdpProtocolFactory();
var supportedVersions = rdpProtocolFactory.GetSupportedVersions();
if (supportedVersions.Any())
{
pbCheck1.Image = Resources.Good_Symbol;
lblCheck1.ForeColor = Color.DarkOliveGreen;
lblCheck1.Text = "RDP (Remote Desktop) " + Language.strCcCheckSucceeded;
txtCheck1.Text = string.Format(Language.strCcRDPOK, string.Join(", ", supportedVersions));
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "RDP versions installed: "+ string.Join(",", supportedVersions), true);
}
else
{
pbCheck1.Image = Resources.Bad_Symbol;
lblCheck1.ForeColor = Color.Firebrick;
lblCheck1.Text = "RDP (Remote Desktop) " + Language.strCcCheckFailed;
txtCheck1.Text = string.Format(Language.strCcRDPFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"RDP " + Language.strCcNotInstalledProperly, true);
}
}
private void CheckVnc()
{
pnlCheck2.Visible = true;
try
{
using (var vnc = new VncSharp.RemoteDesktop())
{
vnc.CreateControl();
while (!vnc.Created)
{
Thread.Sleep(10);
System.Windows.Forms.Application.DoEvents();
}
pbCheck2.Image = Resources.Good_Symbol;
lblCheck2.ForeColor = Color.DarkOliveGreen;
lblCheck2.Text = "VNC (Virtual Network Computing) " + Language.strCcCheckSucceeded;
txtCheck2.Text = string.Format(Language.strCcVNCOK, vnc.ProductVersion);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "VNC installed", true);
}
}
catch (Exception)
{
pbCheck2.Image = Resources.Bad_Symbol;
lblCheck2.ForeColor = Color.Firebrick;
lblCheck2.Text = "VNC (Virtual Network Computing) " + Language.strCcCheckFailed;
txtCheck2.Text = string.Format(Language.strCcVNCFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"VNC " + Language.strCcNotInstalledProperly, true);
}
}
private void CheckPutty()
{
pnlCheck3.Visible = true;
string pPath;
if (Settings.Default.UseCustomPuttyPath == false)
{
pPath = GeneralAppInfo.HomePath + "\\PuTTYNG.exe";
}
else
{
pPath = Settings.Default.CustomPuttyPath;
}
if (File.Exists(pPath))
{
var versionInfo = FileVersionInfo.GetVersionInfo(pPath);
pbCheck3.Image = Resources.Good_Symbol;
lblCheck3.ForeColor = Color.DarkOliveGreen;
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " + Language.strCcCheckSucceeded;
txtCheck3.Text =
$"{Language.strCcPuttyOK}{Environment.NewLine}Version: {versionInfo.ProductName} Release: {versionInfo.FileVersion}";
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "PuTTY installed", true);
}
else
{
pbCheck3.Image = Resources.Bad_Symbol;
lblCheck3.ForeColor = Color.Firebrick;
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " + Language.strCcCheckFailed;
txtCheck3.Text = Language.strCcPuttyFailed;
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"PuTTY " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "File " + pPath + " does not exist.",
true);
}
}
private void CheckIca()
{
pnlCheck4.Visible = true;
try
{
using (var ica = new AxICAClient())
{
ica.Parent = this;
pbCheck4.Image = Resources.Good_Symbol;
lblCheck4.ForeColor = Color.DarkOliveGreen;
lblCheck4.Text = @"ICA (Citrix ICA) " + Language.strCcCheckSucceeded;
txtCheck4.Text = string.Format(Language.strCcICAOK, ica.Version);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "ICA installed", true);
}
}
catch (Exception ex)
{
pbCheck4.Image = Resources.Bad_Symbol;
lblCheck4.ForeColor = Color.Firebrick;
lblCheck4.Text = @"ICA (Citrix ICA) " + Language.strCcCheckFailed;
txtCheck4.Text = string.Format(Language.strCcICAFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"ICA " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, ex.Message, true);
}
}
private void CheckGeckoBrowser()
{
pnlCheck5.Visible = true;
var geckoBad = false;
var geckoFxPath = Path.Combine(GeneralAppInfo.HomePath, "Firefox");
if (File.Exists(Path.Combine(GeneralAppInfo.HomePath, "Geckofx-Core.dll")))
{
if (Directory.Exists(geckoFxPath))
{
if (!File.Exists(Path.Combine(geckoFxPath, "xul.dll")))
{
geckoBad = true;
}
}
else
{
geckoBad = true;
}
}
if (geckoBad == false)
{
pbCheck5.Image = Resources.Good_Symbol;
lblCheck5.ForeColor = Color.DarkOliveGreen;
lblCheck5.Text = @"Gecko (Firefox) Rendering Engine (HTTP/S) " + Language.strCcCheckSucceeded;
if (!Xpcom.IsInitialized)
Xpcom.Initialize("Firefox");
txtCheck5.Text = Language.strCcGeckoOK + " Version: " + Xpcom.XulRunnerVersion;
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Gecko Browser installed", true);
}
else
{
pbCheck5.Image = Resources.Bad_Symbol;
lblCheck5.ForeColor = Color.Firebrick;
lblCheck5.Text = @"Gecko (Firefox) Rendering Engine (HTTP/S) " + Language.strCcCheckFailed;
txtCheck5.Text = string.Format(Language.strCcGeckoFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"Gecko " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
"GeckoFx was not found in " + geckoFxPath, true);
}
}
}
}

View File

@@ -36,7 +36,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
Settings.Default.OpenConsFromLastSession = chkReconnectOnStart.Checked;
Settings.Default.SingleInstance = chkSingleInstance.Checked;
Settings.Default.StartMinimized = chkStartMinimized.Checked;
Settings.Default.StartupComponentsCheck = chkProperInstallationOfComponentsAtStartup.Checked;
}
private void StartupExitPage_Load(object sender, EventArgs e)
@@ -45,7 +44,6 @@ namespace mRemoteNG.UI.Forms.OptionsPages
chkReconnectOnStart.Checked = Settings.Default.OpenConsFromLastSession;
chkSingleInstance.Checked = Settings.Default.SingleInstance;
chkStartMinimized.Checked = Settings.Default.StartMinimized;
chkProperInstallationOfComponentsAtStartup.Checked = Settings.Default.StartupComponentsCheck;
}
}
}

View File

@@ -177,8 +177,6 @@ namespace mRemoteNG.UI.Forms
Windows.TreeForm.Focus();
PuttySessionsManager.Instance.StartWatcher();
if (Settings.Default.StartupComponentsCheck)
Windows.Show(WindowType.ComponentsCheck);
Startup.Instance.CreateConnectionsProvider(messageCollector);

View File

@@ -169,7 +169,7 @@
this.ShowInTaskbar = false;
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "mRemoteNG Options";
this.Load += new System.EventHandler(this.frmOptions_Load);
this.Load += new System.EventHandler(this.FrmOptions_Load);
this.pnlBottom.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.lstOptionPages)).EndInit();
this.ResumeLayout(false);

View File

@@ -5,7 +5,6 @@ using System.Diagnostics;
using System.Linq;
using System.Windows.Forms;
using mRemoteNG.Themes;
using mRemoteNG.Tools;
namespace mRemoteNG.UI.Forms
{
@@ -28,7 +27,7 @@ namespace mRemoteNG.UI.Forms
Cursor.Current = Cursors.Default;
}
private void frmOptions_Load(object sender, EventArgs e)
private void FrmOptions_Load(object sender, EventArgs e)
{
CompileListOfOptionsPages();
FontOverrider.FontOverride(this);
@@ -78,7 +77,8 @@ namespace mRemoteNG.UI.Forms
{typeof(UpdatesPage).Name, new UpdatesPage {Dock = DockStyle.Fill}},
{typeof(ThemePage).Name, new ThemePage {Dock = DockStyle.Fill}},
{typeof(SecurityPage).Name, new SecurityPage {Dock = DockStyle.Fill}},
{typeof(AdvancedPage).Name, new AdvancedPage {Dock = DockStyle.Fill}}
{typeof(AdvancedPage).Name, new AdvancedPage {Dock = DockStyle.Fill}},
{typeof(ComponentsPage).Name, new ComponentsPage {Dock = DockStyle.Fill}},
};
}

View File

@@ -13,7 +13,6 @@ namespace mRemoteNG.UI.Menu
private ToolStripMenuItem _mMenToolsExternalApps;
private ToolStripMenuItem _mMenToolsPortScan;
private ToolStripMenuItem _mMenToolsUvncsc;
private ToolStripMenuItem _mMenToolsComponentsCheck;
private ToolStripMenuItem _mMenViewScreenshotManager;
public Form MainForm { get; set; }
@@ -31,7 +30,6 @@ namespace mRemoteNG.UI.Menu
_mMenToolsExternalApps = new ToolStripMenuItem();
_mMenToolsPortScan = new ToolStripMenuItem();
_mMenToolsSep1 = new ToolStripSeparator();
_mMenToolsComponentsCheck = new ToolStripMenuItem();
_mMenToolsOptions = new ToolStripMenuItem();
_mMenViewScreenshotManager = new ToolStripMenuItem();
//
@@ -45,7 +43,6 @@ namespace mRemoteNG.UI.Menu
_mMenToolsPortScan,
_mMenViewScreenshotManager,
_mMenToolsSep1,
_mMenToolsComponentsCheck,
_mMenToolsOptions
});
Name = "mMenTools";
@@ -98,14 +95,6 @@ namespace mRemoteNG.UI.Menu
_mMenToolsSep1.Name = "mMenToolsSep1";
_mMenToolsSep1.Size = new System.Drawing.Size(181, 6);
//
// mMenToolsComponentsCheck
//
_mMenToolsComponentsCheck.Image = Resources.cog_error;
_mMenToolsComponentsCheck.Name = "mMenToolsComponentsCheck";
_mMenToolsComponentsCheck.Size = new System.Drawing.Size(184, 22);
_mMenToolsComponentsCheck.Text = Language.strComponentsCheck;
_mMenToolsComponentsCheck.Click += mMenToolsComponentsCheck_Click;
//
// mMenToolsOptions
//
_mMenToolsOptions.Image = Resources.Options;
@@ -122,7 +111,6 @@ namespace mRemoteNG.UI.Menu
_mMenToolsExternalApps.Text = Language.strMenuExternalTools;
_mMenToolsPortScan.Text = Language.strMenuPortScan;
_mMenViewScreenshotManager.Text = Language.strScreenshots;
_mMenToolsComponentsCheck.Text = Language.strComponentsCheck;
_mMenToolsOptions.Text = Language.strMenuOptions;
}
@@ -153,11 +141,6 @@ namespace mRemoteNG.UI.Menu
Windows.Show(WindowType.ScreenshotManager);
}
private void mMenToolsComponentsCheck_Click(object sender, EventArgs e)
{
Windows.Show(WindowType.ComponentsCheck);
}
private void mMenToolsOptions_Click(object sender, EventArgs e)
{
Windows.Show(WindowType.Options);

View File

@@ -1,724 +0,0 @@
using System;
using System.Diagnostics;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Threading;
using AxWFICALib;
using Gecko;
using mRemoteNG.App;
using mRemoteNG.App.Info;
using mRemoteNG.Connection.Protocol.RDP;
using mRemoteNG.Messages;
using mRemoteNG.Themes;
using WeifenLuo.WinFormsUI.Docking;
namespace mRemoteNG.UI.Window
{
public class ComponentsCheckWindow : BaseWindow
{
private readonly Image _successImage;
private readonly Image _failureImage;
#region Form Stuff
private System.Windows.Forms.PictureBox pbCheck1;
private Controls.Base.NGLabel lblCheck1;
private System.Windows.Forms.Panel pnlCheck2;
private Controls.Base.NGLabel lblCheck2;
private System.Windows.Forms.PictureBox pbCheck2;
private System.Windows.Forms.Panel pnlCheck3;
private Controls.Base.NGLabel lblCheck3;
private System.Windows.Forms.PictureBox pbCheck3;
private System.Windows.Forms.Panel pnlCheck4;
private Controls.Base.NGLabel lblCheck4;
private System.Windows.Forms.PictureBox pbCheck4;
private System.Windows.Forms.Panel pnlCheck5;
private Controls.Base.NGLabel lblCheck5;
private System.Windows.Forms.PictureBox pbCheck5;
private Controls.Base.NGButton btnCheckAgain;
private Controls.Base.NGTextBox txtCheck1;
private Controls.Base.NGTextBox txtCheck2;
private Controls.Base.NGTextBox txtCheck3;
private Controls.Base.NGTextBox txtCheck4;
private Controls.Base.NGTextBox txtCheck5;
private Controls.Base.NGCheckBox chkAlwaysShow;
private System.Windows.Forms.Panel pnlChecks;
private System.Windows.Forms.Panel pnlCheck1;
private void InitializeComponent()
{
this.pnlCheck1 = new System.Windows.Forms.Panel();
this.txtCheck1 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck1 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck1 = new System.Windows.Forms.PictureBox();
this.pnlCheck2 = new System.Windows.Forms.Panel();
this.txtCheck2 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck2 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck2 = new System.Windows.Forms.PictureBox();
this.pnlCheck3 = new System.Windows.Forms.Panel();
this.txtCheck3 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck3 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck3 = new System.Windows.Forms.PictureBox();
this.pnlCheck4 = new System.Windows.Forms.Panel();
this.txtCheck4 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck4 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck4 = new System.Windows.Forms.PictureBox();
this.pnlCheck5 = new System.Windows.Forms.Panel();
this.txtCheck5 = new mRemoteNG.UI.Controls.Base.NGTextBox();
this.lblCheck5 = new mRemoteNG.UI.Controls.Base.NGLabel();
this.pbCheck5 = new System.Windows.Forms.PictureBox();
this.btnCheckAgain = new mRemoteNG.UI.Controls.Base.NGButton();
this.chkAlwaysShow = new mRemoteNG.UI.Controls.Base.NGCheckBox();
this.pnlChecks = new System.Windows.Forms.Panel();
this.pnlCheck1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck1)).BeginInit();
this.pnlCheck2.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck2)).BeginInit();
this.pnlCheck3.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck3)).BeginInit();
this.pnlCheck4.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck4)).BeginInit();
this.pnlCheck5.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck5)).BeginInit();
this.pnlChecks.SuspendLayout();
this.SuspendLayout();
//
// pnlCheck1
//
this.pnlCheck1.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlCheck1.Controls.Add(this.txtCheck1);
this.pnlCheck1.Controls.Add(this.lblCheck1);
this.pnlCheck1.Controls.Add(this.pbCheck1);
this.pnlCheck1.Location = new System.Drawing.Point(3, 3);
this.pnlCheck1.Name = "pnlCheck1";
this.pnlCheck1.Size = new System.Drawing.Size(562, 130);
this.pnlCheck1.TabIndex = 10;
this.pnlCheck1.Visible = false;
//
// txtCheck1
//
this.txtCheck1.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck1.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck1.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck1.Location = new System.Drawing.Point(129, 29);
this.txtCheck1.Multiline = true;
this.txtCheck1.Name = "txtCheck1";
this.txtCheck1.ReadOnly = true;
this.txtCheck1.Size = new System.Drawing.Size(430, 97);
this.txtCheck1.TabIndex = 2;
//
// lblCheck1
//
this.lblCheck1.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck1.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck1.ForeColor = System.Drawing.SystemColors.ControlText;
this.lblCheck1.Location = new System.Drawing.Point(108, 3);
this.lblCheck1.Name = "lblCheck1";
this.lblCheck1.Size = new System.Drawing.Size(451, 23);
this.lblCheck1.TabIndex = 1;
this.lblCheck1.Text = "RDP check succeeded!";
//
// pbCheck1
//
this.pbCheck1.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck1.Location = new System.Drawing.Point(3, 3);
this.pbCheck1.Name = "pbCheck1";
this.pbCheck1.Size = new System.Drawing.Size(72, 123);
this.pbCheck1.TabIndex = 0;
this.pbCheck1.TabStop = false;
//
// pnlCheck2
//
this.pnlCheck2.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlCheck2.Controls.Add(this.txtCheck2);
this.pnlCheck2.Controls.Add(this.lblCheck2);
this.pnlCheck2.Controls.Add(this.pbCheck2);
this.pnlCheck2.Location = new System.Drawing.Point(3, 139);
this.pnlCheck2.Name = "pnlCheck2";
this.pnlCheck2.Size = new System.Drawing.Size(562, 130);
this.pnlCheck2.TabIndex = 20;
this.pnlCheck2.Visible = false;
//
// txtCheck2
//
this.txtCheck2.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck2.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck2.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck2.Location = new System.Drawing.Point(129, 29);
this.txtCheck2.Multiline = true;
this.txtCheck2.Name = "txtCheck2";
this.txtCheck2.ReadOnly = true;
this.txtCheck2.Size = new System.Drawing.Size(430, 97);
this.txtCheck2.TabIndex = 2;
//
// lblCheck2
//
this.lblCheck2.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck2.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck2.Location = new System.Drawing.Point(112, 3);
this.lblCheck2.Name = "lblCheck2";
this.lblCheck2.Size = new System.Drawing.Size(447, 23);
this.lblCheck2.TabIndex = 1;
this.lblCheck2.Text = "RDP check succeeded!";
//
// pbCheck2
//
this.pbCheck2.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck2.Location = new System.Drawing.Point(3, 3);
this.pbCheck2.Name = "pbCheck2";
this.pbCheck2.Size = new System.Drawing.Size(72, 123);
this.pbCheck2.TabIndex = 0;
this.pbCheck2.TabStop = false;
//
// pnlCheck3
//
this.pnlCheck3.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlCheck3.Controls.Add(this.txtCheck3);
this.pnlCheck3.Controls.Add(this.lblCheck3);
this.pnlCheck3.Controls.Add(this.pbCheck3);
this.pnlCheck3.Location = new System.Drawing.Point(3, 275);
this.pnlCheck3.Name = "pnlCheck3";
this.pnlCheck3.Size = new System.Drawing.Size(562, 130);
this.pnlCheck3.TabIndex = 30;
this.pnlCheck3.Visible = false;
//
// txtCheck3
//
this.txtCheck3.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck3.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck3.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck3.Location = new System.Drawing.Point(129, 29);
this.txtCheck3.Multiline = true;
this.txtCheck3.Name = "txtCheck3";
this.txtCheck3.ReadOnly = true;
this.txtCheck3.Size = new System.Drawing.Size(430, 97);
this.txtCheck3.TabIndex = 2;
//
// lblCheck3
//
this.lblCheck3.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck3.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck3.Location = new System.Drawing.Point(112, 3);
this.lblCheck3.Name = "lblCheck3";
this.lblCheck3.Size = new System.Drawing.Size(447, 23);
this.lblCheck3.TabIndex = 1;
this.lblCheck3.Text = "RDP check succeeded!";
//
// pbCheck3
//
this.pbCheck3.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck3.Location = new System.Drawing.Point(3, 3);
this.pbCheck3.Name = "pbCheck3";
this.pbCheck3.Size = new System.Drawing.Size(72, 123);
this.pbCheck3.TabIndex = 0;
this.pbCheck3.TabStop = false;
//
// pnlCheck4
//
this.pnlCheck4.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlCheck4.Controls.Add(this.txtCheck4);
this.pnlCheck4.Controls.Add(this.lblCheck4);
this.pnlCheck4.Controls.Add(this.pbCheck4);
this.pnlCheck4.Location = new System.Drawing.Point(3, 411);
this.pnlCheck4.Name = "pnlCheck4";
this.pnlCheck4.Size = new System.Drawing.Size(562, 130);
this.pnlCheck4.TabIndex = 40;
this.pnlCheck4.Visible = false;
//
// txtCheck4
//
this.txtCheck4.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck4.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck4.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck4.Location = new System.Drawing.Point(129, 30);
this.txtCheck4.Multiline = true;
this.txtCheck4.Name = "txtCheck4";
this.txtCheck4.ReadOnly = true;
this.txtCheck4.Size = new System.Drawing.Size(430, 97);
this.txtCheck4.TabIndex = 2;
//
// lblCheck4
//
this.lblCheck4.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck4.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck4.Location = new System.Drawing.Point(112, 3);
this.lblCheck4.Name = "lblCheck4";
this.lblCheck4.Size = new System.Drawing.Size(447, 23);
this.lblCheck4.TabIndex = 1;
this.lblCheck4.Text = "RDP check succeeded!";
//
// pbCheck4
//
this.pbCheck4.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck4.Location = new System.Drawing.Point(3, 3);
this.pbCheck4.Name = "pbCheck4";
this.pbCheck4.Size = new System.Drawing.Size(72, 123);
this.pbCheck4.TabIndex = 0;
this.pbCheck4.TabStop = false;
//
// pnlCheck5
//
this.pnlCheck5.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlCheck5.Controls.Add(this.txtCheck5);
this.pnlCheck5.Controls.Add(this.lblCheck5);
this.pnlCheck5.Controls.Add(this.pbCheck5);
this.pnlCheck5.Location = new System.Drawing.Point(3, 547);
this.pnlCheck5.Name = "pnlCheck5";
this.pnlCheck5.Size = new System.Drawing.Size(562, 130);
this.pnlCheck5.TabIndex = 50;
this.pnlCheck5.Visible = false;
//
// txtCheck5
//
this.txtCheck5.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.txtCheck5.BackColor = System.Drawing.SystemColors.Control;
this.txtCheck5.BorderStyle = System.Windows.Forms.BorderStyle.None;
this.txtCheck5.Location = new System.Drawing.Point(129, 29);
this.txtCheck5.Multiline = true;
this.txtCheck5.Name = "txtCheck5";
this.txtCheck5.ReadOnly = true;
this.txtCheck5.Size = new System.Drawing.Size(430, 97);
this.txtCheck5.TabIndex = 2;
//
// lblCheck5
//
this.lblCheck5.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.lblCheck5.Font = new System.Drawing.Font("Segoe UI", 12F, System.Drawing.FontStyle.Bold,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.lblCheck5.Location = new System.Drawing.Point(112, 3);
this.lblCheck5.Name = "lblCheck5";
this.lblCheck5.Size = new System.Drawing.Size(447, 23);
this.lblCheck5.TabIndex = 1;
this.lblCheck5.Text = "RDP check succeeded!";
//
// pbCheck5
//
this.pbCheck5.Anchor =
((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)));
this.pbCheck5.Location = new System.Drawing.Point(3, 3);
this.pbCheck5.Name = "pbCheck5";
this.pbCheck5.Size = new System.Drawing.Size(72, 123);
this.pbCheck5.TabIndex = 0;
this.pbCheck5.TabStop = false;
//
// btnCheckAgain
//
this.btnCheckAgain._mice = mRemoteNG.UI.Controls.Base.NGButton.MouseState.HOVER;
this.btnCheckAgain.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom |
System.Windows.Forms.AnchorStyles.Right)));
this.btnCheckAgain.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.btnCheckAgain.Location = new System.Drawing.Point(476, 810);
this.btnCheckAgain.Name = "btnCheckAgain";
this.btnCheckAgain.Size = new System.Drawing.Size(104, 23);
this.btnCheckAgain.TabIndex = 0;
this.btnCheckAgain.Text = "Check again";
this.btnCheckAgain.UseVisualStyleBackColor = true;
this.btnCheckAgain.Click += new System.EventHandler(this.btnCheckAgain_Click);
//
// chkAlwaysShow
//
this.chkAlwaysShow._mice = mRemoteNG.UI.Controls.Base.NGCheckBox.MouseState.HOVER;
this.chkAlwaysShow.Anchor =
((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom |
System.Windows.Forms.AnchorStyles.Left)));
this.chkAlwaysShow.AutoSize = true;
this.chkAlwaysShow.FlatStyle = System.Windows.Forms.FlatStyle.Flat;
this.chkAlwaysShow.Location = new System.Drawing.Point(12, 814);
this.chkAlwaysShow.Name = "chkAlwaysShow";
this.chkAlwaysShow.Size = new System.Drawing.Size(200, 17);
this.chkAlwaysShow.TabIndex = 51;
this.chkAlwaysShow.Text = "Always show this screen at startup";
this.chkAlwaysShow.UseVisualStyleBackColor = true;
this.chkAlwaysShow.CheckedChanged += new System.EventHandler(this.chkAlwaysShow_CheckedChanged);
//
// pnlChecks
//
this.pnlChecks.Anchor =
((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top |
System.Windows.Forms.AnchorStyles.Bottom)
| System.Windows.Forms.AnchorStyles.Left)
| System.Windows.Forms.AnchorStyles.Right)));
this.pnlChecks.AutoScroll = true;
this.pnlChecks.Controls.Add(this.pnlCheck1);
this.pnlChecks.Controls.Add(this.pnlCheck2);
this.pnlChecks.Controls.Add(this.pnlCheck3);
this.pnlChecks.Controls.Add(this.pnlCheck5);
this.pnlChecks.Controls.Add(this.pnlCheck4);
this.pnlChecks.Location = new System.Drawing.Point(12, 12);
this.pnlChecks.Name = "pnlChecks";
this.pnlChecks.Size = new System.Drawing.Size(568, 792);
this.pnlChecks.TabIndex = 52;
//
// ComponentsCheckWindow
//
this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
this.ClientSize = new System.Drawing.Size(592, 845);
this.Controls.Add(this.pnlChecks);
this.Controls.Add(this.chkAlwaysShow);
this.Controls.Add(this.btnCheckAgain);
this.Font = new System.Drawing.Font("Segoe UI", 8.25F, System.Drawing.FontStyle.Regular,
System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.Icon = global::mRemoteNG.Resources.ComponentsCheck_Icon;
this.Name = "ComponentsCheckWindow";
this.TabText = "Components Check";
this.Text = "Components Check";
this.Load += new System.EventHandler(this.ComponentsCheck_Load);
this.pnlCheck1.ResumeLayout(false);
this.pnlCheck1.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck1)).EndInit();
this.pnlCheck2.ResumeLayout(false);
this.pnlCheck2.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck2)).EndInit();
this.pnlCheck3.ResumeLayout(false);
this.pnlCheck3.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck3)).EndInit();
this.pnlCheck4.ResumeLayout(false);
this.pnlCheck4.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck4)).EndInit();
this.pnlCheck5.ResumeLayout(false);
this.pnlCheck5.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.pbCheck5)).EndInit();
this.pnlChecks.ResumeLayout(false);
this.ResumeLayout(false);
this.PerformLayout();
}
#endregion
#region Public Methods
public ComponentsCheckWindow()
{
WindowType = WindowType.ComponentsCheck;
DockPnl = new DockContent();
InitializeComponent();
var display = new DisplayProperties();
_successImage = display.ScaleImage(Resources.Good_Symbol);
_failureImage = display.ScaleImage(Resources.Bad_Symbol);
FontOverrider.FontOverride(this);
ThemeManager.getInstance().ThemeChanged += ApplyTheme;
}
#endregion
#region Form Stuff
private void ComponentsCheck_Load(object sender, EventArgs e)
{
ApplyLanguage();
ApplyTheme();
chkAlwaysShow.Checked = Settings.Default.StartupComponentsCheck;
CheckComponents();
}
private void ApplyLanguage()
{
TabText = Language.strComponentsCheck;
Text = Language.strComponentsCheck;
chkAlwaysShow.Text = Language.strCcAlwaysShowScreen;
btnCheckAgain.Text = Language.strCcCheckAgain;
}
private new void ApplyTheme()
{
if (!ThemeManager.getInstance().ThemingActive) return;
base.ApplyTheme();
if (!ThemeManager.getInstance().ActiveAndExtended) return;
pnlCheck1.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlCheck1.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlCheck2.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlCheck2.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlCheck3.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlCheck3.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlCheck4.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlCheck4.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlCheck5.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlCheck5.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
pnlChecks.BackColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Background");
pnlChecks.ForeColor = ThemeManager.getInstance().ActiveTheme.ExtendedPalette.getColor("Dialog_Foreground");
}
private void btnCheckAgain_Click(object sender, EventArgs e)
{
CheckComponents();
}
private void chkAlwaysShow_CheckedChanged(object sender, EventArgs e)
{
Settings.Default.StartupComponentsCheck = chkAlwaysShow.Checked;
}
public new void Show(DockPanel panel)
{
try
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Trying to show the components window",
true);
base.Show(panel);
}
catch (Exception ex)
{
Runtime.MessageCollector.AddExceptionMessage("Failed to properly show the ComponentsWindow", ex);
}
}
#endregion
private void CheckComponents()
{
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Beginning component check", true);
CheckRdp();
CheckVnc();
CheckPutty();
CheckIca();
CheckGeckoBrowser();
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Finished component check", true);
}
private void CheckRdp()
{
pnlCheck1.Visible = true;
var rdpProtocolFactory = new RdpProtocolFactory();
var supportedVersions = rdpProtocolFactory.GetSupportedVersions();
if (supportedVersions.Any())
{
pbCheck1.Image = _successImage;
lblCheck1.ForeColor = Color.DarkOliveGreen;
lblCheck1.Text = "RDP (Remote Desktop) " + Language.strCcCheckSucceeded;
txtCheck1.Text = string.Format(Language.strCcRDPOK, string.Join(", ", supportedVersions));
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "RDP versions installed: "+ string.Join(",", supportedVersions), true);
}
else
{
pbCheck1.Image = _failureImage;
lblCheck1.ForeColor = Color.Firebrick;
lblCheck1.Text = "RDP (Remote Desktop) " + Language.strCcCheckFailed;
txtCheck1.Text = string.Format(Language.strCcRDPFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"RDP " + Language.strCcNotInstalledProperly, true);
}
}
private void CheckVnc()
{
pnlCheck2.Visible = true;
try
{
using (var vnc = new VncSharp.RemoteDesktop())
{
vnc.CreateControl();
while (!vnc.Created)
{
Thread.Sleep(10);
System.Windows.Forms.Application.DoEvents();
}
pbCheck2.Image = _successImage;
lblCheck2.ForeColor = Color.DarkOliveGreen;
lblCheck2.Text = "VNC (Virtual Network Computing) " + Language.strCcCheckSucceeded;
txtCheck2.Text = string.Format(Language.strCcVNCOK, vnc.ProductVersion);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "VNC installed", true);
}
}
catch (Exception)
{
pbCheck2.Image = _failureImage;
lblCheck2.ForeColor = Color.Firebrick;
lblCheck2.Text = "VNC (Virtual Network Computing) " + Language.strCcCheckFailed;
txtCheck2.Text = string.Format(Language.strCcVNCFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"VNC " + Language.strCcNotInstalledProperly, true);
}
}
private void CheckPutty()
{
pnlCheck3.Visible = true;
string pPath;
if (Settings.Default.UseCustomPuttyPath == false)
{
pPath = GeneralAppInfo.HomePath + "\\PuTTYNG.exe";
}
else
{
pPath = Settings.Default.CustomPuttyPath;
}
if (File.Exists(pPath))
{
var versionInfo = FileVersionInfo.GetVersionInfo(pPath);
pbCheck3.Image = _successImage;
lblCheck3.ForeColor = Color.DarkOliveGreen;
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " + Language.strCcCheckSucceeded;
txtCheck3.Text =
$"{Language.strCcPuttyOK}{Environment.NewLine}Version: {versionInfo.ProductName} Release: {versionInfo.FileVersion}";
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "PuTTY installed", true);
}
else
{
pbCheck3.Image = _failureImage;
lblCheck3.ForeColor = Color.Firebrick;
lblCheck3.Text = "PuTTY (SSH/Telnet/Rlogin/RAW) " + Language.strCcCheckFailed;
txtCheck3.Text = Language.strCcPuttyFailed;
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"PuTTY " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, "File " + pPath + " does not exist.",
true);
}
}
private void CheckIca()
{
pnlCheck4.Visible = true;
try
{
using (var ica = new AxICAClient())
{
ica.Parent = this;
pbCheck4.Image = _successImage;
lblCheck4.ForeColor = Color.DarkOliveGreen;
lblCheck4.Text = @"ICA (Citrix ICA) " + Language.strCcCheckSucceeded;
txtCheck4.Text = string.Format(Language.strCcICAOK, ica.Version);
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "ICA installed", true);
}
}
catch (Exception ex)
{
pbCheck4.Image = _failureImage;
lblCheck4.ForeColor = Color.Firebrick;
lblCheck4.Text = @"ICA (Citrix ICA) " + Language.strCcCheckFailed;
txtCheck4.Text = string.Format(Language.strCcICAFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"ICA " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg, ex.Message, true);
}
}
private void CheckGeckoBrowser()
{
pnlCheck5.Visible = true;
var geckoBad = false;
var geckoFxPath = Path.Combine(GeneralAppInfo.HomePath, "Firefox");
if (File.Exists(Path.Combine(GeneralAppInfo.HomePath, "Geckofx-Core.dll")))
{
if (Directory.Exists(geckoFxPath))
{
if (!File.Exists(Path.Combine(geckoFxPath, "xul.dll")))
{
geckoBad = true;
}
}
else
{
geckoBad = true;
}
}
if (geckoBad == false)
{
pbCheck5.Image = _successImage;
lblCheck5.ForeColor = Color.DarkOliveGreen;
lblCheck5.Text = @"Gecko (Firefox) Rendering Engine (HTTP/S) " + Language.strCcCheckSucceeded;
if (!Xpcom.IsInitialized)
Xpcom.Initialize("Firefox");
txtCheck5.Text = Language.strCcGeckoOK + " Version: " + Xpcom.XulRunnerVersion;
Runtime.MessageCollector.AddMessage(MessageClass.InformationMsg, "Gecko Browser installed", true);
}
else
{
pbCheck5.Image = _failureImage;
lblCheck5.ForeColor = Color.Firebrick;
lblCheck5.Text = @"Gecko (Firefox) Rendering Engine (HTTP/S) " + Language.strCcCheckFailed;
txtCheck5.Text = string.Format(Language.strCcGeckoFailed, GeneralAppInfo.UrlForum);
Runtime.MessageCollector.AddMessage(MessageClass.WarningMsg,
"Gecko " + Language.strCcNotInstalledProperly, true);
Runtime.MessageCollector.AddMessage(MessageClass.ErrorMsg,
"GeckoFx was not found in " + geckoFxPath, true);
}
}
}
}

View File

@@ -1,4 +1,4 @@
namespace mRemoteNG.UI
namespace mRemoteNG.UI
{
public enum WindowType
{
@@ -16,6 +16,5 @@ namespace mRemoteNG.UI
ExternalApps = 13,
PortScan = 14,
UltraVNCSC = 16,
ComponentsCheck = 17,
}
}

View File

@@ -610,6 +610,9 @@
<Compile Include="UI\Forms\OptionsPages\AppearancePage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UI\Forms\OptionsPages\ComponentsPage.Designer.cs">
<DependentUpon>ComponentsPage.cs</DependentUpon>
</Compile>
<Compile Include="UI\Forms\OptionsPages\CredentialsPage.cs">
<SubType>UserControl</SubType>
</Compile>
@@ -815,8 +818,8 @@
<Compile Include="UI\Window\BaseWindow.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="UI\Window\ComponentsCheckWindow.cs">
<SubType>Form</SubType>
<Compile Include="UI\Forms\OptionsPages\ComponentsPage.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="UI\Window\ConfigWindow.cs">
<SubType>Form</SubType>
@@ -1111,8 +1114,8 @@
<EmbeddedResource Include="UI\Window\BaseWindow.resx">
<DependentUpon>BaseWindow.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="UI\Window\ComponentsCheckWindow.resx">
<DependentUpon>ComponentsCheckWindow.cs</DependentUpon>
<EmbeddedResource Include="UI\Forms\OptionsPages\ComponentsPage.resx">
<DependentUpon>ComponentsPage.cs</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="UI\Window\ConfigWindow.resx">