mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
13 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57ffcb8c7f | ||
|
|
5425bd0128 | ||
|
|
328cd8f9f1 | ||
|
|
38739ca8f6 | ||
|
|
a3e235e886 | ||
|
|
678f4b0eb7 | ||
|
|
4bbfbd0382 | ||
|
|
4c8291c74b | ||
|
|
e9060ad8c0 | ||
|
|
f26585e73c | ||
|
|
9f7da4c20a | ||
|
|
eff45c1485 | ||
|
|
be6e5e8f23 |
@@ -61,8 +61,25 @@ public static class AppConfig
|
|||||||
|
|
||||||
GetModel();
|
GetModel();
|
||||||
return (_model is not null && _model.ToLower().Contains(contains.ToLower()));
|
return (_model is not null && _model.ToLower().Contains(contains.ToLower()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static string GetModelShort()
|
||||||
|
{
|
||||||
|
GetModel();
|
||||||
|
if (_model is not null)
|
||||||
|
{
|
||||||
|
int trim = _model.LastIndexOf("_");
|
||||||
|
if (trim > 0) return _model.Substring(trim+1);
|
||||||
|
|
||||||
|
trim = _model.LastIndexOf(" ");
|
||||||
|
if (trim > 0) return _model.Substring(trim + 1);
|
||||||
|
|
||||||
|
return _model;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
|
||||||
private static void initConfig()
|
private static void initConfig()
|
||||||
{
|
{
|
||||||
config = new Dictionary<string, object>();
|
config = new Dictionary<string, object>();
|
||||||
@@ -210,6 +227,12 @@ public static class AppConfig
|
|||||||
return getConfig(name + "_" + mode);
|
return getConfig(name + "_" + mode);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static bool isConfigPerf(string name)
|
||||||
|
{
|
||||||
|
int mode = getConfig("performance_mode");
|
||||||
|
return getConfig(name + "_" + mode) == 1;
|
||||||
|
}
|
||||||
|
|
||||||
public static void setConfigPerf(string name, int value)
|
public static void setConfigPerf(string name, int value)
|
||||||
{
|
{
|
||||||
int mode = getConfig("performance_mode");
|
int mode = getConfig("performance_mode");
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
using GHelper;
|
using System.Management;
|
||||||
using System.Management;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
public enum AsusFan
|
public enum AsusFan
|
||||||
@@ -93,6 +92,7 @@ public class AsusACPI
|
|||||||
public const int PerformanceBalanced = 0;
|
public const int PerformanceBalanced = 0;
|
||||||
public const int PerformanceTurbo = 1;
|
public const int PerformanceTurbo = 1;
|
||||||
public const int PerformanceSilent = 2;
|
public const int PerformanceSilent = 2;
|
||||||
|
public const int PerformanceManual = 4;
|
||||||
|
|
||||||
public const int GPUModeEco = 0;
|
public const int GPUModeEco = 0;
|
||||||
public const int GPUModeStandard = 1;
|
public const int GPUModeStandard = 1;
|
||||||
@@ -420,6 +420,24 @@ public class AsusACPI
|
|||||||
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
|
return DeviceGet(PPT_CPUB0) >= 0 && DeviceGet(PPT_GPUC0) < 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void ScanRange()
|
||||||
|
{
|
||||||
|
int value;
|
||||||
|
string appPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData) + "\\GHelper";
|
||||||
|
string logFile = appPath + "\\scan.txt";
|
||||||
|
for (uint i = 0x00000000; i <= 0x00160000; i++)
|
||||||
|
{
|
||||||
|
value = DeviceGet(i);
|
||||||
|
if (value >= 0)
|
||||||
|
using (StreamWriter w = File.AppendText(logFile))
|
||||||
|
{
|
||||||
|
w.WriteLine(i.ToString("X8") + ": " + value.ToString("X4") + " (" + value + ")");
|
||||||
|
w.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void TUFKeyboardBrightness(int brightness)
|
public void TUFKeyboardBrightness(int brightness)
|
||||||
{
|
{
|
||||||
int param = 0x80 | (brightness & 0x7F);
|
int param = 0x80 | (brightness & 0x7F);
|
||||||
|
|||||||
210
app/Extra.Designer.cs
generated
210
app/Extra.Designer.cs
generated
@@ -86,12 +86,13 @@ namespace GHelper
|
|||||||
checkSleepLid = new CheckBox();
|
checkSleepLid = new CheckBox();
|
||||||
checkShutdownLid = new CheckBox();
|
checkShutdownLid = new CheckBox();
|
||||||
groupOther = new GroupBox();
|
groupOther = new GroupBox();
|
||||||
checkFnLock = new CheckBox();
|
|
||||||
checkGpuApps = new CheckBox();
|
|
||||||
checkAutoApplyWindowsPowerMode = new CheckBox();
|
checkAutoApplyWindowsPowerMode = new CheckBox();
|
||||||
checkUSBC = new CheckBox();
|
|
||||||
checkNoOverdrive = new CheckBox();
|
|
||||||
checkTopmost = new CheckBox();
|
checkTopmost = new CheckBox();
|
||||||
|
checkNoOverdrive = new CheckBox();
|
||||||
|
checkUSBC = new CheckBox();
|
||||||
|
checkVariBright = new CheckBox();
|
||||||
|
checkGpuApps = new CheckBox();
|
||||||
|
checkFnLock = new CheckBox();
|
||||||
groupBindings.SuspendLayout();
|
groupBindings.SuspendLayout();
|
||||||
tableKeys.SuspendLayout();
|
tableKeys.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureHelp).BeginInit();
|
||||||
@@ -114,8 +115,8 @@ namespace GHelper
|
|||||||
groupBindings.Location = new Point(9, 11);
|
groupBindings.Location = new Point(9, 11);
|
||||||
groupBindings.Margin = new Padding(4, 2, 4, 2);
|
groupBindings.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupBindings.Name = "groupBindings";
|
groupBindings.Name = "groupBindings";
|
||||||
groupBindings.Padding = new Padding(4, 2, 4, 2);
|
groupBindings.Padding = new Padding(4, 2, 50, 2);
|
||||||
groupBindings.Size = new Size(966, 381);
|
groupBindings.Size = new Size(966, 343);
|
||||||
groupBindings.TabIndex = 0;
|
groupBindings.TabIndex = 0;
|
||||||
groupBindings.TabStop = false;
|
groupBindings.TabStop = false;
|
||||||
groupBindings.Text = "Key Bindings";
|
groupBindings.Text = "Key Bindings";
|
||||||
@@ -144,10 +145,11 @@ namespace GHelper
|
|||||||
tableKeys.Controls.Add(textFNF4, 2, 4);
|
tableKeys.Controls.Add(textFNF4, 2, 4);
|
||||||
tableKeys.Controls.Add(comboFNC, 1, 5);
|
tableKeys.Controls.Add(comboFNC, 1, 5);
|
||||||
tableKeys.Controls.Add(textFNC, 2, 5);
|
tableKeys.Controls.Add(textFNC, 2, 5);
|
||||||
tableKeys.Location = new Point(13, 38);
|
tableKeys.Dock = DockStyle.Top;
|
||||||
tableKeys.Margin = new Padding(4, 2, 40, 2);
|
tableKeys.Location = new Point(4, 34);
|
||||||
|
tableKeys.Margin = new Padding(4, 2, 4, 2);
|
||||||
tableKeys.Name = "tableKeys";
|
tableKeys.Name = "tableKeys";
|
||||||
tableKeys.Padding = new Padding(9, 11, 9, 11);
|
tableKeys.Padding = new Padding(9, 11, 0, 11);
|
||||||
tableKeys.RowCount = 6;
|
tableKeys.RowCount = 6;
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
@@ -155,7 +157,7 @@ namespace GHelper
|
|||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 47F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 47F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
|
||||||
tableKeys.Size = new Size(901, 307);
|
tableKeys.Size = new Size(912, 307);
|
||||||
tableKeys.TabIndex = 10;
|
tableKeys.TabIndex = 10;
|
||||||
//
|
//
|
||||||
// labelFNC
|
// labelFNC
|
||||||
@@ -170,32 +172,35 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
// textM2
|
// textM2
|
||||||
//
|
//
|
||||||
textM2.Location = new Point(542, 62);
|
textM2.Dock = DockStyle.Top;
|
||||||
|
textM2.Location = new Point(554, 62);
|
||||||
textM2.Margin = new Padding(4, 2, 4, 2);
|
textM2.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM2.Name = "textM2";
|
textM2.Name = "textM2";
|
||||||
textM2.PlaceholderText = "action";
|
textM2.PlaceholderText = "action";
|
||||||
textM2.Size = new Size(342, 39);
|
textM2.Size = new Size(354, 39);
|
||||||
textM2.TabIndex = 14;
|
textM2.TabIndex = 14;
|
||||||
//
|
//
|
||||||
// textM1
|
// textM1
|
||||||
//
|
//
|
||||||
textM1.Location = new Point(542, 13);
|
textM1.Dock = DockStyle.Top;
|
||||||
|
textM1.Location = new Point(554, 13);
|
||||||
textM1.Margin = new Padding(4, 2, 4, 2);
|
textM1.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM1.Name = "textM1";
|
textM1.Name = "textM1";
|
||||||
textM1.PlaceholderText = "action";
|
textM1.PlaceholderText = "action";
|
||||||
textM1.Size = new Size(342, 39);
|
textM1.Size = new Size(354, 39);
|
||||||
textM1.TabIndex = 13;
|
textM1.TabIndex = 13;
|
||||||
//
|
//
|
||||||
// comboM1
|
// comboM1
|
||||||
//
|
//
|
||||||
comboM1.BorderColor = Color.White;
|
comboM1.BorderColor = Color.White;
|
||||||
comboM1.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboM1.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboM1.Dock = DockStyle.Top;
|
||||||
comboM1.FormattingEnabled = true;
|
comboM1.FormattingEnabled = true;
|
||||||
comboM1.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
comboM1.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
||||||
comboM1.Location = new Point(189, 13);
|
comboM1.Location = new Point(193, 13);
|
||||||
comboM1.Margin = new Padding(4, 2, 4, 2);
|
comboM1.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboM1.Name = "comboM1";
|
comboM1.Name = "comboM1";
|
||||||
comboM1.Size = new Size(312, 40);
|
comboM1.Size = new Size(353, 40);
|
||||||
comboM1.TabIndex = 11;
|
comboM1.TabIndex = 11;
|
||||||
//
|
//
|
||||||
// labelM1
|
// labelM1
|
||||||
@@ -212,42 +217,46 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
comboM4.BorderColor = Color.White;
|
comboM4.BorderColor = Color.White;
|
||||||
comboM4.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboM4.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboM4.Dock = DockStyle.Top;
|
||||||
comboM4.FormattingEnabled = true;
|
comboM4.FormattingEnabled = true;
|
||||||
comboM4.Items.AddRange(new object[] { Strings.PerformanceMode, Strings.OpenGHelper, Strings.Custom });
|
comboM4.Items.AddRange(new object[] { Strings.PerformanceMode, Strings.OpenGHelper, Strings.Custom });
|
||||||
comboM4.Location = new Point(189, 160);
|
comboM4.Location = new Point(193, 160);
|
||||||
comboM4.Margin = new Padding(4, 2, 4, 2);
|
comboM4.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboM4.Name = "comboM4";
|
comboM4.Name = "comboM4";
|
||||||
comboM4.Size = new Size(312, 40);
|
comboM4.Size = new Size(353, 40);
|
||||||
comboM4.TabIndex = 3;
|
comboM4.TabIndex = 3;
|
||||||
//
|
//
|
||||||
// comboM3
|
// comboM3
|
||||||
//
|
//
|
||||||
comboM3.BorderColor = Color.White;
|
comboM3.BorderColor = Color.White;
|
||||||
comboM3.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboM3.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboM3.Dock = DockStyle.Top;
|
||||||
comboM3.FormattingEnabled = true;
|
comboM3.FormattingEnabled = true;
|
||||||
comboM3.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
comboM3.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
||||||
comboM3.Location = new Point(189, 111);
|
comboM3.Location = new Point(193, 111);
|
||||||
comboM3.Margin = new Padding(4, 2, 4, 2);
|
comboM3.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboM3.Name = "comboM3";
|
comboM3.Name = "comboM3";
|
||||||
comboM3.Size = new Size(312, 40);
|
comboM3.Size = new Size(353, 40);
|
||||||
comboM3.TabIndex = 1;
|
comboM3.TabIndex = 1;
|
||||||
//
|
//
|
||||||
// textM4
|
// textM4
|
||||||
//
|
//
|
||||||
textM4.Location = new Point(542, 160);
|
textM4.Dock = DockStyle.Top;
|
||||||
|
textM4.Location = new Point(554, 160);
|
||||||
textM4.Margin = new Padding(4, 2, 4, 2);
|
textM4.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM4.Name = "textM4";
|
textM4.Name = "textM4";
|
||||||
textM4.PlaceholderText = "action";
|
textM4.PlaceholderText = "action";
|
||||||
textM4.Size = new Size(342, 39);
|
textM4.Size = new Size(354, 39);
|
||||||
textM4.TabIndex = 5;
|
textM4.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// textM3
|
// textM3
|
||||||
//
|
//
|
||||||
textM3.Location = new Point(542, 111);
|
textM3.Dock = DockStyle.Top;
|
||||||
|
textM3.Location = new Point(554, 111);
|
||||||
textM3.Margin = new Padding(4, 2, 4, 2);
|
textM3.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM3.Name = "textM3";
|
textM3.Name = "textM3";
|
||||||
textM3.PlaceholderText = "action";
|
textM3.PlaceholderText = "action";
|
||||||
textM3.Size = new Size(342, 39);
|
textM3.Size = new Size(354, 39);
|
||||||
textM3.TabIndex = 4;
|
textM3.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// labelM4
|
// labelM4
|
||||||
@@ -284,12 +293,13 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
comboM2.BorderColor = Color.White;
|
comboM2.BorderColor = Color.White;
|
||||||
comboM2.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboM2.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboM2.Dock = DockStyle.Top;
|
||||||
comboM2.FormattingEnabled = true;
|
comboM2.FormattingEnabled = true;
|
||||||
comboM2.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
comboM2.Items.AddRange(new object[] { Strings.Default, Strings.VolumeMute, Strings.PlayPause, Strings.PrintScreen, Strings.ToggleAura, Strings.Custom });
|
||||||
comboM2.Location = new Point(189, 62);
|
comboM2.Location = new Point(193, 62);
|
||||||
comboM2.Margin = new Padding(4, 2, 4, 2);
|
comboM2.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboM2.Name = "comboM2";
|
comboM2.Name = "comboM2";
|
||||||
comboM2.Size = new Size(312, 40);
|
comboM2.Size = new Size(353, 40);
|
||||||
comboM2.TabIndex = 12;
|
comboM2.TabIndex = 12;
|
||||||
//
|
//
|
||||||
// labelFNF4
|
// labelFNF4
|
||||||
@@ -306,40 +316,44 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
comboFNF4.BorderColor = Color.White;
|
comboFNF4.BorderColor = Color.White;
|
||||||
comboFNF4.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboFNF4.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboFNF4.Dock = DockStyle.Top;
|
||||||
comboFNF4.FormattingEnabled = true;
|
comboFNF4.FormattingEnabled = true;
|
||||||
comboFNF4.Location = new Point(189, 209);
|
comboFNF4.Location = new Point(193, 209);
|
||||||
comboFNF4.Margin = new Padding(4, 2, 4, 2);
|
comboFNF4.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboFNF4.Name = "comboFNF4";
|
comboFNF4.Name = "comboFNF4";
|
||||||
comboFNF4.Size = new Size(312, 40);
|
comboFNF4.Size = new Size(353, 40);
|
||||||
comboFNF4.TabIndex = 7;
|
comboFNF4.TabIndex = 7;
|
||||||
//
|
//
|
||||||
// textFNF4
|
// textFNF4
|
||||||
//
|
//
|
||||||
textFNF4.Location = new Point(542, 209);
|
textFNF4.Dock = DockStyle.Top;
|
||||||
|
textFNF4.Location = new Point(554, 209);
|
||||||
textFNF4.Margin = new Padding(4, 2, 4, 2);
|
textFNF4.Margin = new Padding(4, 2, 4, 2);
|
||||||
textFNF4.Name = "textFNF4";
|
textFNF4.Name = "textFNF4";
|
||||||
textFNF4.PlaceholderText = "action";
|
textFNF4.PlaceholderText = "action";
|
||||||
textFNF4.Size = new Size(342, 39);
|
textFNF4.Size = new Size(354, 39);
|
||||||
textFNF4.TabIndex = 8;
|
textFNF4.TabIndex = 8;
|
||||||
//
|
//
|
||||||
// comboFNC
|
// comboFNC
|
||||||
//
|
//
|
||||||
comboFNC.BorderColor = Color.White;
|
comboFNC.BorderColor = Color.White;
|
||||||
comboFNC.ButtonColor = Color.FromArgb(255, 255, 255);
|
comboFNC.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboFNC.Dock = DockStyle.Top;
|
||||||
comboFNC.FormattingEnabled = true;
|
comboFNC.FormattingEnabled = true;
|
||||||
comboFNC.Location = new Point(189, 256);
|
comboFNC.Location = new Point(193, 256);
|
||||||
comboFNC.Margin = new Padding(4, 2, 4, 2);
|
comboFNC.Margin = new Padding(4, 2, 4, 2);
|
||||||
comboFNC.Name = "comboFNC";
|
comboFNC.Name = "comboFNC";
|
||||||
comboFNC.Size = new Size(312, 40);
|
comboFNC.Size = new Size(353, 40);
|
||||||
comboFNC.TabIndex = 16;
|
comboFNC.TabIndex = 16;
|
||||||
//
|
//
|
||||||
// textFNC
|
// textFNC
|
||||||
//
|
//
|
||||||
textFNC.Location = new Point(542, 256);
|
textFNC.Dock = DockStyle.Top;
|
||||||
|
textFNC.Location = new Point(554, 256);
|
||||||
textFNC.Margin = new Padding(4, 2, 4, 2);
|
textFNC.Margin = new Padding(4, 2, 4, 2);
|
||||||
textFNC.Name = "textFNC";
|
textFNC.Name = "textFNC";
|
||||||
textFNC.PlaceholderText = "action";
|
textFNC.PlaceholderText = "action";
|
||||||
textFNC.Size = new Size(342, 39);
|
textFNC.Size = new Size(354, 39);
|
||||||
textFNC.TabIndex = 17;
|
textFNC.TabIndex = 17;
|
||||||
//
|
//
|
||||||
// pictureHelp
|
// pictureHelp
|
||||||
@@ -347,7 +361,7 @@ namespace GHelper
|
|||||||
pictureHelp.BackgroundImage = Resources.icons8_help_64;
|
pictureHelp.BackgroundImage = Resources.icons8_help_64;
|
||||||
pictureHelp.BackgroundImageLayout = ImageLayout.Zoom;
|
pictureHelp.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
pictureHelp.Cursor = Cursors.Hand;
|
pictureHelp.Cursor = Cursors.Hand;
|
||||||
pictureHelp.Location = new Point(915, 55);
|
pictureHelp.Location = new Point(921, 51);
|
||||||
pictureHelp.Margin = new Padding(4, 2, 4, 2);
|
pictureHelp.Margin = new Padding(4, 2, 4, 2);
|
||||||
pictureHelp.Name = "pictureHelp";
|
pictureHelp.Name = "pictureHelp";
|
||||||
pictureHelp.Size = new Size(32, 32);
|
pictureHelp.Size = new Size(32, 32);
|
||||||
@@ -362,7 +376,7 @@ namespace GHelper
|
|||||||
groupLight.Controls.Add(panelXMG);
|
groupLight.Controls.Add(panelXMG);
|
||||||
groupLight.Controls.Add(tableBacklight);
|
groupLight.Controls.Add(tableBacklight);
|
||||||
groupLight.Dock = DockStyle.Top;
|
groupLight.Dock = DockStyle.Top;
|
||||||
groupLight.Location = new Point(9, 392);
|
groupLight.Location = new Point(9, 354);
|
||||||
groupLight.Margin = new Padding(4, 2, 4, 2);
|
groupLight.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupLight.Name = "groupLight";
|
groupLight.Name = "groupLight";
|
||||||
groupLight.Padding = new Padding(4, 2, 4, 11);
|
groupLight.Padding = new Padding(4, 2, 4, 11);
|
||||||
@@ -778,88 +792,107 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
groupOther.AutoSize = true;
|
groupOther.AutoSize = true;
|
||||||
groupOther.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
groupOther.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
groupOther.Controls.Add(checkFnLock);
|
|
||||||
groupOther.Controls.Add(checkGpuApps);
|
|
||||||
groupOther.Controls.Add(checkAutoApplyWindowsPowerMode);
|
groupOther.Controls.Add(checkAutoApplyWindowsPowerMode);
|
||||||
groupOther.Controls.Add(checkUSBC);
|
|
||||||
groupOther.Controls.Add(checkNoOverdrive);
|
|
||||||
groupOther.Controls.Add(checkTopmost);
|
groupOther.Controls.Add(checkTopmost);
|
||||||
|
groupOther.Controls.Add(checkNoOverdrive);
|
||||||
|
groupOther.Controls.Add(checkUSBC);
|
||||||
|
groupOther.Controls.Add(checkVariBright);
|
||||||
|
groupOther.Controls.Add(checkGpuApps);
|
||||||
|
groupOther.Controls.Add(checkFnLock);
|
||||||
groupOther.Dock = DockStyle.Top;
|
groupOther.Dock = DockStyle.Top;
|
||||||
groupOther.Location = new Point(9, 946);
|
groupOther.Location = new Point(9, 908);
|
||||||
groupOther.Margin = new Padding(4, 2, 4, 2);
|
groupOther.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupOther.Name = "groupOther";
|
groupOther.Name = "groupOther";
|
||||||
groupOther.Padding = new Padding(4, 2, 4, 0);
|
groupOther.Padding = new Padding(20, 2, 4, 10);
|
||||||
groupOther.Size = new Size(966, 320);
|
groupOther.Size = new Size(966, 296);
|
||||||
groupOther.TabIndex = 2;
|
groupOther.TabIndex = 2;
|
||||||
groupOther.TabStop = false;
|
groupOther.TabStop = false;
|
||||||
groupOther.Text = "Other";
|
groupOther.Text = "Other";
|
||||||
//
|
//
|
||||||
// checkFnLock
|
|
||||||
//
|
|
||||||
checkFnLock.AutoSize = true;
|
|
||||||
checkFnLock.Location = new Point(24, 45);
|
|
||||||
checkFnLock.Margin = new Padding(4, 2, 4, 2);
|
|
||||||
checkFnLock.MaximumSize = new Size(780, 0);
|
|
||||||
checkFnLock.Name = "checkFnLock";
|
|
||||||
checkFnLock.Size = new Size(397, 36);
|
|
||||||
checkFnLock.TabIndex = 49;
|
|
||||||
checkFnLock.Text = "Process Fn+F hotkeys without Fn";
|
|
||||||
checkFnLock.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// checkGpuApps
|
|
||||||
//
|
|
||||||
checkGpuApps.AutoSize = true;
|
|
||||||
checkGpuApps.Location = new Point(24, 83);
|
|
||||||
checkGpuApps.Margin = new Padding(4, 2, 4, 2);
|
|
||||||
checkGpuApps.Name = "checkGpuApps";
|
|
||||||
checkGpuApps.Size = new Size(544, 36);
|
|
||||||
checkGpuApps.TabIndex = 48;
|
|
||||||
checkGpuApps.Text = "Stop all apps using GPU when switching to Eco";
|
|
||||||
checkGpuApps.UseVisualStyleBackColor = true;
|
|
||||||
//
|
|
||||||
// checkAutoApplyWindowsPowerMode
|
// checkAutoApplyWindowsPowerMode
|
||||||
//
|
//
|
||||||
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
||||||
checkAutoApplyWindowsPowerMode.Location = new Point(24, 250);
|
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
||||||
|
checkAutoApplyWindowsPowerMode.Location = new Point(20, 250);
|
||||||
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 2, 4, 2);
|
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
|
||||||
checkAutoApplyWindowsPowerMode.Size = new Size(416, 36);
|
checkAutoApplyWindowsPowerMode.Size = new Size(942, 36);
|
||||||
checkAutoApplyWindowsPowerMode.TabIndex = 47;
|
checkAutoApplyWindowsPowerMode.TabIndex = 47;
|
||||||
checkAutoApplyWindowsPowerMode.Text = "Auto Adjust Windows Power Mode";
|
checkAutoApplyWindowsPowerMode.Text = "Auto Adjust Windows Power Mode";
|
||||||
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
|
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkUSBC
|
// checkTopmost
|
||||||
//
|
//
|
||||||
checkUSBC.AutoSize = true;
|
checkTopmost.AutoSize = true;
|
||||||
checkUSBC.Location = new Point(24, 126);
|
checkTopmost.Dock = DockStyle.Top;
|
||||||
checkUSBC.Margin = new Padding(4, 2, 4, 2);
|
checkTopmost.Location = new Point(20, 214);
|
||||||
checkUSBC.Name = "checkUSBC";
|
checkTopmost.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkUSBC.Size = new Size(659, 36);
|
checkTopmost.Name = "checkTopmost";
|
||||||
checkUSBC.TabIndex = 4;
|
checkTopmost.Size = new Size(942, 36);
|
||||||
checkUSBC.Text = "Keep GPU disabled on USB-C charger in Optimized mode";
|
checkTopmost.TabIndex = 1;
|
||||||
checkUSBC.UseVisualStyleBackColor = true;
|
checkTopmost.Text = Strings.WindowTop;
|
||||||
|
checkTopmost.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkNoOverdrive
|
// checkNoOverdrive
|
||||||
//
|
//
|
||||||
checkNoOverdrive.AutoSize = true;
|
checkNoOverdrive.AutoSize = true;
|
||||||
checkNoOverdrive.Location = new Point(24, 166);
|
checkNoOverdrive.Dock = DockStyle.Top;
|
||||||
|
checkNoOverdrive.Location = new Point(20, 178);
|
||||||
checkNoOverdrive.Margin = new Padding(4, 2, 4, 2);
|
checkNoOverdrive.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkNoOverdrive.Name = "checkNoOverdrive";
|
checkNoOverdrive.Name = "checkNoOverdrive";
|
||||||
checkNoOverdrive.Size = new Size(307, 36);
|
checkNoOverdrive.Size = new Size(942, 36);
|
||||||
checkNoOverdrive.TabIndex = 3;
|
checkNoOverdrive.TabIndex = 3;
|
||||||
checkNoOverdrive.Text = Strings.DisableOverdrive;
|
checkNoOverdrive.Text = Strings.DisableOverdrive;
|
||||||
checkNoOverdrive.UseVisualStyleBackColor = true;
|
checkNoOverdrive.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// checkTopmost
|
// checkUSBC
|
||||||
//
|
//
|
||||||
checkTopmost.AutoSize = true;
|
checkUSBC.AutoSize = true;
|
||||||
checkTopmost.Location = new Point(24, 209);
|
checkUSBC.Dock = DockStyle.Top;
|
||||||
checkTopmost.Margin = new Padding(4, 2, 4, 2);
|
checkUSBC.Location = new Point(20, 142);
|
||||||
checkTopmost.Name = "checkTopmost";
|
checkUSBC.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkTopmost.Size = new Size(390, 36);
|
checkUSBC.Name = "checkUSBC";
|
||||||
checkTopmost.TabIndex = 1;
|
checkUSBC.Size = new Size(942, 36);
|
||||||
checkTopmost.Text = Strings.WindowTop;
|
checkUSBC.TabIndex = 4;
|
||||||
checkTopmost.UseVisualStyleBackColor = true;
|
checkUSBC.Text = "Keep GPU disabled on USB-C charger in Optimized mode";
|
||||||
|
checkUSBC.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkVariBright
|
||||||
|
//
|
||||||
|
checkVariBright.AutoSize = true;
|
||||||
|
checkVariBright.Dock = DockStyle.Top;
|
||||||
|
checkVariBright.Location = new Point(20, 106);
|
||||||
|
checkVariBright.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
checkVariBright.Name = "checkVariBright";
|
||||||
|
checkVariBright.Size = new Size(942, 36);
|
||||||
|
checkVariBright.TabIndex = 50;
|
||||||
|
checkVariBright.Text = "AMD Display VariBright";
|
||||||
|
checkVariBright.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkGpuApps
|
||||||
|
//
|
||||||
|
checkGpuApps.AutoSize = true;
|
||||||
|
checkGpuApps.Dock = DockStyle.Top;
|
||||||
|
checkGpuApps.Location = new Point(20, 70);
|
||||||
|
checkGpuApps.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
checkGpuApps.Name = "checkGpuApps";
|
||||||
|
checkGpuApps.Size = new Size(942, 36);
|
||||||
|
checkGpuApps.TabIndex = 48;
|
||||||
|
checkGpuApps.Text = "Stop all apps using GPU when switching to Eco";
|
||||||
|
checkGpuApps.UseVisualStyleBackColor = true;
|
||||||
|
//
|
||||||
|
// checkFnLock
|
||||||
|
//
|
||||||
|
checkFnLock.AutoSize = true;
|
||||||
|
checkFnLock.Dock = DockStyle.Top;
|
||||||
|
checkFnLock.Location = new Point(20, 34);
|
||||||
|
checkFnLock.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
checkFnLock.MaximumSize = new Size(780, 0);
|
||||||
|
checkFnLock.Name = "checkFnLock";
|
||||||
|
checkFnLock.Size = new Size(780, 36);
|
||||||
|
checkFnLock.TabIndex = 49;
|
||||||
|
checkFnLock.Text = "Process Fn+F hotkeys without Fn";
|
||||||
|
checkFnLock.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// Extra
|
// Extra
|
||||||
//
|
//
|
||||||
@@ -965,5 +998,6 @@ namespace GHelper
|
|||||||
private Label labelFNC;
|
private Label labelFNC;
|
||||||
private RComboBox comboFNC;
|
private RComboBox comboFNC;
|
||||||
private TextBox textFNC;
|
private TextBox textFNC;
|
||||||
|
private CheckBox checkVariBright;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
39
app/Extra.cs
39
app/Extra.cs
@@ -1,4 +1,5 @@
|
|||||||
using CustomControls;
|
using CustomControls;
|
||||||
|
using GHelper.Gpu;
|
||||||
using Microsoft.VisualBasic.Devices;
|
using Microsoft.VisualBasic.Devices;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
@@ -227,6 +228,44 @@ namespace GHelper
|
|||||||
checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ;
|
checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ;
|
||||||
|
|
||||||
pictureHelp.Click += PictureHelp_Click;
|
pictureHelp.Click += PictureHelp_Click;
|
||||||
|
|
||||||
|
InitVariBright();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void InitVariBright()
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
using (var amdControl = new AmdGpuControl())
|
||||||
|
{
|
||||||
|
int variBrightSupported = 0, VariBrightEnabled;
|
||||||
|
if (amdControl.GetVariBright(out variBrightSupported, out VariBrightEnabled))
|
||||||
|
{
|
||||||
|
Logger.WriteLine("Varibright: " + variBrightSupported + "," + VariBrightEnabled);
|
||||||
|
checkVariBright.Checked = (VariBrightEnabled == 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
checkVariBright.Visible = (variBrightSupported > 0);
|
||||||
|
checkVariBright.CheckedChanged += CheckVariBright_CheckedChanged;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex.ToString());
|
||||||
|
checkVariBright.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
private void CheckVariBright_CheckedChanged(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
using (var amdControl = new AmdGpuControl())
|
||||||
|
{
|
||||||
|
amdControl.SetVariBright(checkVariBright.Checked ? 1 : 0);
|
||||||
|
ProcessHelper.KillByName("RadeonSoftware");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckFnLock_CheckedChanged(object? sender, EventArgs e)
|
private void CheckFnLock_CheckedChanged(object? sender, EventArgs e)
|
||||||
|
|||||||
78
app/Fans.cs
78
app/Fans.cs
@@ -9,7 +9,9 @@ namespace GHelper
|
|||||||
public partial class Fans : RForm
|
public partial class Fans : RForm
|
||||||
{
|
{
|
||||||
|
|
||||||
|
int curIndex = -1;
|
||||||
DataPoint curPoint = null;
|
DataPoint curPoint = null;
|
||||||
|
|
||||||
Series seriesCPU;
|
Series seriesCPU;
|
||||||
Series seriesGPU;
|
Series seriesGPU;
|
||||||
Series seriesMid;
|
Series seriesMid;
|
||||||
@@ -358,17 +360,9 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
if (sender is null) return;
|
if (sender is null) return;
|
||||||
CheckBox chk = (CheckBox)sender;
|
CheckBox chk = (CheckBox)sender;
|
||||||
AppConfig.setConfigPerf("auto_apply_power", chk.Checked ? 1 : 0);
|
|
||||||
|
|
||||||
if (chk.Checked)
|
AppConfig.setConfigPerf("auto_apply_power", chk.Checked ? 1 : 0);
|
||||||
{
|
Program.settingsForm.SetPerformanceMode();
|
||||||
Program.settingsForm.AutoPower();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.getConfig("performance_mode"), "PerfMode");
|
|
||||||
Program.settingsForm.AutoFans();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -378,16 +372,8 @@ namespace GHelper
|
|||||||
CheckBox chk = (CheckBox)sender;
|
CheckBox chk = (CheckBox)sender;
|
||||||
|
|
||||||
AppConfig.setConfigPerf("auto_apply", chk.Checked ? 1 : 0);
|
AppConfig.setConfigPerf("auto_apply", chk.Checked ? 1 : 0);
|
||||||
|
Program.settingsForm.SetPerformanceMode();
|
||||||
|
|
||||||
if (chk.Checked)
|
|
||||||
{
|
|
||||||
Program.settingsForm.AutoFans();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.getConfig("performance_mode"), "PerfMode");
|
|
||||||
Program.settingsForm.AutoPower();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -438,7 +424,7 @@ namespace GHelper
|
|||||||
int limit_cpu;
|
int limit_cpu;
|
||||||
int limit_fast;
|
int limit_fast;
|
||||||
|
|
||||||
bool apply = AppConfig.getConfigPerf("auto_apply_power") == 1;
|
bool apply = AppConfig.isConfigPerf("auto_apply_power");
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
@@ -619,27 +605,35 @@ namespace GHelper
|
|||||||
AppConfig.setConfigPerf("auto_apply", 0);
|
AppConfig.setConfigPerf("auto_apply", 0);
|
||||||
AppConfig.setConfigPerf("auto_apply_power", 0);
|
AppConfig.setConfigPerf("auto_apply_power", 0);
|
||||||
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.getConfig("performance_mode"), "PerfMode");
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AppConfig.getConfig("performance_mode"), "Mode");
|
||||||
if (Program.acpi.IsXGConnected()) AsusUSB.ResetXGM();
|
|
||||||
|
|
||||||
trackGPUCore.Value = 0;
|
if (Program.acpi.IsXGConnected())
|
||||||
trackGPUMemory.Value = 0;
|
AsusUSB.ResetXGM();
|
||||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
|
||||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
|
||||||
|
|
||||||
AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value);
|
if (gpuVisible)
|
||||||
AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value);
|
{
|
||||||
AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value);
|
trackGPUCore.Value = 0;
|
||||||
AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value);
|
trackGPUMemory.Value = 0;
|
||||||
VisualiseGPUSettings();
|
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||||
|
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||||
|
|
||||||
|
AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value);
|
||||||
|
AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value);
|
||||||
|
AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value);
|
||||||
|
AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value);
|
||||||
|
|
||||||
|
VisualiseGPUSettings();
|
||||||
|
Program.settingsForm.SetGPUClocks(true);
|
||||||
|
Program.settingsForm.SetGPUPower();
|
||||||
|
}
|
||||||
|
|
||||||
Program.settingsForm.SetGPUClocks(true);
|
|
||||||
Program.settingsForm.SetGPUPower();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void ChartCPU_MouseUp(object? sender, MouseEventArgs e)
|
private void ChartCPU_MouseUp(object? sender, MouseEventArgs e)
|
||||||
{
|
{
|
||||||
curPoint = null;
|
curPoint = null;
|
||||||
|
curIndex = -1;
|
||||||
|
|
||||||
labelTip.Visible = false;
|
labelTip.Visible = false;
|
||||||
|
|
||||||
SaveProfile(seriesCPU, AsusFan.CPU);
|
SaveProfile(seriesCPU, AsusFan.CPU);
|
||||||
@@ -669,9 +663,12 @@ namespace GHelper
|
|||||||
bool tip = false;
|
bool tip = false;
|
||||||
|
|
||||||
HitTestResult hit = chart.HitTest(e.X, e.Y);
|
HitTestResult hit = chart.HitTest(e.X, e.Y);
|
||||||
|
Series series = chart.Series[0];
|
||||||
|
|
||||||
if (hit.Series is not null && hit.PointIndex >= 0)
|
if (hit.Series is not null && hit.PointIndex >= 0)
|
||||||
{
|
{
|
||||||
curPoint = hit.Series.Points[hit.PointIndex];
|
curIndex = hit.PointIndex;
|
||||||
|
curPoint = hit.Series.Points[curIndex];
|
||||||
tip = true;
|
tip = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -696,18 +693,19 @@ namespace GHelper
|
|||||||
|
|
||||||
if (dy < dymin) dy = dymin;
|
if (dy < dymin) dy = dymin;
|
||||||
|
|
||||||
if (e.Button.HasFlag(MouseButtons.Left) && hit.Series is not null)
|
if (e.Button.HasFlag(MouseButtons.Left))
|
||||||
{
|
{
|
||||||
|
double deltaY = dy - curPoint.YValues[0];
|
||||||
|
double deltaX = dx - curPoint.XValue;
|
||||||
|
|
||||||
curPoint.XValue = dx;
|
curPoint.XValue = dx;
|
||||||
|
|
||||||
if (Control.ModifierKeys == Keys.Shift)
|
if (Control.ModifierKeys == Keys.Shift)
|
||||||
{
|
AdjustAll(0, deltaY, series);
|
||||||
AdjustAllDots(0, dy - curPoint.YValues[0], hit.Series);
|
else
|
||||||
} else
|
|
||||||
{
|
{
|
||||||
curPoint.YValues[0] = dy;
|
curPoint.YValues[0] = dy;
|
||||||
AdjustAllLevels(hit.PointIndex, dx, dy, hit.Series);
|
AdjustAllLevels(curIndex, dx, dy, series);
|
||||||
}
|
}
|
||||||
|
|
||||||
tip = true;
|
tip = true;
|
||||||
@@ -731,7 +729,7 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private void AdjustAllDots(double deltaX, double deltaY, Series series)
|
private void AdjustAll(double deltaX, double deltaY, Series series)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < series.Points.Count; i++)
|
for (int i = 0; i < series.Points.Count; i++)
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.77</AssemblyVersion>
|
<AssemblyVersion>0.80</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using static AmdAdl2.Adl2.NativeMethods;
|
||||||
|
|
||||||
namespace AmdAdl2;
|
namespace AmdAdl2;
|
||||||
|
|
||||||
@@ -515,6 +516,63 @@ public class Adl2 {
|
|||||||
out int lpNumApps,
|
out int lpNumApps,
|
||||||
out IntPtr lppAppList);
|
out IntPtr lppAppList);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_Adapter_VariBright_Caps(
|
||||||
|
IntPtr context,
|
||||||
|
int iAdapterIndex,
|
||||||
|
out int iSupported,
|
||||||
|
out int iEnabled,
|
||||||
|
out int iVersion);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_Adapter_VariBrightEnable_Set(
|
||||||
|
IntPtr context,
|
||||||
|
int iAdapterIndex,
|
||||||
|
int iEnabled);
|
||||||
|
|
||||||
|
// Clocks
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct ADLODNPerformanceLevel
|
||||||
|
{
|
||||||
|
public int iClock;
|
||||||
|
public int iVddc;
|
||||||
|
public int iEnabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct ADLODNPerformanceLevels
|
||||||
|
{
|
||||||
|
public int iSize;
|
||||||
|
public int iMode;
|
||||||
|
public int iNumberOfPerformanceLevels;
|
||||||
|
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 1)]
|
||||||
|
public ADLODNPerformanceLevel[] aLevels;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_OverdriveN_SystemClocks_Get(
|
||||||
|
IntPtr context,
|
||||||
|
int adapterIndex,
|
||||||
|
ref ADLODNPerformanceLevels performanceLevels);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_OverdriveN_SystemClocks_Set(
|
||||||
|
IntPtr context,
|
||||||
|
int adapterIndex,
|
||||||
|
ref ADLODNPerformanceLevels performanceLevels);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_OverdriveN_MemoryClocks_Get(
|
||||||
|
IntPtr context,
|
||||||
|
int adapterIndex,
|
||||||
|
ref ADLODNPerformanceLevels performanceLevels);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_OverdriveN_MemoryClocks_Set(
|
||||||
|
IntPtr context,
|
||||||
|
int adapterIndex,
|
||||||
|
ref ADLODNPerformanceLevels performanceLevels);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
using AmdAdl2;
|
using AmdAdl2;
|
||||||
using System.Diagnostics;
|
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using static AmdAdl2.Adl2.NativeMethods;
|
||||||
|
|
||||||
namespace GHelper.Gpu;
|
namespace GHelper.Gpu;
|
||||||
|
|
||||||
@@ -14,24 +14,19 @@ public class AmdGpuControl : IGpuControl
|
|||||||
public bool IsNvidia => false;
|
public bool IsNvidia => false;
|
||||||
|
|
||||||
public string FullName => _internalDiscreteAdapter!.AdapterName;
|
public string FullName => _internalDiscreteAdapter!.AdapterName;
|
||||||
public AmdGpuControl()
|
|
||||||
|
private ADLAdapterInfo? FindByType(ADLAsicFamilyType type = ADLAsicFamilyType.Discrete)
|
||||||
{
|
{
|
||||||
if (!Adl2.Load())
|
ADL2_Adapter_NumberOfAdapters_Get(_adlContextHandle, out int numberOfAdapters);
|
||||||
return;
|
|
||||||
|
|
||||||
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS)
|
|
||||||
return;
|
|
||||||
|
|
||||||
Adl2.NativeMethods.ADL2_Adapter_NumberOfAdapters_Get(_adlContextHandle, out int numberOfAdapters);
|
|
||||||
if (numberOfAdapters <= 0)
|
if (numberOfAdapters <= 0)
|
||||||
return;
|
return null;
|
||||||
|
|
||||||
ADLAdapterInfoArray osAdapterInfoData = new();
|
ADLAdapterInfoArray osAdapterInfoData = new();
|
||||||
int osAdapterInfoDataSize = Marshal.SizeOf(osAdapterInfoData);
|
int osAdapterInfoDataSize = Marshal.SizeOf(osAdapterInfoData);
|
||||||
IntPtr AdapterBuffer = Marshal.AllocCoTaskMem(osAdapterInfoDataSize);
|
IntPtr AdapterBuffer = Marshal.AllocCoTaskMem(osAdapterInfoDataSize);
|
||||||
Marshal.StructureToPtr(osAdapterInfoData, AdapterBuffer, false);
|
Marshal.StructureToPtr(osAdapterInfoData, AdapterBuffer, false);
|
||||||
if (Adl2.NativeMethods.ADL2_Adapter_AdapterInfo_Get(_adlContextHandle, AdapterBuffer, osAdapterInfoDataSize) != Adl2.ADL_SUCCESS)
|
if (ADL2_Adapter_AdapterInfo_Get(_adlContextHandle, AdapterBuffer, osAdapterInfoDataSize) != Adl2.ADL_SUCCESS)
|
||||||
return;
|
return null;
|
||||||
|
|
||||||
osAdapterInfoData = (ADLAdapterInfoArray)Marshal.PtrToStructure(AdapterBuffer, osAdapterInfoData.GetType())!;
|
osAdapterInfoData = (ADLAdapterInfoArray)Marshal.PtrToStructure(AdapterBuffer, osAdapterInfoData.GetType())!;
|
||||||
|
|
||||||
@@ -48,20 +43,37 @@ public class AmdGpuControl : IGpuControl
|
|||||||
if (adapter.VendorID != amdVendorId)
|
if (adapter.VendorID != amdVendorId)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (Adl2.NativeMethods.ADL2_Adapter_ASICFamilyType_Get(_adlContextHandle, adapter.AdapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids) != Adl2.ADL_SUCCESS)
|
if (ADL2_Adapter_ASICFamilyType_Get(_adlContextHandle, adapter.AdapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids) != Adl2.ADL_SUCCESS)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
asicFamilyType = (ADLAsicFamilyType)((int)asicFamilyType & asicFamilyTypeValids);
|
asicFamilyType = (ADLAsicFamilyType)((int)asicFamilyType & asicFamilyTypeValids);
|
||||||
|
|
||||||
// FIXME: is this correct for G14 2022?
|
return (asicFamilyType & type) != 0;
|
||||||
return (asicFamilyType & ADLAsicFamilyType.Discrete) != 0;
|
|
||||||
});
|
});
|
||||||
|
|
||||||
if (internalDiscreteAdapter.Exist == 0)
|
if (internalDiscreteAdapter.Exist == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return internalDiscreteAdapter;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public AmdGpuControl()
|
||||||
|
{
|
||||||
|
if (!Adl2.Load())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
_internalDiscreteAdapter = internalDiscreteAdapter;
|
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS)
|
||||||
_isReady = true;
|
return;
|
||||||
|
|
||||||
|
ADLAdapterInfo? internalDiscreteAdapter = FindByType(ADLAsicFamilyType.Discrete);
|
||||||
|
|
||||||
|
if (internalDiscreteAdapter is not null)
|
||||||
|
{
|
||||||
|
_internalDiscreteAdapter = (ADLAdapterInfo)internalDiscreteAdapter;
|
||||||
|
_isReady = true;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsValid => _isReady && _adlContextHandle != IntPtr.Zero;
|
public bool IsValid => _isReady && _adlContextHandle != IntPtr.Zero;
|
||||||
@@ -71,7 +83,7 @@ public class AmdGpuControl : IGpuControl
|
|||||||
if (!IsValid)
|
if (!IsValid)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
if (Adl2.NativeMethods.ADL2_New_QueryPMLogData_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS)
|
if (ADL2_New_QueryPMLogData_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
ADLSingleSensorData temperatureSensor = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_TEMPERATURE_EDGE];
|
ADLSingleSensorData temperatureSensor = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_TEMPERATURE_EDGE];
|
||||||
@@ -86,7 +98,7 @@ public class AmdGpuControl : IGpuControl
|
|||||||
{
|
{
|
||||||
if (!IsValid) return null;
|
if (!IsValid) return null;
|
||||||
|
|
||||||
if (Adl2.NativeMethods.ADL2_New_QueryPMLogData_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS)
|
if (ADL2_New_QueryPMLogData_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, out ADLPMLogDataOutput adlpmLogDataOutput) != Adl2.ADL_SUCCESS)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX];
|
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX];
|
||||||
@@ -97,6 +109,46 @@ public class AmdGpuControl : IGpuControl
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public bool SetVariBright(int enabled)
|
||||||
|
{
|
||||||
|
if (_adlContextHandle == IntPtr.Zero) return false;
|
||||||
|
|
||||||
|
ADLAdapterInfo? iGPU = FindByType(ADLAsicFamilyType.Integrated);
|
||||||
|
if (iGPU is null) return false;
|
||||||
|
|
||||||
|
return ADL2_Adapter_VariBrightEnable_Set(_adlContextHandle, ((ADLAdapterInfo)iGPU).AdapterIndex, enabled) == Adl2.ADL_SUCCESS;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public bool GetVariBright(out int supported, out int enabled)
|
||||||
|
{
|
||||||
|
supported = enabled = -1;
|
||||||
|
|
||||||
|
if (_adlContextHandle == IntPtr.Zero) return false;
|
||||||
|
|
||||||
|
ADLAdapterInfo? iGPU = FindByType(ADLAsicFamilyType.Integrated);
|
||||||
|
if (iGPU is null) return false;
|
||||||
|
|
||||||
|
if (ADL2_Adapter_VariBright_Caps(_adlContextHandle, ((ADLAdapterInfo)iGPU).AdapterIndex, out int supportedOut, out int enabledOut, out int version) != Adl2.ADL_SUCCESS)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
supported = supportedOut;
|
||||||
|
enabled = enabledOut;
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ADLODNPerformanceLevels? GetGPUClocks()
|
||||||
|
{
|
||||||
|
if (!IsValid) return null;
|
||||||
|
|
||||||
|
ADLODNPerformanceLevels performanceLevels = new();
|
||||||
|
ADL2_OverdriveN_SystemClocks_Get(_adlContextHandle, _internalDiscreteAdapter.AdapterIndex, ref performanceLevels);
|
||||||
|
|
||||||
|
return performanceLevels;
|
||||||
|
}
|
||||||
|
|
||||||
public void KillGPUApps()
|
public void KillGPUApps()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -108,7 +160,7 @@ public class AmdGpuControl : IGpuControl
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
// Get switchable graphics applications information
|
// Get switchable graphics applications information
|
||||||
var result = Adl2.NativeMethods.ADL2_SwitchableGraphics_Applications_Get(_adlContextHandle, 2, out appCount, out appInfoPtr);
|
var result = ADL2_SwitchableGraphics_Applications_Get(_adlContextHandle, 2, out appCount, out appInfoPtr);
|
||||||
if (result != 0)
|
if (result != 0)
|
||||||
{
|
{
|
||||||
throw new Exception("Failed to get switchable graphics applications. Error code: " + result);
|
throw new Exception("Failed to get switchable graphics applications. Error code: " + result);
|
||||||
@@ -135,10 +187,15 @@ public class AmdGpuControl : IGpuControl
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach (string kill in appNames) ProcessHelper.KillByName(kill);
|
List<string> immune = new() { "svchost", "system", "ntoskrnl", "csrss", "winlogon", "wininit", "smss" };
|
||||||
|
|
||||||
|
foreach (string kill in appNames)
|
||||||
|
if (!immune.Contains(kill.ToLower()))
|
||||||
|
ProcessHelper.KillByName(kill);
|
||||||
|
|
||||||
|
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.Message);
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
@@ -158,7 +215,7 @@ public class AmdGpuControl : IGpuControl
|
|||||||
{
|
{
|
||||||
if (_adlContextHandle != IntPtr.Zero)
|
if (_adlContextHandle != IntPtr.Zero)
|
||||||
{
|
{
|
||||||
Adl2.NativeMethods.ADL2_Main_Control_Destroy(_adlContextHandle);
|
ADL2_Main_Control_Destroy(_adlContextHandle);
|
||||||
_adlContextHandle = IntPtr.Zero;
|
_adlContextHandle = IntPtr.Zero;
|
||||||
_isReady = false;
|
_isReady = false;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -31,7 +31,7 @@ public static class HardwareControl
|
|||||||
{
|
{
|
||||||
AppConfig.setConfig("fan_max", fan);
|
AppConfig.setConfig("fan_max", fan);
|
||||||
}
|
}
|
||||||
private static string FormatFan(int fan)
|
public static string FormatFan(int fan)
|
||||||
{
|
{
|
||||||
// fix for old models
|
// fix for old models
|
||||||
if (fan < 0)
|
if (fan < 0)
|
||||||
|
|||||||
@@ -588,6 +588,42 @@ public class NativeMethods
|
|||||||
return dm;
|
return dm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum COLORPROFILETYPE
|
||||||
|
{
|
||||||
|
CPT_ICC,
|
||||||
|
CPT_DMP,
|
||||||
|
CPT_CAMP,
|
||||||
|
CPT_GMMP
|
||||||
|
}
|
||||||
|
public enum COLORPROFILESUBTYPE
|
||||||
|
{
|
||||||
|
CPST_PERCEPTUAL,
|
||||||
|
CPST_RELATIVE_COLORIMETRIC,
|
||||||
|
CPST_SATURATION,
|
||||||
|
CPST_ABSOLUTE_COLORIMETRIC,
|
||||||
|
CPST_NONE,
|
||||||
|
CPST_RGB_WORKING_SPACE,
|
||||||
|
CPST_CUSTOM_WORKING_SPACE,
|
||||||
|
CPST_STANDARD_DISPLAY_COLOR_MODE,
|
||||||
|
CPST_EXTENDED_DISPLAY_COLOR_MODE
|
||||||
|
}
|
||||||
|
public enum WCS_PROFILE_MANAGEMENT_SCOPE
|
||||||
|
{
|
||||||
|
WCS_PROFILE_MANAGEMENT_SCOPE_SYSTEM_WIDE,
|
||||||
|
WCS_PROFILE_MANAGEMENT_SCOPE_CURRENT_USER
|
||||||
|
}
|
||||||
|
|
||||||
|
[DllImport("mscms.dll", CharSet = CharSet.Unicode)]
|
||||||
|
public static extern bool WcsSetDefaultColorProfile(
|
||||||
|
WCS_PROFILE_MANAGEMENT_SCOPE scope,
|
||||||
|
string pDeviceName,
|
||||||
|
COLORPROFILETYPE cptColorProfileType,
|
||||||
|
COLORPROFILESUBTYPE cpstColorProfileSubType,
|
||||||
|
uint dwProfileID,
|
||||||
|
string pProfileName
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
public const int ENUM_CURRENT_SETTINGS = -1;
|
public const int ENUM_CURRENT_SETTINGS = -1;
|
||||||
public const string defaultDevice = "\\\\.\\DISPLAY1";
|
public const string defaultDevice = "\\\\.\\DISPLAY1";
|
||||||
|
|
||||||
|
|||||||
@@ -126,6 +126,9 @@ namespace GHelper
|
|||||||
if (settingsForm.keyb is not null && settingsForm.keyb.Text != "")
|
if (settingsForm.keyb is not null && settingsForm.keyb.Text != "")
|
||||||
settingsForm.keyb.InitTheme();
|
settingsForm.keyb.InitTheme();
|
||||||
|
|
||||||
|
if (settingsForm.updates is not null && settingsForm.updates.Text != "")
|
||||||
|
settingsForm.updates.InitTheme();
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
10
app/Properties/Resources.Designer.cs
generated
10
app/Properties/Resources.Designer.cs
generated
@@ -350,6 +350,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_software_48 {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8-software-48", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -118,6 +118,9 @@
|
|||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-leaf-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-leaf-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-leaf-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-leaf-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -133,11 +136,17 @@
|
|||||||
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-fiat-500-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-fiat-500-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8_microphone_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-microphone-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-rocket-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-rocket-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-bicycle-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-bicycle-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-game-controller-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-game-controller-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-fan-head-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-fan-head-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-fan-head-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-fan-head-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
@@ -145,8 +154,8 @@
|
|||||||
<data name="icons8-processor-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-processor-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-processor-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-processor-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-game-controller-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-game-controller-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-spa-flower-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-spa-flower-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-spa-flower-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-spa-flower-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
@@ -157,9 +166,15 @@
|
|||||||
<data name="icons8-keyboard-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-keyboard-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-keyboard-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-keyboard-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-fan-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-fan-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-fan-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-fan-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8-help-64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-help-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-speed-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-speed-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-speed-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -169,12 +184,24 @@
|
|||||||
<data name="icons8-laptop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-laptop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-laptop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-video-card-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-video-card-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-video-card-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-video-card-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="icons8-spa-flower-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-spa-flower-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-organic-food-961" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-organic-food-961" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-organic-food-961.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-organic-food-961.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-balance-symbol-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-balance-symbol-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-balance-symbol-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-balance-symbol-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -184,55 +211,31 @@
|
|||||||
<data name="icons8-matrix-desktop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-matrix-desktop-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-matrix-desktop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-matrix-desktop-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-xbox-controller-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-xbox-controller-96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-xbox-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-xbox-controller-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-project-management-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-project-management-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-project-management-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-project-management-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
<data name="icons8-leaf-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-leaf-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-leaf-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-leaf-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="ultimate" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\ultimate.ico;System.Drawing.Icon, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-rocket-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="backlight_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-rocket-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\backlight-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-speed-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-speed-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="icons8-help-64" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
<data name="icons8-software-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
<value>..\Resources\icons8-help-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
<value>..\Resources\icons8-software-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
</data>
|
|
||||||
<data name="icons8_video_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-video-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8-project-management-48 (1)" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-project-management-48 (1).png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_microphone_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-microphone-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_touchpad_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-touchpad-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="backlight_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\backlight-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="backlight_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\backlight-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="brightness_down" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\brightness-down.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="brightness_up" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\brightness-up.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_mute_unmute_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-mute-unmute-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
|
||||||
<data name="icons8_function" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
|
||||||
<value>..\Resources\icons8-function-mac-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
27
app/Properties/Strings.Designer.cs
generated
27
app/Properties/Strings.Designer.cs
generated
@@ -312,6 +312,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to BIOS and Driver Updates.
|
||||||
|
/// </summary>
|
||||||
|
internal static string BiosAndDriverUpdates {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("BiosAndDriverUpdates", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Boot.
|
/// Looks up a localized string similar to Boot.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -393,6 +402,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Drivers and Software.
|
||||||
|
/// </summary>
|
||||||
|
internal static string DriverAndSoftware {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("DriverAndSoftware", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Disables dGPU for battery savings.
|
/// Looks up a localized string similar to Disables dGPU for battery savings.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1095,6 +1113,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Updates.
|
||||||
|
/// </summary>
|
||||||
|
internal static string Updates {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("Updates", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Version.
|
/// Looks up a localized string similar to Version.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -201,6 +201,9 @@
|
|||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>Battery Charge Limit</value>
|
<value>Battery Charge Limit</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
|
<value>BIOS and Driver Updates</value>
|
||||||
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>Boot</value>
|
<value>Boot</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -228,6 +231,9 @@
|
|||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Download Update</value>
|
<value>Download Update</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="DriverAndSoftware" xml:space="preserve">
|
||||||
|
<value>Drivers and Software</value>
|
||||||
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Disables dGPU for battery savings</value>
|
<value>Disables dGPU for battery savings</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -462,6 +468,9 @@
|
|||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ultimate</value>
|
<value>Ultimate</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Updates" xml:space="preserve">
|
||||||
|
<value>Updates</value>
|
||||||
|
</data>
|
||||||
<data name="VersionLabel" xml:space="preserve">
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
<value>Version</value>
|
<value>Version</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -201,6 +201,9 @@
|
|||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>Ліміт заряду батареї</value>
|
<value>Ліміт заряду батареї</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
|
<value>Оновлення BIOS та драйверів</value>
|
||||||
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>Старт</value>
|
<value>Старт</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -228,6 +231,9 @@
|
|||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Завантажити</value>
|
<value>Завантажити</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="DriverAndSoftware" xml:space="preserve">
|
||||||
|
<value>Драйвери та програми</value>
|
||||||
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Вимикає dGPU, щоб зберегти заряд</value>
|
<value>Вимикає dGPU, щоб зберегти заряд</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -408,6 +414,9 @@
|
|||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>Аура</value>
|
<value>Аура</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
|
<value>Fn-Lock</value>
|
||||||
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>Міні-лед (якщо є)</value>
|
<value>Міні-лед (якщо є)</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -429,6 +438,9 @@
|
|||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ультімейт</value>
|
<value>Ультімейт</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="Updates" xml:space="preserve">
|
||||||
|
<value>Оновлення</value>
|
||||||
|
</data>
|
||||||
<data name="VersionLabel" xml:space="preserve">
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
<value>Версія</value>
|
<value>Версія</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<root>
|
<root>
|
||||||
<!--
|
<!--
|
||||||
Microsoft ResX Schema
|
Microsoft ResX Schema
|
||||||
|
|
||||||
Version 2.0
|
Version 2.0
|
||||||
@@ -59,419 +59,431 @@
|
|||||||
: using a System.ComponentModel.TypeConverter
|
: using a System.ComponentModel.TypeConverter
|
||||||
: and then encoded with base64 encoding.
|
: and then encoded with base64 encoding.
|
||||||
-->
|
-->
|
||||||
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
<xsd:element name="root" msdata:IsDataSet="true">
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:choice maxOccurs="unbounded">
|
<xsd:choice maxOccurs="unbounded">
|
||||||
<xsd:element name="metadata">
|
<xsd:element name="metadata">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" use="required" type="xsd:string" />
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
<xsd:attribute name="type" type="xsd:string" />
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" />
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="assembly">
|
<xsd:element name="assembly">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:attribute name="alias" type="xsd:string" />
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
<xsd:attribute name="name" type="xsd:string" />
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="data">
|
<xsd:element name="data">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
<xsd:attribute ref="xml:space" />
|
<xsd:attribute ref="xml:space" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
<xsd:element name="resheader">
|
<xsd:element name="resheader">
|
||||||
<xsd:complexType>
|
<xsd:complexType>
|
||||||
<xsd:sequence>
|
<xsd:sequence>
|
||||||
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
</xsd:sequence>
|
</xsd:sequence>
|
||||||
<xsd:attribute name="name" type="xsd:string" use="required" />
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:choice>
|
</xsd:choice>
|
||||||
</xsd:complexType>
|
</xsd:complexType>
|
||||||
</xsd:element>
|
</xsd:element>
|
||||||
</xsd:schema>
|
</xsd:schema>
|
||||||
<resheader name="resmimetype">
|
<resheader name="resmimetype">
|
||||||
<value>text/microsoft-resx</value>
|
<value>text/microsoft-resx</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="version">
|
<resheader name="version">
|
||||||
<value>2.0</value>
|
<value>2.0</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="reader">
|
<resheader name="reader">
|
||||||
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<resheader name="writer">
|
<resheader name="writer">
|
||||||
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
</resheader>
|
</resheader>
|
||||||
<data name="ACPIError" xml:space="preserve">
|
<data name="ACPIError" xml:space="preserve">
|
||||||
<value>無法連結到華碩 ACPI。 没有它,應用程式將無法執行。 嘗試安裝Asus System Control Interface</value>
|
<value>無法連結到華碩 ACPI。 没有它,應用程式將無法執行。 嘗試安裝Asus System Control Interface</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPU" xml:space="preserve">
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
<value>看起来 GPU 正在大量使用,是否禁用它?</value>
|
<value>看起来 GPU 正在大量使用,是否禁用它?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertDGPUTitle" xml:space="preserve">
|
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||||
<value>節能模式</value>
|
<value>節能模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOff" xml:space="preserve">
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
<value>關閉獨顯需要重新啟動</value>
|
<value>關閉獨顯需要重新啟動</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOn" xml:space="preserve">
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
<value>獨顯直連需要重啟</value>
|
<value>獨顯直連需要重啟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
<value>現在重新啟動嗎?</value>
|
<value>現在重新啟動嗎?</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimationSpeed" xml:space="preserve">
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
<value>動畫速度</value>
|
<value>動畫速度</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AnimeMatrix" xml:space="preserve">
|
<data name="AnimeMatrix" xml:space="preserve">
|
||||||
<value>AnimeMatrix</value>
|
<value>AnimeMatrix</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunning" xml:space="preserve">
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
<value>程式已正在執行</value>
|
<value>程式已正在執行</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AppAlreadyRunningText" xml:space="preserve">
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
<value>G-Helper已經在執行。 請確認右下工作列中的圖示。</value>
|
<value>G-Helper已經在執行。 請確認右下工作列中的圖示。</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyFanCurve" xml:space="preserve">
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
<value>套用自定義風扇曲線</value>
|
<value>套用自定義風扇曲線</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>套用功率限制</value>
|
<value>套用功率限制</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
<value>自動調整Windows電源模式</value>
|
<value>自動調整Windows電源模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>呼吸</value>
|
<value>呼吸</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraColorCycle" xml:space="preserve">
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
<value>循環</value>
|
<value>循環</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraFast" xml:space="preserve">
|
<data name="AuraFast" xml:space="preserve">
|
||||||
<value>快速</value>
|
<value>快速</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraNormal" xml:space="preserve">
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
<value>正常</value>
|
<value>正常</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraRainbow" xml:space="preserve">
|
<data name="AuraRainbow" xml:space="preserve">
|
||||||
<value>彩虹</value>
|
<value>彩虹</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraSlow" xml:space="preserve">
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
<value>慢</value>
|
<value>慢</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStatic" xml:space="preserve">
|
<data name="AuraStatic" xml:space="preserve">
|
||||||
<value>靜態</value>
|
<value>靜態</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraStrobe" xml:space="preserve">
|
<data name="AuraStrobe" xml:space="preserve">
|
||||||
<value>閃爍</value>
|
<value>閃爍</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoMode" xml:space="preserve">
|
<data name="AutoMode" xml:space="preserve">
|
||||||
<value>自動</value>
|
<value>自動</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
<value>電池模式時自動60Hz</value>
|
<value>電池模式時自動60Hz</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>喚醒時</value>
|
<value>喚醒時</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeout" xml:space="preserve">
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
<value>電池模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
<value>電池模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
<value>插電模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
<value>插電模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>平衡模式</value>
|
<value>平衡模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
<value>電池充電上限</value>
|
<value>電池充電上限</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Boot" xml:space="preserve">
|
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||||
|
<value>BIOS與驅動程式更新 Updates</value>
|
||||||
|
</data>
|
||||||
|
<data name="Boot" xml:space="preserve">
|
||||||
<value>開機時</value>
|
<value>開機時</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Brightness" xml:space="preserve">
|
<data name="Brightness" xml:space="preserve">
|
||||||
<value>亮度</value>
|
<value>亮度</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Color" xml:space="preserve">
|
<data name="Color" xml:space="preserve">
|
||||||
<value>顏色</value>
|
<value>顏色</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="CPUBoost" xml:space="preserve">
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
<value>CPU 加速</value>
|
<value>CPU 加速</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Custom" xml:space="preserve">
|
<data name="Custom" xml:space="preserve">
|
||||||
<value>自定義設置</value>
|
<value>自定義設置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Default" xml:space="preserve">
|
<data name="Default" xml:space="preserve">
|
||||||
<value>預設</value>
|
<value>預設</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DisableOverdrive" xml:space="preserve">
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
<value>禁用螢幕加速OD</value>
|
<value>禁用螢幕加速OD</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Discharging" xml:space="preserve">
|
<data name="Discharging" xml:space="preserve">
|
||||||
<value>正在釋放電力</value>
|
<value>正在釋放電力</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>下載更新</value>
|
<value>下載更新</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="DriverAndSoftware" xml:space="preserve">
|
||||||
|
<value>驅動程式與軟體</value>
|
||||||
|
</data>
|
||||||
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>禁用獨顯以節省電池電量</value>
|
<value>禁用獨顯以節省電池電量</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoMode" xml:space="preserve">
|
<data name="EcoMode" xml:space="preserve">
|
||||||
<value>節能模式</value>
|
<value>節能模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Extra" xml:space="preserve">
|
<data name="Extra" xml:space="preserve">
|
||||||
<value>更多</value>
|
<value>更多</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ExtraSettings" xml:space="preserve">
|
<data name="ExtraSettings" xml:space="preserve">
|
||||||
<value>更多設定</value>
|
<value>更多設定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FactoryDefaults" xml:space="preserve">
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
<value>恢復原廠設定</value>
|
<value>恢復原廠設定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanCurves" xml:space="preserve">
|
<data name="FanCurves" xml:space="preserve">
|
||||||
<value>風扇曲線</value>
|
<value>風扇曲線</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileCPU" xml:space="preserve">
|
<data name="FanProfileCPU" xml:space="preserve">
|
||||||
<value>CPU 風扇設置文件</value>
|
<value>CPU 風扇設定檔</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileGPU" xml:space="preserve">
|
<data name="FanProfileGPU" xml:space="preserve">
|
||||||
<value>GPU 風扇設置文件</value>
|
<value>GPU 風扇設定檔</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfileMid" xml:space="preserve">
|
<data name="FanProfileMid" xml:space="preserve">
|
||||||
<value>中等風扇設置</value>
|
<value>中等風扇設置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanProfiles" xml:space="preserve">
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
<value>風扇設置</value>
|
<value>風扇設置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>風扇和電源</value>
|
<value>風扇和電源</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanSpeed" xml:space="preserve">
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
<value> 風扇: </value>
|
<value> 風扇: </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>自定義設置</value>
|
<value>自定義設置</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FnLock" xml:space="preserve">
|
<data name="FnLock" xml:space="preserve">
|
||||||
<value>使用Fn+F1~F12的功能時不須按下Fn鍵</value>
|
<value>使用Fn+F1~F12功能時免按下Fn鍵</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUBoost" xml:space="preserve">
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
<value>Dynamic Boost</value>
|
<value>Dynamic Boost</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>切換中...</value>
|
<value>切換中...</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUCoreClockOffset" xml:space="preserve">
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
<value>核心時脈偏移量(Offset)</value>
|
<value>核心時脈偏移量(Offset)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
<value>顯示卡記憶體偏移量(Offset)</value>
|
<value>顯示卡記憶體偏移量(Offset)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUMode" xml:space="preserve">
|
<data name="GPUMode" xml:space="preserve">
|
||||||
<value>GPU 模式</value>
|
<value>GPU 模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeEco" xml:space="preserve">
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
<value>僅限內顯</value>
|
<value>僅限內顯</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeStandard" xml:space="preserve">
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
<value>內顯 + 獨顯</value>
|
<value>內顯 + 獨顯</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeUltimate" xml:space="preserve">
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
<value>獨立顯卡</value>
|
<value>獨立顯卡</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUSettings" xml:space="preserve">
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
<value>顯卡設定</value>
|
<value>顯卡設定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUTempTarget" xml:space="preserve">
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
<value>GPU溫度上限</value>
|
<value>GPU溫度上限</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyBindings" xml:space="preserve">
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
<value>按鍵綁定</value>
|
<value>按鍵綁定</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Keyboard" xml:space="preserve">
|
<data name="Keyboard" xml:space="preserve">
|
||||||
<value>鍵盤</value>
|
<value>鍵盤</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>電池模式時自動降低鍵盤背光亮度以節省電量</value>
|
<value>電池模式時自動降低鍵盤背光亮度以節省電量</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>背光</value>
|
<value>背光</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="KillGpuApps" xml:space="preserve">
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
<value>切換至節能模式時,關閉所有正在使用獨顯的程式</value>
|
<value>切換至節能模式時,關閉所有正在使用獨顯的程式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopKeyboard" xml:space="preserve">
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
<value>鍵盤背光:</value>
|
<value>鍵盤背光:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>螢幕顯示</value>
|
<value>螢幕顯示</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lid" xml:space="preserve">
|
<data name="Lid" xml:space="preserve">
|
||||||
<value>螢幕背蓋</value>
|
<value>螢幕背蓋</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Lightbar" xml:space="preserve">
|
<data name="Lightbar" xml:space="preserve">
|
||||||
<value>燈條</value>
|
<value>燈條</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Logo" xml:space="preserve">
|
<data name="Logo" xml:space="preserve">
|
||||||
<value>Logo</value>
|
<value>Logo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixAudio" xml:space="preserve">
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
<value>Audio Visualizer</value>
|
<value>音效視覺化</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>横幅</value>
|
<value>横幅</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixBright" xml:space="preserve">
|
<data name="MatrixBright" xml:space="preserve">
|
||||||
<value>明亮</value>
|
<value>明亮</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixClock" xml:space="preserve">
|
<data name="MatrixClock" xml:space="preserve">
|
||||||
<value>時鐘</value>
|
<value>時鐘</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixDim" xml:space="preserve">
|
<data name="MatrixDim" xml:space="preserve">
|
||||||
<value>黯淡</value>
|
<value>黯淡</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixLogo" xml:space="preserve">
|
<data name="MatrixLogo" xml:space="preserve">
|
||||||
<value>ROG logo</value>
|
<value>ROG logo</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixMedium" xml:space="preserve">
|
<data name="MatrixMedium" xml:space="preserve">
|
||||||
<value>中</value>
|
<value>中</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixOff" xml:space="preserve">
|
<data name="MatrixOff" xml:space="preserve">
|
||||||
<value>關閉</value>
|
<value>關閉</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MatrixPicture" xml:space="preserve">
|
<data name="MatrixPicture" xml:space="preserve">
|
||||||
<value>圖片</value>
|
<value>圖片</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
<value>更高的更新率和更低延遲</value>
|
<value>更高的更新率和更低延遲</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
<value>維持60Hz以節省電量</value>
|
<value>維持60Hz以節省電量</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>多區域</value>
|
<value>多區域</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MuteMic" xml:space="preserve">
|
<data name="MuteMic" xml:space="preserve">
|
||||||
<value>麥克風開關</value>
|
<value>麥克風開關</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>開啟G-Helper視窗</value>
|
<value>開啟G-Helper視窗</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Optimized" xml:space="preserve">
|
<data name="Optimized" xml:space="preserve">
|
||||||
<value>自動模式</value>
|
<value>自動模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>使用電池切換到節能模式,插入電源時切換到標準模式</value>
|
<value>使用電池切換到節能模式,插入電源時切換到標準模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedUSBC" xml:space="preserve">
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
<value>自動模式下,使用USB-C充電時持續關閉獨顯</value>
|
<value>自動模式下,使用USB-C充電時持續關閉獨顯</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>其他</value>
|
<value>其他</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Overdrive" xml:space="preserve">
|
<data name="Overdrive" xml:space="preserve">
|
||||||
<value>OD</value>
|
<value>OD</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PerformanceMode" xml:space="preserve">
|
<data name="PerformanceMode" xml:space="preserve">
|
||||||
<value>性能模式:</value>
|
<value>性能模式:</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureGif" xml:space="preserve">
|
<data name="PictureGif" xml:space="preserve">
|
||||||
<value>圖片/動圖</value>
|
<value>圖片/動圖</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PlayPause" xml:space="preserve">
|
<data name="PlayPause" xml:space="preserve">
|
||||||
<value>播放/暫停</value>
|
<value>播放/暫停</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>功率限制 (PPT)</value>
|
<value>功率限制 (PPT)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PPTExperimental" xml:space="preserve">
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
<value>功率限制 (PPT) 是實驗性功能。 謹慎使用,風險自負!</value>
|
<value>功率限制是實驗性功能。謹慎使用,風險自負!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PrintScreen" xml:space="preserve">
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
<value>截圖</value>
|
<value>截圖</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Quit" xml:space="preserve">
|
<data name="Quit" xml:space="preserve">
|
||||||
<value>退出</value>
|
<value>退出</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RestartGPU" xml:space="preserve">
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否在裝置管理員中重啟獨顯? * 請自行評估風險</value>
|
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否在裝置管理員中重啟獨顯? * 請自行評估風險</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>每分鐘轉數</value>
|
<value>每分鐘轉數</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RunOnStartup" xml:space="preserve">
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
<value>開機自動開啟</value>
|
<value>開機自動開啟</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Shutdown" xml:space="preserve">
|
<data name="Shutdown" xml:space="preserve">
|
||||||
<value>關機時</value>
|
<value>關機時</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Silent" xml:space="preserve">
|
<data name="Silent" xml:space="preserve">
|
||||||
<value>安靜模式</value>
|
<value>安靜模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Sleep" xml:space="preserve">
|
<data name="Sleep" xml:space="preserve">
|
||||||
<value>睡眠時</value>
|
<value>睡眠時</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
<value>標準模式會啟用獨顯</value>
|
<value>標準模式會啟用獨顯</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardMode" xml:space="preserve">
|
<data name="StandardMode" xml:space="preserve">
|
||||||
<value>標準模式</value>
|
<value>標準模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StartupError" xml:space="preserve">
|
<data name="StartupError" xml:space="preserve">
|
||||||
<value>啟動錯誤</value>
|
<value>啟動錯誤</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>切換Aura</value>
|
<value>切換Aura</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
|
<value>免按Fn鍵使用Fn+F1~F12功能</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>切換Miniled(若有支援)</value>
|
<value>切換Miniled(若有支援)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ToggleScreen" xml:space="preserve">
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
<value>切換螢幕</value>
|
<value>切換螢幕</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Turbo" xml:space="preserve">
|
<data name="Turbo" xml:space="preserve">
|
||||||
<value>極速模式</value>
|
<value>極速模式</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnedOff" xml:space="preserve">
|
<data name="TurnedOff" xml:space="preserve">
|
||||||
<value>已關閉</value>
|
<value>已關閉</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TurnOffOnBattery" xml:space="preserve">
|
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||||
<value>電池模式時關閉</value>
|
<value>電池模式時關閉</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
<value>開啟獨顯直連獲得最佳幀數</value>
|
<value>開啟獨顯直連獲得最佳幀數</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>獨顯直連</value>
|
<value>獨顯直連</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VersionLabel" xml:space="preserve">
|
<data name="Updates" xml:space="preserve">
|
||||||
|
<value>更新驅動</value>
|
||||||
|
</data>
|
||||||
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
<value>版本</value>
|
<value>版本</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeDown" xml:space="preserve">
|
<data name="VolumeDown" xml:space="preserve">
|
||||||
<value>音量降低</value>
|
<value>音量降低</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeMute" xml:space="preserve">
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
<value>靜音</value>
|
<value>靜音</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VolumeUp" xml:space="preserve">
|
<data name="VolumeUp" xml:space="preserve">
|
||||||
<value>音量增加</value>
|
<value>音量增加</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowTop" xml:space="preserve">
|
<data name="WindowTop" xml:space="preserve">
|
||||||
<value>視窗置頂</value>
|
<value>視窗置頂</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
BIN
app/Resources/icons8-bios-48.png
Normal file
BIN
app/Resources/icons8-bios-48.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 362 B |
BIN
app/Resources/icons8-software-48.png
Normal file
BIN
app/Resources/icons8-software-48.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 645 B |
664
app/Settings.Designer.cs
generated
664
app/Settings.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
132
app/Settings.cs
132
app/Settings.cs
@@ -28,12 +28,15 @@ namespace GHelper
|
|||||||
public AniMatrix matrix;
|
public AniMatrix matrix;
|
||||||
public Fans fans;
|
public Fans fans;
|
||||||
public Extra keyb;
|
public Extra keyb;
|
||||||
|
public Updates updates;
|
||||||
|
|
||||||
static long lastRefresh;
|
static long lastRefresh;
|
||||||
|
|
||||||
private bool customFans = false;
|
private bool customFans = false;
|
||||||
private int customPower = 0;
|
private int customPower = 0;
|
||||||
|
|
||||||
|
bool isGpuSection = true;
|
||||||
|
|
||||||
public SettingsForm()
|
public SettingsForm()
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -69,6 +72,7 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonMatrix.Text = Properties.Strings.PictureGif;
|
buttonMatrix.Text = Properties.Strings.PictureGif;
|
||||||
buttonQuit.Text = Properties.Strings.Quit;
|
buttonQuit.Text = Properties.Strings.Quit;
|
||||||
|
buttonUpdates.Text = Properties.Strings.Updates;
|
||||||
|
|
||||||
FormClosing += SettingsForm_FormClosing;
|
FormClosing += SettingsForm_FormClosing;
|
||||||
|
|
||||||
@@ -155,6 +159,8 @@ namespace GHelper
|
|||||||
button120Hz.MouseMove += Button120Hz_MouseHover;
|
button120Hz.MouseMove += Button120Hz_MouseHover;
|
||||||
button120Hz.MouseLeave += ButtonScreen_MouseLeave;
|
button120Hz.MouseLeave += ButtonScreen_MouseLeave;
|
||||||
|
|
||||||
|
buttonUpdates.Click += ButtonUpdates_Click;
|
||||||
|
|
||||||
sliderBattery.ValueChanged += SliderBattery_ValueChanged;
|
sliderBattery.ValueChanged += SliderBattery_ValueChanged;
|
||||||
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
|
Program.trayIcon.MouseMove += TrayIcon_MouseMove;
|
||||||
|
|
||||||
@@ -182,6 +188,18 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void ButtonUpdates_Click(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (updates == null || updates.Text == "")
|
||||||
|
{
|
||||||
|
updates = new Updates();
|
||||||
|
updates.Show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
updates.Close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void WndProc(ref Message m)
|
protected override void WndProc(ref Message m)
|
||||||
{
|
{
|
||||||
@@ -256,32 +274,36 @@ namespace GHelper
|
|||||||
|
|
||||||
contextMenuStrip.Items.Add("-");
|
contextMenuStrip.Items.Add("-");
|
||||||
|
|
||||||
var titleGPU = new ToolStripMenuItem(Properties.Strings.GPUMode);
|
if (isGpuSection)
|
||||||
titleGPU.Margin = padding;
|
{
|
||||||
titleGPU.Enabled = false;
|
var titleGPU = new ToolStripMenuItem(Properties.Strings.GPUMode);
|
||||||
contextMenuStrip.Items.Add(titleGPU);
|
titleGPU.Margin = padding;
|
||||||
|
titleGPU.Enabled = false;
|
||||||
|
contextMenuStrip.Items.Add(titleGPU);
|
||||||
|
|
||||||
menuEco = new ToolStripMenuItem(Properties.Strings.EcoMode);
|
menuEco = new ToolStripMenuItem(Properties.Strings.EcoMode);
|
||||||
menuEco.Click += ButtonEco_Click;
|
menuEco.Click += ButtonEco_Click;
|
||||||
menuEco.Margin = padding;
|
menuEco.Margin = padding;
|
||||||
contextMenuStrip.Items.Add(menuEco);
|
contextMenuStrip.Items.Add(menuEco);
|
||||||
|
|
||||||
menuStandard = new ToolStripMenuItem(Properties.Strings.StandardMode);
|
menuStandard = new ToolStripMenuItem(Properties.Strings.StandardMode);
|
||||||
menuStandard.Click += ButtonStandard_Click;
|
menuStandard.Click += ButtonStandard_Click;
|
||||||
menuStandard.Margin = padding;
|
menuStandard.Margin = padding;
|
||||||
contextMenuStrip.Items.Add(menuStandard);
|
contextMenuStrip.Items.Add(menuStandard);
|
||||||
|
|
||||||
menuUltimate = new ToolStripMenuItem(Properties.Strings.UltimateMode);
|
menuUltimate = new ToolStripMenuItem(Properties.Strings.UltimateMode);
|
||||||
menuUltimate.Click += ButtonUltimate_Click;
|
menuUltimate.Click += ButtonUltimate_Click;
|
||||||
menuUltimate.Margin = padding;
|
menuUltimate.Margin = padding;
|
||||||
contextMenuStrip.Items.Add(menuUltimate);
|
contextMenuStrip.Items.Add(menuUltimate);
|
||||||
|
|
||||||
menuOptimized = new ToolStripMenuItem(Properties.Strings.Optimized);
|
menuOptimized = new ToolStripMenuItem(Properties.Strings.Optimized);
|
||||||
menuOptimized.Click += ButtonOptimized_Click;
|
menuOptimized.Click += ButtonOptimized_Click;
|
||||||
menuOptimized.Margin = padding;
|
menuOptimized.Margin = padding;
|
||||||
contextMenuStrip.Items.Add(menuOptimized);
|
contextMenuStrip.Items.Add(menuOptimized);
|
||||||
|
|
||||||
|
contextMenuStrip.Items.Add("-");
|
||||||
|
}
|
||||||
|
|
||||||
contextMenuStrip.Items.Add("-");
|
|
||||||
|
|
||||||
var quit = new ToolStripMenuItem(Properties.Strings.Quit);
|
var quit = new ToolStripMenuItem(Properties.Strings.Quit);
|
||||||
quit.Click += ButtonQuit_Click;
|
quit.Click += ButtonQuit_Click;
|
||||||
@@ -331,7 +353,7 @@ namespace GHelper
|
|||||||
Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM");
|
Program.acpi.DeviceSet(AsusACPI.GPUXG, 1, "GPU XGM");
|
||||||
await Task.Delay(TimeSpan.FromSeconds(15));
|
await Task.Delay(TimeSpan.FromSeconds(15));
|
||||||
|
|
||||||
if (AppConfig.getConfigPerf("auto_apply") == 1)
|
if (AppConfig.isConfigPerf("auto_apply"))
|
||||||
AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM));
|
AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1117,7 +1139,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
customFans = false;
|
customFans = false;
|
||||||
|
|
||||||
if (AppConfig.getConfigPerf("auto_apply") == 1 || force)
|
if (AppConfig.isConfigPerf("auto_apply") || force)
|
||||||
{
|
{
|
||||||
|
|
||||||
bool xgmFan = false;
|
bool xgmFan = false;
|
||||||
@@ -1140,7 +1162,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
int mode = AppConfig.getConfig("performance_mode");
|
int mode = AppConfig.getConfig("performance_mode");
|
||||||
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
Logger.WriteLine("ASUS BIOS rejected fan curve, resetting mode to " + mode);
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "PerformanceMode");
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, mode, "Reset Mode");
|
||||||
LabelFansResult("ASUS BIOS rejected fan curve");
|
LabelFansResult("ASUS BIOS rejected fan curve");
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@@ -1149,8 +1171,8 @@ namespace GHelper
|
|||||||
customFans = true;
|
customFans = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
// fix for misbehaving bios on intell based TUF 2022
|
// force set PPTs for missbehaving bios on FX507/517 series
|
||||||
if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || xgmFan) && AppConfig.getConfigPerf("auto_apply_power") != 1)
|
if ((AppConfig.ContainsModel("FX507") || AppConfig.ContainsModel("FX517") || xgmFan) && !AppConfig.isConfigPerf("auto_apply_power"))
|
||||||
{
|
{
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
@@ -1166,20 +1188,42 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private static bool isManualModeRequired()
|
||||||
|
{
|
||||||
|
if (!AppConfig.isConfigPerf("auto_apply_power"))
|
||||||
|
return false;
|
||||||
|
|
||||||
|
return
|
||||||
|
AppConfig.isConfig("manual_mode") ||
|
||||||
|
AppConfig.ContainsModel("GU604") ||
|
||||||
|
AppConfig.ContainsModel("FX517") ||
|
||||||
|
AppConfig.ContainsModel("G733");
|
||||||
|
}
|
||||||
|
|
||||||
public void AutoPower(int delay = 0)
|
public void AutoPower(int delay = 0)
|
||||||
{
|
{
|
||||||
|
|
||||||
// fix for misbehaving bios PPTs on G513
|
|
||||||
if (AppConfig.ContainsModel("G513") && AppConfig.getConfigPerf("auto_apply") != 1)
|
|
||||||
{
|
|
||||||
AutoFans(true);
|
|
||||||
delay = 500;
|
|
||||||
}
|
|
||||||
|
|
||||||
customPower = 0;
|
customPower = 0;
|
||||||
|
|
||||||
bool applyPower = AppConfig.getConfigPerf("auto_apply_power") == 1;
|
bool applyPower = AppConfig.isConfigPerf("auto_apply_power");
|
||||||
bool applyGPU = true;
|
bool applyFans = AppConfig.isConfigPerf("auto_apply");
|
||||||
|
//bool applyGPU = true;
|
||||||
|
|
||||||
|
if (applyPower)
|
||||||
|
{
|
||||||
|
// force fan curve for misbehaving bios PPTs on G513
|
||||||
|
if (AppConfig.ContainsModel("G513") && !applyFans)
|
||||||
|
{
|
||||||
|
delay = 500;
|
||||||
|
AutoFans(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Fix for models that don't support PPT settings in all modes, setting a "manual" mode for them
|
||||||
|
if (isManualModeRequired() && !applyFans)
|
||||||
|
{
|
||||||
|
AutoFans(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (delay > 0)
|
if (delay > 0)
|
||||||
{
|
{
|
||||||
@@ -1205,8 +1249,8 @@ namespace GHelper
|
|||||||
public void SetPerformanceMode(int PerformanceMode = -1, bool notify = false)
|
public void SetPerformanceMode(int PerformanceMode = -1, bool notify = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
if (PerformanceMode < 0)
|
int oldMode = AppConfig.getConfig("performance_mode");
|
||||||
PerformanceMode = AppConfig.getConfig("performance_mode");
|
if (PerformanceMode < 0) PerformanceMode = oldMode;
|
||||||
|
|
||||||
buttonSilent.Activated = false;
|
buttonSilent.Activated = false;
|
||||||
buttonBalanced.Activated = false;
|
buttonBalanced.Activated = false;
|
||||||
@@ -1233,11 +1277,14 @@ namespace GHelper
|
|||||||
menuBalanced.Checked = buttonBalanced.Activated;
|
menuBalanced.Checked = buttonBalanced.Activated;
|
||||||
menuTurbo.Checked = buttonTurbo.Activated;
|
menuTurbo.Checked = buttonTurbo.Activated;
|
||||||
|
|
||||||
int oldMode = AppConfig.getConfig("performance_mode");
|
|
||||||
AppConfig.setConfig("performance_" + (int)SystemInformation.PowerStatus.PowerLineStatus, PerformanceMode);
|
AppConfig.setConfig("performance_" + (int)SystemInformation.PowerStatus.PowerLineStatus, PerformanceMode);
|
||||||
AppConfig.setConfig("performance_mode", PerformanceMode);
|
AppConfig.setConfig("performance_mode", PerformanceMode);
|
||||||
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, PerformanceMode, "PerformanceMode");
|
if (isManualModeRequired())
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, AsusACPI.PerformanceManual, "Manual Mode");
|
||||||
|
else
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, PerformanceMode, "Mode");
|
||||||
|
|
||||||
if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected()) AsusUSB.ResetXGM();
|
if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected()) AsusUSB.ResetXGM();
|
||||||
|
|
||||||
if (notify && (oldMode != PerformanceMode))
|
if (notify && (oldMode != PerformanceMode))
|
||||||
@@ -1468,10 +1515,11 @@ namespace GHelper
|
|||||||
|
|
||||||
UltimateUI(mux == 1);
|
UltimateUI(mux == 1);
|
||||||
|
|
||||||
if (eco < 0)
|
if (eco < 0 && mux < 0)
|
||||||
{
|
{
|
||||||
tableGPU.Visible = false;
|
isGpuSection = tableGPU.Visible = false;
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.GPU_Fan) < -65536) panelGPU.Visible = false;
|
SetContextMenu();
|
||||||
|
if (HardwareControl.FormatFan(Program.acpi.DeviceGet(AsusACPI.GPU_Fan)) is null) panelGPU.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,7 +106,7 @@ namespace WinFormsSliderBar
|
|||||||
private void RecalculateParameters()
|
private void RecalculateParameters()
|
||||||
{
|
{
|
||||||
_radius = 0.4F * ClientSize.Height;
|
_radius = 0.4F * ClientSize.Height;
|
||||||
_barSize = new SizeF(ClientSize.Width - 4 * _radius, ClientSize.Height * 0.15F);
|
_barSize = new SizeF(ClientSize.Width - 2 * _radius, ClientSize.Height * 0.15F);
|
||||||
_barPos = new PointF(_radius, (ClientSize.Height - _barSize.Height) / 2);
|
_barPos = new PointF(_radius, (ClientSize.Height - _barSize.Height) / 2);
|
||||||
_thumbPos = new PointF(
|
_thumbPos = new PointF(
|
||||||
_barSize.Width / (Max - Min) * (Value - Min) + _barPos.X,
|
_barSize.Width / (Max - Min) * (Value - Min) + _barPos.X,
|
||||||
|
|||||||
215
app/Updates.Designer.cs
generated
Normal file
215
app/Updates.Designer.cs
generated
Normal file
@@ -0,0 +1,215 @@
|
|||||||
|
namespace GHelper
|
||||||
|
{
|
||||||
|
partial class Updates
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Updates));
|
||||||
|
tableBios = new TableLayoutPanel();
|
||||||
|
labelBIOS = new Label();
|
||||||
|
pictureBios = new PictureBox();
|
||||||
|
panelBiosTitle = new Panel();
|
||||||
|
panelBios = new Panel();
|
||||||
|
panelDrivers = new Panel();
|
||||||
|
tableDrivers = new TableLayoutPanel();
|
||||||
|
panelDriversTitle = new Panel();
|
||||||
|
labelDrivers = new Label();
|
||||||
|
pictureDrivers = new PictureBox();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBios).BeginInit();
|
||||||
|
panelBiosTitle.SuspendLayout();
|
||||||
|
panelBios.SuspendLayout();
|
||||||
|
panelDrivers.SuspendLayout();
|
||||||
|
panelDriversTitle.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureDrivers).BeginInit();
|
||||||
|
SuspendLayout();
|
||||||
|
//
|
||||||
|
// tableBios
|
||||||
|
//
|
||||||
|
tableBios.AutoSize = true;
|
||||||
|
tableBios.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
tableBios.ColumnCount = 3;
|
||||||
|
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
||||||
|
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
|
||||||
|
tableBios.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
||||||
|
tableBios.Dock = DockStyle.Top;
|
||||||
|
tableBios.Location = new Point(10, 10);
|
||||||
|
tableBios.Margin = new Padding(2);
|
||||||
|
tableBios.MinimumSize = new Size(550, 0);
|
||||||
|
tableBios.Name = "tableBios";
|
||||||
|
tableBios.Size = new Size(608, 0);
|
||||||
|
tableBios.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// labelBIOS
|
||||||
|
//
|
||||||
|
labelBIOS.AutoSize = true;
|
||||||
|
labelBIOS.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelBIOS.Location = new Point(34, 14);
|
||||||
|
labelBIOS.Margin = new Padding(2, 0, 2, 0);
|
||||||
|
labelBIOS.Name = "labelBIOS";
|
||||||
|
labelBIOS.Size = new Size(35, 15);
|
||||||
|
labelBIOS.TabIndex = 1;
|
||||||
|
labelBIOS.Text = "BIOS";
|
||||||
|
//
|
||||||
|
// pictureBios
|
||||||
|
//
|
||||||
|
pictureBios.BackgroundImage = (Image)resources.GetObject("pictureBios.BackgroundImage");
|
||||||
|
pictureBios.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
pictureBios.Location = new Point(14, 14);
|
||||||
|
pictureBios.Margin = new Padding(2);
|
||||||
|
pictureBios.Name = "pictureBios";
|
||||||
|
pictureBios.Size = new Size(16, 16);
|
||||||
|
pictureBios.TabIndex = 2;
|
||||||
|
pictureBios.TabStop = false;
|
||||||
|
//
|
||||||
|
// panelBiosTitle
|
||||||
|
//
|
||||||
|
panelBiosTitle.Controls.Add(labelBIOS);
|
||||||
|
panelBiosTitle.Controls.Add(pictureBios);
|
||||||
|
panelBiosTitle.Dock = DockStyle.Top;
|
||||||
|
panelBiosTitle.Location = new Point(0, 0);
|
||||||
|
panelBiosTitle.Margin = new Padding(2);
|
||||||
|
panelBiosTitle.Name = "panelBiosTitle";
|
||||||
|
panelBiosTitle.Size = new Size(628, 31);
|
||||||
|
panelBiosTitle.TabIndex = 3;
|
||||||
|
//
|
||||||
|
// panelBios
|
||||||
|
//
|
||||||
|
panelBios.AutoSize = true;
|
||||||
|
panelBios.Controls.Add(tableBios);
|
||||||
|
panelBios.Dock = DockStyle.Top;
|
||||||
|
panelBios.Location = new Point(0, 31);
|
||||||
|
panelBios.Margin = new Padding(2);
|
||||||
|
panelBios.Name = "panelBios";
|
||||||
|
panelBios.Padding = new Padding(10);
|
||||||
|
panelBios.Size = new Size(628, 20);
|
||||||
|
panelBios.TabIndex = 4;
|
||||||
|
//
|
||||||
|
// panelDrivers
|
||||||
|
//
|
||||||
|
panelDrivers.AutoSize = true;
|
||||||
|
panelDrivers.Controls.Add(tableDrivers);
|
||||||
|
panelDrivers.Dock = DockStyle.Top;
|
||||||
|
panelDrivers.Location = new Point(0, 73);
|
||||||
|
panelDrivers.Margin = new Padding(2);
|
||||||
|
panelDrivers.Name = "panelDrivers";
|
||||||
|
panelDrivers.Padding = new Padding(10);
|
||||||
|
panelDrivers.Size = new Size(628, 20);
|
||||||
|
panelDrivers.TabIndex = 6;
|
||||||
|
//
|
||||||
|
// tableDrivers
|
||||||
|
//
|
||||||
|
tableDrivers.AutoSize = true;
|
||||||
|
tableDrivers.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
tableDrivers.ColumnCount = 3;
|
||||||
|
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
||||||
|
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 50F));
|
||||||
|
tableDrivers.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 25F));
|
||||||
|
tableDrivers.Dock = DockStyle.Top;
|
||||||
|
tableDrivers.Location = new Point(10, 10);
|
||||||
|
tableDrivers.Margin = new Padding(2);
|
||||||
|
tableDrivers.MinimumSize = new Size(550, 0);
|
||||||
|
tableDrivers.Name = "tableDrivers";
|
||||||
|
tableDrivers.Size = new Size(608, 0);
|
||||||
|
tableDrivers.TabIndex = 0;
|
||||||
|
//
|
||||||
|
// panelDriversTitle
|
||||||
|
//
|
||||||
|
panelDriversTitle.Controls.Add(labelDrivers);
|
||||||
|
panelDriversTitle.Controls.Add(pictureDrivers);
|
||||||
|
panelDriversTitle.Dock = DockStyle.Top;
|
||||||
|
panelDriversTitle.Location = new Point(0, 51);
|
||||||
|
panelDriversTitle.Margin = new Padding(2);
|
||||||
|
panelDriversTitle.Name = "panelDriversTitle";
|
||||||
|
panelDriversTitle.Size = new Size(628, 22);
|
||||||
|
panelDriversTitle.TabIndex = 5;
|
||||||
|
//
|
||||||
|
// labelDrivers
|
||||||
|
//
|
||||||
|
labelDrivers.AutoSize = true;
|
||||||
|
labelDrivers.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelDrivers.Location = new Point(34, 4);
|
||||||
|
labelDrivers.Margin = new Padding(2, 0, 2, 0);
|
||||||
|
labelDrivers.Name = "labelDrivers";
|
||||||
|
labelDrivers.Size = new Size(126, 15);
|
||||||
|
labelDrivers.TabIndex = 1;
|
||||||
|
labelDrivers.Text = "Drivers and Software";
|
||||||
|
//
|
||||||
|
// pictureDrivers
|
||||||
|
//
|
||||||
|
pictureDrivers.BackgroundImage = (Image)resources.GetObject("pictureDrivers.BackgroundImage");
|
||||||
|
pictureDrivers.BackgroundImageLayout = ImageLayout.Zoom;
|
||||||
|
pictureDrivers.Location = new Point(14, 4);
|
||||||
|
pictureDrivers.Margin = new Padding(2);
|
||||||
|
pictureDrivers.Name = "pictureDrivers";
|
||||||
|
pictureDrivers.Size = new Size(16, 16);
|
||||||
|
pictureDrivers.TabIndex = 2;
|
||||||
|
pictureDrivers.TabStop = false;
|
||||||
|
//
|
||||||
|
// Updates
|
||||||
|
//
|
||||||
|
AutoScaleDimensions = new SizeF(96F, 96F);
|
||||||
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
|
AutoScroll = true;
|
||||||
|
ClientSize = new Size(628, 345);
|
||||||
|
Controls.Add(panelDrivers);
|
||||||
|
Controls.Add(panelDriversTitle);
|
||||||
|
Controls.Add(panelBios);
|
||||||
|
Controls.Add(panelBiosTitle);
|
||||||
|
Margin = new Padding(2);
|
||||||
|
MinimizeBox = false;
|
||||||
|
Name = "Updates";
|
||||||
|
ShowIcon = false;
|
||||||
|
ShowInTaskbar = false;
|
||||||
|
Text = "BIOS and Driver Updates";
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureBios).EndInit();
|
||||||
|
panelBiosTitle.ResumeLayout(false);
|
||||||
|
panelBiosTitle.PerformLayout();
|
||||||
|
panelBios.ResumeLayout(false);
|
||||||
|
panelBios.PerformLayout();
|
||||||
|
panelDrivers.ResumeLayout(false);
|
||||||
|
panelDrivers.PerformLayout();
|
||||||
|
panelDriversTitle.ResumeLayout(false);
|
||||||
|
panelDriversTitle.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)pictureDrivers).EndInit();
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private TableLayoutPanel tableBios;
|
||||||
|
private Label labelBIOS;
|
||||||
|
private PictureBox pictureBios;
|
||||||
|
private Panel panelBiosTitle;
|
||||||
|
private Panel panelBios;
|
||||||
|
private Panel panelDrivers;
|
||||||
|
private TableLayoutPanel tableDrivers;
|
||||||
|
private Panel panelDriversTitle;
|
||||||
|
private Label labelDrivers;
|
||||||
|
private PictureBox pictureDrivers;
|
||||||
|
}
|
||||||
|
}
|
||||||
192
app/Updates.cs
Normal file
192
app/Updates.cs
Normal file
@@ -0,0 +1,192 @@
|
|||||||
|
using CustomControls;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Management;
|
||||||
|
using System.Text.Json;
|
||||||
|
|
||||||
|
namespace GHelper
|
||||||
|
{
|
||||||
|
public partial class Updates : RForm
|
||||||
|
{
|
||||||
|
//static int rowCount = 0;
|
||||||
|
static string model = AppConfig.GetModelShort();
|
||||||
|
|
||||||
|
public Updates()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
InitTheme();
|
||||||
|
|
||||||
|
Text = Properties.Strings.BiosAndDriverUpdates + ": " + model + " " + GetBiosVersion();
|
||||||
|
labelBIOS.Text = "BIOS";
|
||||||
|
labelDrivers.Text = Properties.Strings.DriverAndSoftware;
|
||||||
|
|
||||||
|
SuspendLayout();
|
||||||
|
tableBios.Visible = false;
|
||||||
|
tableDrivers.Visible = false;
|
||||||
|
|
||||||
|
Task.Run(async () =>
|
||||||
|
{
|
||||||
|
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDBIOS?website=global&model={model}&cpu=", 1, tableBios);
|
||||||
|
});
|
||||||
|
|
||||||
|
Task.Run(async () =>
|
||||||
|
{
|
||||||
|
DriversAsync($"https://rog.asus.com/support/webapi/product/GetPDDrivers?website=global&model={model}&osid=52", 0, tableDrivers);
|
||||||
|
});
|
||||||
|
|
||||||
|
Shown += Updates_Shown;
|
||||||
|
}
|
||||||
|
|
||||||
|
private void Updates_Shown(object? sender, EventArgs e)
|
||||||
|
{
|
||||||
|
Height = Program.settingsForm.Height;
|
||||||
|
Top = Program.settingsForm.Top;
|
||||||
|
Left = Program.settingsForm.Left - Width - 5;
|
||||||
|
}
|
||||||
|
private Dictionary<string, string> GetDeviceVersions()
|
||||||
|
{
|
||||||
|
using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("Select * from Win32_PnPSignedDriver"))
|
||||||
|
{
|
||||||
|
using (ManagementObjectCollection objCollection = objSearcher.Get())
|
||||||
|
{
|
||||||
|
Dictionary<string, string> list = new();
|
||||||
|
|
||||||
|
foreach (ManagementObject obj in objCollection)
|
||||||
|
{
|
||||||
|
if (obj["DeviceID"] is not null && obj["DriverVersion"] is not null)
|
||||||
|
list[obj["DeviceID"].ToString()] = obj["DriverVersion"].ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private string GetBiosVersion()
|
||||||
|
{
|
||||||
|
using (ManagementObjectSearcher objSearcher = new ManagementObjectSearcher("SELECT * FROM Win32_BIOS"))
|
||||||
|
{
|
||||||
|
using (ManagementObjectCollection objCollection = objSearcher.Get())
|
||||||
|
{
|
||||||
|
foreach (ManagementObject obj in objCollection)
|
||||||
|
if (obj["SMBIOSBIOSVersion"] is not null)
|
||||||
|
{
|
||||||
|
var bios = obj["SMBIOSBIOSVersion"].ToString();
|
||||||
|
int trim = bios.LastIndexOf(".");
|
||||||
|
if (trim > 0) return bios.Substring(trim + 1);
|
||||||
|
else return bios;
|
||||||
|
}
|
||||||
|
|
||||||
|
return "";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public async void DriversAsync(string url, int type, TableLayoutPanel table)
|
||||||
|
{
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Dictionary<string, string> devices = new();
|
||||||
|
string biosVersion = "";
|
||||||
|
|
||||||
|
if (type == 0) devices = GetDeviceVersions();
|
||||||
|
else biosVersion = GetBiosVersion();
|
||||||
|
|
||||||
|
//Debug.WriteLine(biosVersion);
|
||||||
|
|
||||||
|
using (var httpClient = new HttpClient())
|
||||||
|
{
|
||||||
|
httpClient.DefaultRequestHeaders.Add("User-Agent", "C# App");
|
||||||
|
var json = await httpClient.GetStringAsync(url);
|
||||||
|
var data = JsonSerializer.Deserialize<JsonElement>(json);
|
||||||
|
var groups = data.GetProperty("Result").GetProperty("Obj");
|
||||||
|
|
||||||
|
|
||||||
|
List<string> skipList = new() { "Armoury Crate & Aura Creator Installer", "MyASUS", "ASUS Smart Display Control", "Aura Wallpaper" };
|
||||||
|
|
||||||
|
for (int i = 0; i < groups.GetArrayLength(); i++)
|
||||||
|
{
|
||||||
|
var categoryName = groups[i].GetProperty("Name").ToString();
|
||||||
|
var files = groups[i].GetProperty("Files");
|
||||||
|
|
||||||
|
var oldTitle = "";
|
||||||
|
|
||||||
|
for (int j = 0; j < files.GetArrayLength(); j++)
|
||||||
|
{
|
||||||
|
|
||||||
|
var file = files[j];
|
||||||
|
var title = file.GetProperty("Title").ToString();
|
||||||
|
var version = file.GetProperty("Version").ToString().Replace("V", "");
|
||||||
|
var downloadUrl = file.GetProperty("DownloadUrl").GetProperty("Global").ToString();
|
||||||
|
|
||||||
|
//Debug.WriteLine(" - " + title + " " + version + " " + downloadUrl);
|
||||||
|
|
||||||
|
if (oldTitle != title && !skipList.Contains(title))
|
||||||
|
{
|
||||||
|
JsonElement hardwares = file.GetProperty("HardwareInfoList");
|
||||||
|
bool newer = false;
|
||||||
|
|
||||||
|
if (type == 0 && hardwares.ToString().Length > 0)
|
||||||
|
for (int k = 0; k < hardwares.GetArrayLength(); k++)
|
||||||
|
{
|
||||||
|
var deviceID = hardwares[k].GetProperty("hardwareid").ToString();
|
||||||
|
var localVersion = devices.Where(p => p.Key.Contains(deviceID)).Select(p => p.Value).FirstOrDefault();
|
||||||
|
if (localVersion is not null)
|
||||||
|
{
|
||||||
|
newer = (new Version(version).CompareTo(new Version(localVersion)) > 0);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (type == 1)
|
||||||
|
{
|
||||||
|
newer = Int32.Parse(version) > Int32.Parse(biosVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
string versionText = version.Replace("latest version at the ", "");
|
||||||
|
Label versionLabel = new Label { Text = versionText, Anchor = AnchorStyles.Left, Dock = DockStyle.Fill, Height = 50 };
|
||||||
|
versionLabel.Cursor = Cursors.Hand;
|
||||||
|
versionLabel.Font = new Font(versionLabel.Font, newer ? FontStyle.Underline | FontStyle.Bold : FontStyle.Underline);
|
||||||
|
versionLabel.ForeColor = newer ? colorTurbo : colorEco;
|
||||||
|
versionLabel.Padding = new Padding(5, 5, 5, 5);
|
||||||
|
versionLabel.Click += delegate
|
||||||
|
{
|
||||||
|
Process.Start(new ProcessStartInfo(downloadUrl) { UseShellExecute = true });
|
||||||
|
};
|
||||||
|
|
||||||
|
table.RowStyles.Add(new RowStyle(SizeType.AutoSize));
|
||||||
|
table.Controls.Add(new Label { Text = categoryName, Anchor = AnchorStyles.Left, Dock = DockStyle.Fill, Padding = new Padding(5, 5, 5, 5) }, 0, table.RowCount);
|
||||||
|
table.Controls.Add(new Label { Text = title, Anchor = AnchorStyles.Left, Dock = DockStyle.Fill, Padding = new Padding(5, 5, 5, 5) }, 1, table.RowCount);
|
||||||
|
table.Controls.Add(versionLabel, 2, table.RowCount);
|
||||||
|
table.RowCount++;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
oldTitle = title;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
BeginInvoke(delegate
|
||||||
|
{
|
||||||
|
table.Visible = true;
|
||||||
|
ResumeLayout(false);
|
||||||
|
PerformLayout();
|
||||||
|
});
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Debug.WriteLine(ex.ToString());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
149
app/Updates.resx
Normal file
149
app/Updates.resx
Normal file
@@ -0,0 +1,149 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing"">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="pictureBios.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||||
|
DAAACwwBP0AiyAAAAWlJREFUaEPtmN1Kw0AQhVOkoo8q7ZUiguid9ULwZaS+g3jtnT6FCv4g2DOhA23I
|
||||||
|
LrvHzKTCfPBRkuFsT9JCyDZBEASBB7fwE960R9tcwze4aI+2sZhRfMHf9WeXDygz+exiMaOQxdQu3jOK
|
||||||
|
3ILes2ImcAYf4eaC3s7hFFaxB+9g34JjeA/3YTHHsG+hMT2BxbxADZ7C6p9wAA7gOdQeT7CYH6jBqp9u
|
||||||
|
YOS7tce3nChFQ+LYUF1SIXlCvsPBnpAFpLpkSYXk8S7nXtsjH1JdsqRCcuflIq7aIx9SXbJQISOoLlTI
|
||||||
|
CKoLFTKC6kKFjKC6UCEjqC5UyAiqCxUygupChYygulAhI6guVMgIqgsVMoLqQoWMoLr8+xeaZ6jBMzjG
|
||||||
|
RRzCC6g9ql4pL6EGd0XZaChG7vgubassYfW/QDa2juAD7FvUS9lc+/OuyOaCXbxnFLkFvWcU7Fa4xYxC
|
||||||
|
X+b7tlO8Z0EQBMFQNM0KZ46+F5QUhV4AAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureDrivers.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAL
|
||||||
|
DAAACwwBP0AiyAAAAnJJREFUaEPtmL1qlEEUhhdF8Acbo51/KGKRWhvBP7S0Ve9AvAQxuYwUFkkjioro
|
||||||
|
DdgogqJipxa2giIqamOiieZ5IQuH4ezOmf2+3R3ke+CBsLvnzJnZmfnOptfR0dHx33AYr+JtfI1f8PeG
|
||||||
|
+luv3UJ95hBWwWa8jE/xL/4Lqs8q5hJuwqlwDt+hV2CJb/AsToxteAO9Ypq4gFtxrOzBF+gVoG3xGOfw
|
||||||
|
JO7H7bgDj+Ip1HsvcdB2e4YzOBZU/FtMB13DRZzFKEfwDnoT0Zbaja2ibeOt/Ac8gaNyDN9jmvc5trqd
|
||||||
|
Bu35P6ibpAm78BGmuXUmWuE8psmtbUxiC3qTaHw76Z5Pr0ptGxVtX2vrm0i3k85Do+eEHlI2oQ6s9ryK
|
||||||
|
HcckjmN6sC/iyOhpaZPptumTTmIVr2FT7qId8wmOhHobuxr6O70q+5NQ8Rf0Qgvoik3HPYjFqOnqJ5F6
|
||||||
|
SHloEm2svOUV2rGvYDHqHG2S6xhlH97Hnxs+RD2No8yjHfsmFqP21yZRexBBxX9FGyu/od6LcAZtrL6R
|
||||||
|
YtTD2yQHMIJW3sZZ72EEfVs27jMWs4I2iRqzCNoyNs76AyPsRBu3jMX8QptE/VCEYRP4jhG0WDZOtRTz
|
||||||
|
CW2SvRhBB9bGWXXHR9BZsXEfsRj17TbJaYyg/asDa2OlzlR0EdJDrE64mCW0SUrueq2gDqz2vNTKR4sX
|
||||||
|
GsuOrVrC2MAazeIF1WQWL6gms3hBNZnFC6rJLF5QTWbxgmoyixdUk1m8oJrM4gXVZJZh3eS0DXWzD9AL
|
||||||
|
rkH9WMqibtL7SThtVZP+YxFCnWO/m/SSTVLVoJUPF9/R0dExKXq9dc3qWY2Pp0GbAAAAAElFTkSuQmCC
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -199,7 +199,7 @@ App supports custom actions for M3, M4 and FN+F4 hotkeys. To set them select "Cu
|
|||||||
2. To simulate any windows key - put appropriate keycode into "action" field, for example ``0x2C`` for Print screen.
|
2. To simulate any windows key - put appropriate keycode into "action" field, for example ``0x2C`` for Print screen.
|
||||||
Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
|
Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
### Workaround for [bugged bios on G15](https://github.com/seerge/g-helper/issues/253) when external monitor is connected
|
### Workaround for [bugged bios on G15](https://github.com/seerge/g-helper/issues/253) when external monitor is connected
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user