From 8a3752045310e90525aedbcd319bf2e95614cce5 Mon Sep 17 00:00:00 2001
From: Serge <5920850+seerge@users.noreply.github.com>
Date: Fri, 26 Jan 2024 15:01:14 +0100
Subject: [PATCH] Advanced Settings Plugin downloader
---
app/Fans.Designer.cs | 106 ++++++++++++++++++++++++++------------
app/Fans.cs | 34 ++++++++++++
app/GHelper.csproj | 2 +-
app/Ryzen/RyzenControl.cs | 51 +++++++++++++++++-
4 files changed, 158 insertions(+), 35 deletions(-)
diff --git a/app/Fans.Designer.cs b/app/Fans.Designer.cs
index 6b0379e3..8b653e1c 100644
--- a/app/Fans.Designer.cs
+++ b/app/Fans.Designer.cs
@@ -31,14 +31,14 @@ namespace GHelper
///
private void InitializeComponent()
{
- ChartArea chartArea5 = new ChartArea();
- Title title5 = new Title();
- ChartArea chartArea6 = new ChartArea();
- Title title6 = new Title();
- ChartArea chartArea7 = new ChartArea();
- Title title7 = new Title();
- ChartArea chartArea8 = new ChartArea();
- Title title8 = new Title();
+ ChartArea chartArea1 = new ChartArea();
+ Title title1 = new Title();
+ ChartArea chartArea2 = new ChartArea();
+ Title title2 = new Title();
+ ChartArea chartArea3 = new ChartArea();
+ Title title3 = new Title();
+ ChartArea chartArea4 = new ChartArea();
+ Title title4 = new Title();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
panelFans = new Panel();
labelTip = new Label();
@@ -85,6 +85,8 @@ namespace GHelper
panelTitleTemp = new Panel();
pictureTemp = new PictureBox();
labelTempLimit = new Label();
+ panelDownload = new Panel();
+ buttonDownload = new RButton();
panelPower = new Panel();
panelApplyPower = new Panel();
checkApplyPower = new RCheckBox();
@@ -168,6 +170,7 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)trackTemp).BeginInit();
panelTitleTemp.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureTemp).BeginInit();
+ panelDownload.SuspendLayout();
panelPower.SuspendLayout();
panelApplyPower.SuspendLayout();
panelCPU.SuspendLayout();
@@ -257,8 +260,8 @@ namespace GHelper
//
// chartGPU
//
- chartArea5.Name = "ChartArea1";
- chartGPU.ChartAreas.Add(chartArea5);
+ chartArea1.Name = "ChartArea1";
+ chartGPU.ChartAreas.Add(chartArea1);
chartGPU.Dock = DockStyle.Fill;
chartGPU.Location = new Point(12, 493);
chartGPU.Margin = new Padding(2, 10, 2, 10);
@@ -266,13 +269,13 @@ namespace GHelper
chartGPU.Size = new Size(782, 463);
chartGPU.TabIndex = 17;
chartGPU.Text = "chartGPU";
- title5.Name = "Title1";
- chartGPU.Titles.Add(title5);
+ title1.Name = "Title1";
+ chartGPU.Titles.Add(title1);
//
// chartCPU
//
- chartArea6.Name = "ChartArea1";
- chartCPU.ChartAreas.Add(chartArea6);
+ chartArea2.Name = "ChartArea1";
+ chartCPU.ChartAreas.Add(chartArea2);
chartCPU.Dock = DockStyle.Fill;
chartCPU.Location = new Point(12, 10);
chartCPU.Margin = new Padding(2, 10, 2, 10);
@@ -280,13 +283,13 @@ namespace GHelper
chartCPU.Size = new Size(782, 463);
chartCPU.TabIndex = 14;
chartCPU.Text = "chartCPU";
- title6.Name = "Title1";
- chartCPU.Titles.Add(title6);
+ title2.Name = "Title1";
+ chartCPU.Titles.Add(title2);
//
// chartXGM
//
- chartArea7.Name = "ChartAreaXGM";
- chartXGM.ChartAreas.Add(chartArea7);
+ chartArea3.Name = "ChartAreaXGM";
+ chartXGM.ChartAreas.Add(chartArea3);
chartXGM.Dock = DockStyle.Fill;
chartXGM.Location = new Point(12, 1459);
chartXGM.Margin = new Padding(2, 10, 2, 10);
@@ -294,14 +297,14 @@ namespace GHelper
chartXGM.Size = new Size(782, 463);
chartXGM.TabIndex = 14;
chartXGM.Text = "chartXGM";
- title7.Name = "Title4";
- chartXGM.Titles.Add(title7);
+ title3.Name = "Title4";
+ chartXGM.Titles.Add(title3);
chartXGM.Visible = false;
//
// chartMid
//
- chartArea8.Name = "ChartArea3";
- chartMid.ChartAreas.Add(chartArea8);
+ chartArea4.Name = "ChartArea3";
+ chartMid.ChartAreas.Add(chartArea4);
chartMid.Dock = DockStyle.Fill;
chartMid.Location = new Point(12, 976);
chartMid.Margin = new Padding(2, 10, 2, 10);
@@ -309,8 +312,8 @@ namespace GHelper
chartMid.Size = new Size(782, 463);
chartMid.TabIndex = 14;
chartMid.Text = "chartMid";
- title8.Name = "Title3";
- chartMid.Titles.Add(title8);
+ title4.Name = "Title3";
+ chartMid.Titles.Add(title4);
chartMid.Visible = false;
//
// panelTitleFans
@@ -528,10 +531,11 @@ namespace GHelper
panelAdvanced.Controls.Add(panelTitleAdvanced);
panelAdvanced.Controls.Add(panelTemperature);
panelAdvanced.Controls.Add(panelTitleTemp);
+ panelAdvanced.Controls.Add(panelDownload);
panelAdvanced.Dock = DockStyle.Top;
panelAdvanced.Location = new Point(10, 1644);
panelAdvanced.Name = "panelAdvanced";
- panelAdvanced.Size = new Size(520, 888);
+ panelAdvanced.Size = new Size(520, 992);
panelAdvanced.TabIndex = 14;
panelAdvanced.Visible = false;
//
@@ -540,7 +544,7 @@ namespace GHelper
panelAdvancedAlways.AutoSize = true;
panelAdvancedAlways.Controls.Add(checkApplyUV);
panelAdvancedAlways.Dock = DockStyle.Top;
- panelAdvancedAlways.Location = new Point(0, 827);
+ panelAdvancedAlways.Location = new Point(0, 931);
panelAdvancedAlways.Name = "panelAdvancedAlways";
panelAdvancedAlways.Padding = new Padding(16, 0, 16, 15);
panelAdvancedAlways.Size = new Size(520, 61);
@@ -566,7 +570,7 @@ namespace GHelper
panelAdvancedApply.AutoSize = true;
panelAdvancedApply.Controls.Add(buttonApplyAdvanced);
panelAdvancedApply.Dock = DockStyle.Top;
- panelAdvancedApply.Location = new Point(0, 747);
+ panelAdvancedApply.Location = new Point(0, 851);
panelAdvancedApply.Name = "panelAdvancedApply";
panelAdvancedApply.Padding = new Padding(15);
panelAdvancedApply.Size = new Size(520, 80);
@@ -595,7 +599,7 @@ namespace GHelper
labelRisky.BackColor = Color.IndianRed;
labelRisky.Dock = DockStyle.Top;
labelRisky.ForeColor = SystemColors.ControlLightLight;
- labelRisky.Location = new Point(0, 504);
+ labelRisky.Location = new Point(0, 608);
labelRisky.Margin = new Padding(0);
labelRisky.Name = "labelRisky";
labelRisky.Padding = new Padding(10, 10, 10, 5);
@@ -611,7 +615,7 @@ namespace GHelper
panelUViGPU.Controls.Add(labelLeftUViGPU);
panelUViGPU.Controls.Add(trackUViGPU);
panelUViGPU.Dock = DockStyle.Top;
- panelUViGPU.Location = new Point(0, 380);
+ panelUViGPU.Location = new Point(0, 484);
panelUViGPU.Margin = new Padding(4);
panelUViGPU.MaximumSize = new Size(0, 124);
panelUViGPU.Name = "panelUViGPU";
@@ -659,7 +663,7 @@ namespace GHelper
panelUV.Controls.Add(labelLeftUV);
panelUV.Controls.Add(trackUV);
panelUV.Dock = DockStyle.Top;
- panelUV.Location = new Point(0, 256);
+ panelUV.Location = new Point(0, 360);
panelUV.Margin = new Padding(4);
panelUV.MaximumSize = new Size(0, 124);
panelUV.Name = "panelUV";
@@ -704,7 +708,7 @@ namespace GHelper
panelTitleAdvanced.Controls.Add(pictureUV);
panelTitleAdvanced.Controls.Add(labelTitleUV);
panelTitleAdvanced.Dock = DockStyle.Top;
- panelTitleAdvanced.Location = new Point(0, 190);
+ panelTitleAdvanced.Location = new Point(0, 294);
panelTitleAdvanced.Name = "panelTitleAdvanced";
panelTitleAdvanced.Size = new Size(520, 66);
panelTitleAdvanced.TabIndex = 48;
@@ -740,7 +744,7 @@ namespace GHelper
panelTemperature.Controls.Add(labelLeftTemp);
panelTemperature.Controls.Add(trackTemp);
panelTemperature.Dock = DockStyle.Top;
- panelTemperature.Location = new Point(0, 66);
+ panelTemperature.Location = new Point(0, 170);
panelTemperature.Margin = new Padding(4);
panelTemperature.MaximumSize = new Size(0, 124);
panelTemperature.Name = "panelTemperature";
@@ -785,7 +789,7 @@ namespace GHelper
panelTitleTemp.Controls.Add(pictureTemp);
panelTitleTemp.Controls.Add(labelTempLimit);
panelTitleTemp.Dock = DockStyle.Top;
- panelTitleTemp.Location = new Point(0, 0);
+ panelTitleTemp.Location = new Point(0, 104);
panelTitleTemp.Name = "panelTitleTemp";
panelTitleTemp.Size = new Size(520, 66);
panelTitleTemp.TabIndex = 50;
@@ -813,6 +817,38 @@ namespace GHelper
labelTempLimit.TabIndex = 47;
labelTempLimit.Text = "Temp Limit";
//
+ // panelDownload
+ //
+ panelDownload.AutoSize = true;
+ panelDownload.Controls.Add(buttonDownload);
+ panelDownload.Dock = DockStyle.Top;
+ panelDownload.Location = new Point(0, 0);
+ panelDownload.Name = "panelDownload";
+ panelDownload.Padding = new Padding(20);
+ panelDownload.Size = new Size(520, 104);
+ panelDownload.TabIndex = 52;
+ panelDownload.Visible = false;
+ //
+ // buttonDownload
+ //
+ buttonDownload.Activated = false;
+ buttonDownload.AutoSize = true;
+ buttonDownload.AutoSizeMode = AutoSizeMode.GrowAndShrink;
+ buttonDownload.BackColor = SystemColors.ControlLight;
+ buttonDownload.BorderColor = Color.Transparent;
+ buttonDownload.BorderRadius = 2;
+ buttonDownload.Dock = DockStyle.Top;
+ buttonDownload.FlatStyle = FlatStyle.Flat;
+ buttonDownload.Location = new Point(20, 20);
+ buttonDownload.Margin = new Padding(20);
+ buttonDownload.Name = "buttonDownload";
+ buttonDownload.Padding = new Padding(10);
+ buttonDownload.Secondary = true;
+ buttonDownload.Size = new Size(480, 64);
+ buttonDownload.TabIndex = 19;
+ buttonDownload.Text = "Download Advanced Settings Plugin";
+ buttonDownload.UseVisualStyleBackColor = false;
+ //
// panelPower
//
panelPower.AutoSize = true;
@@ -1634,6 +1670,8 @@ namespace GHelper
panelTitleTemp.ResumeLayout(false);
panelTitleTemp.PerformLayout();
((System.ComponentModel.ISupportInitialize)pictureTemp).EndInit();
+ panelDownload.ResumeLayout(false);
+ panelDownload.PerformLayout();
panelPower.ResumeLayout(false);
panelPower.PerformLayout();
panelApplyPower.ResumeLayout(false);
@@ -1793,5 +1831,7 @@ namespace GHelper
private Label labelSlow;
private Label labelLeftSlow;
private TrackBar trackSlow;
+ private Panel panelDownload;
+ private RButton buttonDownload;
}
}
\ No newline at end of file
diff --git a/app/Fans.cs b/app/Fans.cs
index e793d609..cdc85c34 100644
--- a/app/Fans.cs
+++ b/app/Fans.cs
@@ -213,6 +213,8 @@ namespace GHelper
buttonCalibrate.Click += ButtonCalibrate_Click;
+ buttonDownload.Click += ButtonDownload_Click;
+
ToggleNavigation(0);
if (Program.acpi.DeviceGet(AsusACPI.DevsCPUFanCurve) < 0) buttonCalibrate.Visible = false;
@@ -221,7 +223,21 @@ namespace GHelper
}
+ private void ButtonDownload_Click(object? sender, EventArgs e)
+ {
+ RyzenControl.DownloadRing();
+ panelAdvancedAlways.Visible = true;
+ panelAdvancedApply.Visible = true;
+ labelRisky.Visible = true;
+ panelUViGPU.Visible = true;
+ panelUV.Visible = true;
+ panelTitleAdvanced.Visible = true;
+ panelTemperature.Visible = true;
+ panelTitleTemp.Visible = true;
+
+ VisualiseAdvanced();
+ }
private void ButtonCalibrate_Click(object? sender, EventArgs e)
{
@@ -365,6 +381,24 @@ namespace GHelper
private void VisualiseAdvanced()
{
+
+ if (!RyzenControl.IsRingExsists())
+ {
+ panelTitleAdvanced.Visible = false;
+ labelRisky.Visible = false;
+ panelUV.Visible = false;
+ panelUViGPU.Visible = false;
+ panelTitleTemp.Visible = false;
+ panelTemperature.Visible = false;
+ panelAdvancedAlways.Visible = false;
+ panelAdvancedApply.Visible = false;
+ panelDownload.Visible = true;
+
+ } else
+ {
+ panelDownload.Visible = false;
+ }
+
if (!RyzenControl.IsSupportedUV())
{
panelTitleAdvanced.Visible = false;
diff --git a/app/GHelper.csproj b/app/GHelper.csproj
index 819bb1dc..c43e6850 100644
--- a/app/GHelper.csproj
+++ b/app/GHelper.csproj
@@ -15,7 +15,7 @@
AnyCPU
False
True
- 0.149
+ 0.150
diff --git a/app/Ryzen/RyzenControl.cs b/app/Ryzen/RyzenControl.cs
index 8b197fdd..3473f633 100644
--- a/app/Ryzen/RyzenControl.cs
+++ b/app/Ryzen/RyzenControl.cs
@@ -4,7 +4,9 @@
//
+using GHelper.Helpers;
using System.Management;
+using System.Net;
namespace Ryzen
{
@@ -52,7 +54,8 @@ namespace Ryzen
CPUName = obj["Name"].ToString();
CPUModel = obj["Caption"].ToString();
}
- } catch (Exception ex)
+ }
+ catch (Exception ex)
{
Logger.WriteLine(ex.Message);
}
@@ -142,6 +145,52 @@ namespace Ryzen
return CPUName.Contains("6900H") || CPUName.Contains("7945H") || CPUName.Contains("7845H");
}
+ public static bool IsRingExsists()
+ {
+ string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
+ return File.Exists(exeDir + "\\" + "WinRing0x64.dll");
+ }
+
+ public static void DownloadRing()
+ {
+ string requestUri = "https://github.com/seerge/g-helper/releases/latest/download/PluginAdvancedSettings.zip";
+
+ Uri uri = new Uri(requestUri);
+
+ string exeDir = Path.GetDirectoryName(Application.ExecutablePath);
+ string zipName = Path.GetFileName(uri.LocalPath);
+ string zipLocation = exeDir + "\\" + zipName;
+
+ using (WebClient client = new WebClient())
+ {
+ Logger.WriteLine(requestUri);
+ Logger.WriteLine(exeDir);
+ Logger.WriteLine(zipName);
+
+ try
+ {
+ client.DownloadFile(uri, zipLocation);
+ }
+ catch (Exception ex)
+ {
+ Logger.WriteLine(ex.Message);
+ Logger.WriteLine(ex.ToString());
+ if (!ProcessHelper.IsUserAdministrator()) ProcessHelper.RunAsAdmin("uv");
+ return;
+ }
+
+ try
+ {
+ System.IO.Compression.ZipFile.ExtractToDirectory(zipLocation, exeDir, overwriteFiles: true);
+ File.Delete(zipLocation);
+ }
+ catch (Exception ex)
+ {
+ Logger.WriteLine(ex.ToString());
+ }
+ }
+ }
+
public static void SetAddresses()
{