diff --git a/AsusFanControl/AsusControl.cs b/AsusFanControl/AsusControl.cs index 696ee7c..15ea433 100644 --- a/AsusFanControl/AsusControl.cs +++ b/AsusFanControl/AsusControl.cs @@ -32,7 +32,7 @@ namespace AsusFanControl SetFanSpeed(value, fanIndex); } - public void SetFansSpeed(byte value) + public void SetFanSpeeds(byte value) { var fanCount = AsusWinIO64.HealthyTable_FanCounts(); for(byte fanIndex = 0; fanIndex < fanCount; fanIndex++) @@ -41,10 +41,10 @@ namespace AsusFanControl } } - public void SetFansSpeed(int percent) + public void SetFanSpeeds(int percent) { var value = (byte)(percent / 100.0f * 255); - SetFansSpeed(value); + SetFanSpeeds(value); } public int GetFanSpeed(byte fanIndex = 0) diff --git a/AsusFanControl/Program.cs b/AsusFanControl/Program.cs index b38d24c..bf07d95 100644 --- a/AsusFanControl/Program.cs +++ b/AsusFanControl/Program.cs @@ -37,7 +37,7 @@ namespace AsusFanControl { var newSpeedStr = arg.Split('=')[1]; var newSpeed = int.Parse(newSpeedStr); - asusControl.SetFansSpeed(newSpeed); + asusControl.SetFanSpeeds(newSpeed); if(newSpeed == 0) Console.WriteLine("Test mode turned off"); diff --git a/AsusFanControlGUI/App.config b/AsusFanControlGUI/App.config index af817d9..5403b3c 100644 --- a/AsusFanControlGUI/App.config +++ b/AsusFanControlGUI/App.config @@ -13,6 +13,12 @@ 90 + + True + + + True + \ No newline at end of file diff --git a/AsusFanControlGUI/Form1.Designer.cs b/AsusFanControlGUI/Form1.Designer.cs index fc8f046..7f0f2fd 100644 --- a/AsusFanControlGUI/Form1.Designer.cs +++ b/AsusFanControlGUI/Form1.Designer.cs @@ -39,24 +39,30 @@ this.labelCPUTemp = new System.Windows.Forms.Label(); this.button2 = new System.Windows.Forms.Button(); this.label4 = new System.Windows.Forms.Label(); + this.menuStrip1 = new System.Windows.Forms.MenuStrip(); + this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItemTurnOffControlOnExit = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItemForbidUnsafeSettings = new System.Windows.Forms.ToolStripMenuItem(); + this.toolStripMenuItemCheckForUpdates = new System.Windows.Forms.ToolStripMenuItem(); ((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).BeginInit(); + this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // trackBarFanSpeed // - this.trackBarFanSpeed.Location = new System.Drawing.Point(12, 35); + this.trackBarFanSpeed.Location = new System.Drawing.Point(12, 62); this.trackBarFanSpeed.Maximum = 100; this.trackBarFanSpeed.Name = "trackBarFanSpeed"; this.trackBarFanSpeed.Size = new System.Drawing.Size(300, 45); this.trackBarFanSpeed.TabIndex = 0; this.trackBarFanSpeed.Value = 100; - this.trackBarFanSpeed.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trackBar1_KeyUp); - this.trackBarFanSpeed.MouseCaptureChanged += new System.EventHandler(this.trackBar1_MouseCaptureChanged); + this.trackBarFanSpeed.KeyUp += new System.Windows.Forms.KeyEventHandler(this.trackBarFanSpeed_KeyUp); + this.trackBarFanSpeed.MouseCaptureChanged += new System.EventHandler(this.trackBarFanSpeed_MouseCaptureChanged); // // label1 // this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 83); + this.label1.Location = new System.Drawing.Point(12, 110); this.label1.Name = "label1"; this.label1.Size = new System.Drawing.Size(73, 13); this.label1.TabIndex = 1; @@ -65,7 +71,7 @@ // labelValue // this.labelValue.AutoSize = true; - this.labelValue.Location = new System.Drawing.Point(91, 83); + this.labelValue.Location = new System.Drawing.Point(91, 110); this.labelValue.Name = "labelValue"; this.labelValue.Size = new System.Drawing.Size(10, 13); this.labelValue.TabIndex = 2; @@ -74,7 +80,7 @@ // label2 // this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(40, 112); + this.label2.Location = new System.Drawing.Point(40, 139); this.label2.Name = "label2"; this.label2.Size = new System.Drawing.Size(71, 13); this.label2.TabIndex = 3; @@ -82,7 +88,7 @@ // // button1 // - this.button1.Location = new System.Drawing.Point(12, 107); + this.button1.Location = new System.Drawing.Point(12, 134); this.button1.Name = "button1"; this.button1.Size = new System.Drawing.Size(22, 23); this.button1.TabIndex = 4; @@ -93,7 +99,7 @@ // labelRPM // this.labelRPM.AutoSize = true; - this.labelRPM.Location = new System.Drawing.Point(117, 112); + this.labelRPM.Location = new System.Drawing.Point(117, 139); this.labelRPM.Name = "labelRPM"; this.labelRPM.Size = new System.Drawing.Size(10, 13); this.labelRPM.TabIndex = 5; @@ -102,18 +108,18 @@ // checkBoxTurnOn // this.checkBoxTurnOn.AutoSize = true; - this.checkBoxTurnOn.Location = new System.Drawing.Point(12, 12); + this.checkBoxTurnOn.Location = new System.Drawing.Point(12, 37); this.checkBoxTurnOn.Name = "checkBoxTurnOn"; - this.checkBoxTurnOn.Size = new System.Drawing.Size(63, 17); + this.checkBoxTurnOn.Size = new System.Drawing.Size(116, 17); this.checkBoxTurnOn.TabIndex = 6; - this.checkBoxTurnOn.Text = "Turn on"; + this.checkBoxTurnOn.Text = "Turn on fan control"; this.checkBoxTurnOn.UseVisualStyleBackColor = true; this.checkBoxTurnOn.CheckedChanged += new System.EventHandler(this.checkBoxTurnOn_CheckedChanged); // // labelCPUTemp // this.labelCPUTemp.AutoSize = true; - this.labelCPUTemp.Location = new System.Drawing.Point(141, 141); + this.labelCPUTemp.Location = new System.Drawing.Point(141, 168); this.labelCPUTemp.Name = "labelCPUTemp"; this.labelCPUTemp.Size = new System.Drawing.Size(10, 13); this.labelCPUTemp.TabIndex = 9; @@ -121,7 +127,7 @@ // // button2 // - this.button2.Location = new System.Drawing.Point(12, 136); + this.button2.Location = new System.Drawing.Point(12, 163); this.button2.Name = "button2"; this.button2.Size = new System.Drawing.Size(22, 23); this.button2.TabIndex = 8; @@ -132,17 +138,60 @@ // label4 // this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(40, 141); + this.label4.Location = new System.Drawing.Point(40, 168); this.label4.Name = "label4"; this.label4.Size = new System.Drawing.Size(95, 13); this.label4.TabIndex = 7; this.label4.Text = "Current CPU temp:"; // + // menuStrip1 + // + this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItem1, + this.toolStripMenuItemCheckForUpdates}); + this.menuStrip1.Location = new System.Drawing.Point(0, 0); + this.menuStrip1.Name = "menuStrip1"; + this.menuStrip1.Size = new System.Drawing.Size(324, 24); + this.menuStrip1.TabIndex = 10; + this.menuStrip1.Text = "menuStrip1"; + // + // toolStripMenuItem1 + // + this.toolStripMenuItem1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { + this.toolStripMenuItemTurnOffControlOnExit, + this.toolStripMenuItemForbidUnsafeSettings}); + this.toolStripMenuItem1.Name = "toolStripMenuItem1"; + this.toolStripMenuItem1.Size = new System.Drawing.Size(72, 20); + this.toolStripMenuItem1.Text = "Advanced"; + // + // toolStripMenuItemTurnOffControlOnExit + // + this.toolStripMenuItemTurnOffControlOnExit.CheckOnClick = true; + this.toolStripMenuItemTurnOffControlOnExit.Name = "toolStripMenuItemTurnOffControlOnExit"; + this.toolStripMenuItemTurnOffControlOnExit.Size = new System.Drawing.Size(196, 22); + this.toolStripMenuItemTurnOffControlOnExit.Text = "Turn off control on exit"; + this.toolStripMenuItemTurnOffControlOnExit.CheckedChanged += new System.EventHandler(this.toolStripMenuItemTurnOffControlOnExit_CheckedChanged); + // + // toolStripMenuItemForbidUnsafeSettings + // + this.toolStripMenuItemForbidUnsafeSettings.CheckOnClick = true; + this.toolStripMenuItemForbidUnsafeSettings.Name = "toolStripMenuItemForbidUnsafeSettings"; + this.toolStripMenuItemForbidUnsafeSettings.Size = new System.Drawing.Size(196, 22); + this.toolStripMenuItemForbidUnsafeSettings.Text = "Forbid unsafe settings"; + this.toolStripMenuItemForbidUnsafeSettings.CheckedChanged += new System.EventHandler(this.toolStripMenuItemForbidUnsafeSettings_CheckedChanged); + // + // toolStripMenuItemCheckForUpdates + // + this.toolStripMenuItemCheckForUpdates.Name = "toolStripMenuItemCheckForUpdates"; + this.toolStripMenuItemCheckForUpdates.Size = new System.Drawing.Size(115, 20); + this.toolStripMenuItemCheckForUpdates.Text = "Check for updates"; + this.toolStripMenuItemCheckForUpdates.Click += new System.EventHandler(this.toolStripMenuItemCheckForUpdates_Click); + // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(324, 174); + this.ClientSize = new System.Drawing.Size(324, 198); this.Controls.Add(this.labelCPUTemp); this.Controls.Add(this.button2); this.Controls.Add(this.label4); @@ -153,10 +202,14 @@ this.Controls.Add(this.labelValue); this.Controls.Add(this.label1); this.Controls.Add(this.trackBarFanSpeed); + this.Controls.Add(this.menuStrip1); this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); + this.MainMenuStrip = this.menuStrip1; this.Name = "Form1"; this.Text = "Asus Fan Control"; ((System.ComponentModel.ISupportInitialize)(this.trackBarFanSpeed)).EndInit(); + this.menuStrip1.ResumeLayout(false); + this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); @@ -174,6 +227,11 @@ private System.Windows.Forms.Label labelCPUTemp; private System.Windows.Forms.Button button2; private System.Windows.Forms.Label label4; + private System.Windows.Forms.MenuStrip menuStrip1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItem1; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemTurnOffControlOnExit; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemForbidUnsafeSettings; + private System.Windows.Forms.ToolStripMenuItem toolStripMenuItemCheckForUpdates; } } diff --git a/AsusFanControlGUI/Form1.cs b/AsusFanControlGUI/Form1.cs index 08359cc..cb742bd 100644 --- a/AsusFanControlGUI/Form1.cs +++ b/AsusFanControlGUI/Form1.cs @@ -8,6 +8,7 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using AsusFanControl; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; namespace AsusFanControlGUI { @@ -19,10 +20,36 @@ namespace AsusFanControlGUI public Form1() { InitializeComponent(); + AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit); + toolStripMenuItemTurnOffControlOnExit.Checked = Properties.Settings.Default.turnOffControlOnExit; + toolStripMenuItemForbidUnsafeSettings.Checked = Properties.Settings.Default.forbidUnsafeSettings; trackBarFanSpeed.Value = Properties.Settings.Default.fanSpeed; } + private void OnProcessExit(object sender, EventArgs e) + { + if (Properties.Settings.Default.turnOffControlOnExit) + asusControl.SetFanSpeeds(0); + } + + private void toolStripMenuItemTurnOffControlOnExit_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.turnOffControlOnExit = toolStripMenuItemTurnOffControlOnExit.Checked; + Properties.Settings.Default.Save(); + } + + private void toolStripMenuItemForbidUnsafeSettings_CheckedChanged(object sender, EventArgs e) + { + Properties.Settings.Default.forbidUnsafeSettings = toolStripMenuItemForbidUnsafeSettings.Checked; + Properties.Settings.Default.Save(); + } + + private void toolStripMenuItemCheckForUpdates_Click(object sender, EventArgs e) + { + System.Diagnostics.Process.Start("https://github.com/Karmel0x/AsusFanControl/releases"); + } + private void setFanSpeed() { var value = trackBarFanSpeed.Value; @@ -31,15 +58,9 @@ namespace AsusFanControlGUI if (!checkBoxTurnOn.Checked) value = 0; - else if(value < 40) - value = 0; - else if (value > 99) - value = 99; - if (!checkBoxTurnOn.Checked) + if (value == 0) labelValue.Text = "turned off"; - else if (value == 0) - labelValue.Text = "turned off (set value between 40 and 100)"; else labelValue.Text = value.ToString(); @@ -48,25 +69,7 @@ namespace AsusFanControlGUI fanSpeed = value; - asusControl.SetFansSpeed(value); - } - - private void trackBar1_MouseCaptureChanged(object sender, EventArgs e) - { - setFanSpeed(); - } - - private void trackBar1_KeyUp(object sender, KeyEventArgs e) - { - if (e.KeyCode != Keys.Left && e.KeyCode != Keys.Right) - return; - - setFanSpeed(); - } - - private void button1_Click(object sender, EventArgs e) - { - labelRPM.Text = string.Join(" ", asusControl.GetFanSpeeds()); + asusControl.SetFanSpeeds(value); } private void checkBoxTurnOn_CheckedChanged(object sender, EventArgs e) @@ -74,6 +77,32 @@ namespace AsusFanControlGUI setFanSpeed(); } + private void trackBarFanSpeed_MouseCaptureChanged(object sender, EventArgs e) + { + if (Properties.Settings.Default.forbidUnsafeSettings) + { + if (trackBarFanSpeed.Value < 40) + trackBarFanSpeed.Value = 40; + else if (trackBarFanSpeed.Value > 99) + trackBarFanSpeed.Value = 99; + } + + setFanSpeed(); + } + + private void trackBarFanSpeed_KeyUp(object sender, KeyEventArgs e) + { + if (e.KeyCode != Keys.Left && e.KeyCode != Keys.Right) + return; + + trackBarFanSpeed_MouseCaptureChanged(sender, e); + } + + private void button1_Click(object sender, EventArgs e) + { + labelRPM.Text = string.Join(" ", asusControl.GetFanSpeeds()); + } + private void button2_Click(object sender, EventArgs e) { labelCPUTemp.Text = $"{asusControl.Thermal_Read_Cpu_Temperature()}"; diff --git a/AsusFanControlGUI/Form1.resx b/AsusFanControlGUI/Form1.resx index 974d8cc..077f79e 100644 --- a/AsusFanControlGUI/Form1.resx +++ b/AsusFanControlGUI/Form1.resx @@ -117,6 +117,9 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + 17, 17 + diff --git a/AsusFanControlGUI/Program.cs b/AsusFanControlGUI/Program.cs index 976012c..4bf367c 100644 --- a/AsusFanControlGUI/Program.cs +++ b/AsusFanControlGUI/Program.cs @@ -14,15 +14,9 @@ namespace AsusFanControlGUI [STAThread] static void Main() { - AppDomain.CurrentDomain.ProcessExit += new EventHandler(OnProcessExit); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); Application.Run(new Form1()); } - - static void OnProcessExit(object sender, EventArgs e) - { - AsusSystemAnalysis.AsusWinIO64.HealthyTable_SetFanTestMode((char)(0x00)); - } } } diff --git a/AsusFanControlGUI/Properties/Settings.Designer.cs b/AsusFanControlGUI/Properties/Settings.Designer.cs index 3b31d6e..0eb2bd0 100644 --- a/AsusFanControlGUI/Properties/Settings.Designer.cs +++ b/AsusFanControlGUI/Properties/Settings.Designer.cs @@ -34,5 +34,29 @@ namespace AsusFanControlGUI.Properties { this["fanSpeed"] = value; } } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool turnOffControlOnExit { + get { + return ((bool)(this["turnOffControlOnExit"])); + } + set { + this["turnOffControlOnExit"] = value; + } + } + + [global::System.Configuration.UserScopedSettingAttribute()] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Configuration.DefaultSettingValueAttribute("True")] + public bool forbidUnsafeSettings { + get { + return ((bool)(this["forbidUnsafeSettings"])); + } + set { + this["forbidUnsafeSettings"] = value; + } + } } } diff --git a/AsusFanControlGUI/Properties/Settings.settings b/AsusFanControlGUI/Properties/Settings.settings index 8868e8e..912015c 100644 --- a/AsusFanControlGUI/Properties/Settings.settings +++ b/AsusFanControlGUI/Properties/Settings.settings @@ -5,5 +5,11 @@ 90 + + True + + + True + \ No newline at end of file