mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
66 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
57ffcb8c7f | ||
|
|
5425bd0128 | ||
|
|
328cd8f9f1 | ||
|
|
38739ca8f6 | ||
|
|
a3e235e886 | ||
|
|
678f4b0eb7 | ||
|
|
4bbfbd0382 | ||
|
|
4c8291c74b | ||
|
|
e9060ad8c0 | ||
|
|
f26585e73c | ||
|
|
9f7da4c20a | ||
|
|
eff45c1485 | ||
|
|
be6e5e8f23 | ||
|
|
17083eef21 | ||
|
|
d5b098335b | ||
|
|
acb2efdd00 | ||
|
|
92fa210898 | ||
|
|
6dd4e07efe | ||
|
|
ae6972db76 | ||
|
|
b3f7b1027f | ||
|
|
8929daa604 | ||
|
|
eb522214f0 | ||
|
|
1222377c33 | ||
|
|
933f07d666 | ||
|
|
8f95f6a1bb | ||
|
|
f2c32b2e9a | ||
|
|
ddb591b79a | ||
|
|
65b4192393 | ||
|
|
846cc6e867 | ||
|
|
ddac5a23be | ||
|
|
4f6db4ae0a | ||
|
|
14dd96dee3 | ||
|
|
79ff24bbb7 | ||
|
|
b715bd0391 | ||
|
|
b97a06eb56 | ||
|
|
e69845e858 | ||
|
|
b832ba6e8b | ||
|
|
314d25c751 | ||
|
|
b52163949c | ||
|
|
f0ee2b8aac | ||
|
|
1603f625ed | ||
|
|
8f66006791 | ||
|
|
39387041fe | ||
|
|
400b2cd6cb | ||
|
|
b20442e61f | ||
|
|
6d219511fc | ||
|
|
2282820453 | ||
|
|
d4fcfe8895 | ||
|
|
8eb923a703 | ||
|
|
59548be543 | ||
|
|
1596ce84e8 | ||
|
|
f670b9e0dc | ||
|
|
52c2987c88 | ||
|
|
c9aa910035 | ||
|
|
22f648a23f | ||
|
|
9255a8554d | ||
|
|
859f4f55c3 | ||
|
|
7e3872939b | ||
|
|
2556583451 | ||
|
|
20e7d220e5 | ||
|
|
2f5543ce84 | ||
|
|
4c55e16f2e | ||
|
|
30544e74d7 | ||
|
|
f5925accb3 | ||
|
|
842ea2a92d | ||
|
|
1ca97bd3f4 |
@@ -60,9 +60,26 @@ public static class AppConfig
|
|||||||
{
|
{
|
||||||
|
|
||||||
GetModel();
|
GetModel();
|
||||||
return (_model is not null && _model.Contains(contains));
|
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");
|
||||||
|
|||||||
@@ -65,16 +65,16 @@ public class AsusACPI
|
|||||||
public const int Temp_CPU = 0x00120094;
|
public const int Temp_CPU = 0x00120094;
|
||||||
public const int Temp_GPU = 0x00120097;
|
public const int Temp_GPU = 0x00120097;
|
||||||
|
|
||||||
public const int PPT_TotalA0 = 0x001200A0; // Total PPT on 2022 (PPT_LIMIT_SLOW ) and CPU PPT on 2021
|
public const int PPT_TotalA0 = 0x001200A0; // SPL (Total limit for all-AMD models)
|
||||||
public const int PPT_EDCA1 = 0x001200A1; // CPU EDC
|
public const int PPT_EDCA1 = 0x001200A1; // CPU EDC
|
||||||
public const int PPT_TDCA2 = 0x001200A2; // CPU TDC
|
public const int PPT_TDCA2 = 0x001200A2; // CPU TDC
|
||||||
public const int PPT_APUA3 = 0x001200A3; // APU PPT ON 2021, doesn't work on 2022
|
public const int PPT_APUA3 = 0x001200A3; // sPPT (long boost limit)
|
||||||
|
|
||||||
public const int PPT_CPUB0 = 0x001200B0; // CPU PPT on 2022 (PPT_LIMIT_APU)
|
public const int PPT_CPUB0 = 0x001200B0; // CPU PPT on 2022 (PPT_LIMIT_APU)
|
||||||
public const int PPT_CPUB1 = 0x001200B1; // Total PPT on 2022 (PPT_LIMIT_SLOW)
|
public const int PPT_CPUB1 = 0x001200B1; // Total PPT on 2022 (PPT_LIMIT_SLOW)
|
||||||
|
|
||||||
public const int PPT_GPUC0 = 0x001200C0; // NVIDIA GPU Boost
|
public const int PPT_GPUC0 = 0x001200C0; // NVIDIA GPU Boost
|
||||||
public const int PPT_APUC1 = 0x001200C1; // Actual Power Limit (PPT_LIMIT_FAST) AND Sustained Power Limit (STAPM_LIMIT)
|
public const int PPT_APUC1 = 0x001200C1; // fPPT (fast boost limit)
|
||||||
public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C)
|
public const int PPT_GPUC2 = 0x001200C2; // NVIDIA GPU Temp Target (75.. 87 C)
|
||||||
|
|
||||||
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
public const int TUF_KB_BRIGHTNESS = 0x00050021;
|
||||||
@@ -82,6 +82,7 @@ public class AsusACPI
|
|||||||
public const int TUF_KB_STATE = 0x00100057;
|
public const int TUF_KB_STATE = 0x00100057;
|
||||||
|
|
||||||
public const int TabletState = 0x00060077;
|
public const int TabletState = 0x00060077;
|
||||||
|
public const int FnLock = 0x00100023;
|
||||||
|
|
||||||
public const int Tablet_Notebook = 0;
|
public const int Tablet_Notebook = 0;
|
||||||
public const int Tablet_Tablet = 1;
|
public const int Tablet_Tablet = 1;
|
||||||
@@ -91,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;
|
||||||
@@ -170,8 +172,8 @@ public class AsusACPI
|
|||||||
data[0] = BitConverter.GetBytes(eventHandle.ToInt32())[0];
|
data[0] = BitConverter.GetBytes(eventHandle.ToInt32())[0];
|
||||||
data[1] = BitConverter.GetBytes(eventHandle.ToInt32())[1];
|
data[1] = BitConverter.GetBytes(eventHandle.ToInt32())[1];
|
||||||
|
|
||||||
result = Control(0x222400, data, outBuffer);
|
Control(0x222400, data, outBuffer);
|
||||||
Logger.WriteLine("ACPI " + result + ":" + BitConverter.ToString(data) + "|" + BitConverter.ToString(outBuffer));
|
Logger.WriteLine("ACPI :" + BitConverter.ToString(data) + "|" + BitConverter.ToString(outBuffer));
|
||||||
|
|
||||||
while (true)
|
while (true)
|
||||||
{
|
{
|
||||||
@@ -202,10 +204,11 @@ public class AsusACPI
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
|
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)
|
||||||
{
|
{
|
||||||
|
|
||||||
uint lpBytesReturned = 0;
|
uint lpBytesReturned = 0;
|
||||||
return DeviceIoControl(
|
DeviceIoControl(
|
||||||
handle,
|
handle,
|
||||||
dwIoControlCode,
|
dwIoControlCode,
|
||||||
lpInBuffer,
|
lpInBuffer,
|
||||||
@@ -412,6 +415,29 @@ public class AsusACPI
|
|||||||
return DeviceGet(GPUXGConnected) == 1;
|
return DeviceGet(GPUXGConnected) == 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public bool IsAllAmdPPT()
|
||||||
|
{
|
||||||
|
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);
|
||||||
|
|||||||
@@ -124,6 +124,10 @@ namespace GHelper
|
|||||||
_modes.Remove(3);
|
_modes.Remove(3);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("G513QY")) {
|
||||||
|
return _modes;
|
||||||
|
}
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("Strix") || AppConfig.ContainsModel("Scar"))
|
if (AppConfig.ContainsModel("Strix") || AppConfig.ContainsModel("Scar"))
|
||||||
{
|
{
|
||||||
return _modesStrix;
|
return _modesStrix;
|
||||||
@@ -245,7 +249,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void ApplyBrightness(int brightness)
|
public static void ApplyBrightness(int brightness, string log = "Backlight")
|
||||||
{
|
{
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("TUF"))
|
if (AppConfig.ContainsModel("TUF"))
|
||||||
@@ -262,7 +266,7 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
device.OpenDevice();
|
device.OpenDevice();
|
||||||
device.WriteFeatureData(msg);
|
device.WriteFeatureData(msg);
|
||||||
Logger.WriteLine("KB Backlight:" + BitConverter.ToString(msg));
|
Logger.WriteLine(log + ":" + BitConverter.ToString(msg));
|
||||||
device.CloseDevice();
|
device.CloseDevice();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
542
app/Extra.Designer.cs
generated
542
app/Extra.Designer.cs
generated
@@ -33,21 +33,24 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
groupBindings = new GroupBox();
|
groupBindings = new GroupBox();
|
||||||
tableKeys = new TableLayoutPanel();
|
tableKeys = new TableLayoutPanel();
|
||||||
|
labelFNC = new Label();
|
||||||
textM2 = new TextBox();
|
textM2 = new TextBox();
|
||||||
textM1 = new TextBox();
|
textM1 = new TextBox();
|
||||||
comboM1 = new RComboBox();
|
comboM1 = new RComboBox();
|
||||||
labelM1 = new Label();
|
labelM1 = new Label();
|
||||||
labelFNF4 = new Label();
|
|
||||||
comboFNF4 = new RComboBox();
|
|
||||||
comboM4 = new RComboBox();
|
comboM4 = new RComboBox();
|
||||||
comboM3 = new RComboBox();
|
comboM3 = new RComboBox();
|
||||||
textFNF4 = new TextBox();
|
|
||||||
textM4 = new TextBox();
|
textM4 = new TextBox();
|
||||||
textM3 = new TextBox();
|
textM3 = new TextBox();
|
||||||
labelM4 = new Label();
|
labelM4 = new Label();
|
||||||
labelM3 = new Label();
|
labelM3 = new Label();
|
||||||
labelM2 = new Label();
|
labelM2 = new Label();
|
||||||
comboM2 = new RComboBox();
|
comboM2 = new RComboBox();
|
||||||
|
labelFNF4 = new Label();
|
||||||
|
comboFNF4 = new RComboBox();
|
||||||
|
textFNF4 = new TextBox();
|
||||||
|
comboFNC = new RComboBox();
|
||||||
|
textFNC = new TextBox();
|
||||||
pictureHelp = new PictureBox();
|
pictureHelp = new PictureBox();
|
||||||
groupLight = new GroupBox();
|
groupLight = new GroupBox();
|
||||||
panelBacklightExtra = new Panel();
|
panelBacklightExtra = new Panel();
|
||||||
@@ -83,12 +86,13 @@ namespace GHelper
|
|||||||
checkSleepLid = new CheckBox();
|
checkSleepLid = new CheckBox();
|
||||||
checkShutdownLid = new CheckBox();
|
checkShutdownLid = new CheckBox();
|
||||||
groupOther = new GroupBox();
|
groupOther = new GroupBox();
|
||||||
checkGpuApps = new CheckBox();
|
|
||||||
checkAutoApplyWindowsPowerMode = new CheckBox();
|
checkAutoApplyWindowsPowerMode = new CheckBox();
|
||||||
checkKeyboardAuto = 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();
|
||||||
@@ -104,12 +108,15 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
// groupBindings
|
// groupBindings
|
||||||
//
|
//
|
||||||
|
groupBindings.AutoSize = true;
|
||||||
groupBindings.Controls.Add(tableKeys);
|
groupBindings.Controls.Add(tableKeys);
|
||||||
groupBindings.Controls.Add(pictureHelp);
|
groupBindings.Controls.Add(pictureHelp);
|
||||||
groupBindings.Dock = DockStyle.Top;
|
groupBindings.Dock = DockStyle.Top;
|
||||||
groupBindings.Location = new Point(10, 10);
|
groupBindings.Location = new Point(9, 11);
|
||||||
|
groupBindings.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupBindings.Name = "groupBindings";
|
groupBindings.Name = "groupBindings";
|
||||||
groupBindings.Size = new Size(954, 324);
|
groupBindings.Padding = new Padding(4, 2, 50, 2);
|
||||||
|
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";
|
||||||
@@ -120,138 +127,143 @@ namespace GHelper
|
|||||||
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
|
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 20F));
|
||||||
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
|
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
|
||||||
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
|
tableKeys.ColumnStyles.Add(new ColumnStyle(SizeType.Percent, 40F));
|
||||||
|
tableKeys.Controls.Add(labelFNC, 0, 5);
|
||||||
tableKeys.Controls.Add(textM2, 2, 1);
|
tableKeys.Controls.Add(textM2, 2, 1);
|
||||||
tableKeys.Controls.Add(textM1, 2, 0);
|
tableKeys.Controls.Add(textM1, 2, 0);
|
||||||
tableKeys.Controls.Add(comboM1, 1, 0);
|
tableKeys.Controls.Add(comboM1, 1, 0);
|
||||||
tableKeys.Controls.Add(labelM1, 0, 0);
|
tableKeys.Controls.Add(labelM1, 0, 0);
|
||||||
tableKeys.Controls.Add(labelFNF4, 0, 4);
|
|
||||||
tableKeys.Controls.Add(comboFNF4, 1, 4);
|
|
||||||
tableKeys.Controls.Add(comboM4, 1, 3);
|
tableKeys.Controls.Add(comboM4, 1, 3);
|
||||||
tableKeys.Controls.Add(comboM3, 1, 2);
|
tableKeys.Controls.Add(comboM3, 1, 2);
|
||||||
tableKeys.Controls.Add(textFNF4, 2, 4);
|
|
||||||
tableKeys.Controls.Add(textM4, 2, 3);
|
tableKeys.Controls.Add(textM4, 2, 3);
|
||||||
tableKeys.Controls.Add(textM3, 2, 2);
|
tableKeys.Controls.Add(textM3, 2, 2);
|
||||||
tableKeys.Controls.Add(labelM4, 0, 3);
|
tableKeys.Controls.Add(labelM4, 0, 3);
|
||||||
tableKeys.Controls.Add(labelM3, 0, 2);
|
tableKeys.Controls.Add(labelM3, 0, 2);
|
||||||
tableKeys.Controls.Add(labelM2, 0, 1);
|
tableKeys.Controls.Add(labelM2, 0, 1);
|
||||||
tableKeys.Controls.Add(comboM2, 1, 1);
|
tableKeys.Controls.Add(comboM2, 1, 1);
|
||||||
tableKeys.Location = new Point(13, 38);
|
tableKeys.Controls.Add(labelFNF4, 0, 4);
|
||||||
|
tableKeys.Controls.Add(comboFNF4, 1, 4);
|
||||||
|
tableKeys.Controls.Add(textFNF4, 2, 4);
|
||||||
|
tableKeys.Controls.Add(comboFNC, 1, 5);
|
||||||
|
tableKeys.Controls.Add(textFNC, 2, 5);
|
||||||
|
tableKeys.Dock = DockStyle.Top;
|
||||||
|
tableKeys.Location = new Point(4, 34);
|
||||||
|
tableKeys.Margin = new Padding(4, 2, 4, 2);
|
||||||
tableKeys.Name = "tableKeys";
|
tableKeys.Name = "tableKeys";
|
||||||
tableKeys.Padding = new Padding(10);
|
tableKeys.Padding = new Padding(9, 11, 0, 11);
|
||||||
tableKeys.RowCount = 5;
|
tableKeys.RowCount = 6;
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 49F));
|
||||||
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 50F));
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 47F));
|
||||||
tableKeys.Size = new Size(897, 266);
|
tableKeys.RowStyles.Add(new RowStyle(SizeType.Absolute, 21F));
|
||||||
|
tableKeys.Size = new Size(912, 307);
|
||||||
tableKeys.TabIndex = 10;
|
tableKeys.TabIndex = 10;
|
||||||
//
|
//
|
||||||
|
// labelFNC
|
||||||
|
//
|
||||||
|
labelFNC.AutoSize = true;
|
||||||
|
labelFNC.Location = new Point(13, 254);
|
||||||
|
labelFNC.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelFNC.Name = "labelFNC";
|
||||||
|
labelFNC.Size = new Size(80, 32);
|
||||||
|
labelFNC.TabIndex = 15;
|
||||||
|
labelFNC.Text = "FN+C:";
|
||||||
|
//
|
||||||
// textM2
|
// textM2
|
||||||
//
|
//
|
||||||
textM2.Location = new Point(538, 63);
|
textM2.Dock = DockStyle.Top;
|
||||||
|
textM2.Location = new Point(554, 62);
|
||||||
|
textM2.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM2.Name = "textM2";
|
textM2.Name = "textM2";
|
||||||
textM2.PlaceholderText = "action";
|
textM2.PlaceholderText = "action";
|
||||||
textM2.Size = new Size(346, 39);
|
textM2.Size = new Size(354, 39);
|
||||||
textM2.TabIndex = 14;
|
textM2.TabIndex = 14;
|
||||||
//
|
//
|
||||||
// textM1
|
// textM1
|
||||||
//
|
//
|
||||||
textM1.Location = new Point(538, 13);
|
textM1.Dock = DockStyle.Top;
|
||||||
|
textM1.Location = new Point(554, 13);
|
||||||
|
textM1.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM1.Name = "textM1";
|
textM1.Name = "textM1";
|
||||||
textM1.PlaceholderText = "action";
|
textM1.PlaceholderText = "action";
|
||||||
textM1.Size = new Size(346, 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(188, 13);
|
comboM1.Location = new Point(193, 13);
|
||||||
|
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
|
||||||
//
|
//
|
||||||
labelM1.AutoSize = true;
|
labelM1.AutoSize = true;
|
||||||
labelM1.Location = new Point(13, 10);
|
labelM1.Location = new Point(13, 11);
|
||||||
|
labelM1.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelM1.Name = "labelM1";
|
labelM1.Name = "labelM1";
|
||||||
labelM1.Size = new Size(54, 32);
|
labelM1.Size = new Size(54, 32);
|
||||||
labelM1.TabIndex = 9;
|
labelM1.TabIndex = 9;
|
||||||
labelM1.Text = "M1:";
|
labelM1.Text = "M1:";
|
||||||
//
|
//
|
||||||
// labelFNF4
|
|
||||||
//
|
|
||||||
labelFNF4.AutoSize = true;
|
|
||||||
labelFNF4.Location = new Point(13, 210);
|
|
||||||
labelFNF4.Name = "labelFNF4";
|
|
||||||
labelFNF4.Size = new Size(90, 32);
|
|
||||||
labelFNF4.TabIndex = 6;
|
|
||||||
labelFNF4.Text = "FN+F4:";
|
|
||||||
//
|
|
||||||
// comboFNF4
|
|
||||||
//
|
|
||||||
comboFNF4.BorderColor = Color.White;
|
|
||||||
comboFNF4.ButtonColor = Color.FromArgb(255, 255, 255);
|
|
||||||
comboFNF4.FormattingEnabled = true;
|
|
||||||
comboFNF4.Location = new Point(188, 213);
|
|
||||||
comboFNF4.Name = "comboFNF4";
|
|
||||||
comboFNF4.Size = new Size(312, 40);
|
|
||||||
comboFNF4.TabIndex = 7;
|
|
||||||
//
|
|
||||||
// comboM4
|
// comboM4
|
||||||
//
|
//
|
||||||
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(188, 163);
|
comboM4.Location = new Point(193, 160);
|
||||||
|
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(188, 113);
|
comboM3.Location = new Point(193, 111);
|
||||||
|
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;
|
||||||
//
|
//
|
||||||
// textFNF4
|
|
||||||
//
|
|
||||||
textFNF4.Location = new Point(538, 213);
|
|
||||||
textFNF4.Name = "textFNF4";
|
|
||||||
textFNF4.PlaceholderText = "action";
|
|
||||||
textFNF4.Size = new Size(346, 39);
|
|
||||||
textFNF4.TabIndex = 8;
|
|
||||||
//
|
|
||||||
// textM4
|
// textM4
|
||||||
//
|
//
|
||||||
textM4.Location = new Point(538, 163);
|
textM4.Dock = DockStyle.Top;
|
||||||
|
textM4.Location = new Point(554, 160);
|
||||||
|
textM4.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM4.Name = "textM4";
|
textM4.Name = "textM4";
|
||||||
textM4.PlaceholderText = "action";
|
textM4.PlaceholderText = "action";
|
||||||
textM4.Size = new Size(346, 39);
|
textM4.Size = new Size(354, 39);
|
||||||
textM4.TabIndex = 5;
|
textM4.TabIndex = 5;
|
||||||
//
|
//
|
||||||
// textM3
|
// textM3
|
||||||
//
|
//
|
||||||
textM3.Location = new Point(538, 113);
|
textM3.Dock = DockStyle.Top;
|
||||||
|
textM3.Location = new Point(554, 111);
|
||||||
|
textM3.Margin = new Padding(4, 2, 4, 2);
|
||||||
textM3.Name = "textM3";
|
textM3.Name = "textM3";
|
||||||
textM3.PlaceholderText = "action";
|
textM3.PlaceholderText = "action";
|
||||||
textM3.Size = new Size(346, 39);
|
textM3.Size = new Size(354, 39);
|
||||||
textM3.TabIndex = 4;
|
textM3.TabIndex = 4;
|
||||||
//
|
//
|
||||||
// labelM4
|
// labelM4
|
||||||
//
|
//
|
||||||
labelM4.AutoSize = true;
|
labelM4.AutoSize = true;
|
||||||
labelM4.Location = new Point(13, 160);
|
labelM4.Location = new Point(13, 158);
|
||||||
|
labelM4.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelM4.Name = "labelM4";
|
labelM4.Name = "labelM4";
|
||||||
labelM4.Size = new Size(54, 32);
|
labelM4.Size = new Size(54, 32);
|
||||||
labelM4.TabIndex = 2;
|
labelM4.TabIndex = 2;
|
||||||
@@ -260,7 +272,8 @@ namespace GHelper
|
|||||||
// labelM3
|
// labelM3
|
||||||
//
|
//
|
||||||
labelM3.AutoSize = true;
|
labelM3.AutoSize = true;
|
||||||
labelM3.Location = new Point(13, 110);
|
labelM3.Location = new Point(13, 109);
|
||||||
|
labelM3.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelM3.Name = "labelM3";
|
labelM3.Name = "labelM3";
|
||||||
labelM3.Size = new Size(54, 32);
|
labelM3.Size = new Size(54, 32);
|
||||||
labelM3.TabIndex = 0;
|
labelM3.TabIndex = 0;
|
||||||
@@ -270,6 +283,7 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
labelM2.AutoSize = true;
|
labelM2.AutoSize = true;
|
||||||
labelM2.Location = new Point(13, 60);
|
labelM2.Location = new Point(13, 60);
|
||||||
|
labelM2.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelM2.Name = "labelM2";
|
labelM2.Name = "labelM2";
|
||||||
labelM2.Size = new Size(54, 32);
|
labelM2.Size = new Size(54, 32);
|
||||||
labelM2.TabIndex = 10;
|
labelM2.TabIndex = 10;
|
||||||
@@ -279,19 +293,76 @@ 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(188, 63);
|
comboM2.Location = new Point(193, 62);
|
||||||
|
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.AutoSize = true;
|
||||||
|
labelFNF4.Location = new Point(13, 207);
|
||||||
|
labelFNF4.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelFNF4.Name = "labelFNF4";
|
||||||
|
labelFNF4.Size = new Size(90, 32);
|
||||||
|
labelFNF4.TabIndex = 6;
|
||||||
|
labelFNF4.Text = "FN+F4:";
|
||||||
|
//
|
||||||
|
// comboFNF4
|
||||||
|
//
|
||||||
|
comboFNF4.BorderColor = Color.White;
|
||||||
|
comboFNF4.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboFNF4.Dock = DockStyle.Top;
|
||||||
|
comboFNF4.FormattingEnabled = true;
|
||||||
|
comboFNF4.Location = new Point(193, 209);
|
||||||
|
comboFNF4.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
comboFNF4.Name = "comboFNF4";
|
||||||
|
comboFNF4.Size = new Size(353, 40);
|
||||||
|
comboFNF4.TabIndex = 7;
|
||||||
|
//
|
||||||
|
// textFNF4
|
||||||
|
//
|
||||||
|
textFNF4.Dock = DockStyle.Top;
|
||||||
|
textFNF4.Location = new Point(554, 209);
|
||||||
|
textFNF4.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
textFNF4.Name = "textFNF4";
|
||||||
|
textFNF4.PlaceholderText = "action";
|
||||||
|
textFNF4.Size = new Size(354, 39);
|
||||||
|
textFNF4.TabIndex = 8;
|
||||||
|
//
|
||||||
|
// comboFNC
|
||||||
|
//
|
||||||
|
comboFNC.BorderColor = Color.White;
|
||||||
|
comboFNC.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||||
|
comboFNC.Dock = DockStyle.Top;
|
||||||
|
comboFNC.FormattingEnabled = true;
|
||||||
|
comboFNC.Location = new Point(193, 256);
|
||||||
|
comboFNC.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
comboFNC.Name = "comboFNC";
|
||||||
|
comboFNC.Size = new Size(353, 40);
|
||||||
|
comboFNC.TabIndex = 16;
|
||||||
|
//
|
||||||
|
// textFNC
|
||||||
|
//
|
||||||
|
textFNC.Dock = DockStyle.Top;
|
||||||
|
textFNC.Location = new Point(554, 256);
|
||||||
|
textFNC.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
textFNC.Name = "textFNC";
|
||||||
|
textFNC.PlaceholderText = "action";
|
||||||
|
textFNC.Size = new Size(354, 39);
|
||||||
|
textFNC.TabIndex = 17;
|
||||||
|
//
|
||||||
// pictureHelp
|
// pictureHelp
|
||||||
//
|
//
|
||||||
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(906, 51);
|
pictureHelp.Location = new Point(921, 51);
|
||||||
|
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);
|
||||||
pictureHelp.TabIndex = 9;
|
pictureHelp.TabIndex = 9;
|
||||||
@@ -300,19 +371,24 @@ namespace GHelper
|
|||||||
// groupLight
|
// groupLight
|
||||||
//
|
//
|
||||||
groupLight.AutoSize = true;
|
groupLight.AutoSize = true;
|
||||||
|
groupLight.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
groupLight.Controls.Add(panelBacklightExtra);
|
groupLight.Controls.Add(panelBacklightExtra);
|
||||||
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(10, 334);
|
groupLight.Location = new Point(9, 354);
|
||||||
|
groupLight.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupLight.Name = "groupLight";
|
groupLight.Name = "groupLight";
|
||||||
groupLight.Size = new Size(954, 563);
|
groupLight.Padding = new Padding(4, 2, 4, 11);
|
||||||
|
groupLight.Size = new Size(966, 554);
|
||||||
groupLight.TabIndex = 1;
|
groupLight.TabIndex = 1;
|
||||||
groupLight.TabStop = false;
|
groupLight.TabStop = false;
|
||||||
groupLight.Text = "Keyboard Backlight";
|
groupLight.Text = "Keyboard Backlight";
|
||||||
//
|
//
|
||||||
// panelBacklightExtra
|
// panelBacklightExtra
|
||||||
//
|
//
|
||||||
|
panelBacklightExtra.AutoSize = true;
|
||||||
|
panelBacklightExtra.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelBacklightExtra.Controls.Add(numericBacklightPluggedTime);
|
panelBacklightExtra.Controls.Add(numericBacklightPluggedTime);
|
||||||
panelBacklightExtra.Controls.Add(labelBacklightTimeoutPlugged);
|
panelBacklightExtra.Controls.Add(labelBacklightTimeoutPlugged);
|
||||||
panelBacklightExtra.Controls.Add(numericBacklightTime);
|
panelBacklightExtra.Controls.Add(numericBacklightTime);
|
||||||
@@ -322,46 +398,52 @@ namespace GHelper
|
|||||||
panelBacklightExtra.Controls.Add(labelSpeed);
|
panelBacklightExtra.Controls.Add(labelSpeed);
|
||||||
panelBacklightExtra.Controls.Add(comboKeyboardSpeed);
|
panelBacklightExtra.Controls.Add(comboKeyboardSpeed);
|
||||||
panelBacklightExtra.Dock = DockStyle.Top;
|
panelBacklightExtra.Dock = DockStyle.Top;
|
||||||
panelBacklightExtra.Location = new Point(3, 319);
|
panelBacklightExtra.Location = new Point(4, 315);
|
||||||
|
panelBacklightExtra.Margin = new Padding(4, 2, 4, 2);
|
||||||
panelBacklightExtra.Name = "panelBacklightExtra";
|
panelBacklightExtra.Name = "panelBacklightExtra";
|
||||||
panelBacklightExtra.Size = new Size(948, 241);
|
panelBacklightExtra.Size = new Size(958, 228);
|
||||||
panelBacklightExtra.TabIndex = 43;
|
panelBacklightExtra.TabIndex = 43;
|
||||||
//
|
//
|
||||||
// numericBacklightPluggedTime
|
// numericBacklightPluggedTime
|
||||||
//
|
//
|
||||||
numericBacklightPluggedTime.Location = new Point(655, 181);
|
numericBacklightPluggedTime.Location = new Point(702, 181);
|
||||||
|
numericBacklightPluggedTime.Margin = new Padding(4, 2, 4, 2);
|
||||||
numericBacklightPluggedTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
|
numericBacklightPluggedTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
|
||||||
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
|
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
|
||||||
numericBacklightPluggedTime.Size = new Size(240, 39);
|
numericBacklightPluggedTime.Size = new Size(193, 39);
|
||||||
numericBacklightPluggedTime.TabIndex = 49;
|
numericBacklightPluggedTime.TabIndex = 49;
|
||||||
//
|
//
|
||||||
// labelBacklightTimeoutPlugged
|
// labelBacklightTimeoutPlugged
|
||||||
//
|
//
|
||||||
labelBacklightTimeoutPlugged.Location = new Point(13, 183);
|
labelBacklightTimeoutPlugged.Location = new Point(13, 183);
|
||||||
|
labelBacklightTimeoutPlugged.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklightTimeoutPlugged.Name = "labelBacklightTimeoutPlugged";
|
labelBacklightTimeoutPlugged.Name = "labelBacklightTimeoutPlugged";
|
||||||
labelBacklightTimeoutPlugged.Size = new Size(636, 45);
|
labelBacklightTimeoutPlugged.Size = new Size(683, 45);
|
||||||
labelBacklightTimeoutPlugged.TabIndex = 48;
|
labelBacklightTimeoutPlugged.TabIndex = 48;
|
||||||
labelBacklightTimeoutPlugged.Text = "Seconds to turn off backlight when plugged";
|
labelBacklightTimeoutPlugged.Text = "Seconds to turn off backlight when plugged";
|
||||||
//
|
//
|
||||||
// numericBacklightTime
|
// numericBacklightTime
|
||||||
//
|
//
|
||||||
numericBacklightTime.Location = new Point(655, 133);
|
numericBacklightTime.Location = new Point(702, 132);
|
||||||
|
numericBacklightTime.Margin = new Padding(4, 2, 4, 2);
|
||||||
numericBacklightTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
|
numericBacklightTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
|
||||||
numericBacklightTime.Name = "numericBacklightTime";
|
numericBacklightTime.Name = "numericBacklightTime";
|
||||||
numericBacklightTime.Size = new Size(240, 39);
|
numericBacklightTime.Size = new Size(193, 39);
|
||||||
numericBacklightTime.TabIndex = 47;
|
numericBacklightTime.TabIndex = 47;
|
||||||
//
|
//
|
||||||
// labelBacklightTimeout
|
// labelBacklightTimeout
|
||||||
//
|
//
|
||||||
labelBacklightTimeout.Location = new Point(13, 135);
|
labelBacklightTimeout.Location = new Point(13, 134);
|
||||||
|
labelBacklightTimeout.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklightTimeout.Name = "labelBacklightTimeout";
|
labelBacklightTimeout.Name = "labelBacklightTimeout";
|
||||||
labelBacklightTimeout.Size = new Size(636, 45);
|
labelBacklightTimeout.Size = new Size(683, 45);
|
||||||
labelBacklightTimeout.TabIndex = 46;
|
labelBacklightTimeout.TabIndex = 46;
|
||||||
labelBacklightTimeout.Text = "Seconds to turn off backlight on battery";
|
labelBacklightTimeout.Text = "Seconds to turn off backlight on battery";
|
||||||
//
|
//
|
||||||
// labelBrightness
|
// labelBrightness
|
||||||
//
|
//
|
||||||
labelBrightness.Location = new Point(13, 75);
|
labelBrightness.Location = new Point(13, 75);
|
||||||
|
labelBrightness.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBrightness.Name = "labelBrightness";
|
labelBrightness.Name = "labelBrightness";
|
||||||
labelBrightness.Size = new Size(336, 43);
|
labelBrightness.Size = new Size(336, 43);
|
||||||
labelBrightness.TabIndex = 41;
|
labelBrightness.TabIndex = 41;
|
||||||
@@ -371,17 +453,19 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
trackBrightness.LargeChange = 1;
|
trackBrightness.LargeChange = 1;
|
||||||
trackBrightness.Location = new Point(355, 60);
|
trackBrightness.Location = new Point(355, 60);
|
||||||
|
trackBrightness.Margin = new Padding(4, 2, 4, 2);
|
||||||
trackBrightness.Maximum = 3;
|
trackBrightness.Maximum = 3;
|
||||||
trackBrightness.Name = "trackBrightness";
|
trackBrightness.Name = "trackBrightness";
|
||||||
trackBrightness.Size = new Size(558, 90);
|
trackBrightness.Size = new Size(557, 90);
|
||||||
trackBrightness.TabIndex = 42;
|
trackBrightness.TabIndex = 42;
|
||||||
trackBrightness.TickStyle = TickStyle.TopLeft;
|
trackBrightness.TickStyle = TickStyle.TopLeft;
|
||||||
//
|
//
|
||||||
// labelSpeed
|
// labelSpeed
|
||||||
//
|
//
|
||||||
labelSpeed.Location = new Point(13, 15);
|
labelSpeed.Location = new Point(13, 15);
|
||||||
|
labelSpeed.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelSpeed.Name = "labelSpeed";
|
labelSpeed.Name = "labelSpeed";
|
||||||
labelSpeed.Size = new Size(538, 40);
|
labelSpeed.Size = new Size(539, 41);
|
||||||
labelSpeed.TabIndex = 44;
|
labelSpeed.TabIndex = 44;
|
||||||
labelSpeed.Text = "Animation Speed";
|
labelSpeed.Text = "Animation Speed";
|
||||||
//
|
//
|
||||||
@@ -395,9 +479,9 @@ namespace GHelper
|
|||||||
comboKeyboardSpeed.ItemHeight = 32;
|
comboKeyboardSpeed.ItemHeight = 32;
|
||||||
comboKeyboardSpeed.Items.AddRange(new object[] { "Slow", "Normal", "Fast" });
|
comboKeyboardSpeed.Items.AddRange(new object[] { "Slow", "Normal", "Fast" });
|
||||||
comboKeyboardSpeed.Location = new Point(607, 15);
|
comboKeyboardSpeed.Location = new Point(607, 15);
|
||||||
comboKeyboardSpeed.Margin = new Padding(4, 10, 4, 8);
|
comboKeyboardSpeed.Margin = new Padding(4, 11, 4, 9);
|
||||||
comboKeyboardSpeed.Name = "comboKeyboardSpeed";
|
comboKeyboardSpeed.Name = "comboKeyboardSpeed";
|
||||||
comboKeyboardSpeed.Size = new Size(291, 40);
|
comboKeyboardSpeed.Size = new Size(292, 40);
|
||||||
comboKeyboardSpeed.TabIndex = 43;
|
comboKeyboardSpeed.TabIndex = 43;
|
||||||
comboKeyboardSpeed.TabStop = false;
|
comboKeyboardSpeed.TabStop = false;
|
||||||
//
|
//
|
||||||
@@ -405,18 +489,20 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
panelXMG.Controls.Add(checkXMG);
|
panelXMG.Controls.Add(checkXMG);
|
||||||
panelXMG.Dock = DockStyle.Top;
|
panelXMG.Dock = DockStyle.Top;
|
||||||
panelXMG.Location = new Point(3, 261);
|
panelXMG.Location = new Point(4, 257);
|
||||||
|
panelXMG.Margin = new Padding(4, 2, 4, 2);
|
||||||
panelXMG.Name = "panelXMG";
|
panelXMG.Name = "panelXMG";
|
||||||
panelXMG.Size = new Size(948, 58);
|
panelXMG.Size = new Size(958, 58);
|
||||||
panelXMG.TabIndex = 42;
|
panelXMG.TabIndex = 42;
|
||||||
//
|
//
|
||||||
// checkXMG
|
// checkXMG
|
||||||
//
|
//
|
||||||
checkXMG.AutoSize = true;
|
checkXMG.AutoSize = true;
|
||||||
checkXMG.Location = new Point(3, 10);
|
checkXMG.Location = new Point(4, 11);
|
||||||
|
checkXMG.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkXMG.Name = "checkXMG";
|
checkXMG.Name = "checkXMG";
|
||||||
checkXMG.Padding = new Padding(15, 2, 5, 2);
|
checkXMG.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkXMG.Size = new Size(178, 40);
|
checkXMG.Size = new Size(179, 40);
|
||||||
checkXMG.TabIndex = 2;
|
checkXMG.TabIndex = 2;
|
||||||
checkXMG.Text = "XG Mobile";
|
checkXMG.Text = "XG Mobile";
|
||||||
checkXMG.UseVisualStyleBackColor = true;
|
checkXMG.UseVisualStyleBackColor = true;
|
||||||
@@ -450,7 +536,7 @@ namespace GHelper
|
|||||||
tableBacklight.Controls.Add(checkSleepLid, 3, 3);
|
tableBacklight.Controls.Add(checkSleepLid, 3, 3);
|
||||||
tableBacklight.Controls.Add(checkShutdownLid, 3, 4);
|
tableBacklight.Controls.Add(checkShutdownLid, 3, 4);
|
||||||
tableBacklight.Dock = DockStyle.Top;
|
tableBacklight.Dock = DockStyle.Top;
|
||||||
tableBacklight.Location = new Point(3, 35);
|
tableBacklight.Location = new Point(4, 34);
|
||||||
tableBacklight.Margin = new Padding(0);
|
tableBacklight.Margin = new Padding(0);
|
||||||
tableBacklight.Name = "tableBacklight";
|
tableBacklight.Name = "tableBacklight";
|
||||||
tableBacklight.RowCount = 5;
|
tableBacklight.RowCount = 5;
|
||||||
@@ -459,27 +545,29 @@ namespace GHelper
|
|||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.RowStyles.Add(new RowStyle());
|
tableBacklight.RowStyles.Add(new RowStyle());
|
||||||
tableBacklight.Size = new Size(948, 226);
|
tableBacklight.Size = new Size(958, 223);
|
||||||
tableBacklight.TabIndex = 41;
|
tableBacklight.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// labelBacklight
|
// labelBacklight
|
||||||
//
|
//
|
||||||
labelBacklight.Dock = DockStyle.Fill;
|
labelBacklight.Dock = DockStyle.Fill;
|
||||||
labelBacklight.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklight.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklight.Location = new Point(3, 0);
|
labelBacklight.Location = new Point(4, 0);
|
||||||
|
labelBacklight.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklight.Name = "labelBacklight";
|
labelBacklight.Name = "labelBacklight";
|
||||||
labelBacklight.Padding = new Padding(10, 5, 5, 5);
|
labelBacklight.Padding = new Padding(9, 4, 6, 4);
|
||||||
labelBacklight.Size = new Size(231, 42);
|
labelBacklight.Size = new Size(231, 43);
|
||||||
labelBacklight.TabIndex = 6;
|
labelBacklight.TabIndex = 6;
|
||||||
labelBacklight.Text = "Keyboard";
|
labelBacklight.Text = "Keyboard";
|
||||||
//
|
//
|
||||||
// checkAwake
|
// checkAwake
|
||||||
//
|
//
|
||||||
checkAwake.Dock = DockStyle.Fill;
|
checkAwake.Dock = DockStyle.Fill;
|
||||||
checkAwake.Location = new Point(3, 45);
|
checkAwake.Location = new Point(4, 45);
|
||||||
|
checkAwake.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkAwake.Name = "checkAwake";
|
checkAwake.Name = "checkAwake";
|
||||||
checkAwake.Padding = new Padding(15, 2, 5, 2);
|
checkAwake.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkAwake.Size = new Size(231, 40);
|
checkAwake.Size = new Size(231, 41);
|
||||||
checkAwake.TabIndex = 1;
|
checkAwake.TabIndex = 1;
|
||||||
checkAwake.Text = Strings.Awake;
|
checkAwake.Text = Strings.Awake;
|
||||||
checkAwake.UseVisualStyleBackColor = true;
|
checkAwake.UseVisualStyleBackColor = true;
|
||||||
@@ -487,10 +575,11 @@ namespace GHelper
|
|||||||
// checkBoot
|
// checkBoot
|
||||||
//
|
//
|
||||||
checkBoot.Dock = DockStyle.Fill;
|
checkBoot.Dock = DockStyle.Fill;
|
||||||
checkBoot.Location = new Point(3, 91);
|
checkBoot.Location = new Point(4, 90);
|
||||||
|
checkBoot.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkBoot.Name = "checkBoot";
|
checkBoot.Name = "checkBoot";
|
||||||
checkBoot.Padding = new Padding(15, 2, 5, 2);
|
checkBoot.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkBoot.Size = new Size(231, 40);
|
checkBoot.Size = new Size(231, 41);
|
||||||
checkBoot.TabIndex = 2;
|
checkBoot.TabIndex = 2;
|
||||||
checkBoot.Text = Strings.Boot;
|
checkBoot.Text = Strings.Boot;
|
||||||
checkBoot.UseVisualStyleBackColor = true;
|
checkBoot.UseVisualStyleBackColor = true;
|
||||||
@@ -498,10 +587,11 @@ namespace GHelper
|
|||||||
// checkSleep
|
// checkSleep
|
||||||
//
|
//
|
||||||
checkSleep.Dock = DockStyle.Fill;
|
checkSleep.Dock = DockStyle.Fill;
|
||||||
checkSleep.Location = new Point(3, 137);
|
checkSleep.Location = new Point(4, 135);
|
||||||
|
checkSleep.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkSleep.Name = "checkSleep";
|
checkSleep.Name = "checkSleep";
|
||||||
checkSleep.Padding = new Padding(15, 2, 5, 2);
|
checkSleep.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkSleep.Size = new Size(231, 40);
|
checkSleep.Size = new Size(231, 41);
|
||||||
checkSleep.TabIndex = 3;
|
checkSleep.TabIndex = 3;
|
||||||
checkSleep.Text = "Sleep";
|
checkSleep.Text = "Sleep";
|
||||||
checkSleep.UseVisualStyleBackColor = true;
|
checkSleep.UseVisualStyleBackColor = true;
|
||||||
@@ -509,10 +599,11 @@ namespace GHelper
|
|||||||
// checkShutdown
|
// checkShutdown
|
||||||
//
|
//
|
||||||
checkShutdown.Dock = DockStyle.Fill;
|
checkShutdown.Dock = DockStyle.Fill;
|
||||||
checkShutdown.Location = new Point(3, 183);
|
checkShutdown.Location = new Point(4, 180);
|
||||||
|
checkShutdown.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkShutdown.Name = "checkShutdown";
|
checkShutdown.Name = "checkShutdown";
|
||||||
checkShutdown.Padding = new Padding(15, 2, 5, 2);
|
checkShutdown.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkShutdown.Size = new Size(231, 40);
|
checkShutdown.Size = new Size(231, 41);
|
||||||
checkShutdown.TabIndex = 4;
|
checkShutdown.TabIndex = 4;
|
||||||
checkShutdown.Text = Strings.Shutdown;
|
checkShutdown.Text = Strings.Shutdown;
|
||||||
checkShutdown.UseVisualStyleBackColor = true;
|
checkShutdown.UseVisualStyleBackColor = true;
|
||||||
@@ -521,20 +612,22 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
labelBacklightLogo.Dock = DockStyle.Fill;
|
labelBacklightLogo.Dock = DockStyle.Fill;
|
||||||
labelBacklightLogo.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightLogo.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightLogo.Location = new Point(240, 0);
|
labelBacklightLogo.Location = new Point(243, 0);
|
||||||
|
labelBacklightLogo.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklightLogo.Name = "labelBacklightLogo";
|
labelBacklightLogo.Name = "labelBacklightLogo";
|
||||||
labelBacklightLogo.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightLogo.Padding = new Padding(9, 4, 6, 4);
|
||||||
labelBacklightLogo.Size = new Size(231, 42);
|
labelBacklightLogo.Size = new Size(231, 43);
|
||||||
labelBacklightLogo.TabIndex = 21;
|
labelBacklightLogo.TabIndex = 21;
|
||||||
labelBacklightLogo.Text = "Logo";
|
labelBacklightLogo.Text = "Logo";
|
||||||
//
|
//
|
||||||
// checkAwakeLogo
|
// checkAwakeLogo
|
||||||
//
|
//
|
||||||
checkAwakeLogo.Dock = DockStyle.Fill;
|
checkAwakeLogo.Dock = DockStyle.Fill;
|
||||||
checkAwakeLogo.Location = new Point(240, 45);
|
checkAwakeLogo.Location = new Point(243, 45);
|
||||||
|
checkAwakeLogo.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkAwakeLogo.Name = "checkAwakeLogo";
|
checkAwakeLogo.Name = "checkAwakeLogo";
|
||||||
checkAwakeLogo.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeLogo.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkAwakeLogo.Size = new Size(231, 40);
|
checkAwakeLogo.Size = new Size(231, 41);
|
||||||
checkAwakeLogo.TabIndex = 17;
|
checkAwakeLogo.TabIndex = 17;
|
||||||
checkAwakeLogo.Text = Strings.Awake;
|
checkAwakeLogo.Text = Strings.Awake;
|
||||||
checkAwakeLogo.UseVisualStyleBackColor = true;
|
checkAwakeLogo.UseVisualStyleBackColor = true;
|
||||||
@@ -542,10 +635,11 @@ namespace GHelper
|
|||||||
// checkBootLogo
|
// checkBootLogo
|
||||||
//
|
//
|
||||||
checkBootLogo.Dock = DockStyle.Fill;
|
checkBootLogo.Dock = DockStyle.Fill;
|
||||||
checkBootLogo.Location = new Point(240, 91);
|
checkBootLogo.Location = new Point(243, 90);
|
||||||
|
checkBootLogo.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkBootLogo.Name = "checkBootLogo";
|
checkBootLogo.Name = "checkBootLogo";
|
||||||
checkBootLogo.Padding = new Padding(15, 2, 5, 2);
|
checkBootLogo.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkBootLogo.Size = new Size(231, 40);
|
checkBootLogo.Size = new Size(231, 41);
|
||||||
checkBootLogo.TabIndex = 18;
|
checkBootLogo.TabIndex = 18;
|
||||||
checkBootLogo.Text = Strings.Boot;
|
checkBootLogo.Text = Strings.Boot;
|
||||||
checkBootLogo.UseVisualStyleBackColor = true;
|
checkBootLogo.UseVisualStyleBackColor = true;
|
||||||
@@ -553,10 +647,11 @@ namespace GHelper
|
|||||||
// checkSleepLogo
|
// checkSleepLogo
|
||||||
//
|
//
|
||||||
checkSleepLogo.Dock = DockStyle.Fill;
|
checkSleepLogo.Dock = DockStyle.Fill;
|
||||||
checkSleepLogo.Location = new Point(240, 137);
|
checkSleepLogo.Location = new Point(243, 135);
|
||||||
|
checkSleepLogo.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkSleepLogo.Name = "checkSleepLogo";
|
checkSleepLogo.Name = "checkSleepLogo";
|
||||||
checkSleepLogo.Padding = new Padding(15, 2, 5, 2);
|
checkSleepLogo.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkSleepLogo.Size = new Size(231, 40);
|
checkSleepLogo.Size = new Size(231, 41);
|
||||||
checkSleepLogo.TabIndex = 19;
|
checkSleepLogo.TabIndex = 19;
|
||||||
checkSleepLogo.Text = Strings.Sleep;
|
checkSleepLogo.Text = Strings.Sleep;
|
||||||
checkSleepLogo.UseVisualStyleBackColor = true;
|
checkSleepLogo.UseVisualStyleBackColor = true;
|
||||||
@@ -564,10 +659,11 @@ namespace GHelper
|
|||||||
// checkShutdownLogo
|
// checkShutdownLogo
|
||||||
//
|
//
|
||||||
checkShutdownLogo.Dock = DockStyle.Fill;
|
checkShutdownLogo.Dock = DockStyle.Fill;
|
||||||
checkShutdownLogo.Location = new Point(240, 183);
|
checkShutdownLogo.Location = new Point(243, 180);
|
||||||
|
checkShutdownLogo.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkShutdownLogo.Name = "checkShutdownLogo";
|
checkShutdownLogo.Name = "checkShutdownLogo";
|
||||||
checkShutdownLogo.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownLogo.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkShutdownLogo.Size = new Size(231, 40);
|
checkShutdownLogo.Size = new Size(231, 41);
|
||||||
checkShutdownLogo.TabIndex = 20;
|
checkShutdownLogo.TabIndex = 20;
|
||||||
checkShutdownLogo.Text = Strings.Shutdown;
|
checkShutdownLogo.Text = Strings.Shutdown;
|
||||||
checkShutdownLogo.UseVisualStyleBackColor = true;
|
checkShutdownLogo.UseVisualStyleBackColor = true;
|
||||||
@@ -576,20 +672,22 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
labelBacklightBar.Dock = DockStyle.Fill;
|
labelBacklightBar.Dock = DockStyle.Fill;
|
||||||
labelBacklightBar.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightBar.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightBar.Location = new Point(477, 0);
|
labelBacklightBar.Location = new Point(482, 0);
|
||||||
|
labelBacklightBar.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklightBar.Name = "labelBacklightBar";
|
labelBacklightBar.Name = "labelBacklightBar";
|
||||||
labelBacklightBar.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightBar.Padding = new Padding(9, 4, 6, 4);
|
||||||
labelBacklightBar.Size = new Size(231, 42);
|
labelBacklightBar.Size = new Size(231, 43);
|
||||||
labelBacklightBar.TabIndex = 11;
|
labelBacklightBar.TabIndex = 11;
|
||||||
labelBacklightBar.Text = "Lightbar";
|
labelBacklightBar.Text = "Lightbar";
|
||||||
//
|
//
|
||||||
// checkAwakeBar
|
// checkAwakeBar
|
||||||
//
|
//
|
||||||
checkAwakeBar.Dock = DockStyle.Fill;
|
checkAwakeBar.Dock = DockStyle.Fill;
|
||||||
checkAwakeBar.Location = new Point(477, 45);
|
checkAwakeBar.Location = new Point(482, 45);
|
||||||
|
checkAwakeBar.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkAwakeBar.Name = "checkAwakeBar";
|
checkAwakeBar.Name = "checkAwakeBar";
|
||||||
checkAwakeBar.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeBar.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkAwakeBar.Size = new Size(231, 40);
|
checkAwakeBar.Size = new Size(231, 41);
|
||||||
checkAwakeBar.TabIndex = 7;
|
checkAwakeBar.TabIndex = 7;
|
||||||
checkAwakeBar.Text = Strings.Awake;
|
checkAwakeBar.Text = Strings.Awake;
|
||||||
checkAwakeBar.UseVisualStyleBackColor = true;
|
checkAwakeBar.UseVisualStyleBackColor = true;
|
||||||
@@ -597,10 +695,11 @@ namespace GHelper
|
|||||||
// checkBootBar
|
// checkBootBar
|
||||||
//
|
//
|
||||||
checkBootBar.Dock = DockStyle.Fill;
|
checkBootBar.Dock = DockStyle.Fill;
|
||||||
checkBootBar.Location = new Point(477, 91);
|
checkBootBar.Location = new Point(482, 90);
|
||||||
|
checkBootBar.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkBootBar.Name = "checkBootBar";
|
checkBootBar.Name = "checkBootBar";
|
||||||
checkBootBar.Padding = new Padding(15, 2, 5, 2);
|
checkBootBar.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkBootBar.Size = new Size(231, 40);
|
checkBootBar.Size = new Size(231, 41);
|
||||||
checkBootBar.TabIndex = 8;
|
checkBootBar.TabIndex = 8;
|
||||||
checkBootBar.Text = Strings.Boot;
|
checkBootBar.Text = Strings.Boot;
|
||||||
checkBootBar.UseVisualStyleBackColor = true;
|
checkBootBar.UseVisualStyleBackColor = true;
|
||||||
@@ -608,10 +707,11 @@ namespace GHelper
|
|||||||
// checkSleepBar
|
// checkSleepBar
|
||||||
//
|
//
|
||||||
checkSleepBar.Dock = DockStyle.Fill;
|
checkSleepBar.Dock = DockStyle.Fill;
|
||||||
checkSleepBar.Location = new Point(477, 137);
|
checkSleepBar.Location = new Point(482, 135);
|
||||||
|
checkSleepBar.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkSleepBar.Name = "checkSleepBar";
|
checkSleepBar.Name = "checkSleepBar";
|
||||||
checkSleepBar.Padding = new Padding(15, 2, 5, 2);
|
checkSleepBar.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkSleepBar.Size = new Size(231, 40);
|
checkSleepBar.Size = new Size(231, 41);
|
||||||
checkSleepBar.TabIndex = 9;
|
checkSleepBar.TabIndex = 9;
|
||||||
checkSleepBar.Text = Strings.Sleep;
|
checkSleepBar.Text = Strings.Sleep;
|
||||||
checkSleepBar.UseVisualStyleBackColor = true;
|
checkSleepBar.UseVisualStyleBackColor = true;
|
||||||
@@ -619,10 +719,11 @@ namespace GHelper
|
|||||||
// checkShutdownBar
|
// checkShutdownBar
|
||||||
//
|
//
|
||||||
checkShutdownBar.Dock = DockStyle.Fill;
|
checkShutdownBar.Dock = DockStyle.Fill;
|
||||||
checkShutdownBar.Location = new Point(477, 183);
|
checkShutdownBar.Location = new Point(482, 180);
|
||||||
|
checkShutdownBar.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkShutdownBar.Name = "checkShutdownBar";
|
checkShutdownBar.Name = "checkShutdownBar";
|
||||||
checkShutdownBar.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownBar.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkShutdownBar.Size = new Size(231, 40);
|
checkShutdownBar.Size = new Size(231, 41);
|
||||||
checkShutdownBar.TabIndex = 10;
|
checkShutdownBar.TabIndex = 10;
|
||||||
checkShutdownBar.Text = Strings.Shutdown;
|
checkShutdownBar.Text = Strings.Shutdown;
|
||||||
checkShutdownBar.UseVisualStyleBackColor = true;
|
checkShutdownBar.UseVisualStyleBackColor = true;
|
||||||
@@ -631,20 +732,22 @@ namespace GHelper
|
|||||||
//
|
//
|
||||||
labelBacklightLid.Dock = DockStyle.Fill;
|
labelBacklightLid.Dock = DockStyle.Fill;
|
||||||
labelBacklightLid.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelBacklightLid.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelBacklightLid.Location = new Point(714, 0);
|
labelBacklightLid.Location = new Point(721, 0);
|
||||||
|
labelBacklightLid.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelBacklightLid.Name = "labelBacklightLid";
|
labelBacklightLid.Name = "labelBacklightLid";
|
||||||
labelBacklightLid.Padding = new Padding(10, 5, 5, 5);
|
labelBacklightLid.Padding = new Padding(9, 4, 6, 4);
|
||||||
labelBacklightLid.Size = new Size(231, 42);
|
labelBacklightLid.Size = new Size(233, 43);
|
||||||
labelBacklightLid.TabIndex = 16;
|
labelBacklightLid.TabIndex = 16;
|
||||||
labelBacklightLid.Text = "Lid";
|
labelBacklightLid.Text = "Lid";
|
||||||
//
|
//
|
||||||
// checkAwakeLid
|
// checkAwakeLid
|
||||||
//
|
//
|
||||||
checkAwakeLid.Dock = DockStyle.Fill;
|
checkAwakeLid.Dock = DockStyle.Fill;
|
||||||
checkAwakeLid.Location = new Point(714, 45);
|
checkAwakeLid.Location = new Point(721, 45);
|
||||||
|
checkAwakeLid.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkAwakeLid.Name = "checkAwakeLid";
|
checkAwakeLid.Name = "checkAwakeLid";
|
||||||
checkAwakeLid.Padding = new Padding(15, 2, 5, 2);
|
checkAwakeLid.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkAwakeLid.Size = new Size(231, 40);
|
checkAwakeLid.Size = new Size(233, 41);
|
||||||
checkAwakeLid.TabIndex = 12;
|
checkAwakeLid.TabIndex = 12;
|
||||||
checkAwakeLid.Text = Strings.Awake;
|
checkAwakeLid.Text = Strings.Awake;
|
||||||
checkAwakeLid.UseVisualStyleBackColor = true;
|
checkAwakeLid.UseVisualStyleBackColor = true;
|
||||||
@@ -652,10 +755,11 @@ namespace GHelper
|
|||||||
// checkBootLid
|
// checkBootLid
|
||||||
//
|
//
|
||||||
checkBootLid.Dock = DockStyle.Fill;
|
checkBootLid.Dock = DockStyle.Fill;
|
||||||
checkBootLid.Location = new Point(714, 91);
|
checkBootLid.Location = new Point(721, 90);
|
||||||
|
checkBootLid.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkBootLid.Name = "checkBootLid";
|
checkBootLid.Name = "checkBootLid";
|
||||||
checkBootLid.Padding = new Padding(15, 2, 5, 2);
|
checkBootLid.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkBootLid.Size = new Size(231, 40);
|
checkBootLid.Size = new Size(233, 41);
|
||||||
checkBootLid.TabIndex = 13;
|
checkBootLid.TabIndex = 13;
|
||||||
checkBootLid.Text = Strings.Boot;
|
checkBootLid.Text = Strings.Boot;
|
||||||
checkBootLid.UseVisualStyleBackColor = true;
|
checkBootLid.UseVisualStyleBackColor = true;
|
||||||
@@ -663,10 +767,11 @@ namespace GHelper
|
|||||||
// checkSleepLid
|
// checkSleepLid
|
||||||
//
|
//
|
||||||
checkSleepLid.Dock = DockStyle.Fill;
|
checkSleepLid.Dock = DockStyle.Fill;
|
||||||
checkSleepLid.Location = new Point(714, 137);
|
checkSleepLid.Location = new Point(721, 135);
|
||||||
|
checkSleepLid.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkSleepLid.Name = "checkSleepLid";
|
checkSleepLid.Name = "checkSleepLid";
|
||||||
checkSleepLid.Padding = new Padding(15, 2, 5, 2);
|
checkSleepLid.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkSleepLid.Size = new Size(231, 40);
|
checkSleepLid.Size = new Size(233, 41);
|
||||||
checkSleepLid.TabIndex = 14;
|
checkSleepLid.TabIndex = 14;
|
||||||
checkSleepLid.Text = Strings.Sleep;
|
checkSleepLid.Text = Strings.Sleep;
|
||||||
checkSleepLid.UseVisualStyleBackColor = true;
|
checkSleepLid.UseVisualStyleBackColor = true;
|
||||||
@@ -674,90 +779,120 @@ namespace GHelper
|
|||||||
// checkShutdownLid
|
// checkShutdownLid
|
||||||
//
|
//
|
||||||
checkShutdownLid.Dock = DockStyle.Fill;
|
checkShutdownLid.Dock = DockStyle.Fill;
|
||||||
checkShutdownLid.Location = new Point(714, 183);
|
checkShutdownLid.Location = new Point(721, 180);
|
||||||
|
checkShutdownLid.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkShutdownLid.Name = "checkShutdownLid";
|
checkShutdownLid.Name = "checkShutdownLid";
|
||||||
checkShutdownLid.Padding = new Padding(15, 2, 5, 2);
|
checkShutdownLid.Padding = new Padding(15, 2, 6, 2);
|
||||||
checkShutdownLid.Size = new Size(231, 40);
|
checkShutdownLid.Size = new Size(233, 41);
|
||||||
checkShutdownLid.TabIndex = 15;
|
checkShutdownLid.TabIndex = 15;
|
||||||
checkShutdownLid.Text = Strings.Shutdown;
|
checkShutdownLid.Text = Strings.Shutdown;
|
||||||
checkShutdownLid.UseVisualStyleBackColor = true;
|
checkShutdownLid.UseVisualStyleBackColor = true;
|
||||||
//
|
//
|
||||||
// groupOther
|
// groupOther
|
||||||
//
|
//
|
||||||
groupOther.Controls.Add(checkGpuApps);
|
groupOther.AutoSize = true;
|
||||||
|
groupOther.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
groupOther.Controls.Add(checkAutoApplyWindowsPowerMode);
|
groupOther.Controls.Add(checkAutoApplyWindowsPowerMode);
|
||||||
groupOther.Controls.Add(checkKeyboardAuto);
|
|
||||||
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(10, 897);
|
groupOther.Location = new Point(9, 908);
|
||||||
|
groupOther.Margin = new Padding(4, 2, 4, 2);
|
||||||
groupOther.Name = "groupOther";
|
groupOther.Name = "groupOther";
|
||||||
groupOther.Size = new Size(954, 310);
|
groupOther.Padding = new Padding(20, 2, 4, 10);
|
||||||
|
groupOther.Size = new Size(966, 296);
|
||||||
groupOther.TabIndex = 2;
|
groupOther.TabIndex = 2;
|
||||||
groupOther.TabStop = false;
|
groupOther.TabStop = false;
|
||||||
groupOther.Text = "Other";
|
groupOther.Text = "Other";
|
||||||
//
|
//
|
||||||
// checkGpuApps
|
|
||||||
//
|
|
||||||
checkGpuApps.AutoSize = true;
|
|
||||||
checkGpuApps.Location = new Point(25, 220);
|
|
||||||
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(25, 268);
|
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
||||||
|
checkAutoApplyWindowsPowerMode.Location = new Point(20, 250);
|
||||||
|
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;
|
||||||
//
|
//
|
||||||
// checkKeyboardAuto
|
// checkTopmost
|
||||||
//
|
//
|
||||||
checkKeyboardAuto.AutoSize = true;
|
checkTopmost.AutoSize = true;
|
||||||
checkKeyboardAuto.Location = new Point(25, 40);
|
checkTopmost.Dock = DockStyle.Top;
|
||||||
checkKeyboardAuto.MaximumSize = new Size(780, 0);
|
checkTopmost.Location = new Point(20, 214);
|
||||||
checkKeyboardAuto.Name = "checkKeyboardAuto";
|
checkTopmost.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkKeyboardAuto.Size = new Size(712, 36);
|
checkTopmost.Name = "checkTopmost";
|
||||||
checkKeyboardAuto.TabIndex = 46;
|
checkTopmost.Size = new Size(942, 36);
|
||||||
checkKeyboardAuto.Text = Strings.KeyboardAuto;
|
checkTopmost.TabIndex = 1;
|
||||||
checkKeyboardAuto.UseVisualStyleBackColor = true;
|
checkTopmost.Text = Strings.WindowTop;
|
||||||
//
|
checkTopmost.UseVisualStyleBackColor = true;
|
||||||
// checkUSBC
|
|
||||||
//
|
|
||||||
checkUSBC.AutoSize = true;
|
|
||||||
checkUSBC.Location = new Point(25, 85);
|
|
||||||
checkUSBC.Name = "checkUSBC";
|
|
||||||
checkUSBC.Size = new Size(659, 36);
|
|
||||||
checkUSBC.TabIndex = 4;
|
|
||||||
checkUSBC.Text = "Keep GPU disabled on USB-C charger in Optimized mode";
|
|
||||||
checkUSBC.UseVisualStyleBackColor = true;
|
|
||||||
//
|
//
|
||||||
// checkNoOverdrive
|
// checkNoOverdrive
|
||||||
//
|
//
|
||||||
checkNoOverdrive.AutoSize = true;
|
checkNoOverdrive.AutoSize = true;
|
||||||
checkNoOverdrive.Location = new Point(25, 130);
|
checkNoOverdrive.Dock = DockStyle.Top;
|
||||||
|
checkNoOverdrive.Location = new Point(20, 178);
|
||||||
|
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(25, 175);
|
checkUSBC.Dock = DockStyle.Top;
|
||||||
checkTopmost.Name = "checkTopmost";
|
checkUSBC.Location = new Point(20, 142);
|
||||||
checkTopmost.Size = new Size(390, 36);
|
checkUSBC.Margin = new Padding(4, 2, 4, 2);
|
||||||
checkTopmost.TabIndex = 1;
|
checkUSBC.Name = "checkUSBC";
|
||||||
checkTopmost.Text = Strings.WindowTop;
|
checkUSBC.Size = new Size(942, 36);
|
||||||
checkTopmost.UseVisualStyleBackColor = true;
|
checkUSBC.TabIndex = 4;
|
||||||
|
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
|
||||||
//
|
//
|
||||||
@@ -765,17 +900,18 @@ namespace GHelper
|
|||||||
AutoScaleMode = AutoScaleMode.Font;
|
AutoScaleMode = AutoScaleMode.Font;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(974, 1220);
|
ClientSize = new Size(984, 1244);
|
||||||
Controls.Add(groupOther);
|
Controls.Add(groupOther);
|
||||||
Controls.Add(groupLight);
|
Controls.Add(groupLight);
|
||||||
Controls.Add(groupBindings);
|
Controls.Add(groupBindings);
|
||||||
FormBorderStyle = FormBorderStyle.FixedSingle;
|
FormBorderStyle = FormBorderStyle.FixedSingle;
|
||||||
|
Margin = new Padding(4, 2, 4, 2);
|
||||||
MaximizeBox = false;
|
MaximizeBox = false;
|
||||||
MdiChildrenMinimizedAnchorBottom = false;
|
MdiChildrenMinimizedAnchorBottom = false;
|
||||||
MinimizeBox = false;
|
MinimizeBox = false;
|
||||||
MinimumSize = new Size(1000, 0);
|
MinimumSize = new Size(1010, 71);
|
||||||
Name = "Extra";
|
Name = "Extra";
|
||||||
Padding = new Padding(10);
|
Padding = new Padding(9, 11, 9, 11);
|
||||||
ShowIcon = false;
|
ShowIcon = false;
|
||||||
ShowInTaskbar = false;
|
ShowInTaskbar = false;
|
||||||
Text = "Extra Settings";
|
Text = "Extra Settings";
|
||||||
@@ -847,7 +983,6 @@ namespace GHelper
|
|||||||
private CheckBox checkXMG;
|
private CheckBox checkXMG;
|
||||||
private Label labelBacklightTimeout;
|
private Label labelBacklightTimeout;
|
||||||
private NumericUpDown numericBacklightTime;
|
private NumericUpDown numericBacklightTime;
|
||||||
private CheckBox checkKeyboardAuto;
|
|
||||||
private CheckBox checkAutoApplyWindowsPowerMode;
|
private CheckBox checkAutoApplyWindowsPowerMode;
|
||||||
private TableLayoutPanel tableKeys;
|
private TableLayoutPanel tableKeys;
|
||||||
private Label labelM1;
|
private Label labelM1;
|
||||||
@@ -859,5 +994,10 @@ namespace GHelper
|
|||||||
private NumericUpDown numericBacklightPluggedTime;
|
private NumericUpDown numericBacklightPluggedTime;
|
||||||
private Label labelBacklightTimeoutPlugged;
|
private Label labelBacklightTimeoutPlugged;
|
||||||
private CheckBox checkGpuApps;
|
private CheckBox checkGpuApps;
|
||||||
|
private CheckBox checkFnLock;
|
||||||
|
private Label labelFNC;
|
||||||
|
private RComboBox comboFNC;
|
||||||
|
private TextBox textFNC;
|
||||||
|
private CheckBox checkVariBright;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
76
app/Extra.cs
76
app/Extra.cs
@@ -1,4 +1,6 @@
|
|||||||
using CustomControls;
|
using CustomControls;
|
||||||
|
using GHelper.Gpu;
|
||||||
|
using Microsoft.VisualBasic.Devices;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
@@ -16,6 +18,7 @@ namespace GHelper
|
|||||||
{"performance", Properties.Strings.PerformanceMode},
|
{"performance", Properties.Strings.PerformanceMode},
|
||||||
{"screen", Properties.Strings.ToggleScreen},
|
{"screen", Properties.Strings.ToggleScreen},
|
||||||
{"miniled", Properties.Strings.ToggleMiniled},
|
{"miniled", Properties.Strings.ToggleMiniled},
|
||||||
|
{"fnlock", Properties.Strings.ToggleFnLock},
|
||||||
{"custom", Properties.Strings.Custom}
|
{"custom", Properties.Strings.Custom}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -40,6 +43,10 @@ namespace GHelper
|
|||||||
customActions[""] = Properties.Strings.ToggleAura;
|
customActions[""] = Properties.Strings.ToggleAura;
|
||||||
customActions.Remove("aura");
|
customActions.Remove("aura");
|
||||||
break;
|
break;
|
||||||
|
case "fnc":
|
||||||
|
customActions[""] = Properties.Strings.ToggleFnLock;
|
||||||
|
customActions.Remove("fnlock");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
combo.DropDownStyle = ComboBoxStyle.DropDownList;
|
combo.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||||
@@ -88,11 +95,11 @@ namespace GHelper
|
|||||||
labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout;
|
labelBacklightTimeout.Text = Properties.Strings.BacklightTimeout;
|
||||||
labelBacklightTimeoutPlugged.Text = Properties.Strings.BacklightTimeoutPlugged;
|
labelBacklightTimeoutPlugged.Text = Properties.Strings.BacklightTimeoutPlugged;
|
||||||
|
|
||||||
checkKeyboardAuto.Text = Properties.Strings.KeyboardAuto;
|
|
||||||
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
||||||
checkTopmost.Text = Properties.Strings.WindowTop;
|
checkTopmost.Text = Properties.Strings.WindowTop;
|
||||||
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
||||||
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
|
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
|
||||||
|
checkFnLock.Text = Properties.Strings.FnLock;
|
||||||
|
|
||||||
labelBacklight.Text = Properties.Strings.Keyboard;
|
labelBacklight.Text = Properties.Strings.Keyboard;
|
||||||
labelBacklightBar.Text = Properties.Strings.Lightbar;
|
labelBacklightBar.Text = Properties.Strings.Lightbar;
|
||||||
@@ -110,6 +117,7 @@ namespace GHelper
|
|||||||
SetKeyCombo(comboM3, textM3, "m3");
|
SetKeyCombo(comboM3, textM3, "m3");
|
||||||
SetKeyCombo(comboM4, textM4, "m4");
|
SetKeyCombo(comboM4, textM4, "m4");
|
||||||
SetKeyCombo(comboFNF4, textFNF4, "fnf4");
|
SetKeyCombo(comboFNF4, textFNF4, "fnf4");
|
||||||
|
SetKeyCombo(comboFNC, textFNC, "fnc");
|
||||||
|
|
||||||
Shown += Keyboard_Shown;
|
Shown += Keyboard_Shown;
|
||||||
|
|
||||||
@@ -191,9 +199,6 @@ namespace GHelper
|
|||||||
checkTopmost.Checked = (AppConfig.getConfig("topmost") == 1);
|
checkTopmost.Checked = (AppConfig.getConfig("topmost") == 1);
|
||||||
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
|
checkTopmost.CheckedChanged += CheckTopmost_CheckedChanged; ;
|
||||||
|
|
||||||
checkKeyboardAuto.Checked = (AppConfig.getConfig("keyboard_auto") == 1);
|
|
||||||
checkKeyboardAuto.CheckedChanged += CheckKeyboardAuto_CheckedChanged;
|
|
||||||
|
|
||||||
checkNoOverdrive.Checked = (AppConfig.getConfig("no_overdrive") == 1);
|
checkNoOverdrive.Checked = (AppConfig.getConfig("no_overdrive") == 1);
|
||||||
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
|
checkNoOverdrive.CheckedChanged += CheckNoOverdrive_CheckedChanged;
|
||||||
|
|
||||||
@@ -203,10 +208,7 @@ namespace GHelper
|
|||||||
checkAutoApplyWindowsPowerMode.Checked = (AppConfig.getConfig("auto_apply_power_plan") != 0);
|
checkAutoApplyWindowsPowerMode.Checked = (AppConfig.getConfig("auto_apply_power_plan") != 0);
|
||||||
checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged;
|
checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged;
|
||||||
|
|
||||||
int kb_brightness = AppConfig.getConfig("keyboard_brightness");
|
trackBrightness.Value = InputDispatcher.GetBacklight();
|
||||||
trackBrightness.Value = (kb_brightness >= 0 && kb_brightness <= 3) ? kb_brightness : 3;
|
|
||||||
|
|
||||||
pictureHelp.Click += PictureHelp_Click;
|
|
||||||
trackBrightness.Scroll += TrackBrightness_Scroll;
|
trackBrightness.Scroll += TrackBrightness_Scroll;
|
||||||
|
|
||||||
panelXMG.Visible = (Program.acpi.DeviceGet(AsusACPI.GPUXGConnected) == 1);
|
panelXMG.Visible = (Program.acpi.DeviceGet(AsusACPI.GPUXGConnected) == 1);
|
||||||
@@ -222,6 +224,57 @@ namespace GHelper
|
|||||||
checkGpuApps.Checked = AppConfig.isConfig("kill_gpu_apps");
|
checkGpuApps.Checked = AppConfig.isConfig("kill_gpu_apps");
|
||||||
checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged;
|
checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged;
|
||||||
|
|
||||||
|
checkFnLock.Checked = AppConfig.isConfig("fn_lock");
|
||||||
|
checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ;
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
int fnLock = checkFnLock.Checked ? 1 : 0;
|
||||||
|
AppConfig.setConfig("fn_lock", fnLock);
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock");
|
||||||
|
|
||||||
|
Program.inputDispatcher.RegisterKeys();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckGpuApps_CheckedChanged(object? sender, EventArgs e)
|
private void CheckGpuApps_CheckedChanged(object? sender, EventArgs e)
|
||||||
@@ -250,7 +303,8 @@ namespace GHelper
|
|||||||
private void TrackBrightness_Scroll(object? sender, EventArgs e)
|
private void TrackBrightness_Scroll(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
AppConfig.setConfig("keyboard_brightness", trackBrightness.Value);
|
AppConfig.setConfig("keyboard_brightness", trackBrightness.Value);
|
||||||
AsusUSB.ApplyBrightness(trackBrightness.Value);
|
AppConfig.setConfig("keyboard_brightness_ac", trackBrightness.Value);
|
||||||
|
AsusUSB.ApplyBrightness(trackBrightness.Value, "Slider");
|
||||||
}
|
}
|
||||||
|
|
||||||
private void PictureHelp_Click(object? sender, EventArgs e)
|
private void PictureHelp_Click(object? sender, EventArgs e)
|
||||||
@@ -264,10 +318,6 @@ namespace GHelper
|
|||||||
Program.settingsForm.AutoScreen(true);
|
Program.settingsForm.AutoScreen(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void CheckKeyboardAuto_CheckedChanged(object? sender, EventArgs e)
|
|
||||||
{
|
|
||||||
AppConfig.setConfig("keyboard_auto", (checkKeyboardAuto.Checked ? 1 : 0));
|
|
||||||
}
|
|
||||||
|
|
||||||
private void CheckTopmost_CheckedChanged(object? sender, EventArgs e)
|
private void CheckTopmost_CheckedChanged(object? sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|||||||
369
app/Fans.Designer.cs
generated
369
app/Fans.Designer.cs
generated
@@ -31,14 +31,14 @@ namespace GHelper
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
ChartArea chartArea9 = new ChartArea();
|
ChartArea chartArea1 = new ChartArea();
|
||||||
Title title9 = new Title();
|
Title title1 = new Title();
|
||||||
ChartArea chartArea10 = new ChartArea();
|
ChartArea chartArea2 = new ChartArea();
|
||||||
Title title10 = new Title();
|
Title title2 = new Title();
|
||||||
ChartArea chartArea11 = new ChartArea();
|
ChartArea chartArea3 = new ChartArea();
|
||||||
Title title11 = new Title();
|
Title title3 = new Title();
|
||||||
ChartArea chartArea12 = new ChartArea();
|
ChartArea chartArea4 = new ChartArea();
|
||||||
Title title12 = new Title();
|
Title title4 = new Title();
|
||||||
panelFans = new Panel();
|
panelFans = new Panel();
|
||||||
labelTip = new Label();
|
labelTip = new Label();
|
||||||
tableFanCharts = new TableLayoutPanel();
|
tableFanCharts = new TableLayoutPanel();
|
||||||
@@ -60,14 +60,18 @@ namespace GHelper
|
|||||||
panelApplyPower = new Panel();
|
panelApplyPower = new Panel();
|
||||||
checkApplyPower = new RCheckBox();
|
checkApplyPower = new RCheckBox();
|
||||||
labelInfo = new Label();
|
labelInfo = new Label();
|
||||||
panelCPU = new Panel();
|
panelB0 = new Panel();
|
||||||
labelCPU = new Label();
|
labelB0 = new Label();
|
||||||
label2 = new Label();
|
labelLeftB0 = new Label();
|
||||||
trackCPU = new TrackBar();
|
trackB0 = new TrackBar();
|
||||||
panelTotal = new Panel();
|
panelC1 = new Panel();
|
||||||
labelTotal = new Label();
|
labelC1 = new Label();
|
||||||
labelPlatform = new Label();
|
labelLeftC1 = new Label();
|
||||||
trackTotal = new TrackBar();
|
trackC1 = new TrackBar();
|
||||||
|
panelA0 = new Panel();
|
||||||
|
labelA0 = new Label();
|
||||||
|
labelLeftA0 = new Label();
|
||||||
|
trackA0 = new TrackBar();
|
||||||
panelTitleCPU = new Panel();
|
panelTitleCPU = new Panel();
|
||||||
pictureBox1 = new PictureBox();
|
pictureBox1 = new PictureBox();
|
||||||
labelPowerLimits = new Label();
|
labelPowerLimits = new Label();
|
||||||
@@ -103,10 +107,12 @@ namespace GHelper
|
|||||||
panelSliders.SuspendLayout();
|
panelSliders.SuspendLayout();
|
||||||
panelPower.SuspendLayout();
|
panelPower.SuspendLayout();
|
||||||
panelApplyPower.SuspendLayout();
|
panelApplyPower.SuspendLayout();
|
||||||
panelCPU.SuspendLayout();
|
panelB0.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)trackCPU).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackB0).BeginInit();
|
||||||
panelTotal.SuspendLayout();
|
panelC1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)trackTotal).BeginInit();
|
((System.ComponentModel.ISupportInitialize)trackC1).BeginInit();
|
||||||
|
panelA0.SuspendLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackA0).BeginInit();
|
||||||
panelTitleCPU.SuspendLayout();
|
panelTitleCPU.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
((System.ComponentModel.ISupportInitialize)pictureBox1).BeginInit();
|
||||||
panelGPU.SuspendLayout();
|
panelGPU.SuspendLayout();
|
||||||
@@ -137,7 +143,7 @@ namespace GHelper
|
|||||||
panelFans.MinimumSize = new Size(815, 0);
|
panelFans.MinimumSize = new Size(815, 0);
|
||||||
panelFans.Name = "panelFans";
|
panelFans.Name = "panelFans";
|
||||||
panelFans.Padding = new Padding(0, 0, 10, 0);
|
panelFans.Padding = new Padding(0, 0, 10, 0);
|
||||||
panelFans.Size = new Size(815, 1189);
|
panelFans.Size = new Size(815, 1310);
|
||||||
panelFans.TabIndex = 12;
|
panelFans.TabIndex = 12;
|
||||||
//
|
//
|
||||||
// labelTip
|
// labelTip
|
||||||
@@ -170,65 +176,65 @@ namespace GHelper
|
|||||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||||
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
tableFanCharts.RowStyles.Add(new RowStyle(SizeType.Percent, 25F));
|
||||||
tableFanCharts.Size = new Size(805, 1007);
|
tableFanCharts.Size = new Size(805, 1128);
|
||||||
tableFanCharts.TabIndex = 36;
|
tableFanCharts.TabIndex = 36;
|
||||||
//
|
//
|
||||||
// chartGPU
|
// chartGPU
|
||||||
//
|
//
|
||||||
chartArea9.Name = "ChartArea1";
|
chartArea1.Name = "ChartArea1";
|
||||||
chartGPU.ChartAreas.Add(chartArea9);
|
chartGPU.ChartAreas.Add(chartArea1);
|
||||||
chartGPU.Dock = DockStyle.Fill;
|
chartGPU.Dock = DockStyle.Fill;
|
||||||
chartGPU.Location = new Point(12, 259);
|
chartGPU.Location = new Point(12, 289);
|
||||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
chartGPU.Name = "chartGPU";
|
chartGPU.Name = "chartGPU";
|
||||||
chartGPU.Size = new Size(781, 229);
|
chartGPU.Size = new Size(781, 259);
|
||||||
chartGPU.TabIndex = 17;
|
chartGPU.TabIndex = 17;
|
||||||
chartGPU.Text = "chartGPU";
|
chartGPU.Text = "chartGPU";
|
||||||
title9.Name = "Title1";
|
title1.Name = "Title1";
|
||||||
chartGPU.Titles.Add(title9);
|
chartGPU.Titles.Add(title1);
|
||||||
//
|
//
|
||||||
// chartCPU
|
// chartCPU
|
||||||
//
|
//
|
||||||
chartArea10.Name = "ChartArea1";
|
chartArea2.Name = "ChartArea1";
|
||||||
chartCPU.ChartAreas.Add(chartArea10);
|
chartCPU.ChartAreas.Add(chartArea2);
|
||||||
chartCPU.Dock = DockStyle.Fill;
|
chartCPU.Dock = DockStyle.Fill;
|
||||||
chartCPU.Location = new Point(12, 10);
|
chartCPU.Location = new Point(12, 10);
|
||||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||||
chartCPU.Name = "chartCPU";
|
chartCPU.Name = "chartCPU";
|
||||||
chartCPU.Size = new Size(781, 229);
|
chartCPU.Size = new Size(781, 259);
|
||||||
chartCPU.TabIndex = 14;
|
chartCPU.TabIndex = 14;
|
||||||
chartCPU.Text = "chartCPU";
|
chartCPU.Text = "chartCPU";
|
||||||
title10.Name = "Title1";
|
title2.Name = "Title1";
|
||||||
chartCPU.Titles.Add(title10);
|
chartCPU.Titles.Add(title2);
|
||||||
//
|
//
|
||||||
// chartXGM
|
// chartXGM
|
||||||
//
|
//
|
||||||
chartArea11.Name = "ChartAreaXGM";
|
chartArea3.Name = "ChartAreaXGM";
|
||||||
chartXGM.ChartAreas.Add(chartArea11);
|
chartXGM.ChartAreas.Add(chartArea3);
|
||||||
chartXGM.Dock = DockStyle.Fill;
|
chartXGM.Dock = DockStyle.Fill;
|
||||||
chartXGM.Location = new Point(12, 757);
|
chartXGM.Location = new Point(12, 847);
|
||||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||||
chartXGM.Name = "chartXGM";
|
chartXGM.Name = "chartXGM";
|
||||||
chartXGM.Size = new Size(781, 230);
|
chartXGM.Size = new Size(781, 261);
|
||||||
chartXGM.TabIndex = 14;
|
chartXGM.TabIndex = 14;
|
||||||
chartXGM.Text = "chartXGM";
|
chartXGM.Text = "chartXGM";
|
||||||
title11.Name = "Title4";
|
title3.Name = "Title4";
|
||||||
chartXGM.Titles.Add(title11);
|
chartXGM.Titles.Add(title3);
|
||||||
chartXGM.Visible = false;
|
chartXGM.Visible = false;
|
||||||
//
|
//
|
||||||
// chartMid
|
// chartMid
|
||||||
//
|
//
|
||||||
chartArea12.Name = "ChartArea3";
|
chartArea4.Name = "ChartArea3";
|
||||||
chartMid.ChartAreas.Add(chartArea12);
|
chartMid.ChartAreas.Add(chartArea4);
|
||||||
chartMid.Dock = DockStyle.Fill;
|
chartMid.Dock = DockStyle.Fill;
|
||||||
chartMid.Location = new Point(12, 508);
|
chartMid.Location = new Point(12, 568);
|
||||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||||
chartMid.Name = "chartMid";
|
chartMid.Name = "chartMid";
|
||||||
chartMid.Size = new Size(781, 229);
|
chartMid.Size = new Size(781, 259);
|
||||||
chartMid.TabIndex = 14;
|
chartMid.TabIndex = 14;
|
||||||
chartMid.Text = "chartMid";
|
chartMid.Text = "chartMid";
|
||||||
title12.Name = "Title3";
|
title4.Name = "Title3";
|
||||||
chartMid.Titles.Add(title12);
|
chartMid.Titles.Add(title4);
|
||||||
chartMid.Visible = false;
|
chartMid.Visible = false;
|
||||||
//
|
//
|
||||||
// panelTitleFans
|
// panelTitleFans
|
||||||
@@ -295,7 +301,7 @@ namespace GHelper
|
|||||||
panelApplyFans.Controls.Add(checkApplyFans);
|
panelApplyFans.Controls.Add(checkApplyFans);
|
||||||
panelApplyFans.Controls.Add(buttonReset);
|
panelApplyFans.Controls.Add(buttonReset);
|
||||||
panelApplyFans.Dock = DockStyle.Bottom;
|
panelApplyFans.Dock = DockStyle.Bottom;
|
||||||
panelApplyFans.Location = new Point(0, 1073);
|
panelApplyFans.Location = new Point(0, 1194);
|
||||||
panelApplyFans.Name = "panelApplyFans";
|
panelApplyFans.Name = "panelApplyFans";
|
||||||
panelApplyFans.Size = new Size(805, 116);
|
panelApplyFans.Size = new Size(805, 116);
|
||||||
panelApplyFans.TabIndex = 43;
|
panelApplyFans.TabIndex = 43;
|
||||||
@@ -337,7 +343,7 @@ namespace GHelper
|
|||||||
buttonReset.Margin = new Padding(4, 2, 4, 2);
|
buttonReset.Margin = new Padding(4, 2, 4, 2);
|
||||||
buttonReset.Name = "buttonReset";
|
buttonReset.Name = "buttonReset";
|
||||||
buttonReset.Secondary = true;
|
buttonReset.Secondary = true;
|
||||||
buttonReset.Size = new Size(232, 54);
|
buttonReset.Size = new Size(274, 54);
|
||||||
buttonReset.TabIndex = 18;
|
buttonReset.TabIndex = 18;
|
||||||
buttonReset.Text = Properties.Strings.FactoryDefaults;
|
buttonReset.Text = Properties.Strings.FactoryDefaults;
|
||||||
buttonReset.UseVisualStyleBackColor = false;
|
buttonReset.UseVisualStyleBackColor = false;
|
||||||
@@ -351,7 +357,7 @@ namespace GHelper
|
|||||||
panelSliders.Margin = new Padding(0);
|
panelSliders.Margin = new Padding(0);
|
||||||
panelSliders.Name = "panelSliders";
|
panelSliders.Name = "panelSliders";
|
||||||
panelSliders.Padding = new Padding(10, 0, 0, 0);
|
panelSliders.Padding = new Padding(10, 0, 0, 0);
|
||||||
panelSliders.Size = new Size(533, 1189);
|
panelSliders.Size = new Size(533, 1310);
|
||||||
panelSliders.TabIndex = 13;
|
panelSliders.TabIndex = 13;
|
||||||
//
|
//
|
||||||
// panelPower
|
// panelPower
|
||||||
@@ -360,20 +366,21 @@ namespace GHelper
|
|||||||
panelPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelPower.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelPower.Controls.Add(panelApplyPower);
|
panelPower.Controls.Add(panelApplyPower);
|
||||||
panelPower.Controls.Add(labelInfo);
|
panelPower.Controls.Add(labelInfo);
|
||||||
panelPower.Controls.Add(panelCPU);
|
panelPower.Controls.Add(panelB0);
|
||||||
panelPower.Controls.Add(panelTotal);
|
panelPower.Controls.Add(panelC1);
|
||||||
|
panelPower.Controls.Add(panelA0);
|
||||||
panelPower.Controls.Add(panelTitleCPU);
|
panelPower.Controls.Add(panelTitleCPU);
|
||||||
panelPower.Dock = DockStyle.Fill;
|
panelPower.Dock = DockStyle.Fill;
|
||||||
panelPower.Location = new Point(10, 652);
|
panelPower.Location = new Point(10, 652);
|
||||||
panelPower.Name = "panelPower";
|
panelPower.Name = "panelPower";
|
||||||
panelPower.Size = new Size(523, 537);
|
panelPower.Size = new Size(523, 658);
|
||||||
panelPower.TabIndex = 43;
|
panelPower.TabIndex = 43;
|
||||||
//
|
//
|
||||||
// panelApplyPower
|
// panelApplyPower
|
||||||
//
|
//
|
||||||
panelApplyPower.Controls.Add(checkApplyPower);
|
panelApplyPower.Controls.Add(checkApplyPower);
|
||||||
panelApplyPower.Dock = DockStyle.Bottom;
|
panelApplyPower.Dock = DockStyle.Bottom;
|
||||||
panelApplyPower.Location = new Point(0, 447);
|
panelApplyPower.Location = new Point(0, 568);
|
||||||
panelApplyPower.Name = "panelApplyPower";
|
panelApplyPower.Name = "panelApplyPower";
|
||||||
panelApplyPower.Padding = new Padding(10);
|
panelApplyPower.Padding = new Padding(10);
|
||||||
panelApplyPower.Size = new Size(523, 90);
|
panelApplyPower.Size = new Size(523, 90);
|
||||||
@@ -396,7 +403,7 @@ namespace GHelper
|
|||||||
// labelInfo
|
// labelInfo
|
||||||
//
|
//
|
||||||
labelInfo.Dock = DockStyle.Top;
|
labelInfo.Dock = DockStyle.Top;
|
||||||
labelInfo.Location = new Point(0, 342);
|
labelInfo.Location = new Point(0, 482);
|
||||||
labelInfo.Margin = new Padding(4, 0, 4, 0);
|
labelInfo.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelInfo.Name = "labelInfo";
|
labelInfo.Name = "labelInfo";
|
||||||
labelInfo.Padding = new Padding(5);
|
labelInfo.Padding = new Padding(5);
|
||||||
@@ -404,105 +411,155 @@ namespace GHelper
|
|||||||
labelInfo.TabIndex = 43;
|
labelInfo.TabIndex = 43;
|
||||||
labelInfo.Text = "Experimental Feature";
|
labelInfo.Text = "Experimental Feature";
|
||||||
//
|
//
|
||||||
// panelCPU
|
// panelB0
|
||||||
//
|
//
|
||||||
panelCPU.AutoSize = true;
|
panelB0.AutoSize = true;
|
||||||
panelCPU.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelB0.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelCPU.Controls.Add(labelCPU);
|
panelB0.Controls.Add(labelB0);
|
||||||
panelCPU.Controls.Add(label2);
|
panelB0.Controls.Add(labelLeftB0);
|
||||||
panelCPU.Controls.Add(trackCPU);
|
panelB0.Controls.Add(trackB0);
|
||||||
panelCPU.Dock = DockStyle.Top;
|
panelB0.Dock = DockStyle.Top;
|
||||||
panelCPU.Location = new Point(0, 206);
|
panelB0.Location = new Point(0, 346);
|
||||||
panelCPU.Margin = new Padding(4);
|
panelB0.Margin = new Padding(4);
|
||||||
panelCPU.Name = "panelCPU";
|
panelB0.Name = "panelB0";
|
||||||
panelCPU.Size = new Size(523, 136);
|
panelB0.Size = new Size(523, 136);
|
||||||
panelCPU.TabIndex = 41;
|
panelB0.TabIndex = 41;
|
||||||
//
|
//
|
||||||
// labelCPU
|
// labelB0
|
||||||
//
|
//
|
||||||
labelCPU.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelB0.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelCPU.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelB0.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelCPU.Location = new Point(398, 8);
|
labelB0.Location = new Point(398, 8);
|
||||||
labelCPU.Margin = new Padding(4, 0, 4, 0);
|
labelB0.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelCPU.Name = "labelCPU";
|
labelB0.Name = "labelB0";
|
||||||
labelCPU.Size = new Size(120, 32);
|
labelB0.Size = new Size(120, 32);
|
||||||
labelCPU.TabIndex = 13;
|
labelB0.TabIndex = 13;
|
||||||
labelCPU.Text = "CPU";
|
labelB0.Text = "CPU";
|
||||||
labelCPU.TextAlign = ContentAlignment.TopRight;
|
labelB0.TextAlign = ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// label2
|
// labelLeftB0
|
||||||
//
|
//
|
||||||
label2.AutoSize = true;
|
labelLeftB0.AutoSize = true;
|
||||||
label2.Location = new Point(10, 8);
|
labelLeftB0.Location = new Point(10, 8);
|
||||||
label2.Margin = new Padding(4, 0, 4, 0);
|
labelLeftB0.Margin = new Padding(4, 0, 4, 0);
|
||||||
label2.Name = "label2";
|
labelLeftB0.Name = "labelLeftB0";
|
||||||
label2.Size = new Size(58, 32);
|
labelLeftB0.Size = new Size(58, 32);
|
||||||
label2.TabIndex = 12;
|
labelLeftB0.TabIndex = 12;
|
||||||
label2.Text = "CPU";
|
labelLeftB0.Text = "CPU";
|
||||||
//
|
//
|
||||||
// trackCPU
|
// trackB0
|
||||||
//
|
//
|
||||||
trackCPU.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
trackB0.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
trackCPU.Location = new Point(6, 44);
|
trackB0.Location = new Point(6, 44);
|
||||||
trackCPU.Margin = new Padding(4, 2, 4, 2);
|
trackB0.Margin = new Padding(4, 2, 4, 2);
|
||||||
trackCPU.Maximum = 85;
|
trackB0.Maximum = 85;
|
||||||
trackCPU.Minimum = 5;
|
trackB0.Minimum = 5;
|
||||||
trackCPU.Name = "trackCPU";
|
trackB0.Name = "trackB0";
|
||||||
trackCPU.Size = new Size(513, 90);
|
trackB0.Size = new Size(513, 90);
|
||||||
trackCPU.TabIndex = 11;
|
trackB0.TabIndex = 11;
|
||||||
trackCPU.TickFrequency = 5;
|
trackB0.TickFrequency = 5;
|
||||||
trackCPU.TickStyle = TickStyle.TopLeft;
|
trackB0.TickStyle = TickStyle.TopLeft;
|
||||||
trackCPU.Value = 80;
|
trackB0.Value = 80;
|
||||||
//
|
//
|
||||||
// panelTotal
|
// panelC1
|
||||||
//
|
//
|
||||||
panelTotal.AutoSize = true;
|
panelC1.AutoSize = true;
|
||||||
panelTotal.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
panelC1.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
panelTotal.Controls.Add(labelTotal);
|
panelC1.Controls.Add(labelC1);
|
||||||
panelTotal.Controls.Add(labelPlatform);
|
panelC1.Controls.Add(labelLeftC1);
|
||||||
panelTotal.Controls.Add(trackTotal);
|
panelC1.Controls.Add(trackC1);
|
||||||
panelTotal.Dock = DockStyle.Top;
|
panelC1.Dock = DockStyle.Top;
|
||||||
panelTotal.Location = new Point(0, 66);
|
panelC1.Location = new Point(0, 206);
|
||||||
panelTotal.Margin = new Padding(4);
|
panelC1.Margin = new Padding(4);
|
||||||
panelTotal.Name = "panelTotal";
|
panelC1.Name = "panelC1";
|
||||||
panelTotal.Size = new Size(523, 140);
|
panelC1.Size = new Size(523, 140);
|
||||||
panelTotal.TabIndex = 40;
|
panelC1.TabIndex = 45;
|
||||||
//
|
//
|
||||||
// labelTotal
|
// labelC1
|
||||||
//
|
//
|
||||||
labelTotal.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
labelC1.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
labelTotal.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
labelC1.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
labelTotal.Location = new Point(396, 10);
|
labelC1.Location = new Point(396, 8);
|
||||||
labelTotal.Margin = new Padding(4, 0, 4, 0);
|
labelC1.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelTotal.Name = "labelTotal";
|
labelC1.Name = "labelC1";
|
||||||
labelTotal.Size = new Size(122, 32);
|
labelC1.Size = new Size(119, 32);
|
||||||
labelTotal.TabIndex = 12;
|
labelC1.TabIndex = 13;
|
||||||
labelTotal.Text = "Platform";
|
labelC1.Text = "APU";
|
||||||
labelTotal.TextAlign = ContentAlignment.TopRight;
|
labelC1.TextAlign = ContentAlignment.TopRight;
|
||||||
//
|
//
|
||||||
// labelPlatform
|
// labelLeftC1
|
||||||
//
|
//
|
||||||
labelPlatform.AutoSize = true;
|
labelLeftC1.AutoSize = true;
|
||||||
labelPlatform.Location = new Point(10, 10);
|
labelLeftC1.Location = new Point(10, 8);
|
||||||
labelPlatform.Margin = new Padding(4, 0, 4, 0);
|
labelLeftC1.Margin = new Padding(4, 0, 4, 0);
|
||||||
labelPlatform.Name = "labelPlatform";
|
labelLeftC1.Name = "labelLeftC1";
|
||||||
labelPlatform.Size = new Size(104, 32);
|
labelLeftC1.Size = new Size(58, 32);
|
||||||
labelPlatform.TabIndex = 11;
|
labelLeftC1.TabIndex = 12;
|
||||||
labelPlatform.Text = "Platform";
|
labelLeftC1.Text = "APU";
|
||||||
//
|
//
|
||||||
// trackTotal
|
// trackC1
|
||||||
//
|
//
|
||||||
trackTotal.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
trackC1.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
trackTotal.Location = new Point(6, 48);
|
trackC1.Location = new Point(6, 48);
|
||||||
trackTotal.Margin = new Padding(4, 2, 4, 2);
|
trackC1.Margin = new Padding(4, 2, 4, 2);
|
||||||
trackTotal.Maximum = 180;
|
trackC1.Maximum = 85;
|
||||||
trackTotal.Minimum = 10;
|
trackC1.Minimum = 5;
|
||||||
trackTotal.Name = "trackTotal";
|
trackC1.Name = "trackC1";
|
||||||
trackTotal.Size = new Size(513, 90);
|
trackC1.Size = new Size(513, 90);
|
||||||
trackTotal.TabIndex = 10;
|
trackC1.TabIndex = 11;
|
||||||
trackTotal.TickFrequency = 5;
|
trackC1.TickFrequency = 5;
|
||||||
trackTotal.TickStyle = TickStyle.TopLeft;
|
trackC1.TickStyle = TickStyle.TopLeft;
|
||||||
trackTotal.Value = 125;
|
trackC1.Value = 80;
|
||||||
|
//
|
||||||
|
// panelA0
|
||||||
|
//
|
||||||
|
panelA0.AutoSize = true;
|
||||||
|
panelA0.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
|
panelA0.Controls.Add(labelA0);
|
||||||
|
panelA0.Controls.Add(labelLeftA0);
|
||||||
|
panelA0.Controls.Add(trackA0);
|
||||||
|
panelA0.Dock = DockStyle.Top;
|
||||||
|
panelA0.Location = new Point(0, 66);
|
||||||
|
panelA0.Margin = new Padding(4);
|
||||||
|
panelA0.Name = "panelA0";
|
||||||
|
panelA0.Size = new Size(523, 140);
|
||||||
|
panelA0.TabIndex = 40;
|
||||||
|
//
|
||||||
|
// labelA0
|
||||||
|
//
|
||||||
|
labelA0.Anchor = AnchorStyles.Top | AnchorStyles.Right;
|
||||||
|
labelA0.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||||
|
labelA0.Location = new Point(396, 10);
|
||||||
|
labelA0.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelA0.Name = "labelA0";
|
||||||
|
labelA0.Size = new Size(122, 32);
|
||||||
|
labelA0.TabIndex = 12;
|
||||||
|
labelA0.Text = "Platform";
|
||||||
|
labelA0.TextAlign = ContentAlignment.TopRight;
|
||||||
|
//
|
||||||
|
// labelLeftA0
|
||||||
|
//
|
||||||
|
labelLeftA0.AutoSize = true;
|
||||||
|
labelLeftA0.Location = new Point(10, 10);
|
||||||
|
labelLeftA0.Margin = new Padding(4, 0, 4, 0);
|
||||||
|
labelLeftA0.Name = "labelLeftA0";
|
||||||
|
labelLeftA0.Size = new Size(104, 32);
|
||||||
|
labelLeftA0.TabIndex = 11;
|
||||||
|
labelLeftA0.Text = "Platform";
|
||||||
|
//
|
||||||
|
// trackA0
|
||||||
|
//
|
||||||
|
trackA0.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||||
|
trackA0.Location = new Point(6, 48);
|
||||||
|
trackA0.Margin = new Padding(4, 2, 4, 2);
|
||||||
|
trackA0.Maximum = 180;
|
||||||
|
trackA0.Minimum = 10;
|
||||||
|
trackA0.Name = "trackA0";
|
||||||
|
trackA0.Size = new Size(513, 90);
|
||||||
|
trackA0.TabIndex = 10;
|
||||||
|
trackA0.TickFrequency = 5;
|
||||||
|
trackA0.TickStyle = TickStyle.TopLeft;
|
||||||
|
trackA0.Value = 125;
|
||||||
//
|
//
|
||||||
// panelTitleCPU
|
// panelTitleCPU
|
||||||
//
|
//
|
||||||
@@ -785,12 +842,11 @@ namespace GHelper
|
|||||||
AutoScaleMode = AutoScaleMode.Dpi;
|
AutoScaleMode = AutoScaleMode.Dpi;
|
||||||
AutoSize = true;
|
AutoSize = true;
|
||||||
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||||
ClientSize = new Size(1340, 1189);
|
ClientSize = new Size(1340, 1310);
|
||||||
Controls.Add(panelFans);
|
Controls.Add(panelFans);
|
||||||
Controls.Add(panelSliders);
|
Controls.Add(panelSliders);
|
||||||
Margin = new Padding(4, 2, 4, 2);
|
Margin = new Padding(4, 2, 4, 2);
|
||||||
MaximizeBox = false;
|
MaximizeBox = false;
|
||||||
MdiChildrenMinimizedAnchorBottom = false;
|
|
||||||
MinimizeBox = false;
|
MinimizeBox = false;
|
||||||
MinimumSize = new Size(0, 1200);
|
MinimumSize = new Size(0, 1200);
|
||||||
Name = "Fans";
|
Name = "Fans";
|
||||||
@@ -816,12 +872,15 @@ namespace GHelper
|
|||||||
panelPower.PerformLayout();
|
panelPower.PerformLayout();
|
||||||
panelApplyPower.ResumeLayout(false);
|
panelApplyPower.ResumeLayout(false);
|
||||||
panelApplyPower.PerformLayout();
|
panelApplyPower.PerformLayout();
|
||||||
panelCPU.ResumeLayout(false);
|
panelB0.ResumeLayout(false);
|
||||||
panelCPU.PerformLayout();
|
panelB0.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)trackCPU).EndInit();
|
((System.ComponentModel.ISupportInitialize)trackB0).EndInit();
|
||||||
panelTotal.ResumeLayout(false);
|
panelC1.ResumeLayout(false);
|
||||||
panelTotal.PerformLayout();
|
panelC1.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)trackTotal).EndInit();
|
((System.ComponentModel.ISupportInitialize)trackC1).EndInit();
|
||||||
|
panelA0.ResumeLayout(false);
|
||||||
|
panelA0.PerformLayout();
|
||||||
|
((System.ComponentModel.ISupportInitialize)trackA0).EndInit();
|
||||||
panelTitleCPU.ResumeLayout(false);
|
panelTitleCPU.ResumeLayout(false);
|
||||||
panelTitleCPU.PerformLayout();
|
panelTitleCPU.PerformLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
((System.ComponentModel.ISupportInitialize)pictureBox1).EndInit();
|
||||||
@@ -857,14 +916,14 @@ namespace GHelper
|
|||||||
private Label labelTip;
|
private Label labelTip;
|
||||||
private Panel panelPower;
|
private Panel panelPower;
|
||||||
private Label labelInfo;
|
private Label labelInfo;
|
||||||
private Panel panelCPU;
|
private Panel panelB0;
|
||||||
private Label labelCPU;
|
private Label labelB0;
|
||||||
private Label label2;
|
private Label labelLeftB0;
|
||||||
private TrackBar trackCPU;
|
private TrackBar trackB0;
|
||||||
private Panel panelTotal;
|
private Panel panelA0;
|
||||||
private Label labelTotal;
|
private Label labelA0;
|
||||||
private Label labelPlatform;
|
private Label labelLeftA0;
|
||||||
private TrackBar trackTotal;
|
private TrackBar trackA0;
|
||||||
private Panel panelTitleCPU;
|
private Panel panelTitleCPU;
|
||||||
private PictureBox pictureBox1;
|
private PictureBox pictureBox1;
|
||||||
private Label labelPowerLimits;
|
private Label labelPowerLimits;
|
||||||
@@ -899,5 +958,9 @@ namespace GHelper
|
|||||||
private RComboBox comboBoost;
|
private RComboBox comboBoost;
|
||||||
private PictureBox picturePerf;
|
private PictureBox picturePerf;
|
||||||
private Label labelFans;
|
private Label labelFans;
|
||||||
|
private Panel panelC1;
|
||||||
|
private Label labelC1;
|
||||||
|
private Label labelLeftC1;
|
||||||
|
private TrackBar trackC1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
171
app/Fans.cs
171
app/Fans.cs
@@ -1,5 +1,6 @@
|
|||||||
using CustomControls;
|
using CustomControls;
|
||||||
using GHelper.Gpu;
|
using GHelper.Gpu;
|
||||||
|
using System;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Windows.Forms.DataVisualization.Charting;
|
using System.Windows.Forms.DataVisualization.Charting;
|
||||||
|
|
||||||
@@ -8,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;
|
||||||
@@ -77,17 +80,22 @@ namespace GHelper
|
|||||||
|
|
||||||
buttonReset.Click += ButtonReset_Click;
|
buttonReset.Click += ButtonReset_Click;
|
||||||
|
|
||||||
trackTotal.Maximum = AsusACPI.MaxTotal;
|
trackA0.Maximum = AsusACPI.MaxTotal;
|
||||||
trackTotal.Minimum = AsusACPI.MinTotal;
|
trackA0.Minimum = AsusACPI.MinTotal;
|
||||||
|
|
||||||
trackCPU.Maximum = AsusACPI.MaxCPU;
|
trackB0.Maximum = AsusACPI.MaxCPU;
|
||||||
trackCPU.Minimum = AsusACPI.MinCPU;
|
trackB0.Minimum = AsusACPI.MinCPU;
|
||||||
|
|
||||||
trackCPU.Scroll += TrackPower_Scroll;
|
trackC1.Maximum = AsusACPI.MaxTotal;
|
||||||
trackTotal.Scroll += TrackPower_Scroll;
|
trackC1.Minimum = AsusACPI.MinTotal;
|
||||||
|
|
||||||
trackCPU.MouseUp += TrackPower_MouseUp;
|
trackC1.Scroll += TrackPower_Scroll;
|
||||||
trackTotal.MouseUp += TrackPower_MouseUp;
|
trackB0.Scroll += TrackPower_Scroll;
|
||||||
|
trackA0.Scroll += TrackPower_Scroll;
|
||||||
|
|
||||||
|
trackC1.MouseUp += TrackPower_MouseUp;
|
||||||
|
trackB0.MouseUp += TrackPower_MouseUp;
|
||||||
|
trackA0.MouseUp += TrackPower_MouseUp;
|
||||||
|
|
||||||
checkApplyFans.Click += CheckApplyFans_Click;
|
checkApplyFans.Click += CheckApplyFans_Click;
|
||||||
checkApplyPower.Click += CheckApplyPower_Click;
|
checkApplyPower.Click += CheckApplyPower_Click;
|
||||||
@@ -140,6 +148,15 @@ namespace GHelper
|
|||||||
|
|
||||||
public void InitGPU(bool readClocks = false)
|
public void InitGPU(bool readClocks = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1)
|
||||||
|
{
|
||||||
|
gpuVisible = panelGPU.Visible = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (HardwareControl.GpuControl is null) HardwareControl.RecreateGpuControl();
|
||||||
|
|
||||||
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
if (HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
||||||
{
|
{
|
||||||
nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||||
@@ -343,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();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -363,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();
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -397,31 +398,45 @@ namespace GHelper
|
|||||||
public void InitPower(bool changed = false)
|
public void InitPower(bool changed = false)
|
||||||
{
|
{
|
||||||
|
|
||||||
bool cpuBmode = (Program.acpi.DeviceGet(AsusACPI.PPT_CPUB0) >= 0); // 2022 model +
|
bool modeA0 = Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0;
|
||||||
bool cpuAmode = (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0); // 2021 model +
|
bool modeB0 = Program.acpi.IsAllAmdPPT();
|
||||||
|
bool modeC1 = Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0;
|
||||||
|
|
||||||
powerVisible = panelPower.Visible = cpuAmode;
|
powerVisible = panelPower.Visible = modeA0;
|
||||||
panelCPU.Visible = cpuBmode;
|
panelB0.Visible = modeB0;
|
||||||
|
|
||||||
// Yes, that's stupid, but Total slider on 2021 model actually adjusts CPU PPT
|
|
||||||
if (!cpuBmode)
|
// All AMD version has B0 but doesn't have C0 (Nvidia GPU) settings
|
||||||
|
if (modeB0)
|
||||||
{
|
{
|
||||||
labelPlatform.Text = "CPU PPT";
|
labelLeftA0.Text = "Platform (CPU + GPU)";
|
||||||
|
labelLeftB0.Text = "CPU";
|
||||||
|
panelC1.Visible = false;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
labelLeftA0.Text = "CPU Slow (SPL + sPPT)";
|
||||||
|
labelLeftC1.Text = "CPU Fast (fPPT)";
|
||||||
|
panelC1.Visible = modeC1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int limit_total;
|
int limit_total;
|
||||||
int limit_cpu;
|
int limit_cpu;
|
||||||
bool apply = AppConfig.getConfigPerf("auto_apply_power") == 1;
|
int limit_fast;
|
||||||
|
|
||||||
|
bool apply = AppConfig.isConfigPerf("auto_apply_power");
|
||||||
|
|
||||||
if (changed)
|
if (changed)
|
||||||
{
|
{
|
||||||
limit_total = trackTotal.Value;
|
limit_total = trackA0.Value;
|
||||||
limit_cpu = trackCPU.Value;
|
limit_cpu = trackB0.Value;
|
||||||
|
limit_fast = trackC1.Value;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
limit_total = AppConfig.getConfigPerf("limit_total");
|
limit_total = AppConfig.getConfigPerf("limit_total");
|
||||||
limit_cpu = AppConfig.getConfigPerf("limit_cpu");
|
limit_cpu = AppConfig.getConfigPerf("limit_cpu");
|
||||||
|
limit_fast = AppConfig.getConfigPerf("limit_fast");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (limit_total < 0) limit_total = AsusACPI.DefaultTotal;
|
if (limit_total < 0) limit_total = AsusACPI.DefaultTotal;
|
||||||
@@ -433,15 +448,23 @@ namespace GHelper
|
|||||||
if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU;
|
if (limit_cpu < AsusACPI.MinCPU) limit_cpu = AsusACPI.MinCPU;
|
||||||
if (limit_cpu > limit_total) limit_cpu = limit_total;
|
if (limit_cpu > limit_total) limit_cpu = limit_total;
|
||||||
|
|
||||||
trackTotal.Value = limit_total;
|
if (limit_fast < 0) limit_fast = AsusACPI.DefaultTotal;
|
||||||
trackCPU.Value = limit_cpu;
|
if (limit_fast > AsusACPI.MaxTotal) limit_fast = AsusACPI.MaxTotal;
|
||||||
|
if (limit_fast < AsusACPI.MinTotal) limit_fast = AsusACPI.MinTotal;
|
||||||
|
|
||||||
|
trackA0.Value = limit_total;
|
||||||
|
trackB0.Value = limit_cpu;
|
||||||
|
trackC1.Value = limit_fast;
|
||||||
|
|
||||||
checkApplyPower.Checked = apply;
|
checkApplyPower.Checked = apply;
|
||||||
|
|
||||||
labelTotal.Text = trackTotal.Value.ToString() + "W";
|
labelA0.Text = trackA0.Value.ToString() + "W";
|
||||||
labelCPU.Text = trackCPU.Value.ToString() + "W";
|
labelB0.Text = trackB0.Value.ToString() + "W";
|
||||||
|
labelC1.Text = trackC1.Value.ToString() + "W";
|
||||||
|
|
||||||
AppConfig.setConfigPerf("limit_total", limit_total);
|
AppConfig.setConfigPerf("limit_total", limit_total);
|
||||||
AppConfig.setConfigPerf("limit_cpu", limit_cpu);
|
AppConfig.setConfigPerf("limit_cpu", limit_cpu);
|
||||||
|
AppConfig.setConfigPerf("limit_fast", limit_fast);
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -490,7 +513,8 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
if (chartCount > 2)
|
if (chartCount > 2)
|
||||||
Size = MinimumSize = new Size(0, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
|
Size = MinimumSize = new Size(0, (int)(ControlHelper.GetDpiScale(this).Value * (chartCount * 200 + 100)));
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Debug.WriteLine(ex);
|
Debug.WriteLine(ex);
|
||||||
}
|
}
|
||||||
@@ -581,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();
|
|
||||||
|
if (Program.acpi.IsXGConnected())
|
||||||
|
AsusUSB.ResetXGM();
|
||||||
|
|
||||||
trackGPUCore.Value = 0;
|
if (gpuVisible)
|
||||||
trackGPUMemory.Value = 0;
|
{
|
||||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
trackGPUCore.Value = 0;
|
||||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
trackGPUMemory.Value = 0;
|
||||||
|
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||||
|
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||||
|
|
||||||
AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value);
|
AppConfig.setConfigPerf("gpu_boost", trackGPUBoost.Value);
|
||||||
AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value);
|
AppConfig.setConfigPerf("gpu_temp", trackGPUTemp.Value);
|
||||||
AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value);
|
AppConfig.setConfigPerf("gpu_core", trackGPUCore.Value);
|
||||||
AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value);
|
AppConfig.setConfigPerf("gpu_memory", trackGPUMemory.Value);
|
||||||
VisualiseGPUSettings();
|
|
||||||
|
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);
|
||||||
@@ -631,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;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -660,11 +695,18 @@ namespace GHelper
|
|||||||
|
|
||||||
if (e.Button.HasFlag(MouseButtons.Left))
|
if (e.Button.HasFlag(MouseButtons.Left))
|
||||||
{
|
{
|
||||||
curPoint.XValue = dx;
|
double deltaY = dy - curPoint.YValues[0];
|
||||||
curPoint.YValues[0] = dy;
|
double deltaX = dx - curPoint.XValue;
|
||||||
|
|
||||||
if (hit.Series is not null)
|
curPoint.XValue = dx;
|
||||||
AdjustAllLevels(hit.PointIndex, dx, dy, hit.Series);
|
|
||||||
|
if (Control.ModifierKeys == Keys.Shift)
|
||||||
|
AdjustAll(0, deltaY, series);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
curPoint.YValues[0] = dy;
|
||||||
|
AdjustAllLevels(curIndex, dx, dy, series);
|
||||||
|
}
|
||||||
|
|
||||||
tip = true;
|
tip = true;
|
||||||
}
|
}
|
||||||
@@ -687,6 +729,15 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void AdjustAll(double deltaX, double deltaY, Series series)
|
||||||
|
{
|
||||||
|
for (int i = 0; i < series.Points.Count; i++)
|
||||||
|
{
|
||||||
|
series.Points[i].XValue = Math.Max(20, Math.Min(100, series.Points[i].XValue + deltaX));
|
||||||
|
series.Points[i].YValues[0] = Math.Max(0, Math.Min(100, series.Points[i].YValues[0]+deltaY));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
private void AdjustAllLevels(int index, double curXVal, double curYVal, Series series)
|
private void AdjustAllLevels(int index, double curXVal, double curYVal, Series series)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||||
<AssemblyVersion>0.71</AssemblyVersion>
|
<AssemblyVersion>0.80</AssemblyVersion>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||||
|
|||||||
@@ -1,10 +1,37 @@
|
|||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
|
using static AmdAdl2.Adl2.NativeMethods;
|
||||||
|
|
||||||
namespace AmdAdl2;
|
namespace AmdAdl2;
|
||||||
|
|
||||||
#region Export Struct
|
#region Export Struct
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
|
||||||
|
public struct ADLSGApplicationInfo
|
||||||
|
{
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
|
public string strFileName;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
|
public string strFilePath;
|
||||||
|
|
||||||
|
[MarshalAs(UnmanagedType.ByValTStr, SizeConst = 256)]
|
||||||
|
public string strVersion;
|
||||||
|
|
||||||
|
public long timeStamp;
|
||||||
|
public uint iProfileExists;
|
||||||
|
public uint iGPUAffinity;
|
||||||
|
public ADLBdf GPUBdf;
|
||||||
|
}
|
||||||
|
|
||||||
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
|
public struct ADLBdf
|
||||||
|
{
|
||||||
|
public int iBus;
|
||||||
|
public int iDevice;
|
||||||
|
public int iFunction;
|
||||||
|
}
|
||||||
|
|
||||||
[StructLayout(LayoutKind.Sequential)]
|
[StructLayout(LayoutKind.Sequential)]
|
||||||
public struct ADLSingleSensorData {
|
public struct ADLSingleSensorData {
|
||||||
public int Supported;
|
public int Supported;
|
||||||
@@ -481,5 +508,71 @@ public class Adl2 {
|
|||||||
|
|
||||||
[DllImport(Atiadlxx_FileName)]
|
[DllImport(Atiadlxx_FileName)]
|
||||||
public static extern int ADL2_Adapter_ASICFamilyType_Get(IntPtr adlContextHandle, int adapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids);
|
public static extern int ADL2_Adapter_ASICFamilyType_Get(IntPtr adlContextHandle, int adapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids);
|
||||||
|
|
||||||
|
[DllImport(Atiadlxx_FileName)]
|
||||||
|
public static extern int ADL2_SwitchableGraphics_Applications_Get(
|
||||||
|
IntPtr context,
|
||||||
|
int iListType,
|
||||||
|
out int lpNumApps,
|
||||||
|
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,10 +1,12 @@
|
|||||||
using System.Runtime.InteropServices;
|
|
||||||
using AmdAdl2;
|
using AmdAdl2;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
using static AmdAdl2.Adl2.NativeMethods;
|
||||||
|
|
||||||
namespace GHelper.Gpu;
|
namespace GHelper.Gpu;
|
||||||
|
|
||||||
// Reference: https://github.com/GPUOpen-LibrariesAndSDKs/display-library/blob/master/Sample-Managed/Program.cs
|
// Reference: https://github.com/GPUOpen-LibrariesAndSDKs/display-library/blob/master/Sample-Managed/Program.cs
|
||||||
public class AmdGpuControl : IGpuControl {
|
public class AmdGpuControl : IGpuControl
|
||||||
|
{
|
||||||
private bool _isReady;
|
private bool _isReady;
|
||||||
private IntPtr _adlContextHandle;
|
private IntPtr _adlContextHandle;
|
||||||
private readonly ADLAdapterInfo _internalDiscreteAdapter;
|
private readonly ADLAdapterInfo _internalDiscreteAdapter;
|
||||||
@@ -12,64 +14,79 @@ 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)
|
||||||
|
{
|
||||||
|
ADL2_Adapter_NumberOfAdapters_Get(_adlContextHandle, out int numberOfAdapters);
|
||||||
|
if (numberOfAdapters <= 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
ADLAdapterInfoArray osAdapterInfoData = new();
|
||||||
|
int osAdapterInfoDataSize = Marshal.SizeOf(osAdapterInfoData);
|
||||||
|
IntPtr AdapterBuffer = Marshal.AllocCoTaskMem(osAdapterInfoDataSize);
|
||||||
|
Marshal.StructureToPtr(osAdapterInfoData, AdapterBuffer, false);
|
||||||
|
if (ADL2_Adapter_AdapterInfo_Get(_adlContextHandle, AdapterBuffer, osAdapterInfoDataSize) != Adl2.ADL_SUCCESS)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
osAdapterInfoData = (ADLAdapterInfoArray)Marshal.PtrToStructure(AdapterBuffer, osAdapterInfoData.GetType())!;
|
||||||
|
|
||||||
|
const int amdVendorId = 1002;
|
||||||
|
|
||||||
|
// Determine which GPU is internal discrete AMD GPU
|
||||||
|
ADLAdapterInfo internalDiscreteAdapter =
|
||||||
|
osAdapterInfoData.ADLAdapterInfo
|
||||||
|
.FirstOrDefault(adapter =>
|
||||||
|
{
|
||||||
|
if (adapter.Exist == 0 || adapter.Present == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (adapter.VendorID != amdVendorId)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
if (ADL2_Adapter_ASICFamilyType_Get(_adlContextHandle, adapter.AdapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids) != Adl2.ADL_SUCCESS)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
asicFamilyType = (ADLAsicFamilyType)((int)asicFamilyType & asicFamilyTypeValids);
|
||||||
|
|
||||||
|
return (asicFamilyType & type) != 0;
|
||||||
|
});
|
||||||
|
|
||||||
|
if (internalDiscreteAdapter.Exist == 0)
|
||||||
|
return null;
|
||||||
|
|
||||||
|
return internalDiscreteAdapter;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public AmdGpuControl()
|
||||||
|
{
|
||||||
if (!Adl2.Load())
|
if (!Adl2.Load())
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS)
|
if (Adl2.ADL2_Main_Control_Create(1, out _adlContextHandle) != Adl2.ADL_SUCCESS)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Adl2.NativeMethods.ADL2_Adapter_NumberOfAdapters_Get(_adlContextHandle, out int numberOfAdapters);
|
ADLAdapterInfo? internalDiscreteAdapter = FindByType(ADLAsicFamilyType.Discrete);
|
||||||
if (numberOfAdapters <= 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
ADLAdapterInfoArray osAdapterInfoData = new();
|
if (internalDiscreteAdapter is not null)
|
||||||
int osAdapterInfoDataSize = Marshal.SizeOf(osAdapterInfoData);
|
{
|
||||||
IntPtr AdapterBuffer = Marshal.AllocCoTaskMem(osAdapterInfoDataSize);
|
_internalDiscreteAdapter = (ADLAdapterInfo)internalDiscreteAdapter;
|
||||||
Marshal.StructureToPtr(osAdapterInfoData, AdapterBuffer, false);
|
_isReady = true;
|
||||||
if (Adl2.NativeMethods.ADL2_Adapter_AdapterInfo_Get(_adlContextHandle, AdapterBuffer, osAdapterInfoDataSize) != Adl2.ADL_SUCCESS)
|
}
|
||||||
return;
|
|
||||||
|
|
||||||
osAdapterInfoData = (ADLAdapterInfoArray) Marshal.PtrToStructure(AdapterBuffer, osAdapterInfoData.GetType())!;
|
|
||||||
|
|
||||||
const int amdVendorId = 1002;
|
|
||||||
|
|
||||||
// Determine which GPU is internal discrete AMD GPU
|
|
||||||
ADLAdapterInfo internalDiscreteAdapter =
|
|
||||||
osAdapterInfoData.ADLAdapterInfo
|
|
||||||
.FirstOrDefault(adapter => {
|
|
||||||
if (adapter.Exist == 0 || adapter.Present == 0)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (adapter.VendorID != amdVendorId)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (Adl2.NativeMethods.ADL2_Adapter_ASICFamilyType_Get(_adlContextHandle, adapter.AdapterIndex, out ADLAsicFamilyType asicFamilyType, out int asicFamilyTypeValids) != Adl2.ADL_SUCCESS)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
asicFamilyType = (ADLAsicFamilyType) ((int) asicFamilyType & asicFamilyTypeValids);
|
|
||||||
|
|
||||||
// FIXME: is this correct for G14 2022?
|
|
||||||
return (asicFamilyType & ADLAsicFamilyType.Discrete) != 0;
|
|
||||||
});
|
|
||||||
|
|
||||||
if (internalDiscreteAdapter.Exist == 0)
|
|
||||||
return;
|
|
||||||
|
|
||||||
_internalDiscreteAdapter = internalDiscreteAdapter;
|
|
||||||
_isReady = true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsValid => _isReady && _adlContextHandle != IntPtr.Zero;
|
public bool IsValid => _isReady && _adlContextHandle != IntPtr.Zero;
|
||||||
|
|
||||||
public int? GetCurrentTemperature() {
|
public int? GetCurrentTemperature()
|
||||||
|
{
|
||||||
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];
|
||||||
if (temperatureSensor.Supported == 0)
|
if (temperatureSensor.Supported == 0)
|
||||||
return null;
|
return null;
|
||||||
|
|
||||||
@@ -79,10 +96,9 @@ public class AmdGpuControl : IGpuControl {
|
|||||||
|
|
||||||
public int? GetGpuUse()
|
public int? GetGpuUse()
|
||||||
{
|
{
|
||||||
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 gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX];
|
ADLSingleSensorData gpuUsage = adlpmLogDataOutput.Sensors[(int)ADLSensorType.PMLOG_INFO_ACTIVITY_GFX];
|
||||||
@@ -94,20 +110,125 @@ public class AmdGpuControl : IGpuControl {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void ReleaseUnmanagedResources() {
|
public bool SetVariBright(int enabled)
|
||||||
if (_adlContextHandle != IntPtr.Zero) {
|
{
|
||||||
Adl2.NativeMethods.ADL2_Main_Control_Destroy(_adlContextHandle);
|
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()
|
||||||
|
{
|
||||||
|
|
||||||
|
if (!IsValid) return;
|
||||||
|
|
||||||
|
IntPtr appInfoPtr = IntPtr.Zero;
|
||||||
|
int appCount = 0;
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
// Get switchable graphics applications information
|
||||||
|
var result = ADL2_SwitchableGraphics_Applications_Get(_adlContextHandle, 2, out appCount, out appInfoPtr);
|
||||||
|
if (result != 0)
|
||||||
|
{
|
||||||
|
throw new Exception("Failed to get switchable graphics applications. Error code: " + result);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Convert the application data pointers to an array of structs
|
||||||
|
var appInfoArray = new ADLSGApplicationInfo[appCount];
|
||||||
|
IntPtr currentPtr = appInfoPtr;
|
||||||
|
|
||||||
|
for (int i = 0; i < appCount; i++)
|
||||||
|
{
|
||||||
|
appInfoArray[i] = Marshal.PtrToStructure<ADLSGApplicationInfo>(currentPtr);
|
||||||
|
currentPtr = IntPtr.Add(currentPtr, Marshal.SizeOf<ADLSGApplicationInfo>());
|
||||||
|
}
|
||||||
|
|
||||||
|
var appNames = new List<string>();
|
||||||
|
|
||||||
|
for (int i = 0; i < appCount; i++)
|
||||||
|
{
|
||||||
|
if (appInfoArray[i].iGPUAffinity == 1)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(appInfoArray[i].strFileName + ":" + appInfoArray[i].iGPUAffinity + "(" + appInfoArray[i].timeStamp + ")");
|
||||||
|
appNames.Add(Path.GetFileNameWithoutExtension(appInfoArray[i].strFileName));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.Message);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// Clean up resources
|
||||||
|
if (appInfoPtr != IntPtr.Zero)
|
||||||
|
{
|
||||||
|
Marshal.FreeCoTaskMem(appInfoPtr);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void ReleaseUnmanagedResources()
|
||||||
|
{
|
||||||
|
if (_adlContextHandle != IntPtr.Zero)
|
||||||
|
{
|
||||||
|
ADL2_Main_Control_Destroy(_adlContextHandle);
|
||||||
_adlContextHandle = IntPtr.Zero;
|
_adlContextHandle = IntPtr.Zero;
|
||||||
_isReady = false;
|
_isReady = false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Dispose() {
|
public void Dispose()
|
||||||
|
{
|
||||||
ReleaseUnmanagedResources();
|
ReleaseUnmanagedResources();
|
||||||
GC.SuppressFinalize(this);
|
GC.SuppressFinalize(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
~AmdGpuControl() {
|
~AmdGpuControl()
|
||||||
|
{
|
||||||
ReleaseUnmanagedResources();
|
ReleaseUnmanagedResources();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,4 +6,6 @@ public interface IGpuControl : IDisposable {
|
|||||||
public string FullName { get; }
|
public string FullName { get; }
|
||||||
int? GetCurrentTemperature();
|
int? GetCurrentTemperature();
|
||||||
int? GetGpuUse();
|
int? GetGpuUse();
|
||||||
|
void KillGPUApps();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,9 @@
|
|||||||
using NvAPIWrapper;
|
using NvAPIWrapper.GPU;
|
||||||
using NvAPIWrapper.GPU;
|
|
||||||
using NvAPIWrapper.Native;
|
using NvAPIWrapper.Native;
|
||||||
using NvAPIWrapper.Native.Delegates;
|
|
||||||
using NvAPIWrapper.Native.GPU;
|
using NvAPIWrapper.Native.GPU;
|
||||||
using NvAPIWrapper.Native.GPU.Structures;
|
using NvAPIWrapper.Native.GPU.Structures;
|
||||||
using NvAPIWrapper.Native.Interfaces.GPU;
|
using NvAPIWrapper.Native.Interfaces.GPU;
|
||||||
using System;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Management;
|
|
||||||
using static NvAPIWrapper.Native.GPU.Structures.PerformanceStates20InfoV1;
|
using static NvAPIWrapper.Native.GPU.Structures.PerformanceStates20InfoV1;
|
||||||
|
|
||||||
namespace GHelper.Gpu;
|
namespace GHelper.Gpu;
|
||||||
@@ -58,27 +54,14 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Process[] processes = internalGpu.GetActiveApplications();
|
Process[] processes = internalGpu.GetActiveApplications();
|
||||||
foreach (Process process in processes)
|
foreach (Process process in processes) ProcessHelper.KillByProcess(process);
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
process?.Kill();
|
|
||||||
Logger.WriteLine("Stopped: " + process.ProcessName);
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.Message);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.Message);
|
Logger.WriteLine(ex.Message);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
//NVIDIA.RestartDisplayDriver();
|
//NVIDIA.RestartDisplayDriver();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,10 +81,11 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
Logger.WriteLine($"GET GPU CLOCKS: {core}, {memory}");
|
Logger.WriteLine($"GET GPU CLOCKS: {core}, {memory}");
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
} catch (Exception ex)
|
}
|
||||||
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine("GET GPU CLOCKS:" + ex.Message);
|
Logger.WriteLine("GET GPU CLOCKS:" + ex.Message);
|
||||||
core = memory = 0;
|
core = memory = 0;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -155,7 +139,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
//Thread.Sleep(2000);
|
//Thread.Sleep(2000);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
catch (Exception ex )
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine(ex.ToString());
|
Logger.WriteLine(ex.ToString());
|
||||||
return false;
|
return false;
|
||||||
@@ -195,7 +179,7 @@ public class NvidiaGpuControl : IGpuControl
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
Logger.WriteLine("SET GPU CLOCKS: "+ex.Message);
|
Logger.WriteLine("SET GPU CLOCKS: " + ex.Message);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -19,16 +19,19 @@ public static class HardwareControl
|
|||||||
public static int GetFanMax()
|
public static int GetFanMax()
|
||||||
{
|
{
|
||||||
int max = 58;
|
int max = 58;
|
||||||
|
int configMax = AppConfig.getConfig("fan_max");
|
||||||
|
if (configMax > 100) configMax = 0; // skipping inadvequate settings
|
||||||
|
|
||||||
if (AppConfig.ContainsModel("401")) max = 72;
|
if (AppConfig.ContainsModel("401")) max = 72;
|
||||||
else if (AppConfig.ContainsModel("503")) max = 68;
|
else if (AppConfig.ContainsModel("503")) max = 68;
|
||||||
return Math.Max(max, AppConfig.getConfig("fan_max"));
|
return Math.Max(max, configMax);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void SetFanMax(int fan)
|
public static void SetFanMax(int fan)
|
||||||
{
|
{
|
||||||
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)
|
||||||
@@ -179,4 +182,25 @@ public static class HardwareControl
|
|||||||
Debug.WriteLine(ex.ToString());
|
Debug.WriteLine(ex.ToString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void KillGPUApps()
|
||||||
|
{
|
||||||
|
|
||||||
|
List<string> tokill = new() { "EADesktop", "RadeonSoftware", "epicgameslauncher", "ASUSSmartDisplayControl" };
|
||||||
|
|
||||||
|
if (AppConfig.isConfig("kill_gpu_apps"))
|
||||||
|
{
|
||||||
|
tokill.Add("nvdisplay.container");
|
||||||
|
tokill.Add("nvcontainer");
|
||||||
|
tokill.Add("nvcplui");
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (string kill in tokill) ProcessHelper.KillByName(kill);
|
||||||
|
|
||||||
|
if (AppConfig.isConfig("kill_gpu_apps") && GpuControl is not null)
|
||||||
|
{
|
||||||
|
GpuControl.KillGPUApps();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,10 +1,8 @@
|
|||||||
using HidLibrary;
|
using HidLibrary;
|
||||||
using Microsoft.Win32;
|
using Microsoft.Win32;
|
||||||
using NAudio.CoreAudioApi;
|
using NAudio.CoreAudioApi;
|
||||||
using System.Collections.Generic;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Management;
|
using System.Management;
|
||||||
using Tools;
|
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
{
|
{
|
||||||
@@ -55,36 +53,24 @@ namespace GHelper
|
|||||||
public class InputDispatcher
|
public class InputDispatcher
|
||||||
{
|
{
|
||||||
System.Timers.Timer timer = new System.Timers.Timer(1000);
|
System.Timers.Timer timer = new System.Timers.Timer(1000);
|
||||||
public bool backlight = true;
|
public bool backlightActivity = true;
|
||||||
|
|
||||||
private static nint windowHandle;
|
|
||||||
|
|
||||||
public static Keys keyProfile = Keys.F5;
|
public static Keys keyProfile = Keys.F5;
|
||||||
public static Keys keyApp = Keys.F12;
|
public static Keys keyApp = Keys.F12;
|
||||||
|
|
||||||
KeyboardListener listener;
|
KeyboardListener listener;
|
||||||
|
KeyboardHook hook = new KeyboardHook();
|
||||||
|
|
||||||
KeyHandler m1, m2, handlerProfile, handlerApp;
|
public InputDispatcher()
|
||||||
|
|
||||||
public InputDispatcher(nint handle)
|
|
||||||
{
|
{
|
||||||
|
|
||||||
windowHandle = handle;
|
|
||||||
|
|
||||||
byte[] result = Program.acpi.DeviceInit();
|
byte[] result = Program.acpi.DeviceInit();
|
||||||
Debug.WriteLine($"Init: {BitConverter.ToString(result)}");
|
Debug.WriteLine($"Init: {BitConverter.ToString(result)}");
|
||||||
|
|
||||||
Program.acpi.SubscribeToEvents(WatcherEventArrived);
|
Program.acpi.SubscribeToEvents(WatcherEventArrived);
|
||||||
//Task.Run(Program.acpi.RunListener);
|
//Task.Run(Program.acpi.RunListener);
|
||||||
|
|
||||||
// CTRL + SHIFT + F5 to cycle profiles
|
hook.KeyPressed += new EventHandler<KeyPressedEventArgs>(KeyPressed);
|
||||||
if (AppConfig.getConfig("keybind_profile") != -1) keyProfile = (Keys)AppConfig.getConfig("keybind_profile");
|
|
||||||
|
|
||||||
handlerProfile = new KeyHandler(KeyHandler.SHIFT | KeyHandler.CTRL, keyProfile, windowHandle);
|
|
||||||
handlerApp = new KeyHandler(KeyHandler.SHIFT | KeyHandler.CTRL, keyApp, windowHandle);
|
|
||||||
|
|
||||||
m1 = new KeyHandler(KeyHandler.NOMOD, Keys.VolumeDown, windowHandle);
|
|
||||||
m2 = new KeyHandler(KeyHandler.NOMOD, Keys.VolumeUp, windowHandle);
|
|
||||||
|
|
||||||
RegisterKeys();
|
RegisterKeys();
|
||||||
|
|
||||||
@@ -94,27 +80,28 @@ namespace GHelper
|
|||||||
|
|
||||||
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
private void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||||
{
|
{
|
||||||
TimeSpan iddle = NativeMethods.GetIdleTime();
|
if (GetBacklight() == 0) return;
|
||||||
|
|
||||||
|
TimeSpan iddle = NativeMethods.GetIdleTime();
|
||||||
int kb_timeout;
|
int kb_timeout;
|
||||||
|
|
||||||
if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online)
|
if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online)
|
||||||
kb_timeout = AppConfig.getConfig("keyboard_ac_timeout", 0);
|
kb_timeout = AppConfig.getConfig("keyboard_ac_timeout", 0);
|
||||||
else
|
else
|
||||||
kb_timeout = AppConfig.getConfig("keyboard_timeout", 60);
|
kb_timeout = AppConfig.getConfig("keyboard_timeout", 60);
|
||||||
|
|
||||||
if (kb_timeout == 0) return;
|
if (kb_timeout == 0) return;
|
||||||
|
|
||||||
if (backlight && iddle.TotalSeconds > kb_timeout)
|
if (backlightActivity && iddle.TotalSeconds > kb_timeout)
|
||||||
{
|
{
|
||||||
backlight = false;
|
backlightActivity = false;
|
||||||
AsusUSB.ApplyBrightness(0);
|
AsusUSB.ApplyBrightness(0, "Timeout");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!backlight && iddle.TotalSeconds < kb_timeout)
|
if (!backlightActivity && iddle.TotalSeconds < kb_timeout)
|
||||||
{
|
{
|
||||||
backlight = true;
|
backlightActivity = true;
|
||||||
AsusUSB.ApplyBrightness(AppConfig.getConfig("keyboard_brightness"));
|
SetBacklightAuto();
|
||||||
}
|
}
|
||||||
|
|
||||||
//Debug.WriteLine(iddle.TotalSeconds);
|
//Debug.WriteLine(iddle.TotalSeconds);
|
||||||
@@ -142,20 +129,26 @@ namespace GHelper
|
|||||||
|
|
||||||
public void RegisterKeys()
|
public void RegisterKeys()
|
||||||
{
|
{
|
||||||
|
hook.UnregisterAll();
|
||||||
|
|
||||||
|
// CTRL + SHIFT + F5 to cycle profiles
|
||||||
|
if (AppConfig.getConfig("keybind_profile") != -1) keyProfile = (Keys)AppConfig.getConfig("keybind_profile");
|
||||||
|
if (AppConfig.getConfig("keybind_app") != -1) keyApp = (Keys)AppConfig.getConfig("keybind_app");
|
||||||
|
|
||||||
string actionM1 = AppConfig.getConfigString("m1");
|
string actionM1 = AppConfig.getConfigString("m1");
|
||||||
string actionM2 = AppConfig.getConfigString("m2");
|
string actionM2 = AppConfig.getConfigString("m2");
|
||||||
|
|
||||||
handlerProfile.Unregiser();
|
if (keyProfile != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyProfile);
|
||||||
m1.Unregiser();
|
if (keyApp != Keys.None) hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control, keyApp);
|
||||||
m2.Unregiser();
|
|
||||||
|
|
||||||
if (keyProfile != Keys.None) handlerProfile.Register();
|
if (!AppConfig.ContainsModel("Z13"))
|
||||||
if (keyApp != Keys.None) handlerApp.Register();
|
if (actionM1 is not null && actionM1.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeDown);
|
||||||
|
if (actionM2 is not null && actionM2.Length > 0) hook.RegisterHotKey(ModifierKeys.None, Keys.VolumeUp);
|
||||||
|
|
||||||
if (actionM1 is not null && actionM1.Length > 0) m1.Register();
|
// FN-Lock group
|
||||||
|
|
||||||
if (actionM2 is not null && actionM2.Length > 0) m2.Register();
|
if (AppConfig.isConfig("fn_lock") && !AppConfig.ContainsModel("VivoBook"))
|
||||||
|
for (Keys i = Keys.F1; i <= Keys.F11; i++) hook.RegisterHotKey(ModifierKeys.None, i);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -175,12 +168,118 @@ namespace GHelper
|
|||||||
|
|
||||||
|
|
||||||
if (intKey > 0)
|
if (intKey > 0)
|
||||||
NativeMethods.KeyPress(intKey);
|
KeyboardHook.KeyPress((Keys)intKey);
|
||||||
else
|
else
|
||||||
LaunchProcess(command);
|
LaunchProcess(command);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void KeyPressed(object sender, KeyPressedEventArgs e)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (e.Modifier == ModifierKeys.None)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(e.Key.ToString());
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("Z13"))
|
||||||
|
{
|
||||||
|
switch (e.Key)
|
||||||
|
{
|
||||||
|
case Keys.F2:
|
||||||
|
KeyboardHook.KeyPress(Keys.VolumeDown);
|
||||||
|
return;
|
||||||
|
case Keys.F3:
|
||||||
|
KeyboardHook.KeyPress(Keys.VolumeUp);
|
||||||
|
return;
|
||||||
|
case Keys.F4:
|
||||||
|
KeyProcess("m3");
|
||||||
|
return;
|
||||||
|
case Keys.F11:
|
||||||
|
OptimizationEvent(199);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("GA401I"))
|
||||||
|
{
|
||||||
|
switch (e.Key)
|
||||||
|
{
|
||||||
|
case Keys.F2:
|
||||||
|
KeyboardHook.KeyPress(Keys.MediaPreviousTrack);
|
||||||
|
return;
|
||||||
|
case Keys.F3:
|
||||||
|
KeyboardHook.KeyPress(Keys.MediaPlayPause);
|
||||||
|
return;
|
||||||
|
case Keys.F4:
|
||||||
|
KeyboardHook.KeyPress(Keys.MediaNextTrack);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
switch (e.Key)
|
||||||
|
{
|
||||||
|
case Keys.F1:
|
||||||
|
KeyboardHook.KeyPress(Keys.VolumeMute);
|
||||||
|
break;
|
||||||
|
case Keys.F2:
|
||||||
|
OptimizationEvent(197);
|
||||||
|
break;
|
||||||
|
case Keys.F3:
|
||||||
|
OptimizationEvent(196);
|
||||||
|
break;
|
||||||
|
case Keys.F4:
|
||||||
|
KeyProcess("fnf4");
|
||||||
|
break;
|
||||||
|
case Keys.F5:
|
||||||
|
KeyProcess("fnf5");
|
||||||
|
break;
|
||||||
|
case Keys.F6:
|
||||||
|
KeyboardHook.KeyPress(Keys.Snapshot);
|
||||||
|
break;
|
||||||
|
case Keys.F7:
|
||||||
|
if (AppConfig.ContainsModel("TUF"))
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, ScreenBrightness.Adjust(-10) + "%", ToastIcon.BrightnessDown);
|
||||||
|
OptimizationEvent(16);
|
||||||
|
break;
|
||||||
|
case Keys.F8:
|
||||||
|
if (AppConfig.ContainsModel("TUF"))
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, ScreenBrightness.Adjust(+10) + "%", ToastIcon.BrightnessUp);
|
||||||
|
OptimizationEvent(32);
|
||||||
|
break;
|
||||||
|
case Keys.F9:
|
||||||
|
KeyboardHook.KeyWinPress(Keys.P);
|
||||||
|
break;
|
||||||
|
case Keys.F10:
|
||||||
|
OptimizationEvent(107);
|
||||||
|
break;
|
||||||
|
case Keys.F11:
|
||||||
|
OptimizationEvent(108);
|
||||||
|
break;
|
||||||
|
case Keys.F12:
|
||||||
|
KeyboardHook.KeyWinPress(Keys.A);
|
||||||
|
break;
|
||||||
|
case Keys.VolumeDown:
|
||||||
|
KeyProcess("m1");
|
||||||
|
break;
|
||||||
|
case Keys.VolumeUp:
|
||||||
|
KeyProcess("m2");
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (e.Modifier == (ModifierKeys.Control | ModifierKeys.Shift))
|
||||||
|
{
|
||||||
|
if (e.Key == keyProfile) Program.settingsForm.CyclePerformanceMode();
|
||||||
|
if (e.Key == keyApp) Program.SettingsToggle();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
public static void KeyProcess(string name = "m3")
|
public static void KeyProcess(string name = "m3")
|
||||||
{
|
{
|
||||||
string action = AppConfig.getConfigString(name);
|
string action = AppConfig.getConfigString(name);
|
||||||
@@ -195,18 +294,20 @@ namespace GHelper
|
|||||||
action = "performance";
|
action = "performance";
|
||||||
if (name == "m3" && !OptimizationService.IsRunning())
|
if (name == "m3" && !OptimizationService.IsRunning())
|
||||||
action = "micmute";
|
action = "micmute";
|
||||||
|
if (name == "fnc")
|
||||||
|
action = "fnlock";
|
||||||
}
|
}
|
||||||
|
|
||||||
switch (action)
|
switch (action)
|
||||||
{
|
{
|
||||||
case "mute":
|
case "mute":
|
||||||
NativeMethods.KeyPress(NativeMethods.VK_VOLUME_MUTE);
|
KeyboardHook.KeyPress(Keys.VolumeMute);
|
||||||
break;
|
break;
|
||||||
case "play":
|
case "play":
|
||||||
NativeMethods.KeyPress(NativeMethods.VK_MEDIA_PLAY_PAUSE);
|
KeyboardHook.KeyPress(Keys.MediaPlayPause);
|
||||||
break;
|
break;
|
||||||
case "screenshot":
|
case "screenshot":
|
||||||
NativeMethods.KeyPress(NativeMethods.VK_SNAPSHOT);
|
KeyboardHook.KeyPress(Keys.Snapshot);
|
||||||
break;
|
break;
|
||||||
case "screen":
|
case "screen":
|
||||||
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
||||||
@@ -226,8 +327,8 @@ namespace GHelper
|
|||||||
Program.SettingsToggle();
|
Program.SettingsToggle();
|
||||||
});
|
});
|
||||||
break;
|
break;
|
||||||
case "custom":
|
case "fnlock":
|
||||||
CustomKey(name);
|
ToggleFnLock();
|
||||||
break;
|
break;
|
||||||
case "micmute":
|
case "micmute":
|
||||||
using (var enumerator = new MMDeviceEnumerator())
|
using (var enumerator = new MMDeviceEnumerator())
|
||||||
@@ -238,6 +339,9 @@ namespace GHelper
|
|||||||
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, muteStatus ? "Muted" : "Unmuted", muteStatus ? ToastIcon.MicrophoneMute : ToastIcon.Microphone);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
case "custom":
|
||||||
|
CustomKey(name);
|
||||||
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
@@ -252,7 +356,20 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
static void TabletMode()
|
static void ToggleFnLock()
|
||||||
|
{
|
||||||
|
int fnLock = AppConfig.isConfig("fn_lock") ? 0 : 1;
|
||||||
|
AppConfig.setConfig("fn_lock", fnLock);
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("VivoBook"))
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock");
|
||||||
|
else
|
||||||
|
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||||
|
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, "Fn-Lock "+(fnLock==1?"On":"Off"), ToastIcon.FnLock);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void TabletMode()
|
||||||
{
|
{
|
||||||
bool touchpadState = GetTouchpadState();
|
bool touchpadState = GetTouchpadState();
|
||||||
bool tabletState = Program.acpi.DeviceGet(AsusACPI.TabletState) > 0;
|
bool tabletState = Program.acpi.DeviceGet(AsusACPI.TabletState) > 0;
|
||||||
@@ -280,37 +397,82 @@ namespace GHelper
|
|||||||
case 178: // FN+F4
|
case 178: // FN+F4
|
||||||
KeyProcess("fnf4");
|
KeyProcess("fnf4");
|
||||||
return;
|
return;
|
||||||
|
case 158: // Fn + C
|
||||||
|
KeyProcess("fnc");
|
||||||
|
return;
|
||||||
|
case 78: // Fn + ESC
|
||||||
|
ToggleFnLock();
|
||||||
|
return;
|
||||||
case 189: // Tablet mode
|
case 189: // Tablet mode
|
||||||
TabletMode();
|
TabletMode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (OptimizationService.IsRunning()) return;
|
if (!OptimizationService.IsRunning()) OptimizationEvent(EventID);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static int GetBacklight()
|
||||||
|
{
|
||||||
|
int backlight_power = AppConfig.getConfig("keyboard_brightness", 1);
|
||||||
|
int backlight_battery = AppConfig.getConfig("keyboard_brightness_ac", 1);
|
||||||
|
bool onBattery = SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online;
|
||||||
|
|
||||||
|
int backlight;
|
||||||
|
|
||||||
|
//backlight = onBattery ? Math.Min(backlight_battery, backlight_power) : Math.Max(backlight_battery, backlight_power);
|
||||||
|
backlight = onBattery ? backlight_battery : backlight_power;
|
||||||
|
|
||||||
|
return Math.Max(Math.Min(3, backlight), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetBacklightAuto(bool init = false)
|
||||||
|
{
|
||||||
|
if (init) AsusUSB.Init();
|
||||||
|
|
||||||
|
if (!OptimizationService.IsRunning()) AsusUSB.ApplyBrightness(GetBacklight(), "Auto");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void SetBacklight(int delta)
|
||||||
|
{
|
||||||
|
int backlight_power = AppConfig.getConfig("keyboard_brightness", 1);
|
||||||
|
int backlight_battery = AppConfig.getConfig("keyboard_brightness_ac", 1);
|
||||||
|
bool onBattery = SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online;
|
||||||
|
|
||||||
|
int backlight = onBattery ? backlight_battery : backlight_power;
|
||||||
|
|
||||||
|
if (delta >= 4)
|
||||||
|
backlight = (++backlight % 4);
|
||||||
|
else
|
||||||
|
backlight = Math.Max(Math.Min(3, backlight + delta), 0);
|
||||||
|
|
||||||
|
if (onBattery)
|
||||||
|
AppConfig.setConfig("keyboard_brightness_ac", backlight);
|
||||||
|
else
|
||||||
|
AppConfig.setConfig("keyboard_brightness", backlight);
|
||||||
|
|
||||||
|
AsusUSB.ApplyBrightness(backlight, "HotKey");
|
||||||
|
|
||||||
|
string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" };
|
||||||
|
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], delta > 0 ? ToastIcon.BacklightUp : ToastIcon.BacklightDown);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
static void OptimizationEvent(int EventID)
|
||||||
|
{
|
||||||
|
|
||||||
// Asus Optimization service Events
|
// Asus Optimization service Events
|
||||||
|
|
||||||
int backlight = AppConfig.getConfig("keyboard_brightness");
|
|
||||||
string[] backlightNames = new string[] { "Off", "Low", "Mid", "Max" };
|
|
||||||
|
|
||||||
switch (EventID)
|
switch (EventID)
|
||||||
{
|
{
|
||||||
case 197: // FN+F2
|
case 197: // FN+F2
|
||||||
backlight = Math.Max(0, backlight - 1);
|
SetBacklight(-1);
|
||||||
AppConfig.setConfig("keyboard_brightness", backlight);
|
|
||||||
AsusUSB.ApplyBrightness(backlight);
|
|
||||||
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], ToastIcon.BacklightDown);
|
|
||||||
break;
|
break;
|
||||||
case 196: // FN+F3
|
case 196: // FN+F3
|
||||||
backlight = Math.Min(3, backlight + 1);
|
SetBacklight(1);
|
||||||
AppConfig.setConfig("keyboard_brightness", backlight);
|
|
||||||
AsusUSB.ApplyBrightness(backlight);
|
|
||||||
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], ToastIcon.BacklightUp);
|
|
||||||
break;
|
break;
|
||||||
case 199: // ON Z13 - FN+F11 - cycles backlight
|
case 199: // ON Z13 - FN+F11 - cycles backlight
|
||||||
if (++backlight > 3) backlight = 0;
|
SetBacklight(4);
|
||||||
AppConfig.setConfig("keyboard_brightness", backlight);
|
|
||||||
AsusUSB.ApplyBrightness(backlight);
|
|
||||||
Program.settingsForm.BeginInvoke(Program.settingsForm.RunToast, backlightNames[backlight], ToastIcon.BacklightUp);
|
|
||||||
break;
|
break;
|
||||||
case 16: // FN+F7
|
case 16: // FN+F7
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x10, "Brightness");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, 0x10, "Brightness");
|
||||||
|
|||||||
173
app/KeyboardHook.cs
Normal file
173
app/KeyboardHook.cs
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
public sealed class KeyboardHook : IDisposable
|
||||||
|
{
|
||||||
|
// Registers a hot key with Windows.
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk);
|
||||||
|
// Unregisters the hot key with Windows.
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern IntPtr CallNextHookEx(IntPtr hhk, int nCode, IntPtr wParam, IntPtr lParam);
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
|
||||||
|
|
||||||
|
public const int KEYEVENTF_EXTENDEDKEY = 1;
|
||||||
|
public const int KEYEVENTF_KEYUP = 2;
|
||||||
|
private const byte VK_LWIN = 0x5B;
|
||||||
|
|
||||||
|
public static void KeyPress(Keys key)
|
||||||
|
{
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void KeyWinPress(Keys key)
|
||||||
|
{
|
||||||
|
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
||||||
|
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
keybd_event(VK_LWIN, 0, KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP, IntPtr.Zero);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Represents the window that is used internally to get the messages.
|
||||||
|
/// </summary>
|
||||||
|
private class Window : NativeWindow, IDisposable
|
||||||
|
{
|
||||||
|
private static int WM_HOTKEY = 0x0312;
|
||||||
|
public static Keys? fakeKey;
|
||||||
|
|
||||||
|
public Window()
|
||||||
|
{
|
||||||
|
// create the handle for the window.
|
||||||
|
this.CreateHandle(new CreateParams());
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Overridden to get the notifications.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="m"></param>
|
||||||
|
protected override void WndProc(ref Message m)
|
||||||
|
{
|
||||||
|
base.WndProc(ref m);
|
||||||
|
|
||||||
|
// check if we got a hot key pressed.
|
||||||
|
if (m.Msg == WM_HOTKEY)
|
||||||
|
{
|
||||||
|
// get the keys.
|
||||||
|
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
|
||||||
|
ModifierKeys modifier = (ModifierKeys)((int)m.LParam & 0xFFFF);
|
||||||
|
|
||||||
|
// invoke the event to notify the parent.
|
||||||
|
if (KeyPressed != null)
|
||||||
|
KeyPressed(this, new KeyPressedEventArgs(modifier, key));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public event EventHandler<KeyPressedEventArgs> KeyPressed;
|
||||||
|
|
||||||
|
#region IDisposable Members
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
this.DestroyHandle();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
private Window _window = new Window();
|
||||||
|
private int _currentId;
|
||||||
|
|
||||||
|
public KeyboardHook()
|
||||||
|
{
|
||||||
|
// register the event of the inner native window.
|
||||||
|
_window.KeyPressed += delegate (object sender, KeyPressedEventArgs args)
|
||||||
|
{
|
||||||
|
if (KeyPressed != null)
|
||||||
|
KeyPressed(this, args);
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Registers a hot key in the system.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="modifier">The modifiers that are associated with the hot key.</param>
|
||||||
|
/// <param name="key">The key itself that is associated with the hot key.</param>
|
||||||
|
public void RegisterHotKey(ModifierKeys modifier, Keys key)
|
||||||
|
{
|
||||||
|
// increment the counter.
|
||||||
|
_currentId = _currentId + 1;
|
||||||
|
|
||||||
|
// register the hot key.
|
||||||
|
if (!RegisterHotKey(_window.Handle, _currentId, (uint)modifier, (uint)key))
|
||||||
|
Logger.WriteLine("Couldn’t register " + key);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A hot key has been pressed.
|
||||||
|
/// </summary>
|
||||||
|
public event EventHandler<KeyPressedEventArgs> KeyPressed;
|
||||||
|
|
||||||
|
#region IDisposable Members
|
||||||
|
|
||||||
|
public void UnregisterAll()
|
||||||
|
{
|
||||||
|
// unregister all the registered hot keys.
|
||||||
|
for (int i = _currentId; i > 0; i--)
|
||||||
|
{
|
||||||
|
UnregisterHotKey(_window.Handle, i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
UnregisterAll();
|
||||||
|
// dispose the inner native window.
|
||||||
|
_window.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Event Args for the event that is fired after the hot key has been pressed.
|
||||||
|
/// </summary>
|
||||||
|
public class KeyPressedEventArgs : EventArgs
|
||||||
|
{
|
||||||
|
private ModifierKeys _modifier;
|
||||||
|
private Keys _key;
|
||||||
|
|
||||||
|
internal KeyPressedEventArgs(ModifierKeys modifier, Keys key)
|
||||||
|
{
|
||||||
|
_modifier = modifier;
|
||||||
|
_key = key;
|
||||||
|
}
|
||||||
|
|
||||||
|
public ModifierKeys Modifier
|
||||||
|
{
|
||||||
|
get { return _modifier; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public Keys Key
|
||||||
|
{
|
||||||
|
get { return _key; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// The enumeration of possible modifiers.
|
||||||
|
/// </summary>
|
||||||
|
[Flags]
|
||||||
|
public enum ModifierKeys : uint
|
||||||
|
{
|
||||||
|
None = 0,
|
||||||
|
Alt = 1,
|
||||||
|
Control = 2,
|
||||||
|
Shift = 4,
|
||||||
|
Win = 8
|
||||||
|
}
|
||||||
@@ -30,7 +30,7 @@ public static class Logger
|
|||||||
try
|
try
|
||||||
{
|
{
|
||||||
var file = File.ReadAllLines(logFile);
|
var file = File.ReadAllLines(logFile);
|
||||||
int skip = Math.Max(0, file.Count() - 500);
|
int skip = Math.Max(0, file.Count() - 1000);
|
||||||
File.WriteAllLines(logFile, file.Skip(skip).ToArray());
|
File.WriteAllLines(logFile, file.Skip(skip).ToArray());
|
||||||
}
|
}
|
||||||
catch { }
|
catch { }
|
||||||
|
|||||||
@@ -1,54 +1,11 @@
|
|||||||
using GHelper;
|
using System.ComponentModel;
|
||||||
using System.ComponentModel;
|
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using System.Runtime.InteropServices;
|
using System.Runtime.InteropServices;
|
||||||
using static System.Windows.Forms.VisualStyles.VisualStyleElement.TrackBar;
|
|
||||||
using static Tools.ScreenInterrogatory;
|
using static Tools.ScreenInterrogatory;
|
||||||
|
|
||||||
namespace Tools
|
namespace Tools
|
||||||
{
|
{
|
||||||
|
|
||||||
public class KeyHandler
|
|
||||||
{
|
|
||||||
|
|
||||||
public const int NOMOD = 0x0000;
|
|
||||||
public const int ALT = 0x0001;
|
|
||||||
public const int CTRL = 0x0002;
|
|
||||||
public const int SHIFT = 0x0004;
|
|
||||||
public const int WIN = 0x0008;
|
|
||||||
|
|
||||||
public const int WM_HOTKEY_MSG_ID = 0x0312;
|
|
||||||
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
private static extern bool RegisterHotKey(IntPtr hWnd, int id, int fsModifiers, int vk);
|
|
||||||
[DllImport("user32.dll")]
|
|
||||||
private static extern bool UnregisterHotKey(IntPtr hWnd, int id);
|
|
||||||
|
|
||||||
private int modifier;
|
|
||||||
private int key;
|
|
||||||
private IntPtr hWnd;
|
|
||||||
private int id;
|
|
||||||
public KeyHandler(int modifier, Keys key, nint handle)
|
|
||||||
{
|
|
||||||
this.modifier = modifier;
|
|
||||||
this.key = (int)key;
|
|
||||||
this.hWnd = handle;
|
|
||||||
id = this.GetHashCode();
|
|
||||||
}
|
|
||||||
public override int GetHashCode()
|
|
||||||
{
|
|
||||||
return modifier ^ key ^ hWnd.ToInt32();
|
|
||||||
}
|
|
||||||
public bool Register()
|
|
||||||
{
|
|
||||||
return RegisterHotKey(hWnd, id, modifier, key);
|
|
||||||
}
|
|
||||||
public bool Unregiser()
|
|
||||||
{
|
|
||||||
return UnregisterHotKey(hWnd, id);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class ScreenInterrogatory
|
public static class ScreenInterrogatory
|
||||||
{
|
{
|
||||||
@@ -370,6 +327,8 @@ public class NativeMethods
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[DllImport("User32.dll")]
|
||||||
|
public static extern bool SetForegroundWindow(IntPtr handle);
|
||||||
|
|
||||||
private const int WM_SYSCOMMAND = 0x0112;
|
private const int WM_SYSCOMMAND = 0x0112;
|
||||||
private const int SC_MONITORPOWER = 0xF170;
|
private const int SC_MONITORPOWER = 0xF170;
|
||||||
@@ -459,24 +418,6 @@ public class NativeMethods
|
|||||||
public static extern bool SetSuspendState(bool hiberate, bool forceCritical, bool disableWakeEvent);
|
public static extern bool SetSuspendState(bool hiberate, bool forceCritical, bool disableWakeEvent);
|
||||||
|
|
||||||
|
|
||||||
public const int KEYEVENTF_EXTENDEDKEY = 1;
|
|
||||||
public const int KEYEVENTF_KEYUP = 2;
|
|
||||||
|
|
||||||
public const int VK_MEDIA_NEXT_TRACK = 0xB0;
|
|
||||||
public const int VK_MEDIA_PLAY_PAUSE = 0xB3;
|
|
||||||
public const int VK_MEDIA_PREV_TRACK = 0xB1;
|
|
||||||
public const int VK_VOLUME_MUTE = 0xAD;
|
|
||||||
public const int VK_SNAPSHOT = 0x2C;
|
|
||||||
|
|
||||||
[DllImport("user32.dll", SetLastError = true)]
|
|
||||||
public static extern void keybd_event(byte virtualKey, byte scanCode, uint flags, IntPtr extraInfo);
|
|
||||||
|
|
||||||
public static void KeyPress(int key = VK_MEDIA_PLAY_PAUSE)
|
|
||||||
{
|
|
||||||
keybd_event((byte)key, 0, KEYEVENTF_EXTENDEDKEY, IntPtr.Zero);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
[DllImport("user32.dll")]
|
[DllImport("user32.dll")]
|
||||||
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
|
public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
|
||||||
public const int SW_RESTORE = 9;
|
public const int SW_RESTORE = 9;
|
||||||
@@ -539,6 +480,17 @@ public class NativeMethods
|
|||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
[DllImport("powrprof.dll")]
|
||||||
|
static extern uint PowerReadACValue(
|
||||||
|
IntPtr RootPowerKey,
|
||||||
|
Guid SchemeGuid,
|
||||||
|
Guid SubGroupOfPowerSettingGuid,
|
||||||
|
Guid PowerSettingGuid,
|
||||||
|
ref int Type,
|
||||||
|
ref IntPtr Buffer,
|
||||||
|
ref uint BufferSize
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
[DllImport("PowrProf.dll", CharSet = CharSet.Unicode)]
|
[DllImport("PowrProf.dll", CharSet = CharSet.Unicode)]
|
||||||
static extern UInt32 PowerSetActiveScheme(IntPtr RootPowerKey,
|
static extern UInt32 PowerSetActiveScheme(IntPtr RootPowerKey,
|
||||||
@@ -550,6 +502,9 @@ public class NativeMethods
|
|||||||
static readonly Guid GUID_CPU = new Guid("54533251-82be-4824-96c1-47b60b740d00");
|
static readonly Guid GUID_CPU = new Guid("54533251-82be-4824-96c1-47b60b740d00");
|
||||||
static readonly Guid GUID_BOOST = new Guid("be337238-0d82-4146-a960-4f3749d470c7");
|
static readonly Guid GUID_BOOST = new Guid("be337238-0d82-4146-a960-4f3749d470c7");
|
||||||
|
|
||||||
|
private static Guid GUID_SLEEP_SUBGROUP = new Guid("238c9fa8-0aad-41ed-83f4-97be242c8f20");
|
||||||
|
private static Guid GUID_HIBERNATEIDLE = new Guid("9d7815a6-7ee4-497e-8888-515a05f02364");
|
||||||
|
|
||||||
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerGetActualOverlayScheme")]
|
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerGetActualOverlayScheme")]
|
||||||
public static extern uint PowerGetActualOverlayScheme(out Guid ActualOverlayGuid);
|
public static extern uint PowerGetActualOverlayScheme(out Guid ActualOverlayGuid);
|
||||||
|
|
||||||
@@ -633,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";
|
||||||
|
|
||||||
@@ -645,16 +636,19 @@ public class NativeMethods
|
|||||||
var devices = GetAllDevices().ToArray();
|
var devices = GetAllDevices().ToArray();
|
||||||
int count = 0, displayNum = -1;
|
int count = 0, displayNum = -1;
|
||||||
|
|
||||||
|
string internalName = AppConfig.getConfigString("internal_display");
|
||||||
|
|
||||||
foreach (var device in devices)
|
foreach (var device in devices)
|
||||||
{
|
{
|
||||||
if (device.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL ||
|
if (device.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_INTERNAL ||
|
||||||
device.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED)
|
device.outputTechnology == DISPLAYCONFIG_VIDEO_OUTPUT_TECHNOLOGY.DISPLAYCONFIG_OUTPUT_TECHNOLOGY_DISPLAYPORT_EMBEDDED ||
|
||||||
|
device.monitorFriendlyDeviceName == internalName)
|
||||||
{
|
{
|
||||||
displayNum = count;
|
displayNum = count;
|
||||||
|
AppConfig.setConfig("internal_display", device.monitorFriendlyDeviceName);
|
||||||
}
|
}
|
||||||
count++;
|
count++;
|
||||||
//Logger.WriteLine(device.outputTechnology.ToString());
|
//Logger.WriteLine(device.monitorFriendlyDeviceName + ":" + device.outputTechnology.ToString());
|
||||||
//Logger.WriteLine(device.monitorFriendlyDeviceName);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
var screens = Screen.AllScreens;
|
var screens = Screen.AllScreens;
|
||||||
@@ -737,6 +731,20 @@ public class NativeMethods
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static nint GetHuibernateAfter()
|
||||||
|
{
|
||||||
|
Guid activePolicyGuid = GetActiveScheme();
|
||||||
|
var type = 0;
|
||||||
|
nint value = 0;
|
||||||
|
var valueSize = 4u;
|
||||||
|
|
||||||
|
PowerReadACValue(IntPtr.Zero, activePolicyGuid,
|
||||||
|
GUID_SLEEP_SUBGROUP, GUID_HIBERNATEIDLE,
|
||||||
|
ref type, ref value, ref valueSize);
|
||||||
|
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
static Guid GetActiveScheme()
|
static Guid GetActiveScheme()
|
||||||
{
|
{
|
||||||
IntPtr pActiveSchemeGuid;
|
IntPtr pActiveSchemeGuid;
|
||||||
@@ -763,6 +771,8 @@ public class NativeMethods
|
|||||||
{
|
{
|
||||||
Guid activeSchemeGuid = GetActiveScheme();
|
Guid activeSchemeGuid = GetActiveScheme();
|
||||||
|
|
||||||
|
if (boost == GetCPUBoost()) return;
|
||||||
|
|
||||||
var hrAC = PowerWriteACValueIndex(
|
var hrAC = PowerWriteACValueIndex(
|
||||||
IntPtr.Zero,
|
IntPtr.Zero,
|
||||||
activeSchemeGuid,
|
activeSchemeGuid,
|
||||||
|
|||||||
97
app/ProcessHelper.cs
Normal file
97
app/ProcessHelper.cs
Normal file
@@ -0,0 +1,97 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Security.Principal;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace GHelper
|
||||||
|
{
|
||||||
|
public static class ProcessHelper
|
||||||
|
{
|
||||||
|
private static long lastAdmin;
|
||||||
|
|
||||||
|
public static void CheckAlreadyRunning()
|
||||||
|
{
|
||||||
|
Process currentProcess = Process.GetCurrentProcess();
|
||||||
|
Process[] processes = Process.GetProcessesByName(currentProcess.ProcessName);
|
||||||
|
|
||||||
|
if (processes.Length > 1)
|
||||||
|
{
|
||||||
|
foreach (Process process in processes)
|
||||||
|
if (process.Id != currentProcess.Id)
|
||||||
|
try
|
||||||
|
{
|
||||||
|
process.Kill();
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine(ex.ToString());
|
||||||
|
MessageBox.Show(Properties.Strings.AppAlreadyRunningText, Properties.Strings.AppAlreadyRunning, MessageBoxButtons.OK);
|
||||||
|
Application.Exit();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static bool IsUserAdministrator()
|
||||||
|
{
|
||||||
|
WindowsIdentity identity = WindowsIdentity.GetCurrent();
|
||||||
|
WindowsPrincipal principal = new WindowsPrincipal(identity);
|
||||||
|
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void RunAsAdmin(string? param = null)
|
||||||
|
{
|
||||||
|
|
||||||
|
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAdmin) < 2000) return;
|
||||||
|
lastAdmin = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
||||||
|
|
||||||
|
// Check if the current user is an administrator
|
||||||
|
if (!IsUserAdministrator())
|
||||||
|
{
|
||||||
|
ProcessStartInfo startInfo = new ProcessStartInfo();
|
||||||
|
startInfo.UseShellExecute = true;
|
||||||
|
startInfo.WorkingDirectory = Environment.CurrentDirectory;
|
||||||
|
startInfo.FileName = Application.ExecutablePath;
|
||||||
|
startInfo.Arguments = param;
|
||||||
|
startInfo.Verb = "runas";
|
||||||
|
Process.Start(startInfo);
|
||||||
|
Application.Exit();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void KillByName(string name)
|
||||||
|
{
|
||||||
|
foreach (var process in Process.GetProcessesByName(name))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
process.Kill();
|
||||||
|
Logger.WriteLine($"Stopped: {process.ProcessName}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Failed to stop: {process.ProcessName} {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void KillByProcess(Process process)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
process.Kill();
|
||||||
|
Logger.WriteLine($"Stopped: {process.ProcessName}");
|
||||||
|
}
|
||||||
|
catch (Exception ex)
|
||||||
|
{
|
||||||
|
Logger.WriteLine($"Failed to stop: {process.ProcessName} {ex.Message}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -25,7 +25,6 @@ namespace GHelper
|
|||||||
|
|
||||||
private static long lastAuto;
|
private static long lastAuto;
|
||||||
private static long lastTheme;
|
private static long lastTheme;
|
||||||
private static long lastAdmin;
|
|
||||||
|
|
||||||
public static InputDispatcher inputDispatcher;
|
public static InputDispatcher inputDispatcher;
|
||||||
|
|
||||||
@@ -48,7 +47,7 @@ namespace GHelper
|
|||||||
Debug.WriteLine(CultureInfo.CurrentUICulture);
|
Debug.WriteLine(CultureInfo.CurrentUICulture);
|
||||||
//Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr");
|
//Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture("fr");
|
||||||
|
|
||||||
CheckProcesses();
|
ProcessHelper.CheckAlreadyRunning();
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
@@ -67,7 +66,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
Logger.WriteLine("------------");
|
Logger.WriteLine("------------");
|
||||||
Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (IsUserAdministrator() ? "." : ""));
|
Logger.WriteLine("App launched: " + AppConfig.GetModel() + " :" + Assembly.GetExecutingAssembly().GetName().Version.ToString() + CultureInfo.CurrentUICulture + (ProcessHelper.IsUserAdministrator() ? "." : ""));
|
||||||
|
|
||||||
Application.EnableVisualStyles();
|
Application.EnableVisualStyles();
|
||||||
|
|
||||||
@@ -77,7 +76,7 @@ namespace GHelper
|
|||||||
|
|
||||||
trayIcon.MouseClick += TrayIcon_MouseClick;
|
trayIcon.MouseClick += TrayIcon_MouseClick;
|
||||||
|
|
||||||
inputDispatcher = new InputDispatcher(ds);
|
inputDispatcher = new InputDispatcher();
|
||||||
|
|
||||||
settingsForm.InitAura();
|
settingsForm.InitAura();
|
||||||
settingsForm.InitMatrix();
|
settingsForm.InitMatrix();
|
||||||
@@ -100,8 +99,6 @@ namespace GHelper
|
|||||||
SettingsToggle(action);
|
SettingsToggle(action);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
Application.Run();
|
Application.Run();
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -129,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;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -174,8 +174,7 @@ namespace GHelper
|
|||||||
|
|
||||||
public static void SettingsToggle(string action = "")
|
public static void SettingsToggle(string action = "")
|
||||||
{
|
{
|
||||||
if (settingsForm.Visible)
|
if (settingsForm.Visible) settingsForm.HideAll();
|
||||||
settingsForm.Hide();
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
settingsForm.Show();
|
settingsForm.Show();
|
||||||
@@ -214,55 +213,6 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
static void CheckProcesses()
|
|
||||||
{
|
|
||||||
Process currentProcess = Process.GetCurrentProcess();
|
|
||||||
Process[] processes = Process.GetProcessesByName(currentProcess.ProcessName);
|
|
||||||
|
|
||||||
if (processes.Length > 1)
|
|
||||||
{
|
|
||||||
foreach (Process process in processes)
|
|
||||||
if (process.Id != currentProcess.Id)
|
|
||||||
try
|
|
||||||
{
|
|
||||||
process.Kill();
|
|
||||||
}
|
|
||||||
catch (Exception ex)
|
|
||||||
{
|
|
||||||
Logger.WriteLine(ex.ToString());
|
|
||||||
MessageBox.Show(Properties.Strings.AppAlreadyRunningText, Properties.Strings.AppAlreadyRunning, MessageBoxButtons.OK);
|
|
||||||
Application.Exit();
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public static bool IsUserAdministrator()
|
|
||||||
{
|
|
||||||
WindowsIdentity identity = WindowsIdentity.GetCurrent();
|
|
||||||
WindowsPrincipal principal = new WindowsPrincipal(identity);
|
|
||||||
return principal.IsInRole(WindowsBuiltInRole.Administrator);
|
|
||||||
}
|
|
||||||
|
|
||||||
public static void RunAsAdmin(string? param = null)
|
|
||||||
{
|
|
||||||
|
|
||||||
if (Math.Abs(DateTimeOffset.Now.ToUnixTimeMilliseconds() - lastAdmin) < 2000) return;
|
|
||||||
lastAdmin = DateTimeOffset.Now.ToUnixTimeMilliseconds();
|
|
||||||
|
|
||||||
// Check if the current user is an administrator
|
|
||||||
if (!IsUserAdministrator())
|
|
||||||
{
|
|
||||||
ProcessStartInfo startInfo = new ProcessStartInfo();
|
|
||||||
startInfo.UseShellExecute = true;
|
|
||||||
startInfo.WorkingDirectory = Environment.CurrentDirectory;
|
|
||||||
startInfo.FileName = Application.ExecutablePath;
|
|
||||||
startInfo.Arguments = param;
|
|
||||||
startInfo.Verb = "runas";
|
|
||||||
Process.Start(startInfo);
|
|
||||||
Application.Exit();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
20
app/Properties/Resources.Designer.cs
generated
20
app/Properties/Resources.Designer.cs
generated
@@ -180,6 +180,16 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap icons8_function {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("icons8_function", 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>
|
||||||
@@ -340,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,52 +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>
|
||||||
</root>
|
</root>
|
||||||
45
app/Properties/Strings.Designer.cs
generated
45
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>
|
||||||
@@ -510,6 +528,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Process Fn+F hotkeys without Fn.
|
||||||
|
/// </summary>
|
||||||
|
internal static string FnLock {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("FnLock", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Dynamic Boost.
|
/// Looks up a localized string similar to Dynamic Boost.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1014,6 +1041,15 @@ namespace GHelper.Properties {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Toggle Fn-Lock.
|
||||||
|
/// </summary>
|
||||||
|
internal static string ToggleFnLock {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("ToggleFnLock", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Looks up a localized string similar to Toggle Miniled (if supported).
|
/// Looks up a localized string similar to Toggle Miniled (if supported).
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -1077,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>
|
||||||
|
|||||||
@@ -190,7 +190,10 @@
|
|||||||
<value>Encendida</value>
|
<value>Encendida</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="BacklightTimeout" xml:space="preserve">
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
<value>Apagar retroiluminación con batería (segundos)</value>
|
<value>Apagar con batería tras (0 - nunca)</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
|
<value>Apagar cuando está enchufado tras (0 - nunca)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Equilibrado</value>
|
<value>Equilibrado</value>
|
||||||
@@ -264,6 +267,9 @@
|
|||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Ventiladores + Energía</value>
|
<value>Ventiladores + Energía</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>Usar teclas de acceso rápido (Fn+F) sin pulsar Fn</value>
|
||||||
|
</data>
|
||||||
<data name="GPUBoost" xml:space="preserve">
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
<value>Dynamic Boost</value>
|
<value>Dynamic Boost</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -303,6 +309,9 @@
|
|||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>Bajar retroiluminación con batería</value>
|
<value>Bajar retroiluminación con batería</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
|
<value>Detener todas las aplicaciones que usan la dGPU cuando se cambia a Eco</value>
|
||||||
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>Retroiluminación</value>
|
<value>Retroiluminación</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -429,6 +438,9 @@
|
|||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>Alternar Aura</value>
|
<value>Alternar Aura</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
|
<value>Alternar Fn-Lock</value>
|
||||||
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>Alternar Miniled (si comp.)</value>
|
<value>Alternar Miniled (si comp.)</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
471
app/Properties/Strings.pl.resx
Normal file
471
app/Properties/Strings.pl.resx
Normal file
@@ -0,0 +1,471 @@
|
|||||||
|
<?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>
|
||||||
|
<data name="ACPIError" xml:space="preserve">
|
||||||
|
<value>Nie można odnaleźć sterownika ASUS ACPI. Aplikacja nie może bez niego funkcjonować. Spróbuj zainstalować Asus System Control Interface</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertDGPU" xml:space="preserve">
|
||||||
|
<value>Wygląda na to, że GPU jest mocno obciążone. Wyłączyć?</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertDGPUTitle" xml:space="preserve">
|
||||||
|
<value>Tryb Eco</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
|
<value>Wyłączenie trybu Ultimate wymaga ponownego uruchomienia</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
|
<value>Tryb Ultimate wymaga ponownego uruchomienia</value>
|
||||||
|
</data>
|
||||||
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
|
<value>Uruchomić ponownie teraz?</value>
|
||||||
|
</data>
|
||||||
|
<data name="AnimationSpeed" xml:space="preserve">
|
||||||
|
<value>Prędkość animacji</value>
|
||||||
|
</data>
|
||||||
|
<data name="AnimeMatrix" xml:space="preserve">
|
||||||
|
<value>Anime Matrix</value>
|
||||||
|
</data>
|
||||||
|
<data name="AppAlreadyRunning" xml:space="preserve">
|
||||||
|
<value>Aplikacja jest już uruchomiona</value>
|
||||||
|
</data>
|
||||||
|
<data name="AppAlreadyRunningText" xml:space="preserve">
|
||||||
|
<value>G-Helper jest już uruchomiony. Sprawdź obszar powiadomień na pasku zadań.</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
|
<value>Zastosuj krzywe</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
|
<value>Zastosuj limity</value>
|
||||||
|
</data>
|
||||||
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
|
<value>Automatycznie dostosuj Plan Zasilania Windows</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
|
<value>Oddychanie</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraColorCycle" xml:space="preserve">
|
||||||
|
<value>Pętla kolorów</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraFast" xml:space="preserve">
|
||||||
|
<value>Szybka</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraNormal" xml:space="preserve">
|
||||||
|
<value>Normalna</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraRainbow" xml:space="preserve">
|
||||||
|
<value>Tęcza</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraSlow" xml:space="preserve">
|
||||||
|
<value>Powolna</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraStatic" xml:space="preserve">
|
||||||
|
<value>Statyczny</value>
|
||||||
|
</data>
|
||||||
|
<data name="AuraStrobe" xml:space="preserve">
|
||||||
|
<value>Stroboskop</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutoMode" xml:space="preserve">
|
||||||
|
<value>Auto</value>
|
||||||
|
</data>
|
||||||
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Automatycznie ustaw odświeżanie 60 Hz w czasie pracy na baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="Awake" xml:space="preserve">
|
||||||
|
<value>Aktywność</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Wyłączenie podświetlenia na baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
|
<value>Wyłączenie podświetlenia po podłączeniu (0 - nigdy)</value>
|
||||||
|
</data>
|
||||||
|
<data name="Balanced" xml:space="preserve">
|
||||||
|
<value>Balans</value>
|
||||||
|
</data>
|
||||||
|
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||||
|
<value>Limit ładowania baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="Boot" xml:space="preserve">
|
||||||
|
<value>Podczas uruchamiania</value>
|
||||||
|
</data>
|
||||||
|
<data name="Brightness" xml:space="preserve">
|
||||||
|
<value>Jasność</value>
|
||||||
|
</data>
|
||||||
|
<data name="Color" xml:space="preserve">
|
||||||
|
<value>Kolor</value>
|
||||||
|
</data>
|
||||||
|
<data name="CPUBoost" xml:space="preserve">
|
||||||
|
<value>CPU Boost</value>
|
||||||
|
</data>
|
||||||
|
<data name="Custom" xml:space="preserve">
|
||||||
|
<value>Niestandardowy</value>
|
||||||
|
</data>
|
||||||
|
<data name="Default" xml:space="preserve">
|
||||||
|
<value>Domyślny</value>
|
||||||
|
</data>
|
||||||
|
<data name="DisableOverdrive" xml:space="preserve">
|
||||||
|
<value>Wyłącz funkcję Overdrive monitora</value>
|
||||||
|
</data>
|
||||||
|
<data name="Discharging" xml:space="preserve">
|
||||||
|
<value>Zużycie mocy</value>
|
||||||
|
</data>
|
||||||
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
|
<value>Pobierz aktualizację</value>
|
||||||
|
</data>
|
||||||
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Wyłącza dedykowane GPU aby oszczędzić baterię</value>
|
||||||
|
</data>
|
||||||
|
<data name="EcoMode" xml:space="preserve">
|
||||||
|
<value>Eco</value>
|
||||||
|
</data>
|
||||||
|
<data name="Extra" xml:space="preserve">
|
||||||
|
<value>Ustawienia</value>
|
||||||
|
</data>
|
||||||
|
<data name="ExtraSettings" xml:space="preserve">
|
||||||
|
<value>Dodatkowe ustawienia</value>
|
||||||
|
</data>
|
||||||
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
|
<value>Ustawienia fabryczne</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanCurves" xml:space="preserve">
|
||||||
|
<value>Krzywe wentylatorów</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileCPU" xml:space="preserve">
|
||||||
|
<value>Krzywa wentylatora CPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileGPU" xml:space="preserve">
|
||||||
|
<value>Krzywa wentylatora GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfileMid" xml:space="preserve">
|
||||||
|
<value>Krzywa wentylatora centralnego</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanProfiles" xml:space="preserve">
|
||||||
|
<value>Tryb krzywych</value>
|
||||||
|
</data>
|
||||||
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
|
<value>Wentylatory i moc</value>
|
||||||
|
</data>
|
||||||
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
|
<value>Obroty: </value>
|
||||||
|
</data>
|
||||||
|
<data name="FansPower" xml:space="preserve">
|
||||||
|
<value>Dostosuj</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
|
<value>Dynamic Boost</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
|
<value>Przełączanie</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUCoreClockOffset" xml:space="preserve">
|
||||||
|
<value>Przesunięcie zegara rdzenia</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMemoryClockOffset" xml:space="preserve">
|
||||||
|
<value>Przesunięcie zegara pamięci</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUMode" xml:space="preserve">
|
||||||
|
<value>Tryb GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
|
<value>tylko iGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
|
<value>iGPU + dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
|
<value>tylko dGPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
|
<value>Ustawienia GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="GPUTempTarget" xml:space="preserve">
|
||||||
|
<value>Temperatura docelowa</value>
|
||||||
|
</data>
|
||||||
|
<data name="KeyBindings" xml:space="preserve">
|
||||||
|
<value>Ustawienia klawiszy skrótów</value>
|
||||||
|
</data>
|
||||||
|
<data name="Keyboard" xml:space="preserve">
|
||||||
|
<value>Klawiatura</value>
|
||||||
|
</data>
|
||||||
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
|
<value>Automatycznie zmniejsz jasność w czasie pracy na baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
|
<value>Podświetlenie</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopKeyboard" xml:space="preserve">
|
||||||
|
<value>Klawiatura laptopa</value>
|
||||||
|
</data>
|
||||||
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
|
<value>Ekran laptopa</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lid" xml:space="preserve">
|
||||||
|
<value>Pokrywa</value>
|
||||||
|
</data>
|
||||||
|
<data name="Lightbar" xml:space="preserve">
|
||||||
|
<value>Lightbar</value>
|
||||||
|
</data>
|
||||||
|
<data name="Logo" xml:space="preserve">
|
||||||
|
<value>Logo</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
|
<value>Wizualizer muzyki</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
|
<value>Binarny</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixBright" xml:space="preserve">
|
||||||
|
<value>Jasny</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixClock" xml:space="preserve">
|
||||||
|
<value>Clock</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixDim" xml:space="preserve">
|
||||||
|
<value>Ciemny</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixLogo" xml:space="preserve">
|
||||||
|
<value>Logo ROG</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixMedium" xml:space="preserve">
|
||||||
|
<value>Średni</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixOff" xml:space="preserve">
|
||||||
|
<value>Wyłączony</value>
|
||||||
|
</data>
|
||||||
|
<data name="MatrixPicture" xml:space="preserve">
|
||||||
|
<value>Obraz</value>
|
||||||
|
</data>
|
||||||
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Maksymalna częstotliwość odświeżania dla mniejszych opóźnień</value>
|
||||||
|
</data>
|
||||||
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
|
<value>Częstotliwość odświeżania 60 Hz dla oszczędzania baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="Multizone" xml:space="preserve">
|
||||||
|
<value>Multizone</value>
|
||||||
|
</data>
|
||||||
|
<data name="MuteMic" xml:space="preserve">
|
||||||
|
<value>Wyciszenie mikrofonu</value>
|
||||||
|
</data>
|
||||||
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
|
<value>Otwórz okno G-Helper</value>
|
||||||
|
</data>
|
||||||
|
<data name="Optimized" xml:space="preserve">
|
||||||
|
<value>Optymalny</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Przełącza na Eco w czasie pracy na baterii i na Standard po podłączeniu</value>
|
||||||
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>W trybie Optymalnym wyłącz GPU podczas ładowania przez USB-C</value>
|
||||||
|
</data>
|
||||||
|
<data name="Other" xml:space="preserve">
|
||||||
|
<value>Inne</value>
|
||||||
|
</data>
|
||||||
|
<data name="Overdrive" xml:space="preserve">
|
||||||
|
<value>Overdrive</value>
|
||||||
|
</data>
|
||||||
|
<data name="PerformanceMode" xml:space="preserve">
|
||||||
|
<value>Tryb zasilania</value>
|
||||||
|
</data>
|
||||||
|
<data name="PictureGif" xml:space="preserve">
|
||||||
|
<value>Obraz / GIF</value>
|
||||||
|
</data>
|
||||||
|
<data name="PlayPause" xml:space="preserve">
|
||||||
|
<value>Odtwórz / Pauza</value>
|
||||||
|
</data>
|
||||||
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
|
<value>Limit mocy (PPT)</value>
|
||||||
|
</data>
|
||||||
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
|
<value>Ustawienie limitu mocy (PPT) jest funkcją eksperymentalną. Używaj ostrożnie, na własną odpowiedzialność!</value>
|
||||||
|
</data>
|
||||||
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
|
<value>Zrzut ekranu</value>
|
||||||
|
</data>
|
||||||
|
<data name="Quit" xml:space="preserve">
|
||||||
|
<value>Zamknij</value>
|
||||||
|
</data>
|
||||||
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
|
<value>Coś korzysta z dedykowanego GPU i uniemożliwia włączenie trybu Eco. Zresetować dedykowany GPU w Menadżerze Urządzeń? * Używaj na własną odpowiedzialność</value>
|
||||||
|
</data>
|
||||||
|
<data name="RPM" xml:space="preserve">
|
||||||
|
<value>RPM</value>
|
||||||
|
</data>
|
||||||
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
|
<value>Uruchom przy starcie systemu</value>
|
||||||
|
</data>
|
||||||
|
<data name="Shutdown" xml:space="preserve">
|
||||||
|
<value>Zamknij</value>
|
||||||
|
</data>
|
||||||
|
<data name="Silent" xml:space="preserve">
|
||||||
|
<value>Cichy</value>
|
||||||
|
</data>
|
||||||
|
<data name="Sleep" xml:space="preserve">
|
||||||
|
<value>Uśpij</value>
|
||||||
|
</data>
|
||||||
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Enables dGPU for standard use</value>
|
||||||
|
</data>
|
||||||
|
<data name="StandardMode" xml:space="preserve">
|
||||||
|
<value>Standard</value>
|
||||||
|
</data>
|
||||||
|
<data name="StartupError" xml:space="preserve">
|
||||||
|
<value>Błąd uruchamiania</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
|
<value>Przełącz Aura</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
|
<value>Przełącz MiniLED</value>
|
||||||
|
</data>
|
||||||
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
|
<value>Przełącz ekran</value>
|
||||||
|
</data>
|
||||||
|
<data name="Turbo" xml:space="preserve">
|
||||||
|
<value>Turbo</value>
|
||||||
|
</data>
|
||||||
|
<data name="TurnedOff" xml:space="preserve">
|
||||||
|
<value>Wyłączony</value>
|
||||||
|
</data>
|
||||||
|
<data name="TurnOffOnBattery" xml:space="preserve">
|
||||||
|
<value>Wyłączony na baterii</value>
|
||||||
|
</data>
|
||||||
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
|
<value>Podłącza ekran laptopa bezpośrednio do dedykowanego GPU</value>
|
||||||
|
</data>
|
||||||
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
|
<value>Ultimate</value>
|
||||||
|
</data>
|
||||||
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
|
<value>Wersja</value>
|
||||||
|
</data>
|
||||||
|
<data name="VolumeDown" xml:space="preserve">
|
||||||
|
<value>Zmniejsz głośność</value>
|
||||||
|
</data>
|
||||||
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
|
<value>Wyciszenie</value>
|
||||||
|
</data>
|
||||||
|
<data name="VolumeUp" xml:space="preserve">
|
||||||
|
<value>Zwiększ głośność</value>
|
||||||
|
</data>
|
||||||
|
<data name="WindowTop" xml:space="preserve">
|
||||||
|
<value>Zachowaj okno aplikacji zawsze na wierzchu</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -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>
|
||||||
@@ -267,6 +273,9 @@
|
|||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Fans + Power</value>
|
<value>Fans + Power</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>Process Fn+F hotkeys without Fn</value>
|
||||||
|
</data>
|
||||||
<data name="GPUBoost" xml:space="preserve">
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
<value>Dynamic Boost</value>
|
<value>Dynamic Boost</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -435,6 +444,9 @@
|
|||||||
<data name="ToggleAura" xml:space="preserve">
|
<data name="ToggleAura" xml:space="preserve">
|
||||||
<value>Toggle Aura</value>
|
<value>Toggle Aura</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="ToggleFnLock" xml:space="preserve">
|
||||||
|
<value>Toggle Fn-Lock</value>
|
||||||
|
</data>
|
||||||
<data name="ToggleMiniled" xml:space="preserve">
|
<data name="ToggleMiniled" xml:space="preserve">
|
||||||
<value>Toggle Miniled (if supported)</value>
|
<value>Toggle Miniled (if supported)</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -456,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>
|
||||||
|
|||||||
@@ -154,7 +154,7 @@
|
|||||||
<value>Güç Sınırlarını Uygula</value>
|
<value>Güç Sınırlarını Uygula</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
<value>Auto adjust Windows Power Mode</value>
|
<value>Windows Güç Modunu otomatik ayarla</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Nefes</value>
|
<value>Nefes</value>
|
||||||
@@ -189,6 +189,12 @@
|
|||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Uyanık</value>
|
<value>Uyanık</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>Pildeyken klavye ışığının kapanma süresi</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
|
<value>Şarjdayken klavye ışığının kapanma süresi (0 her zaman açık)</value>
|
||||||
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>Dengeli</value>
|
<value>Dengeli</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -258,6 +264,9 @@
|
|||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Fanlar + Güç</value>
|
<value>Fanlar + Güç</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>Fn+F kısayol tuşlarını FN tuşuna basmadan çalıştır</value>
|
||||||
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Değiştiriliyor</value>
|
<value>Değiştiriliyor</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -282,6 +291,9 @@
|
|||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>Pille çalışırken klavye aydınlatmasını kıs, şarjdayken eski haline dön</value>
|
<value>Pille çalışırken klavye aydınlatmasını kıs, şarjdayken eski haline dön</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
|
<value>Eco'ya geçerken dGPU kullanan tüm uygulamaları durdur</value>
|
||||||
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>Aydınlatması</value>
|
<value>Aydınlatması</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -333,6 +345,9 @@
|
|||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>Pille çalışırken Eko moda ve şarjdayken Standart moda geçiş yapın</value>
|
<value>Pille çalışırken Eko moda ve şarjdayken Standart moda geçiş yapın</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>Optimize edilmiş modda USB-c şarj cihazında GPU'yu devre dışı bırak</value>
|
||||||
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>Diğer</value>
|
<value>Diğer</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>
|
||||||
@@ -264,6 +270,9 @@
|
|||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Кулери та Потужність</value>
|
<value>Кулери та Потужність</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>Гарячі клавіші Fn+F працюють без натискання Fn</value>
|
||||||
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Зміна</value>
|
<value>Зміна</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -288,6 +297,9 @@
|
|||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>Вимкнути підсвітку на батареї та увімкнути на зарядці</value>
|
<value>Вимкнути підсвітку на батареї та увімкнути на зарядці</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
|
<value>Закривати додатки, що використовують GPU, під час переходу в режим Eco</value>
|
||||||
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>Підсвітка</value>
|
<value>Підсвітка</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -297,6 +309,9 @@
|
|||||||
<data name="LaptopScreen" xml:space="preserve">
|
<data name="LaptopScreen" xml:space="preserve">
|
||||||
<value>Дисплей</value>
|
<value>Дисплей</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MatrixAudio" xml:space="preserve">
|
||||||
|
<value>Аудіо візуалізатор</value>
|
||||||
|
</data>
|
||||||
<data name="MatrixBanner" xml:space="preserve">
|
<data name="MatrixBanner" xml:space="preserve">
|
||||||
<value>Бінарний банер</value>
|
<value>Бінарний банер</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -399,8 +414,11 @@
|
|||||||
<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>
|
||||||
<data name="ToggleScreen" xml:space="preserve">
|
<data name="ToggleScreen" xml:space="preserve">
|
||||||
<value>Вимкнути екран</value>
|
<value>Вимкнути екран</value>
|
||||||
@@ -420,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>
|
||||||
|
|||||||
@@ -127,10 +127,10 @@
|
|||||||
<value>Chế độ Tiết kiệm</value>
|
<value>Chế độ Tiết kiệm</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOff" xml:space="preserve">
|
<data name="AlertUltimateOff" xml:space="preserve">
|
||||||
<value>Chuyển sang Chế độ Ultimate cần phải khởi động lại</value>
|
<value>Chuyển sang Chế độ Tối thượng cần phải khởi động lại</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateOn" xml:space="preserve">
|
<data name="AlertUltimateOn" xml:space="preserve">
|
||||||
<value>Chế độ Ultimate yêu cầu phải khởi động lại</value>
|
<value>Chế độ Tối thượng yêu cầu phải khởi động lại</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AlertUltimateTitle" xml:space="preserve">
|
<data name="AlertUltimateTitle" xml:space="preserve">
|
||||||
<value>Khởi động lại ngay?</value>
|
<value>Khởi động lại ngay?</value>
|
||||||
@@ -148,13 +148,13 @@
|
|||||||
<value>G-Helper đã chạy. Hãy kiểm tra khay hệ thống</value>
|
<value>G-Helper đã chạy. Hãy kiểm tra khay hệ thống</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyFanCurve" xml:space="preserve">
|
<data name="ApplyFanCurve" xml:space="preserve">
|
||||||
<value>Áp dụng Chế độ quạt tuỳ chỉnh</value>
|
<value>Áp dụng Đường cong quạt tuỳ chỉnh</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||||
<value>Áp dụng Giới hạn nguồn</value>
|
<value>Áp dụng Giới hạn công suất</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
<data name="ApplyWindowsPowerPlan" xml:space="preserve">
|
||||||
<value>Tự động điều chỉnh Chế độ nguồn của Windows</value>
|
<value>Tự động điều chỉnh Kế hoạch nguồn của Windows</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AuraBreathe" xml:space="preserve">
|
<data name="AuraBreathe" xml:space="preserve">
|
||||||
<value>Hơi thở</value>
|
<value>Hơi thở</value>
|
||||||
@@ -184,7 +184,7 @@
|
|||||||
<value>Tự động</value>
|
<value>Tự động</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="AutoRefreshTooltip" xml:space="preserve">
|
<data name="AutoRefreshTooltip" xml:space="preserve">
|
||||||
<value>Chuyển về 60Hz để tiết kiệm pin, và chuyển lại tần số quét cao khi cắm sạc</value>
|
<value>Chuyển về 60Hz khi không cắm sạc và 120Hz khi cắm sạc</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>Đang bật</value>
|
<value>Đang bật</value>
|
||||||
@@ -223,7 +223,7 @@
|
|||||||
<value>Đang không sạc</value>
|
<value>Đang không sạc</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DownloadUpdate" xml:space="preserve">
|
<data name="DownloadUpdate" xml:space="preserve">
|
||||||
<value>Tải xuống Bản cập nhật</value>
|
<value>Tải xuống bản cập nhật</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="EcoGPUTooltip" xml:space="preserve">
|
<data name="EcoGPUTooltip" xml:space="preserve">
|
||||||
<value>Tắt GPU rời để tiết kiệm pin</value>
|
<value>Tắt GPU rời để tiết kiệm pin</value>
|
||||||
@@ -238,7 +238,7 @@
|
|||||||
<value>Cài đặt bổ sung</value>
|
<value>Cài đặt bổ sung</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FactoryDefaults" xml:space="preserve">
|
<data name="FactoryDefaults" xml:space="preserve">
|
||||||
<value>Đặt về Mặc định</value>
|
<value>Đặt về mặc định</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanCurves" xml:space="preserve">
|
<data name="FanCurves" xml:space="preserve">
|
||||||
<value>Chế độ Quạt</value>
|
<value>Chế độ Quạt</value>
|
||||||
@@ -256,16 +256,16 @@
|
|||||||
<value>Cấu hình Quạt</value>
|
<value>Cấu hình Quạt</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansAndPower" xml:space="preserve">
|
<data name="FansAndPower" xml:space="preserve">
|
||||||
<value>Quạt và Nguồn điện</value>
|
<value>Quạt và Công suất</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FanSpeed" xml:space="preserve">
|
<data name="FanSpeed" xml:space="preserve">
|
||||||
<value> Quạt: </value>
|
<value>Quạt: </value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>Quạt + Nguồn</value>
|
<value>Quạt + Công suất</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUBoost" xml:space="preserve">
|
<data name="GPUBoost" xml:space="preserve">
|
||||||
<value>Dynamic Boost</value>
|
<value>Tăng tốc năng động</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>Đang đổi GPU</value>
|
<value>Đang đổi GPU</value>
|
||||||
@@ -280,13 +280,13 @@
|
|||||||
<value>Chế độ GPU</value>
|
<value>Chế độ GPU</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeEco" xml:space="preserve">
|
<data name="GPUModeEco" xml:space="preserve">
|
||||||
<value>Chỉ GPU tích hợp</value>
|
<value>Chỉ dùng GPU tích hợp</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeStandard" xml:space="preserve">
|
<data name="GPUModeStandard" xml:space="preserve">
|
||||||
<value>GPU tích hợp + GPU rời</value>
|
<value>GPU tích hợp + GPU rời</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUModeUltimate" xml:space="preserve">
|
<data name="GPUModeUltimate" xml:space="preserve">
|
||||||
<value>Độc quyền của GPU rời</value>
|
<value>Chỉ dùng GPU rời</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GPUSettings" xml:space="preserve">
|
<data name="GPUSettings" xml:space="preserve">
|
||||||
<value>Cài đặt GPU</value>
|
<value>Cài đặt GPU</value>
|
||||||
@@ -349,10 +349,10 @@
|
|||||||
<value>Hình ảnh</value>
|
<value>Hình ảnh</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MaxRefreshTooltip" xml:space="preserve">
|
<data name="MaxRefreshTooltip" xml:space="preserve">
|
||||||
<value>Tốc độ làm mới tối đa để có độ trễ thấp</value>
|
<value>Tần số quét tối đa để có độ trễ thấp</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="MinRefreshTooltip" xml:space="preserve">
|
<data name="MinRefreshTooltip" xml:space="preserve">
|
||||||
<value>Tốc độ làm mới 60Hz để tiết kiệm pin</value>
|
<value>Tần số quét 60Hz để tiết kiệm pin</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>Đèn nền Đa vùng(Multi-Zone)</value>
|
<value>Đèn nền Đa vùng(Multi-Zone)</value>
|
||||||
@@ -367,7 +367,7 @@
|
|||||||
<value>Tối ưu</value>
|
<value>Tối ưu</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>Chuyển về Chế độ Tiết kiệm khi dùng pin và Chế độ Tiêu chuẩn khi cắm sạc</value>
|
<value>Chuyển về Tiết kiệm khi dùng pin và Tiêu chuẩn khi cắm sạc</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OptimizedUSBC" xml:space="preserve">
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
<value>Tắt GPU khi dùng sạc Type-C ở Chế độ Tối ưu</value>
|
<value>Tắt GPU khi dùng sạc Type-C ở Chế độ Tối ưu</value>
|
||||||
@@ -382,16 +382,16 @@
|
|||||||
<value>Chế độ Hiệu suất</value>
|
<value>Chế độ Hiệu suất</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PictureGif" xml:space="preserve">
|
<data name="PictureGif" xml:space="preserve">
|
||||||
<value>Ảnh tĩnh / Ảnh Động</value>
|
<value>Ảnh tĩnh / Ảnh động</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PlayPause" xml:space="preserve">
|
<data name="PlayPause" xml:space="preserve">
|
||||||
<value>Phát / Dừng</value>
|
<value>Phát / Dừng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PowerLimits" xml:space="preserve">
|
<data name="PowerLimits" xml:space="preserve">
|
||||||
<value>Giới hạn Nguồn (PPT)</value>
|
<value>Giới hạn công suất (PPT)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PPTExperimental" xml:space="preserve">
|
<data name="PPTExperimental" xml:space="preserve">
|
||||||
<value>Giới hạn Nguồn (PPT) là tính năng thử nghiệm. Sử dụng nó cẩn thận và tự chịu mọi rủi ro!</value>
|
<value>Giới hạn công suất (PPT) là tính năng thử nghiệm. Sử dụng nó cẩn thận và tự chịu mọi rủi ro!</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PrintScreen" xml:space="preserve">
|
<data name="PrintScreen" xml:space="preserve">
|
||||||
<value>Chụp màn hình</value>
|
<value>Chụp màn hình</value>
|
||||||
@@ -400,10 +400,10 @@
|
|||||||
<value>Thoát</value>
|
<value>Thoát</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RestartGPU" xml:space="preserve">
|
<data name="RestartGPU" xml:space="preserve">
|
||||||
<value>Không thể chuyển về Chế độ Tiết kiệm do có gì đó đang dùng GPU. Khởi động lại GPU rời trong Quản lý Thiết bị? * Bạn sẽ chịu mọi rủi ro.</value>
|
<value>Không thể chuyển về Chế độ Tiết kiệm do có gì đó đang dùng GPU rời. Khởi động lại GPU rời trong Quản lý Thiết bị? * Bạn sẽ chịu mọi rủi ro.</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RPM" xml:space="preserve">
|
<data name="RPM" xml:space="preserve">
|
||||||
<value>RPM</value>
|
<value>VTP</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="RunOnStartup" xml:space="preserve">
|
<data name="RunOnStartup" xml:space="preserve">
|
||||||
<value>Chạy khi khởi động</value>
|
<value>Chạy khi khởi động</value>
|
||||||
@@ -418,7 +418,7 @@
|
|||||||
<value>Ngủ</value>
|
<value>Ngủ</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||||
<value>Bật GPU rời cho khi cho mức độ dùng tiêu chuẩn</value>
|
<value>Bật GPU rời song song với GPU tích hợp</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="StandardMode" xml:space="preserve">
|
<data name="StandardMode" xml:space="preserve">
|
||||||
<value>Tiêu chuẩn</value>
|
<value>Tiêu chuẩn</value>
|
||||||
@@ -445,10 +445,10 @@
|
|||||||
<value>Tắt khi không cắm sạc</value>
|
<value>Tắt khi không cắm sạc</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateGPUTooltip" xml:space="preserve">
|
<data name="UltimateGPUTooltip" xml:space="preserve">
|
||||||
<value>Định tuyến màn hình laptop đến Card rời, tối đa hóa FPS</value>
|
<value>Chỉ dùng GPU rời, tối đa hóa FPS</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="UltimateMode" xml:space="preserve">
|
<data name="UltimateMode" xml:space="preserve">
|
||||||
<value>Ultimate</value>
|
<value>Tối thượng</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="VersionLabel" xml:space="preserve">
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
<value>Phiên bản</value>
|
<value>Phiên bản</value>
|
||||||
|
|||||||
@@ -189,6 +189,12 @@
|
|||||||
<data name="Awake" xml:space="preserve">
|
<data name="Awake" xml:space="preserve">
|
||||||
<value>唤醒时</value>
|
<value>唤醒时</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="BacklightTimeout" xml:space="preserve">
|
||||||
|
<value>使用电池时的背光超时时间</value>
|
||||||
|
</data>
|
||||||
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
|
<value>插入电源时的背光超时时间 (0 - 始终开启)</value>
|
||||||
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="Balanced" xml:space="preserve">
|
||||||
<value>平衡模式</value>
|
<value>平衡模式</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -258,6 +264,9 @@
|
|||||||
<data name="FansPower" xml:space="preserve">
|
<data name="FansPower" xml:space="preserve">
|
||||||
<value>风扇与电源设置</value>
|
<value>风扇与电源设置</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>打开FnLock (无需按下FN使用FN+(F1-F12)热键)</value>
|
||||||
|
</data>
|
||||||
<data name="GPUChanging" xml:space="preserve">
|
<data name="GPUChanging" xml:space="preserve">
|
||||||
<value>切换中...</value>
|
<value>切换中...</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -282,6 +291,9 @@
|
|||||||
<data name="KeyboardAuto" xml:space="preserve">
|
<data name="KeyboardAuto" xml:space="preserve">
|
||||||
<value>电池模式下降低键盘亮度以省电,并在插上电源时恢复</value>
|
<value>电池模式下降低键盘亮度以省电,并在插上电源时恢复</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
|
<value>当切换到集显模式时,停止所有正在使用独显的应用</value>
|
||||||
|
</data>
|
||||||
<data name="LaptopBacklight" xml:space="preserve">
|
<data name="LaptopBacklight" xml:space="preserve">
|
||||||
<value>背光</value>
|
<value>背光</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -324,6 +336,9 @@
|
|||||||
<data name="Multizone" xml:space="preserve">
|
<data name="Multizone" xml:space="preserve">
|
||||||
<value>多区域设置</value>
|
<value>多区域设置</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="MuteMic" xml:space="preserve">
|
||||||
|
<value>静音麦克风</value>
|
||||||
|
</data>
|
||||||
<data name="OpenGHelper" xml:space="preserve">
|
<data name="OpenGHelper" xml:space="preserve">
|
||||||
<value>打开G-Helper窗口</value>
|
<value>打开G-Helper窗口</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -333,6 +348,9 @@
|
|||||||
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
<data name="OptimizedGPUTooltip" xml:space="preserve">
|
||||||
<value>使用电池时切换到集显模式,并在插上电源后重新启用标准模式</value>
|
<value>使用电池时切换到集显模式,并在插上电源后重新启用标准模式</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="OptimizedUSBC" xml:space="preserve">
|
||||||
|
<value>在自动切换模式下,使用USB-C为笔记本供电时禁用GPU</value>
|
||||||
|
</data>
|
||||||
<data name="Other" xml:space="preserve">
|
<data name="Other" xml:space="preserve">
|
||||||
<value>其他</value>
|
<value>其他</value>
|
||||||
</data>
|
</data>
|
||||||
@@ -405,10 +423,16 @@
|
|||||||
<data name="VersionLabel" xml:space="preserve">
|
<data name="VersionLabel" xml:space="preserve">
|
||||||
<value>版本</value>
|
<value>版本</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="VolumeDown" xml:space="preserve">
|
||||||
|
<value>音量降低</value>
|
||||||
|
</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">
|
||||||
|
<value>音量增加</value>
|
||||||
|
</data>
|
||||||
<data name="WindowTop" xml:space="preserve">
|
<data name="WindowTop" xml:space="preserve">
|
||||||
<value>窗口置顶</value>
|
<value>窗口置顶</value>
|
||||||
</data>
|
</data>
|
||||||
</root>
|
</root>
|
||||||
@@ -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,404 +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>電池模式下自動關閉背光的秒數</value>
|
<value>電池模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Balanced" xml:space="preserve">
|
<data name="BacklightTimeoutPlugged" xml:space="preserve">
|
||||||
|
<value>插電模式下自動關閉鍵盤背光的秒數(0 = 不關閉)</value>
|
||||||
|
</data>
|
||||||
|
<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="GPUBoost" xml:space="preserve">
|
<data name="FnLock" xml:space="preserve">
|
||||||
|
<value>使用Fn+F1~F12功能時免按下Fn鍵</value>
|
||||||
|
</data>
|
||||||
|
<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="LaptopKeyboard" xml:space="preserve">
|
<data name="KillGpuApps" xml:space="preserve">
|
||||||
|
<value>切換至節能模式時,關閉所有正在使用獨顯的程式</value>
|
||||||
|
</data>
|
||||||
|
<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="VolumeMute" xml:space="preserve">
|
<data name="VolumeDown" xml:space="preserve">
|
||||||
|
<value>音量降低</value>
|
||||||
|
</data>
|
||||||
|
<data name="VolumeMute" xml:space="preserve">
|
||||||
<value>靜音</value>
|
<value>靜音</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="WindowTop" xml:space="preserve">
|
<data name="VolumeUp" xml:space="preserve">
|
||||||
|
<value>音量增加</value>
|
||||||
|
</data>
|
||||||
|
<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-function-mac-96.png
Normal file
BIN
app/Resources/icons8-function-mac-96.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 815 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 |
788
app/Settings.Designer.cs
generated
788
app/Settings.Designer.cs
generated
File diff suppressed because it is too large
Load Diff
332
app/Settings.cs
332
app/Settings.cs
@@ -6,7 +6,6 @@ using System.Net;
|
|||||||
using System.Reflection;
|
using System.Reflection;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using System.Timers;
|
using System.Timers;
|
||||||
using Tools;
|
|
||||||
|
|
||||||
namespace GHelper
|
namespace GHelper
|
||||||
{
|
{
|
||||||
@@ -29,18 +28,52 @@ 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()
|
||||||
{
|
{
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
InitTheme(true);
|
InitTheme(true);
|
||||||
|
|
||||||
|
buttonSilent.Text = Properties.Strings.Silent;
|
||||||
|
buttonBalanced.Text = Properties.Strings.Balanced;
|
||||||
|
buttonTurbo.Text = Properties.Strings.Turbo;
|
||||||
|
buttonFans.Text = Properties.Strings.FansPower;
|
||||||
|
|
||||||
|
buttonEco.Text = Properties.Strings.EcoMode;
|
||||||
|
buttonUltimate.Text = Properties.Strings.UltimateMode;
|
||||||
|
buttonStandard.Text = Properties.Strings.StandardMode;
|
||||||
|
buttonOptimized.Text = Properties.Strings.Optimized;
|
||||||
|
|
||||||
|
|
||||||
|
buttonScreenAuto.Text = Properties.Strings.AutoMode;
|
||||||
|
buttonMiniled.Text = Properties.Strings.Multizone;
|
||||||
|
|
||||||
|
buttonKeyboardColor.Text = Properties.Strings.Color;
|
||||||
|
buttonKeyboard.Text = Properties.Strings.Extra;
|
||||||
|
|
||||||
|
labelPerf.Text = Properties.Strings.PerformanceMode;
|
||||||
|
labelGPU.Text = Properties.Strings.GPUMode;
|
||||||
|
labelSreen.Text = Properties.Strings.LaptopScreen;
|
||||||
|
labelKeyboard.Text = Properties.Strings.LaptopKeyboard;
|
||||||
|
labelMatrix.Text = Properties.Strings.AnimeMatrix;
|
||||||
|
labelBatteryTitle.Text = Properties.Strings.BatteryChargeLimit;
|
||||||
|
|
||||||
|
checkMatrix.Text = Properties.Strings.TurnOffOnBattery;
|
||||||
|
checkStartup.Text = Properties.Strings.RunOnStartup;
|
||||||
|
|
||||||
|
buttonMatrix.Text = Properties.Strings.PictureGif;
|
||||||
|
buttonQuit.Text = Properties.Strings.Quit;
|
||||||
|
buttonUpdates.Text = Properties.Strings.Updates;
|
||||||
|
|
||||||
FormClosing += SettingsForm_FormClosing;
|
FormClosing += SettingsForm_FormClosing;
|
||||||
|
|
||||||
buttonSilent.BorderColor = colorEco;
|
buttonSilent.BorderColor = colorEco;
|
||||||
@@ -58,7 +91,6 @@ namespace GHelper
|
|||||||
buttonScreenAuto.BorderColor = SystemColors.ActiveBorder;
|
buttonScreenAuto.BorderColor = SystemColors.ActiveBorder;
|
||||||
buttonMiniled.BorderColor = colorTurbo;
|
buttonMiniled.BorderColor = colorTurbo;
|
||||||
|
|
||||||
buttonOptimized.Click += ButtonOptimized_Click;
|
|
||||||
buttonSilent.Click += ButtonSilent_Click;
|
buttonSilent.Click += ButtonSilent_Click;
|
||||||
buttonBalanced.Click += ButtonBalanced_Click;
|
buttonBalanced.Click += ButtonBalanced_Click;
|
||||||
buttonTurbo.Click += ButtonTurbo_Click;
|
buttonTurbo.Click += ButtonTurbo_Click;
|
||||||
@@ -66,6 +98,7 @@ namespace GHelper
|
|||||||
buttonEco.Click += ButtonEco_Click;
|
buttonEco.Click += ButtonEco_Click;
|
||||||
buttonStandard.Click += ButtonStandard_Click;
|
buttonStandard.Click += ButtonStandard_Click;
|
||||||
buttonUltimate.Click += ButtonUltimate_Click;
|
buttonUltimate.Click += ButtonUltimate_Click;
|
||||||
|
buttonOptimized.Click += ButtonOptimized_Click;
|
||||||
|
|
||||||
VisibleChanged += SettingsForm_VisibleChanged;
|
VisibleChanged += SettingsForm_VisibleChanged;
|
||||||
|
|
||||||
@@ -126,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;
|
||||||
|
|
||||||
@@ -139,7 +174,7 @@ namespace GHelper
|
|||||||
int trim = model.LastIndexOf("_");
|
int trim = model.LastIndexOf("_");
|
||||||
if (trim > 0) model = model.Substring(0, trim);
|
if (trim > 0) model = model.Substring(0, trim);
|
||||||
|
|
||||||
labelModel.Text = model + (Program.IsUserAdministrator() ? "." : "");
|
labelModel.Text = model + (ProcessHelper.IsUserAdministrator() ? "." : "");
|
||||||
|
|
||||||
TopMost = AppConfig.getConfig("topmost") == 1;
|
TopMost = AppConfig.getConfig("topmost") == 1;
|
||||||
|
|
||||||
@@ -153,6 +188,19 @@ 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)
|
||||||
{
|
{
|
||||||
|
|
||||||
@@ -179,26 +227,6 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
m.Result = (IntPtr)1;
|
m.Result = (IntPtr)1;
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case KeyHandler.WM_HOTKEY_MSG_ID:
|
|
||||||
|
|
||||||
Keys key = (Keys)(((int)m.LParam >> 16) & 0xFFFF);
|
|
||||||
|
|
||||||
switch (key)
|
|
||||||
{
|
|
||||||
case Keys.VolumeDown:
|
|
||||||
InputDispatcher.KeyProcess("m1");
|
|
||||||
break;
|
|
||||||
case Keys.VolumeUp:
|
|
||||||
InputDispatcher.KeyProcess("m2");
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
if (key == InputDispatcher.keyProfile) CyclePerformanceMode();
|
|
||||||
if (key == InputDispatcher.keyApp) Program.SettingsToggle();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
break;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
@@ -246,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;
|
||||||
@@ -308,7 +340,7 @@ namespace GHelper
|
|||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.GPUXG) == 1)
|
if (Program.acpi.DeviceGet(AsusACPI.GPUXG) == 1)
|
||||||
{
|
{
|
||||||
KillGPUApps();
|
HardwareControl.KillGPUApps();
|
||||||
DialogResult dialogResult = MessageBox.Show("Did you close all applications running on XG Mobile?", "Disabling XG Mobile", MessageBoxButtons.YesNo);
|
DialogResult dialogResult = MessageBox.Show("Did you close all applications running on XG Mobile?", "Disabling XG Mobile", MessageBoxButtons.YesNo);
|
||||||
if (dialogResult == DialogResult.Yes)
|
if (dialogResult == DialogResult.Yes)
|
||||||
{
|
{
|
||||||
@@ -321,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));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -353,7 +385,18 @@ namespace GHelper
|
|||||||
var json = await httpClient.GetStringAsync("https://api.github.com/repos/seerge/g-helper/releases/latest");
|
var json = await httpClient.GetStringAsync("https://api.github.com/repos/seerge/g-helper/releases/latest");
|
||||||
var config = JsonSerializer.Deserialize<JsonElement>(json);
|
var config = JsonSerializer.Deserialize<JsonElement>(json);
|
||||||
var tag = config.GetProperty("tag_name").ToString().Replace("v", "");
|
var tag = config.GetProperty("tag_name").ToString().Replace("v", "");
|
||||||
var url = config.GetProperty("assets")[0].GetProperty("browser_download_url").ToString();
|
var assets = config.GetProperty("assets");
|
||||||
|
|
||||||
|
string url = null;
|
||||||
|
|
||||||
|
for (int i = 0; i < assets.GetArrayLength(); i++)
|
||||||
|
{
|
||||||
|
if (assets[i].GetProperty("browser_download_url").ToString().Contains(".zip"))
|
||||||
|
url = assets[i].GetProperty("browser_download_url").ToString();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (url is null)
|
||||||
|
url = assets[0].GetProperty("browser_download_url").ToString();
|
||||||
|
|
||||||
var gitVersion = new Version(tag);
|
var gitVersion = new Version(tag);
|
||||||
var appVersion = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
var appVersion = new Version(Assembly.GetExecutingAssembly().GetName().Version.ToString());
|
||||||
@@ -415,21 +458,21 @@ namespace GHelper
|
|||||||
using (WebClient client = new WebClient())
|
using (WebClient client = new WebClient())
|
||||||
{
|
{
|
||||||
client.DownloadFile(uri, zipLocation);
|
client.DownloadFile(uri, zipLocation);
|
||||||
|
|
||||||
|
Logger.WriteLine(requestUri);
|
||||||
|
Logger.WriteLine(zipLocation);
|
||||||
|
Logger.WriteLine(exeLocation);
|
||||||
|
|
||||||
|
var cmd = new Process();
|
||||||
|
cmd.StartInfo.UseShellExecute = false;
|
||||||
|
cmd.StartInfo.CreateNoWindow = true;
|
||||||
|
cmd.StartInfo.FileName = "powershell";
|
||||||
|
cmd.StartInfo.Arguments = $"Start-Sleep -Seconds 1; Expand-Archive {zipLocation} -DestinationPath {exeDir} -Force; Remove-Item {zipLocation} -Force; {exeLocation}";
|
||||||
|
cmd.Start();
|
||||||
|
|
||||||
|
Application.Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
var cmd = new Process();
|
|
||||||
cmd.StartInfo.UseShellExecute = false;
|
|
||||||
cmd.StartInfo.CreateNoWindow = true;
|
|
||||||
cmd.StartInfo.FileName = "powershell";
|
|
||||||
cmd.StartInfo.Arguments = $"Start-Sleep -Seconds 1; Expand-Archive {zipLocation} -DestinationPath {exeDir} -Force; Remove-Item {zipLocation} -Force; {exeLocation}";
|
|
||||||
cmd.Start();
|
|
||||||
|
|
||||||
Debug.WriteLine(requestUri);
|
|
||||||
Debug.WriteLine(zipLocation);
|
|
||||||
|
|
||||||
Application.Exit();
|
|
||||||
return;
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -688,6 +731,17 @@ namespace GHelper
|
|||||||
pictureColor.BackColor = AsusUSB.Color1;
|
pictureColor.BackColor = AsusUSB.Color1;
|
||||||
pictureColor2.BackColor = AsusUSB.Color2;
|
pictureColor2.BackColor = AsusUSB.Color2;
|
||||||
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("GA401"))
|
||||||
|
{
|
||||||
|
panelColor.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (AppConfig.ContainsModel("GA401I"))
|
||||||
|
{
|
||||||
|
comboKeyboard.Visible = false;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public void InitMatrix()
|
public void InitMatrix()
|
||||||
@@ -874,12 +928,23 @@ namespace GHelper
|
|||||||
Application.Exit();
|
Application.Exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void HideAll()
|
||||||
|
{
|
||||||
|
this.Hide();
|
||||||
|
if (fans != null && fans.Text != "") fans.Close();
|
||||||
|
if (keyb != null && keyb.Text != "") keyb.Close();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void CloseOthers()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e)
|
private void SettingsForm_FormClosing(object? sender, FormClosingEventArgs e)
|
||||||
{
|
{
|
||||||
if (e.CloseReason == CloseReason.UserClosing)
|
if (e.CloseReason == CloseReason.UserClosing)
|
||||||
{
|
{
|
||||||
e.Cancel = true;
|
e.Cancel = true;
|
||||||
Hide();
|
HideAll();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -911,29 +976,29 @@ namespace GHelper
|
|||||||
HardwareControl.ReadSensors();
|
HardwareControl.ReadSensors();
|
||||||
|
|
||||||
if (HardwareControl.cpuTemp > 0)
|
if (HardwareControl.cpuTemp > 0)
|
||||||
cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C ";
|
cpuTemp = ": " + Math.Round((decimal)HardwareControl.cpuTemp).ToString() + "°C";
|
||||||
|
|
||||||
if (HardwareControl.batteryDischarge > 0)
|
if (HardwareControl.batteryDischarge > 0)
|
||||||
battery = Properties.Strings.Discharging + ": " + Math.Round((decimal)HardwareControl.batteryDischarge, 1).ToString() + "W";
|
battery = Properties.Strings.Discharging + ": " + Math.Round((decimal)HardwareControl.batteryDischarge, 1).ToString() + "W";
|
||||||
|
|
||||||
if (HardwareControl.gpuTemp > 0)
|
if (HardwareControl.gpuTemp > 0)
|
||||||
{
|
{
|
||||||
gpuTemp = $": {HardwareControl.gpuTemp}°C ";
|
gpuTemp = $": {HardwareControl.gpuTemp}°C";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Program.settingsForm.BeginInvoke(delegate
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
{
|
{
|
||||||
labelCPUFan.Text = "CPU" + cpuTemp + HardwareControl.cpuFan;
|
labelCPUFan.Text = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
|
||||||
labelGPUFan.Text = "GPU" + gpuTemp + HardwareControl.gpuFan;
|
labelGPUFan.Text = "GPU" + gpuTemp + " " + HardwareControl.gpuFan;
|
||||||
if (HardwareControl.midFan is not null)
|
if (HardwareControl.midFan is not null)
|
||||||
labelMidFan.Text = "Mid" + HardwareControl.midFan;
|
labelMidFan.Text = "Mid" + HardwareControl.midFan;
|
||||||
|
|
||||||
labelBattery.Text = battery;
|
labelBattery.Text = battery;
|
||||||
});
|
});
|
||||||
|
|
||||||
string trayTip = "CPU" + cpuTemp + HardwareControl.cpuFan;
|
string trayTip = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
|
||||||
if (gpuTemp.Length > 0) trayTip += "\nGPU" + gpuTemp + HardwareControl.gpuFan;
|
if (gpuTemp.Length > 0) trayTip += "\nGPU" + gpuTemp + " " + HardwareControl.gpuFan;
|
||||||
if (battery.Length > 0) trayTip += "\n" + battery;
|
if (battery.Length > 0) trayTip += "\n" + battery;
|
||||||
|
|
||||||
Program.trayIcon.Text = trayTip;
|
Program.trayIcon.Text = trayTip;
|
||||||
@@ -972,6 +1037,7 @@ namespace GHelper
|
|||||||
|
|
||||||
int limit_total = AppConfig.getConfigPerf("limit_total");
|
int limit_total = AppConfig.getConfigPerf("limit_total");
|
||||||
int limit_cpu = AppConfig.getConfigPerf("limit_cpu");
|
int limit_cpu = AppConfig.getConfigPerf("limit_cpu");
|
||||||
|
int limit_fast = AppConfig.getConfigPerf("limit_fast");
|
||||||
|
|
||||||
if (limit_total > AsusACPI.MaxTotal) return;
|
if (limit_total > AsusACPI.MaxTotal) return;
|
||||||
if (limit_total < AsusACPI.MinTotal) return;
|
if (limit_total < AsusACPI.MinTotal) return;
|
||||||
@@ -979,6 +1045,10 @@ namespace GHelper
|
|||||||
if (limit_cpu > AsusACPI.MaxCPU) return;
|
if (limit_cpu > AsusACPI.MaxCPU) return;
|
||||||
if (limit_cpu < AsusACPI.MinCPU) return;
|
if (limit_cpu < AsusACPI.MinCPU) return;
|
||||||
|
|
||||||
|
if (limit_fast > AsusACPI.MaxTotal) return;
|
||||||
|
if (limit_fast < AsusACPI.MinTotal) return;
|
||||||
|
|
||||||
|
// SPL + SPPT togeher in one slider
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0)
|
if (Program.acpi.DeviceGet(AsusACPI.PPT_TotalA0) >= 0)
|
||||||
{
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.PPT_TotalA0, limit_total, "PowerLimit A0");
|
Program.acpi.DeviceSet(AsusACPI.PPT_TotalA0, limit_total, "PowerLimit A0");
|
||||||
@@ -986,11 +1056,17 @@ namespace GHelper
|
|||||||
customPower = limit_total;
|
customPower = limit_total;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (Program.acpi.DeviceGet(AsusACPI.PPT_CPUB0) >= 0)
|
if (Program.acpi.IsAllAmdPPT()) // CPU limit all amd models
|
||||||
{
|
{
|
||||||
Program.acpi.DeviceSet(AsusACPI.PPT_CPUB0, limit_cpu, "PowerLimit B0");
|
Program.acpi.DeviceSet(AsusACPI.PPT_CPUB0, limit_cpu, "PowerLimit B0");
|
||||||
customPower = limit_cpu;
|
customPower = limit_cpu;
|
||||||
}
|
}
|
||||||
|
else if (Program.acpi.DeviceGet(AsusACPI.PPT_APUC1) >= 0) // FPPT boost for non all-amd models
|
||||||
|
{
|
||||||
|
Program.acpi.DeviceSet(AsusACPI.PPT_APUC1, limit_fast, "PowerLimit C1");
|
||||||
|
customPower = limit_fast;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
Program.settingsForm.BeginInvoke(SetPerformanceLabel);
|
Program.settingsForm.BeginInvoke(SetPerformanceLabel);
|
||||||
|
|
||||||
@@ -1021,7 +1097,7 @@ namespace GHelper
|
|||||||
}
|
}
|
||||||
|
|
||||||
int setStatus = nvControl.SetClocks(gpu_core, gpu_memory);
|
int setStatus = nvControl.SetClocks(gpu_core, gpu_memory);
|
||||||
if (launchAsAdmin && setStatus == -1) Program.RunAsAdmin("gpu");
|
if (launchAsAdmin && setStatus == -1) ProcessHelper.RunAsAdmin("gpu");
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -1063,23 +1139,30 @@ namespace GHelper
|
|||||||
{
|
{
|
||||||
customFans = false;
|
customFans = false;
|
||||||
|
|
||||||
if (AppConfig.getConfigPerf("auto_apply") == 1 || force)
|
if (AppConfig.isConfigPerf("auto_apply") || force)
|
||||||
{
|
{
|
||||||
|
|
||||||
|
bool xgmFan = false;
|
||||||
|
if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected())
|
||||||
|
{
|
||||||
|
AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM));
|
||||||
|
xgmFan = true;
|
||||||
|
}
|
||||||
|
|
||||||
int cpuResult = Program.acpi.SetFanCurve(AsusFan.CPU, AppConfig.getFanConfig(AsusFan.CPU));
|
int cpuResult = Program.acpi.SetFanCurve(AsusFan.CPU, AppConfig.getFanConfig(AsusFan.CPU));
|
||||||
int gpuResult = Program.acpi.SetFanCurve(AsusFan.GPU, AppConfig.getFanConfig(AsusFan.GPU));
|
int gpuResult = Program.acpi.SetFanCurve(AsusFan.GPU, AppConfig.getFanConfig(AsusFan.GPU));
|
||||||
|
|
||||||
|
|
||||||
if (AppConfig.isConfig("mid_fan"))
|
if (AppConfig.isConfig("mid_fan"))
|
||||||
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.getFanConfig(AsusFan.Mid));
|
Program.acpi.SetFanCurve(AsusFan.Mid, AppConfig.getFanConfig(AsusFan.Mid));
|
||||||
|
|
||||||
if (AppConfig.isConfig("xgm_fan") && Program.acpi.IsXGConnected())
|
|
||||||
AsusUSB.SetXGMFan(AppConfig.getFanConfig(AsusFan.XGM));
|
|
||||||
|
|
||||||
// something went wrong, resetting to default profile
|
// something went wrong, resetting to default profile
|
||||||
if (cpuResult != 1 || gpuResult != 1)
|
if (cpuResult != 1 || gpuResult != 1)
|
||||||
{
|
{
|
||||||
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
|
||||||
@@ -1088,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")) && 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 () =>
|
||||||
{
|
{
|
||||||
@@ -1105,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)
|
||||||
{
|
{
|
||||||
@@ -1144,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;
|
||||||
@@ -1172,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))
|
||||||
@@ -1239,14 +1347,8 @@ namespace GHelper
|
|||||||
|
|
||||||
public void AutoKeyboard()
|
public void AutoKeyboard()
|
||||||
{
|
{
|
||||||
AsusUSB.Init();
|
InputDispatcher.SetBacklightAuto(true);
|
||||||
|
if (AppConfig.ContainsModel("X16") || AppConfig.ContainsModel("X13")) InputDispatcher.TabletMode();
|
||||||
int backlight = AppConfig.getConfig("keyboard_brightness");
|
|
||||||
|
|
||||||
if (AppConfig.isConfig("keyboard_auto") && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online)
|
|
||||||
AsusUSB.ApplyBrightness(0);
|
|
||||||
else if (backlight >= 0)
|
|
||||||
AsusUSB.ApplyBrightness(backlight);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1413,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) < 0) panelGPU.Visible = false;
|
SetContextMenu();
|
||||||
|
if (HardwareControl.FormatFan(Program.acpi.DeviceGet(AsusACPI.GPU_Fan)) is null) panelGPU.Visible = false;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -1447,9 +1550,9 @@ namespace GHelper
|
|||||||
if (dialogResult == DialogResult.No) return;
|
if (dialogResult == DialogResult.No) return;
|
||||||
}
|
}
|
||||||
|
|
||||||
Program.RunAsAdmin("gpurestart");
|
ProcessHelper.RunAsAdmin("gpurestart");
|
||||||
|
|
||||||
if (!Program.IsUserAdministrator()) return;
|
if (!ProcessHelper.IsUserAdministrator()) return;
|
||||||
|
|
||||||
Logger.WriteLine("Trying to restart dGPU");
|
Logger.WriteLine("Trying to restart dGPU");
|
||||||
|
|
||||||
@@ -1476,19 +1579,6 @@ namespace GHelper
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
protected static void KillGPUApps()
|
|
||||||
{
|
|
||||||
string[] tokill = { "EADesktop", "RadeonSoftware", "epicgameslauncher" };
|
|
||||||
|
|
||||||
foreach (string kill in tokill)
|
|
||||||
foreach (var process in Process.GetProcessesByName(kill)) process.Kill();
|
|
||||||
|
|
||||||
if (AppConfig.isConfig("kill_gpu_apps") && HardwareControl.GpuControl is not null && HardwareControl.GpuControl.IsNvidia)
|
|
||||||
{
|
|
||||||
NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
|
||||||
nvControl.KillGPUApps();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetGPUEco(int eco, bool hardWay = false)
|
public void SetGPUEco(int eco, bool hardWay = false)
|
||||||
{
|
{
|
||||||
@@ -1504,19 +1594,17 @@ namespace GHelper
|
|||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
|
|
||||||
int status;
|
int status = 1;
|
||||||
|
|
||||||
if (eco == 1) KillGPUApps();
|
if (eco == 1) HardwareControl.KillGPUApps();
|
||||||
|
|
||||||
|
Logger.WriteLine($"Running eco command {eco}");
|
||||||
|
|
||||||
//if (eco == 1) status = 0; else
|
|
||||||
status = Program.acpi.SetGPUEco(eco);
|
status = Program.acpi.SetGPUEco(eco);
|
||||||
|
|
||||||
if (status == 0 && eco == 1 && hardWay)
|
if (status == 0 && eco == 1 && hardWay) RestartGPU();
|
||||||
{
|
|
||||||
RestartGPU();
|
|
||||||
}
|
|
||||||
|
|
||||||
await Task.Delay(TimeSpan.FromMilliseconds(500));
|
await Task.Delay(TimeSpan.FromMilliseconds(100));
|
||||||
Program.settingsForm.BeginInvoke(delegate
|
Program.settingsForm.BeginInvoke(delegate
|
||||||
{
|
{
|
||||||
InitGPUMode();
|
InitGPUMode();
|
||||||
|
|||||||
@@ -1,4 +1,64 @@
|
|||||||
<root>
|
<?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: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">
|
||||||
|
|||||||
@@ -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,
|
||||||
|
|||||||
@@ -16,7 +16,7 @@ public class Startup
|
|||||||
|
|
||||||
public static void ReScheduleAdmin()
|
public static void ReScheduleAdmin()
|
||||||
{
|
{
|
||||||
if (Program.IsUserAdministrator() && IsScheduled())
|
if (ProcessHelper.IsUserAdministrator() && IsScheduled())
|
||||||
{
|
{
|
||||||
UnSchedule();
|
UnSchedule();
|
||||||
Schedule();
|
Schedule();
|
||||||
@@ -38,7 +38,7 @@ public class Startup
|
|||||||
td.Triggers.Add(new LogonTrigger { UserId = userId });
|
td.Triggers.Add(new LogonTrigger { UserId = userId });
|
||||||
td.Actions.Add(strExeFilePath);
|
td.Actions.Add(strExeFilePath);
|
||||||
|
|
||||||
if (Program.IsUserAdministrator())
|
if (ProcessHelper.IsUserAdministrator())
|
||||||
td.Principal.RunLevel = TaskRunLevel.Highest;
|
td.Principal.RunLevel = TaskRunLevel.Highest;
|
||||||
|
|
||||||
td.Settings.StopIfGoingOnBatteries = false;
|
td.Settings.StopIfGoingOnBatteries = false;
|
||||||
@@ -54,10 +54,10 @@ public class Startup
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
if (Program.IsUserAdministrator())
|
if (ProcessHelper.IsUserAdministrator())
|
||||||
MessageBox.Show("Can't create a start up task. Try running Task Scheduler by hand and manually deleting GHelper task if it exists there.", "Scheduler Error", MessageBoxButtons.OK);
|
MessageBox.Show("Can't create a start up task. Try running Task Scheduler by hand and manually deleting GHelper task if it exists there.", "Scheduler Error", MessageBoxButtons.OK);
|
||||||
else
|
else
|
||||||
Program.RunAsAdmin();
|
ProcessHelper.RunAsAdmin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -73,10 +73,10 @@ public class Startup
|
|||||||
}
|
}
|
||||||
catch (Exception e)
|
catch (Exception e)
|
||||||
{
|
{
|
||||||
if (Program.IsUserAdministrator())
|
if (ProcessHelper.IsUserAdministrator())
|
||||||
MessageBox.Show("Can't remove task. Try running Task Scheduler by hand and manually deleting GHelper task if it exists there.", "Scheduler Error", MessageBoxButtons.OK);
|
MessageBox.Show("Can't remove task. Try running Task Scheduler by hand and manually deleting GHelper task if it exists there.", "Scheduler Error", MessageBoxButtons.OK);
|
||||||
else
|
else
|
||||||
Program.RunAsAdmin();
|
ProcessHelper.RunAsAdmin();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -51,7 +51,8 @@ namespace GHelper
|
|||||||
BacklightDown,
|
BacklightDown,
|
||||||
Touchpad,
|
Touchpad,
|
||||||
Microphone,
|
Microphone,
|
||||||
MicrophoneMute
|
MicrophoneMute,
|
||||||
|
FnLock
|
||||||
}
|
}
|
||||||
|
|
||||||
public class ToastForm : OSDNativeForm
|
public class ToastForm : OSDNativeForm
|
||||||
@@ -103,6 +104,9 @@ namespace GHelper
|
|||||||
case ToastIcon.Touchpad:
|
case ToastIcon.Touchpad:
|
||||||
icon = Properties.Resources.icons8_touchpad_96;
|
icon = Properties.Resources.icons8_touchpad_96;
|
||||||
break;
|
break;
|
||||||
|
case ToastIcon.FnLock:
|
||||||
|
icon = Properties.Resources.icons8_function;
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
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>
|
||||||
@@ -1,13 +1,13 @@
|
|||||||
# G-Helper (GHelper)
|
# G-Helper (GHelper)
|
||||||
|
|
||||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/)
|
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/)
|
||||||
|
|
||||||
|
[](https://u24.gov.ua/)
|
||||||
|
|
||||||
Language: English | [中文](https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md)
|
Language: English | [中文](https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md)
|
||||||
|
|
||||||
## Control tool for Asus laptops
|
## Control tool for Asus laptops
|
||||||
|
|
||||||
Lightweight Armoury Crate alternative for Asus lapopts. A small utility that allows you to do almost everything you could do with Armoury Crate but without extra bloat and unnecessary services. Works on all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar, ProArt and many more! Feel free to try :)
|
Lightweight Armoury Crate alternative for Asus laptops. A small utility that allows you to do almost everything you could do with Armoury Crate but without extra bloat and unnecessary services. Works on all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar, ProArt and many more! Feel free to try :)
|
||||||
|
|
||||||
|
|
||||||
## :gift: Main advantages
|
## :gift: Main advantages
|
||||||
|
|
||||||
@@ -40,6 +40,8 @@ _If you post about the app - please include a link. Thanks._
|
|||||||
10. NVidia GPU overclocking
|
10. NVidia GPU overclocking
|
||||||
11. XG Mobile Control
|
11. XG Mobile Control
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
### :gear: Automatic switching when on battery or plugged in
|
### :gear: Automatic switching when on battery or plugged in
|
||||||
- Performance modes (app remembers last mode used on battery or when plugged)
|
- Performance modes (app remembers last mode used on battery or when plugged)
|
||||||
- Optimized GPU mode - disables dGPU on battery and enables when plugged
|
- Optimized GPU mode - disables dGPU on battery and enables when plugged
|
||||||
@@ -48,8 +50,6 @@ _If you post about the app - please include a link. Thanks._
|
|||||||
|
|
||||||
To keep auto switching and hotkeys working the app needs to stay running in the tray. It doesn't consume any resources.
|
To keep auto switching and hotkeys working the app needs to stay running in the tray. It doesn't consume any resources.
|
||||||
|
|
||||||

|
|
||||||
|
|
||||||
### :rocket: Performance Modes
|
### :rocket: Performance Modes
|
||||||
|
|
||||||
Modes are **same** as in Armoury Crate as they are stored in bios including default fan curves
|
Modes are **same** as in Armoury Crate as they are stored in bios including default fan curves
|
||||||
@@ -67,7 +67,7 @@ _PPTs are shown for G14 2022, for other models PPTs will be different as they ar
|
|||||||
3. Ultimate mode: iGPU and dGPU enabled, but dGPU drives built in display (supported only on G14 2022 model)
|
3. Ultimate mode: iGPU and dGPU enabled, but dGPU drives built in display (supported only on G14 2022 model)
|
||||||
4. Optimized: disables dGPU on battery (Eco) and enables when plugged (Standard)
|
4. Optimized: disables dGPU on battery (Eco) and enables when plugged (Standard)
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
## :question: FAQ
|
## :question: FAQ
|
||||||
|
|
||||||
@@ -153,6 +153,9 @@ It's a lightweight Armoury Crate alternative for Asus laptops. A small utility t
|
|||||||
|
|
||||||
- Also, it's not recommended to have "ASUS Smart Display Control" app running, as it will try to change refresh rates and fight with g-helper for the same function. You can safely uninstall it.
|
- Also, it's not recommended to have "ASUS Smart Display Control" app running, as it will try to change refresh rates and fight with g-helper for the same function. You can safely uninstall it.
|
||||||
|
|
||||||
|
- It is recommended to run app with windows default "balanced" power plan
|
||||||
|

|
||||||
|
|
||||||
-------------------------------
|
-------------------------------
|
||||||
|
|
||||||
Designed and developed for Asus Zephyrus G14 2022 (with AMD Radeon iGPU and dGPU). But could and should potentially work for G14 of 2021 and 2020, G15, X FLOW, and other ROG models for relevant and supported features.
|
Designed and developed for Asus Zephyrus G14 2022 (with AMD Radeon iGPU and dGPU). But could and should potentially work for G14 of 2021 and 2020, G15, X FLOW, and other ROG models for relevant and supported features.
|
||||||
@@ -196,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
|
||||||
|
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
|
|
||||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/)
|
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/)
|
||||||
|
|
||||||
|
[](https://u24.gov.ua/)
|
||||||
|
|
||||||
语言: [English](https://github.com/seerge/g-helper#readme) | 中文
|
语言: [English](https://github.com/seerge/g-helper#readme) | 中文
|
||||||
|
|
||||||
## 为ASUS笔记本打造的、Armoury Crate(奥创控制中心)的轻量化替代品
|
## 为ASUS笔记本打造的、Armoury Crate(奥创控制中心)的轻量化替代品
|
||||||
|
|||||||
BIN
docs/ua.png
Normal file
BIN
docs/ua.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 11 KiB |
Reference in New Issue
Block a user