Compare commits

..

18 Commits

Author SHA1 Message Date
Serge
d3fee87802 Update README.md 2023-08-09 18:49:21 +02:00
Serge
ea61e428da Eco mode GPU fix 2023-08-09 18:43:19 +02:00
Serge
7d5bd42f53 Merge branch 'main' of https://github.com/seerge/g-helper 2023-08-09 18:02:40 +02:00
Serge
78c689eb08 Increased GPU restart delay 2023-08-09 18:02:32 +02:00
Serge
69c2f6ff6e Update README.md 2023-08-09 17:56:36 +02:00
Serge
e220ad73b3 Hibernate After control 2023-08-09 14:11:04 +02:00
Serge
f7b9efc3cb Merge branch 'main' of https://github.com/seerge/g-helper 2023-08-09 11:37:24 +02:00
Serge
e19f815498 Re-init anime matrix on wake up https://github.com/seerge/g-helper/issues/1038 2023-08-09 11:37:22 +02:00
Serge
cf95bb1faa Merge pull request #1019 from MrChenYukun/main
Update README.zh-CN.md
2023-08-09 10:32:00 +02:00
Serge
c9b7e4b2af Merge branch 'main' of https://github.com/seerge/g-helper 2023-08-08 17:16:01 +02:00
Serge
1827450f4b Restored RGB for GA503RM https://github.com/seerge/g-helper/discussions/1033, limited max power slider for X13 https://github.com/seerge/g-helper/issues/1029 2023-08-08 17:15:57 +02:00
Serge
a990770ce1 Merge pull request #1025 from seerge/l10n_main
New Crowdin updates
2023-08-08 13:35:44 +02:00
Serge
8bf20a9ed1 New translations Strings.resx (Polish) 2023-08-08 12:12:59 +02:00
Serge
48674dcf90 Accessible controls 2023-08-08 01:03:06 +02:00
Serge
4be50d68da Merge pull request #1016 from seerge/l10n_main
New Crowdin updates
2023-08-07 17:10:22 +02:00
chenyukun1
0c6d31950e unify symbols 2023-08-07 18:44:54 +08:00
chenyukun1
80e8c8fcc2 add FAQ section translation to README.zh-CN.md 2023-08-07 18:39:00 +08:00
Serge
0c7621b798 New translations Strings.resx (Spanish) 2023-08-06 19:53:42 +02:00
25 changed files with 466 additions and 149 deletions

View File

@@ -42,7 +42,7 @@ namespace GHelper.AnimeMatrix
}
public void SetMatrix()
public void SetMatrix(bool wakeUp = false)
{
if (!IsValid) return;
@@ -67,6 +67,8 @@ namespace GHelper.AnimeMatrix
mat.SetProvider();
if (wakeUp && AppConfig.ContainsModel("401")) mat.WakeUp();
if (brightness == 0 || (auto && SystemInformation.PowerStatus.PowerLineStatus != PowerLineStatus.Online))
{
mat.SetDisplayState(false);

View File

@@ -300,7 +300,7 @@ public static class AppConfig
public static bool NoAuraColor()
{
return ContainsModel("GA401") || ContainsModel("X13") || ContainsModel("GA503RM");
return ContainsModel("GA401") || ContainsModel("X13");
}
public static bool IsStrix()
@@ -318,6 +318,12 @@ public static class AppConfig
return ContainsModel("X16") || ContainsModel("X13");
}
public static bool IsX13()
{
return ContainsModel("X13");
}
public static bool IsAdvantageEdition()
{
return ContainsModel("13QY");
@@ -350,5 +356,9 @@ public static class AppConfig
return ContainsModel("FX507") || ContainsModel("FX517") || ContainsModel("FX707");
}
public static bool IsGPUFix()
{
return ContainsModel("GA402X") && (Get("gpu_fix") != 0);
}
}

View File

@@ -109,12 +109,13 @@ public class AsusACPI
public const int GPUModeStandard = 1;
public const int GPUModeUltimate = 2;
public static int MaxTotal => AppConfig.IsAdvantageEdition() ? 250 : 150;
public const int MinTotal = 5;
public const int DefaultTotal = 125;
public const int MaxCPU = 100;
public static int MaxTotal = 150;
public static int DefaultTotal = 125;
public const int MinCPU = 5;
public const int MaxCPU = 100;
public const int DefaultCPU = 80;
public const int MinGPUBoost = 5;
@@ -212,6 +213,14 @@ public class AsusACPI
throw new Exception("Can't connect to ACPI");
}
if (AppConfig.IsAdvantageEdition()) MaxTotal = 250;
if (AppConfig.IsX13())
{
MaxTotal = 75;
DefaultTotal = 50;
}
}
public void Control(uint dwIoControlCode, byte[] lpInBuffer, byte[] lpOutBuffer)

View File

@@ -63,6 +63,8 @@ namespace GHelper
static bool isTuf = AppConfig.IsTUF();
static bool isStrix = AppConfig.IsStrix();
static bool isOldHeatmap = AppConfig.Is("old_heatmap");
static System.Timers.Timer timer = new System.Timers.Timer(2000);
static HidDevice? auraDevice = null;
@@ -464,7 +466,7 @@ namespace GHelper
if (auraDevice is null || !auraDevice.IsConnected) GetAuraDevice();
if (auraDevice is null || !auraDevice.IsConnected) return;
if (isStrix)
if (isStrix && !isOldHeatmap)
{
byte[] msg = new byte[0x40];

View File

@@ -234,15 +234,6 @@ namespace GHelper.Display
dm.dmDisplayFrequency = frequency;
int iRet = ChangeDisplaySettingsEx(laptopScreen, ref dm, IntPtr.Zero, DisplaySettingsFlags.CDS_UPDATEREGISTRY, IntPtr.Zero);
Logger.WriteLine("Screen = " + frequency.ToString() + "Hz : " + (iRet == 0 ? "OK" : iRet));
//Fallback scenario
if (iRet != 0)
{
Thread.Sleep(500);
iRet = ChangeDisplaySettingsEx(laptopScreen, ref dm, IntPtr.Zero, DisplaySettingsFlags.CDS_UPDATEREGISTRY, IntPtr.Zero);
Logger.WriteLine("Screen = " + frequency.ToString() + "Hz : " + (iRet == 0 ? "OK" : iRet));
}
return iRet;
}

172
app/Extra.Designer.cs generated
View File

@@ -109,7 +109,12 @@ namespace GHelper
checkUSBC = new CheckBox();
checkVariBright = new CheckBox();
checkGpuApps = new CheckBox();
checkGPUFix = new CheckBox();
checkFnLock = new CheckBox();
panelPower = new Panel();
numericHibernateAfter = new NumericUpDown();
labelHibernateAfter = new Label();
pictureHibernate = new PictureBox();
panelServices.SuspendLayout();
((System.ComponentModel.ISupportInitialize)pictureService).BeginInit();
panelBindingsHeader.SuspendLayout();
@@ -129,18 +134,23 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureLog).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureSettings).BeginInit();
panelSettings.SuspendLayout();
panelPower.SuspendLayout();
((System.ComponentModel.ISupportInitialize)numericHibernateAfter).BeginInit();
((System.ComponentModel.ISupportInitialize)pictureHibernate).BeginInit();
SuspendLayout();
//
// panelServices
//
panelServices.AccessibleName = "Asus Services";
panelServices.AccessibleRole = AccessibleRole.Grouping;
panelServices.Controls.Add(pictureService);
panelServices.Controls.Add(labelServices);
panelServices.Controls.Add(buttonServices);
panelServices.Dock = DockStyle.Top;
panelServices.Location = new Point(15, 1267);
panelServices.Location = new Point(15, 1383);
panelServices.Name = "panelServices";
panelServices.Size = new Size(983, 75);
panelServices.TabIndex = 3;
panelServices.TabIndex = 5;
//
// pictureService
//
@@ -228,6 +238,7 @@ namespace GHelper
//
// panelBindings
//
panelBindings.AccessibleName = "Key Bindings";
panelBindings.AutoSize = true;
panelBindings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelBindings.Controls.Add(tableBindings);
@@ -236,10 +247,13 @@ namespace GHelper
panelBindings.Name = "panelBindings";
panelBindings.Padding = new Padding(0, 0, 11, 5);
panelBindings.Size = new Size(983, 351);
panelBindings.TabIndex = 5;
panelBindings.TabIndex = 1;
panelBindings.TabStop = true;
//
// tableBindings
//
tableBindings.AccessibleName = "Keyboard Bindings";
tableBindings.AccessibleRole = AccessibleRole.Table;
tableBindings.AutoSize = true;
tableBindings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
tableBindings.ColumnCount = 3;
@@ -297,6 +311,7 @@ namespace GHelper
//
// comboFNE
//
comboFNE.AccessibleName = "Fn+Numpad Action";
comboFNE.BorderColor = Color.White;
comboFNE.ButtonColor = Color.FromArgb(255, 255, 255);
comboFNE.Dock = DockStyle.Top;
@@ -305,7 +320,7 @@ namespace GHelper
comboFNE.Margin = new Padding(4, 3, 4, 3);
comboFNE.Name = "comboFNE";
comboFNE.Size = new Size(374, 40);
comboFNE.TabIndex = 19;
comboFNE.TabIndex = 7;
//
// textFNE
//
@@ -316,6 +331,7 @@ namespace GHelper
textFNE.PlaceholderText = "action";
textFNE.Size = new Size(375, 39);
textFNE.TabIndex = 18;
textFNE.TabStop = false;
//
// labelFNC
//
@@ -337,6 +353,7 @@ namespace GHelper
textM2.PlaceholderText = "action";
textM2.Size = new Size(373, 39);
textM2.TabIndex = 14;
textM2.TabStop = false;
//
// textM1
//
@@ -347,9 +364,11 @@ namespace GHelper
textM1.PlaceholderText = "action";
textM1.Size = new Size(375, 39);
textM1.TabIndex = 13;
textM1.TabStop = false;
//
// comboM1
//
comboM1.AccessibleName = "M1 Action";
comboM1.BorderColor = Color.White;
comboM1.ButtonColor = Color.FromArgb(255, 255, 255);
comboM1.Dock = DockStyle.Top;
@@ -359,7 +378,7 @@ namespace GHelper
comboM1.Margin = new Padding(4, 3, 4, 3);
comboM1.Name = "comboM1";
comboM1.Size = new Size(374, 40);
comboM1.TabIndex = 11;
comboM1.TabIndex = 1;
//
// labelM1
//
@@ -374,6 +393,7 @@ namespace GHelper
//
// comboM4
//
comboM4.AccessibleName = "M4 Action";
comboM4.BorderColor = Color.White;
comboM4.ButtonColor = Color.FromArgb(255, 255, 255);
comboM4.Dock = DockStyle.Top;
@@ -383,10 +403,11 @@ namespace GHelper
comboM4.Margin = new Padding(4, 3, 4, 3);
comboM4.Name = "comboM4";
comboM4.Size = new Size(374, 40);
comboM4.TabIndex = 3;
comboM4.TabIndex = 4;
//
// comboM3
//
comboM3.AccessibleName = "M3 Action";
comboM3.BorderColor = Color.White;
comboM3.ButtonColor = Color.FromArgb(255, 255, 255);
comboM3.Dock = DockStyle.Top;
@@ -396,7 +417,7 @@ namespace GHelper
comboM3.Margin = new Padding(4, 3, 4, 3);
comboM3.Name = "comboM3";
comboM3.Size = new Size(374, 40);
comboM3.TabIndex = 1;
comboM3.TabIndex = 3;
//
// textM4
//
@@ -407,6 +428,7 @@ namespace GHelper
textM4.PlaceholderText = "action";
textM4.Size = new Size(375, 39);
textM4.TabIndex = 5;
textM4.TabStop = false;
//
// textM3
//
@@ -417,6 +439,7 @@ namespace GHelper
textM3.PlaceholderText = "action";
textM3.Size = new Size(375, 39);
textM3.TabIndex = 4;
textM3.TabStop = false;
//
// labelM4
//
@@ -453,6 +476,7 @@ namespace GHelper
//
// comboM2
//
comboM2.AccessibleName = "M2 Action";
comboM2.BorderColor = Color.White;
comboM2.ButtonColor = Color.FromArgb(255, 255, 255);
comboM2.Dock = DockStyle.Top;
@@ -462,7 +486,7 @@ namespace GHelper
comboM2.Margin = new Padding(4, 3, 4, 3);
comboM2.Name = "comboM2";
comboM2.Size = new Size(374, 40);
comboM2.TabIndex = 12;
comboM2.TabIndex = 2;
//
// labelFNF4
//
@@ -477,6 +501,7 @@ namespace GHelper
//
// comboFNF4
//
comboFNF4.AccessibleName = "Fn+F4 Action";
comboFNF4.BorderColor = Color.White;
comboFNF4.ButtonColor = Color.FromArgb(255, 255, 255);
comboFNF4.Dock = DockStyle.Top;
@@ -485,7 +510,7 @@ namespace GHelper
comboFNF4.Margin = new Padding(4, 3, 4, 3);
comboFNF4.Name = "comboFNF4";
comboFNF4.Size = new Size(374, 40);
comboFNF4.TabIndex = 7;
comboFNF4.TabIndex = 5;
//
// textFNF4
//
@@ -496,9 +521,11 @@ namespace GHelper
textFNF4.PlaceholderText = "action";
textFNF4.Size = new Size(375, 39);
textFNF4.TabIndex = 8;
textFNF4.TabStop = false;
//
// comboFNC
//
comboFNC.AccessibleName = "Fn+C Action";
comboFNC.BorderColor = Color.White;
comboFNC.ButtonColor = Color.FromArgb(255, 255, 255);
comboFNC.Dock = DockStyle.Top;
@@ -507,7 +534,7 @@ namespace GHelper
comboFNC.Margin = new Padding(4, 3, 4, 3);
comboFNC.Name = "comboFNC";
comboFNC.Size = new Size(374, 40);
comboFNC.TabIndex = 16;
comboFNC.TabIndex = 6;
//
// textFNC
//
@@ -518,6 +545,7 @@ namespace GHelper
textFNC.PlaceholderText = "action";
textFNC.Size = new Size(375, 39);
textFNC.TabIndex = 17;
textFNC.TabStop = false;
//
// tableKeys
//
@@ -562,6 +590,7 @@ namespace GHelper
sliderBrightness.Size = new Size(500, 40);
sliderBrightness.Step = 1;
sliderBrightness.TabIndex = 50;
sliderBrightness.TabStop = false;
sliderBrightness.Text = "sliderBrightness";
sliderBrightness.Value = 3;
//
@@ -596,7 +625,7 @@ namespace GHelper
panelBacklight.Name = "panelBacklight";
panelBacklight.Padding = new Padding(0, 5, 0, 5);
panelBacklight.Size = new Size(983, 402);
panelBacklight.TabIndex = 6;
panelBacklight.TabIndex = 2;
//
// panelBacklightExtra
//
@@ -617,23 +646,25 @@ namespace GHelper
//
// numericBacklightPluggedTime
//
numericBacklightPluggedTime.AccessibleName = "Backlight Timeout when plugged";
numericBacklightPluggedTime.Anchor = AnchorStyles.Top | AnchorStyles.Right;
numericBacklightPluggedTime.Location = new Point(670, 63);
numericBacklightPluggedTime.Margin = new Padding(4, 3, 4, 3);
numericBacklightPluggedTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
numericBacklightPluggedTime.Name = "numericBacklightPluggedTime";
numericBacklightPluggedTime.Size = new Size(140, 39);
numericBacklightPluggedTime.TabIndex = 49;
numericBacklightPluggedTime.TabIndex = 1;
//
// numericBacklightTime
//
numericBacklightTime.AccessibleName = "Backlight Timeout when on battery";
numericBacklightTime.Anchor = AnchorStyles.Top | AnchorStyles.Right;
numericBacklightTime.Location = new Point(822, 63);
numericBacklightTime.Margin = new Padding(4, 3, 4, 3);
numericBacklightTime.Maximum = new decimal(new int[] { 3600, 0, 0, 0 });
numericBacklightTime.Name = "numericBacklightTime";
numericBacklightTime.Size = new Size(140, 39);
numericBacklightTime.TabIndex = 47;
numericBacklightTime.TabIndex = 2;
//
// labelBacklightTimeout
//
@@ -655,6 +686,7 @@ namespace GHelper
//
// comboKeyboardSpeed
//
comboKeyboardSpeed.AccessibleName = "Keyboard Animation Speed";
comboKeyboardSpeed.Anchor = AnchorStyles.Top | AnchorStyles.Right;
comboKeyboardSpeed.BorderColor = Color.White;
comboKeyboardSpeed.ButtonColor = SystemColors.ControlLight;
@@ -667,7 +699,7 @@ namespace GHelper
comboKeyboardSpeed.Margin = new Padding(4, 12, 4, 9);
comboKeyboardSpeed.Name = "comboKeyboardSpeed";
comboKeyboardSpeed.Size = new Size(293, 40);
comboKeyboardSpeed.TabIndex = 43;
comboKeyboardSpeed.TabIndex = 0;
comboKeyboardSpeed.TabStop = false;
//
// panelXMG
@@ -747,6 +779,7 @@ namespace GHelper
//
// checkAwake
//
checkAwake.AccessibleName = "Awake Backlight";
checkAwake.Dock = DockStyle.Fill;
checkAwake.Location = new Point(4, 45);
checkAwake.Margin = new Padding(4, 0, 4, 0);
@@ -759,6 +792,7 @@ namespace GHelper
//
// checkBoot
//
checkBoot.AccessibleName = "Boot Backlight";
checkBoot.Dock = DockStyle.Fill;
checkBoot.Location = new Point(4, 88);
checkBoot.Margin = new Padding(4, 0, 4, 0);
@@ -771,6 +805,7 @@ namespace GHelper
//
// checkSleep
//
checkSleep.AccessibleName = "Sleep Backlight";
checkSleep.Dock = DockStyle.Fill;
checkSleep.Location = new Point(4, 131);
checkSleep.Margin = new Padding(4, 0, 4, 0);
@@ -783,6 +818,7 @@ namespace GHelper
//
// checkShutdown
//
checkShutdown.AccessibleName = "Shutdown Backlight";
checkShutdown.Dock = DockStyle.Fill;
checkShutdown.Location = new Point(4, 174);
checkShutdown.Margin = new Padding(4, 0, 4, 0);
@@ -1022,6 +1058,8 @@ namespace GHelper
//
// panelSettings
//
panelSettings.AccessibleName = "Extra Settings";
panelSettings.AccessibleRole = AccessibleRole.Grouping;
panelSettings.AutoSize = true;
panelSettings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelSettings.Controls.Add(checkAutoToggleClamshellMode);
@@ -1031,23 +1069,24 @@ namespace GHelper
panelSettings.Controls.Add(checkUSBC);
panelSettings.Controls.Add(checkVariBright);
panelSettings.Controls.Add(checkGpuApps);
panelSettings.Controls.Add(checkGPUFix);
panelSettings.Controls.Add(checkFnLock);
panelSettings.Dock = DockStyle.Top;
panelSettings.Location = new Point(15, 921);
panelSettings.Name = "panelSettings";
panelSettings.Padding = new Padding(20, 5, 11, 5);
panelSettings.Size = new Size(983, 346);
panelSettings.TabIndex = 46;
panelSettings.Size = new Size(983, 388);
panelSettings.TabIndex = 3;
//
// checkAutoToggleClamshellMode
//
checkAutoToggleClamshellMode.AutoSize = true;
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
checkAutoToggleClamshellMode.Location = new Point(20, 299);
checkAutoToggleClamshellMode.Location = new Point(20, 341);
checkAutoToggleClamshellMode.Name = "checkAutoToggleClamshellMode";
checkAutoToggleClamshellMode.Padding = new Padding(3);
checkAutoToggleClamshellMode.Size = new Size(952, 42);
checkAutoToggleClamshellMode.TabIndex = 58;
checkAutoToggleClamshellMode.TabIndex = 8;
checkAutoToggleClamshellMode.Text = "Auto Toggle Clamshell Mode";
checkAutoToggleClamshellMode.UseVisualStyleBackColor = true;
//
@@ -1055,12 +1094,12 @@ namespace GHelper
//
checkAutoApplyWindowsPowerMode.AutoSize = true;
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
checkAutoApplyWindowsPowerMode.Location = new Point(20, 257);
checkAutoApplyWindowsPowerMode.Location = new Point(20, 299);
checkAutoApplyWindowsPowerMode.Margin = new Padding(4, 3, 4, 3);
checkAutoApplyWindowsPowerMode.Name = "checkAutoApplyWindowsPowerMode";
checkAutoApplyWindowsPowerMode.Padding = new Padding(3);
checkAutoApplyWindowsPowerMode.Size = new Size(952, 42);
checkAutoApplyWindowsPowerMode.TabIndex = 54;
checkAutoApplyWindowsPowerMode.TabIndex = 7;
checkAutoApplyWindowsPowerMode.Text = "Auto Adjust Windows Power Mode";
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
//
@@ -1068,12 +1107,12 @@ namespace GHelper
//
checkTopmost.AutoSize = true;
checkTopmost.Dock = DockStyle.Top;
checkTopmost.Location = new Point(20, 215);
checkTopmost.Location = new Point(20, 257);
checkTopmost.Margin = new Padding(4, 3, 4, 3);
checkTopmost.Name = "checkTopmost";
checkTopmost.Padding = new Padding(3);
checkTopmost.Size = new Size(952, 42);
checkTopmost.TabIndex = 51;
checkTopmost.TabIndex = 6;
checkTopmost.Text = Strings.WindowTop;
checkTopmost.UseVisualStyleBackColor = true;
//
@@ -1081,12 +1120,12 @@ namespace GHelper
//
checkNoOverdrive.AutoSize = true;
checkNoOverdrive.Dock = DockStyle.Top;
checkNoOverdrive.Location = new Point(20, 173);
checkNoOverdrive.Location = new Point(20, 215);
checkNoOverdrive.Margin = new Padding(4, 3, 4, 3);
checkNoOverdrive.Name = "checkNoOverdrive";
checkNoOverdrive.Padding = new Padding(3);
checkNoOverdrive.Size = new Size(952, 42);
checkNoOverdrive.TabIndex = 52;
checkNoOverdrive.TabIndex = 5;
checkNoOverdrive.Text = Strings.DisableOverdrive;
checkNoOverdrive.UseVisualStyleBackColor = true;
//
@@ -1094,12 +1133,12 @@ namespace GHelper
//
checkUSBC.AutoSize = true;
checkUSBC.Dock = DockStyle.Top;
checkUSBC.Location = new Point(20, 131);
checkUSBC.Location = new Point(20, 173);
checkUSBC.Margin = new Padding(4, 3, 4, 3);
checkUSBC.Name = "checkUSBC";
checkUSBC.Padding = new Padding(3);
checkUSBC.Size = new Size(952, 42);
checkUSBC.TabIndex = 53;
checkUSBC.TabIndex = 4;
checkUSBC.Text = "Keep GPU disabled on USB-C charger in Optimized mode";
checkUSBC.UseVisualStyleBackColor = true;
//
@@ -1107,12 +1146,12 @@ namespace GHelper
//
checkVariBright.AutoSize = true;
checkVariBright.Dock = DockStyle.Top;
checkVariBright.Location = new Point(20, 89);
checkVariBright.Location = new Point(20, 131);
checkVariBright.Margin = new Padding(4, 3, 4, 3);
checkVariBright.Name = "checkVariBright";
checkVariBright.Padding = new Padding(3);
checkVariBright.Size = new Size(952, 42);
checkVariBright.TabIndex = 57;
checkVariBright.TabIndex = 3;
checkVariBright.Text = "AMD Display VariBright";
checkVariBright.UseVisualStyleBackColor = true;
//
@@ -1120,15 +1159,28 @@ namespace GHelper
//
checkGpuApps.AutoSize = true;
checkGpuApps.Dock = DockStyle.Top;
checkGpuApps.Location = new Point(20, 47);
checkGpuApps.Location = new Point(20, 89);
checkGpuApps.Margin = new Padding(4, 3, 4, 3);
checkGpuApps.Name = "checkGpuApps";
checkGpuApps.Padding = new Padding(3);
checkGpuApps.Size = new Size(952, 42);
checkGpuApps.TabIndex = 55;
checkGpuApps.TabIndex = 2;
checkGpuApps.Text = "Stop all apps using GPU when switching to Eco";
checkGpuApps.UseVisualStyleBackColor = true;
//
// checkGPUFix
//
checkGPUFix.AutoSize = true;
checkGPUFix.Dock = DockStyle.Top;
checkGPUFix.Location = new Point(20, 47);
checkGPUFix.Margin = new Padding(4, 3, 4, 3);
checkGPUFix.Name = "checkGPUFix";
checkGPUFix.Padding = new Padding(3);
checkGPUFix.Size = new Size(952, 42);
checkGPUFix.TabIndex = 9;
checkGPUFix.Text = "Enable GPU on shutdown (prevents issue with Eco mode)";
checkGPUFix.UseVisualStyleBackColor = true;
//
// checkFnLock
//
checkFnLock.AutoSize = true;
@@ -1139,19 +1191,62 @@ namespace GHelper
checkFnLock.Name = "checkFnLock";
checkFnLock.Padding = new Padding(3);
checkFnLock.Size = new Size(800, 42);
checkFnLock.TabIndex = 56;
checkFnLock.TabIndex = 1;
checkFnLock.Text = "Process Fn+F hotkeys without Fn";
checkFnLock.UseVisualStyleBackColor = true;
//
// panelPower
//
panelPower.Controls.Add(numericHibernateAfter);
panelPower.Controls.Add(labelHibernateAfter);
panelPower.Controls.Add(pictureHibernate);
panelPower.Dock = DockStyle.Top;
panelPower.Location = new Point(15, 1309);
panelPower.Name = "panelPower";
panelPower.Size = new Size(983, 74);
panelPower.TabIndex = 4;
//
// numericHibernateAfter
//
numericHibernateAfter.AccessibleName = "Minutes till Hibernation in sleep";
numericHibernateAfter.Anchor = AnchorStyles.Top | AnchorStyles.Right;
numericHibernateAfter.Increment = new decimal(new int[] { 10, 0, 0, 0 });
numericHibernateAfter.Location = new Point(810, 21);
numericHibernateAfter.Margin = new Padding(4, 3, 4, 3);
numericHibernateAfter.Maximum = new decimal(new int[] { 3000000, 0, 0, 0 });
numericHibernateAfter.Name = "numericHibernateAfter";
numericHibernateAfter.Size = new Size(152, 39);
numericHibernateAfter.TabIndex = 1;
//
// labelHibernateAfter
//
labelHibernateAfter.AutoSize = true;
labelHibernateAfter.Location = new Point(59, 21);
labelHibernateAfter.Margin = new Padding(4, 0, 4, 0);
labelHibernateAfter.Name = "labelHibernateAfter";
labelHibernateAfter.Size = new Size(457, 32);
labelHibernateAfter.TabIndex = 45;
labelHibernateAfter.Text = "Minutes till Hibernation in sleep (0 - OFF)";
//
// pictureHibernate
//
pictureHibernate.BackgroundImage = Resources.icons8_hibernate_32;
pictureHibernate.BackgroundImageLayout = ImageLayout.Zoom;
pictureHibernate.Location = new Point(20, 21);
pictureHibernate.Name = "pictureHibernate";
pictureHibernate.Size = new Size(32, 32);
pictureHibernate.TabIndex = 22;
pictureHibernate.TabStop = false;
//
// Extra
//
AutoScaleDimensions = new SizeF(192F, 192F);
AutoScaleMode = AutoScaleMode.Dpi;
AutoScroll = true;
AutoSize = true;
AutoSizeMode = AutoSizeMode.GrowAndShrink;
ClientSize = new Size(1013, 1431);
ClientSize = new Size(1013, 1467);
Controls.Add(panelServices);
Controls.Add(panelPower);
Controls.Add(panelSettings);
Controls.Add(panelSettingsHeader);
Controls.Add(panelBacklight);
@@ -1163,7 +1258,7 @@ namespace GHelper
MaximizeBox = false;
MdiChildrenMinimizedAnchorBottom = false;
MinimizeBox = false;
MinimumSize = new Size(1033, 71);
MinimumSize = new Size(1033, 0);
Name = "Extra";
Padding = new Padding(15);
ShowIcon = false;
@@ -1197,6 +1292,10 @@ namespace GHelper
((System.ComponentModel.ISupportInitialize)pictureSettings).EndInit();
panelSettings.ResumeLayout(false);
panelSettings.PerformLayout();
panelPower.ResumeLayout(false);
panelPower.PerformLayout();
((System.ComponentModel.ISupportInitialize)numericHibernateAfter).EndInit();
((System.ComponentModel.ISupportInitialize)pictureHibernate).EndInit();
ResumeLayout(false);
PerformLayout();
}
@@ -1282,5 +1381,10 @@ namespace GHelper
private RComboBox comboFNE;
private TextBox textFNE;
private Slider slider1;
private Panel panelPower;
private PictureBox pictureHibernate;
private Label labelHibernateAfter;
private NumericUpDown numericHibernateAfter;
private CheckBox checkGPUFix;
}
}

View File

@@ -2,6 +2,7 @@
using GHelper.Gpu.AMD;
using GHelper.Helpers;
using GHelper.Input;
using GHelper.Mode;
using GHelper.UI;
using System.Diagnostics;
@@ -127,6 +128,7 @@ namespace GHelper
labelBacklightLogo.Text = Properties.Strings.Logo;
checkGpuApps.Text = Properties.Strings.KillGpuApps;
labelHibernateAfter.Text = Properties.Strings.HibernateAfter;
Text = Properties.Strings.ExtraSettings;
@@ -320,8 +322,47 @@ namespace GHelper
pictureLog.Click += PictureLog_Click;
checkGPUFix.Visible = AppConfig.ContainsModel("GA402X");
checkGPUFix.Checked = AppConfig.Get("gpu_fix") != 0;
checkGPUFix.CheckedChanged += CheckGPUFix_CheckedChanged;
InitVariBright();
InitServices();
InitHibernate();
}
private void CheckGPUFix_CheckedChanged(object? sender, EventArgs e)
{
AppConfig.Set("gpu_fix", (checkGPUFix.Checked ? 1 : 0));
}
private void InitHibernate()
{
try
{
Task.Run(() =>
{
int hibernate = PowerNative.GetHibernateAfter();
if (hibernate < 0 || hibernate > numericHibernateAfter.Maximum) hibernate = 0;
BeginInvoke(delegate
{
numericHibernateAfter.Value = hibernate;
numericHibernateAfter.ValueChanged += NumericHibernateAfter_ValueChanged;
});
});
}
catch (Exception ex)
{
panelPower.Visible = false;
Logger.WriteLine(ex.ToString());
}
}
private void NumericHibernateAfter_ValueChanged(object? sender, EventArgs e)
{
PowerNative.SetHibernateAfter((int)numericHibernateAfter.Value);
}
private void PictureLog_Click(object? sender, EventArgs e)
@@ -406,6 +447,7 @@ namespace GHelper
{
try
{
using (var amdControl = new AmdGpuControl())
{
int variBrightSupported = 0, VariBrightEnabled;

View File

@@ -293,7 +293,7 @@ namespace GHelper
panelUViGPU.Visible = false;
}
if (!RyzenControl.IsSupportedUV())
if (!RyzenControl.IsSupportedUViGPU())
{
panelUViGPU.Visible = false;
}

View File

@@ -15,7 +15,7 @@
<PlatformTarget>AnyCPU</PlatformTarget>
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
<AssemblyVersion>0.107</AssemblyVersion>
<AssemblyVersion>0.108</AssemblyVersion>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">

View File

@@ -131,6 +131,8 @@ namespace GHelper.Gpu
if (eco == 1)
{
/*
if (NvidiaSmi.GetDisplayActiveStatus())
{
DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo);
@@ -140,6 +142,7 @@ namespace GHelper.Gpu
return;
}
}
*/
HardwareControl.KillGPUApps();
}
@@ -321,7 +324,7 @@ namespace GHelper.Gpu
// https://github.com/seerge/g-helper/pull/855
public void StandardModeFix()
{
if (!AppConfig.Is("gpu_fix")) return; // No config entry
if (!AppConfig.IsGPUFix()) return; // No config entry
if (Program.acpi.DeviceGet(AsusACPI.GPUMux) == 0) return; // Ultimate mode
Logger.WriteLine("Forcing Standard Mode on shutdown / hibernation");

View File

@@ -72,7 +72,7 @@ public class NvidiaGpuControl : IGpuControl
Logger.WriteLine(ex.Message);
}
//NVIDIA.RestartDisplayDriver();
//GeneralApi.RestartDisplayDriver();
}
@@ -112,7 +112,8 @@ public class NvidiaGpuControl : IGpuControl
{
try
{
string script = @"$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }; Disable-PnpDevice $device.InstanceId -Confirm:$false; Start-Sleep -Seconds 3; Enable-PnpDevice $device.InstanceId -Confirm:$false";
string script = @"$device = Get-PnpDevice | Where-Object { $_.FriendlyName -imatch 'NVIDIA' -and $_.Class -eq 'Display' }; Disable-PnpDevice $device.InstanceId -Confirm:$false; Start-Sleep -Seconds 5; Enable-PnpDevice $device.InstanceId -Confirm:$false";
Logger.WriteLine(script);
ProcessHelper.RunCMD("powershell", script);
//Thread.Sleep(2000);

View File

@@ -223,5 +223,38 @@ namespace GHelper.Mode
Logger.WriteLine("Changed Lid Action to " + action);
}
public static int GetHibernateAfter()
{
Guid activeSchemeGuid = GetActiveScheme();
IntPtr seconds;
PowerReadDCValueIndex(IntPtr.Zero,
activeSchemeGuid,
GUID_SLEEP_SUBGROUP,
GUID_HIBERNATEIDLE, out seconds);
Logger.WriteLine("Hibernate after " + seconds);
return (seconds.ToInt32() / 60);
}
public static void SetHibernateAfter(int minutes)
{
int seconds = minutes * 60;
Guid activeSchemeGuid = GetActiveScheme();
var hrAC = PowerWriteDCValueIndex(
IntPtr.Zero,
activeSchemeGuid,
GUID_SLEEP_SUBGROUP,
GUID_HIBERNATEIDLE,
seconds);
PowerSetActiveScheme(IntPtr.Zero, activeSchemeGuid);
Logger.WriteLine("Setting Hibernate after " + seconds + ": " + (hrAC == 0 ? "OK" : hrAC));
}
}
}

View File

@@ -193,7 +193,7 @@ namespace GHelper
BatteryControl.SetBatteryChargeLimit();
settingsForm.AutoKeyboard();
settingsForm.matrix.SetMatrix();
settingsForm.matrix.SetMatrix(true);
}
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)

View File

@@ -270,6 +270,16 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap icons8_hibernate_32 {
get {
object obj = ResourceManager.GetObject("icons8-hibernate-32", resourceCulture);
return ((System.Drawing.Bitmap)(obj));
}
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
@@ -571,7 +581,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap lighting_dot_24 {
get {
@@ -581,7 +591,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap.
/// Looks up a localized resource of type System.Drawing.Bitmap.
/// </summary>
internal static System.Drawing.Bitmap lighting_dot_32 {
get {
@@ -601,7 +611,7 @@ namespace GHelper.Properties {
}
/// <summary>
/// Looks up a localized resource of type System.Drawing.Icon ähnlich wie (Symbol).
/// Looks up a localized resource of type System.Drawing.Icon similar to (Icon).
/// </summary>
internal static System.Drawing.Icon standard {
get {

View File

@@ -148,24 +148,30 @@
<data name="icons8-charging-battery-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charging-battery-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_32.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="icons8-automation-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-automation-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-help-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-help-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_add_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-add-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-game-controller-48" 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>
</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-refresh-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-refresh-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -178,12 +184,18 @@
<data name="icons8_charged_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charged-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_24.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">
<value>..\Resources\icons8-bicycle-48 (1).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="icons8_batterie_voll_geladen_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_charging_battery_96" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-charging-battery-96.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -193,6 +205,9 @@
<data name="icons8-video-card-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-video-card-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_48.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>
@@ -202,8 +217,8 @@
<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 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-save-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-save-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
@@ -220,9 +235,15 @@
<data name="icons8-fan-48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-fan-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_maus_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-maus-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_remove_64" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-remove-64.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-matrix-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-matrix-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -244,6 +265,9 @@
<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>
</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="backlight" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\backlight.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
@@ -256,34 +280,13 @@
<data name="icons8-laptop-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-laptop-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8-software-32-white" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-software-32-white.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_maus_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-maus-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_maus_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-maus-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_mauszeiger_50" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-mauszeiger-50.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_batterie_voll_geladen_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-batterie-voll-geladen-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="icons8_ladende_batterie_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-ladende-batterie-48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8_rocket_32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-rocket-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_48" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_48.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="lighting_dot_24" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\lighting_dot_24.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
<data name="icons8-hibernate-32" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>..\Resources\icons8-hibernate-32.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
</root>

View File

@@ -827,6 +827,15 @@ namespace GHelper.Properties {
}
}
/// <summary>
/// Looks up a localized string similar to Minutes till Hibernation in sleep on battery (0 - OFF).
/// </summary>
internal static string HibernateAfter {
get {
return ResourceManager.GetString("HibernateAfter", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to High.
/// </summary>

View File

@@ -241,7 +241,7 @@
<value>Equilibrado</value>
</data>
<data name="BatteryCharge" xml:space="preserve">
<value>Charge</value>
<value>Carga</value>
</data>
<data name="BatteryChargeLimit" xml:space="preserve">
<value>Límite de carga</value>

View File

@@ -241,7 +241,7 @@
<value>Balans</value>
</data>
<data name="BatteryCharge" xml:space="preserve">
<value>Charge</value>
<value>Naładowanie</value>
</data>
<data name="BatteryChargeLimit" xml:space="preserve">
<value>Limit ładowania baterii</value>
@@ -456,7 +456,7 @@ Nadal chcesz kontynuować?</value>
<value>Przejście w tryb uśpienia po</value>
</data>
<data name="MouseButtonResponse" xml:space="preserve">
<value>Button Response</value>
<value>Reakcja przycisków</value>
</data>
<data name="MouseLiftOffDistance" xml:space="preserve">
<value>Wysokość reakcji sensora</value>
@@ -588,7 +588,7 @@ Nadal chcesz kontynuować?</value>
<value>Przełącz Aura</value>
</data>
<data name="ToggleClamshellMode" xml:space="preserve">
<value>Automatyczne przełączanie trybu klapki</value>
<value>Automatyczny tryb pracy z zamkniętą pokrywą</value>
</data>
<data name="ToggleFnLock" xml:space="preserve">
<value>Przełącz Fn-Lock</value>

View File

@@ -374,6 +374,9 @@ Do you still want to continue?</value>
<data name="GPUTempTarget" xml:space="preserve">
<value>Temperature Target</value>
</data>
<data name="HibernateAfter" xml:space="preserve">
<value>Minutes till Hibernation in sleep on battery (0 - OFF)</value>
</data>
<data name="High" xml:space="preserve">
<value>High</value>
</data>

Binary file not shown.

After

Width:  |  Height:  |  Size: 563 B

View File

@@ -143,6 +143,8 @@ namespace GHelper
//
// panelMatrix
//
panelMatrix.AccessibleName = "Anime Matrix";
panelMatrix.AccessibleRole = AccessibleRole.Grouping;
panelMatrix.AutoSize = true;
panelMatrix.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelMatrix.Controls.Add(tableLayoutMatrix);
@@ -154,7 +156,8 @@ namespace GHelper
panelMatrix.Name = "panelMatrix";
panelMatrix.Padding = new Padding(20, 20, 20, 10);
panelMatrix.Size = new Size(827, 176);
panelMatrix.TabIndex = 4;
panelMatrix.TabIndex = 3;
panelMatrix.TabStop = true;
//
// tableLayoutMatrix
//
@@ -296,7 +299,6 @@ namespace GHelper
sliderBattery.Size = new Size(787, 40);
sliderBattery.Step = 5;
sliderBattery.TabIndex = 20;
sliderBattery.TabStop = false;
sliderBattery.Text = "sliderBattery";
sliderBattery.Value = 80;
//
@@ -408,8 +410,8 @@ namespace GHelper
buttonQuit.Name = "buttonQuit";
buttonQuit.Secondary = true;
buttonQuit.Size = new Size(255, 48);
buttonQuit.TabIndex = 23;
buttonQuit.Text = "Quit";
buttonQuit.TabIndex = 2;
buttonQuit.Text = "&Quit";
buttonQuit.TextAlign = ContentAlignment.MiddleRight;
buttonQuit.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonQuit.UseVisualStyleBackColor = false;
@@ -430,8 +432,8 @@ namespace GHelper
buttonUpdates.Name = "buttonUpdates";
buttonUpdates.Secondary = true;
buttonUpdates.Size = new Size(254, 48);
buttonUpdates.TabIndex = 24;
buttonUpdates.Text = "Updates";
buttonUpdates.TabIndex = 1;
buttonUpdates.Text = "&Updates";
buttonUpdates.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonUpdates.UseVisualStyleBackColor = false;
//
@@ -448,6 +450,8 @@ namespace GHelper
//
// panelPerformance
//
panelPerformance.AccessibleName = "Performance";
panelPerformance.AccessibleRole = AccessibleRole.Grouping;
panelPerformance.AutoSize = true;
panelPerformance.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelPerformance.Controls.Add(tablePerf);
@@ -459,6 +463,7 @@ namespace GHelper
panelPerformance.Padding = new Padding(20);
panelPerformance.Size = new Size(827, 208);
panelPerformance.TabIndex = 0;
panelPerformance.TabStop = true;
//
// tablePerf
//
@@ -502,7 +507,7 @@ namespace GHelper
buttonSilent.Secondary = false;
buttonSilent.Size = new Size(188, 120);
buttonSilent.TabIndex = 1;
buttonSilent.Text = Properties.Strings.Silent;
buttonSilent.Text = "&Silent";
buttonSilent.TextImageRelation = TextImageRelation.ImageAboveText;
buttonSilent.UseVisualStyleBackColor = false;
//
@@ -525,7 +530,7 @@ namespace GHelper
buttonBalanced.Secondary = false;
buttonBalanced.Size = new Size(188, 120);
buttonBalanced.TabIndex = 1;
buttonBalanced.Text = Properties.Strings.Balanced;
buttonBalanced.Text = "&Balanced";
buttonBalanced.TextImageRelation = TextImageRelation.ImageAboveText;
buttonBalanced.UseVisualStyleBackColor = false;
//
@@ -548,7 +553,7 @@ namespace GHelper
buttonTurbo.Secondary = false;
buttonTurbo.Size = new Size(188, 120);
buttonTurbo.TabIndex = 2;
buttonTurbo.Text = Properties.Strings.Turbo;
buttonTurbo.Text = "&Turbo";
buttonTurbo.TextImageRelation = TextImageRelation.ImageAboveText;
buttonTurbo.UseVisualStyleBackColor = false;
//
@@ -570,7 +575,7 @@ namespace GHelper
buttonFans.Secondary = true;
buttonFans.Size = new Size(191, 120);
buttonFans.TabIndex = 3;
buttonFans.Text = Properties.Strings.FansPower;
buttonFans.Text = "&Fans + Power";
buttonFans.TextImageRelation = TextImageRelation.ImageAboveText;
buttonFans.UseVisualStyleBackColor = false;
//
@@ -600,8 +605,10 @@ namespace GHelper
//
// labelPerf
//
labelPerf.AccessibleRole = AccessibleRole.Caret;
labelPerf.AutoSize = true;
labelPerf.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
labelPerf.LiveSetting = System.Windows.Forms.Automation.AutomationLiveSetting.Polite;
labelPerf.Location = new Point(40, 0);
labelPerf.Margin = new Padding(8, 0, 8, 0);
labelPerf.Name = "labelPerf";
@@ -611,6 +618,7 @@ namespace GHelper
//
// labelCPUFan
//
labelCPUFan.AccessibleRole = AccessibleRole.TitleBar;
labelCPUFan.Anchor = AnchorStyles.Top | AnchorStyles.Right;
labelCPUFan.Cursor = Cursors.Hand;
labelCPUFan.Location = new Point(387, 0);
@@ -623,6 +631,8 @@ namespace GHelper
//
// panelGPU
//
panelGPU.AccessibleName = "GPU";
panelGPU.AccessibleRole = AccessibleRole.Grouping;
panelGPU.AutoSize = true;
panelGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelGPU.Controls.Add(labelTipGPU);
@@ -635,6 +645,7 @@ namespace GHelper
panelGPU.Padding = new Padding(20, 20, 20, 0);
panelGPU.Size = new Size(827, 352);
panelGPU.TabIndex = 1;
panelGPU.TabStop = true;
//
// labelTipGPU
//
@@ -767,6 +778,7 @@ namespace GHelper
//
// buttonOptimized
//
buttonOptimized.AccessibleName = "Optimized GPU Mode";
buttonOptimized.Activated = false;
buttonOptimized.BackColor = SystemColors.ControlLightLight;
buttonOptimized.BorderColor = Color.Transparent;
@@ -857,6 +869,8 @@ namespace GHelper
//
// panelScreen
//
panelScreen.AccessibleName = "Screen";
panelScreen.AccessibleRole = AccessibleRole.Grouping;
panelScreen.AutoSize = true;
panelScreen.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelScreen.Controls.Add(labelTipScreen);
@@ -869,6 +883,7 @@ namespace GHelper
panelScreen.Padding = new Padding(20, 20, 20, 0);
panelScreen.Size = new Size(827, 176);
panelScreen.TabIndex = 2;
panelScreen.TabStop = true;
//
// labelTipScreen
//
@@ -1030,6 +1045,8 @@ namespace GHelper
//
// panelKeyboard
//
panelKeyboard.AccessibleName = "Keyboard";
panelKeyboard.AccessibleRole = AccessibleRole.Grouping;
panelKeyboard.AutoSize = true;
panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink;
panelKeyboard.Controls.Add(tableLayoutKeyboard);
@@ -1040,7 +1057,8 @@ namespace GHelper
panelKeyboard.Name = "panelKeyboard";
panelKeyboard.Padding = new Padding(20);
panelKeyboard.Size = new Size(827, 144);
panelKeyboard.TabIndex = 3;
panelKeyboard.TabIndex = 4;
panelKeyboard.TabStop = true;
//
// tableLayoutKeyboard
//
@@ -1080,7 +1098,7 @@ namespace GHelper
buttonKeyboard.Secondary = true;
buttonKeyboard.Size = new Size(255, 48);
buttonKeyboard.TabIndex = 37;
buttonKeyboard.Text = Properties.Strings.Extra;
buttonKeyboard.Text = "&Extra";
buttonKeyboard.TextImageRelation = TextImageRelation.ImageBeforeText;
buttonKeyboard.UseVisualStyleBackColor = false;
//

View File

@@ -195,6 +195,8 @@ namespace GHelper
//This will auto position the window again when it resizes. Might mess with position if people drag the window somewhere else.
this.Resize += SettingsForm_Resize;
SetContextMenu();
panelPerformance.Focus();
}
private void SettingsForm_Resize(object? sender, EventArgs e)
@@ -841,6 +843,10 @@ namespace GHelper
gpuTemp = $": {HardwareControl.gpuTemp}°C";
}
string trayTip = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
if (gpuTemp.Length > 0) trayTip += "\nGPU" + gpuTemp + " " + HardwareControl.gpuFan;
if (battery.Length > 0) trayTip += "\n" + battery;
Program.settingsForm.BeginInvoke(delegate
{
labelCPUFan.Text = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
@@ -850,11 +856,10 @@ namespace GHelper
labelBattery.Text = battery;
if (!batteryMouseOver) labelCharge.Text = charge;
//panelPerformance.AccessibleName = labelPerf.Text + " " + trayTip;
});
string trayTip = "CPU" + cpuTemp + " " + HardwareControl.cpuFan;
if (gpuTemp.Length > 0) trayTip += "\nGPU" + gpuTemp + " " + HardwareControl.gpuFan;
if (battery.Length > 0) trayTip += "\n" + battery;
Program.trayIcon.Text = trayTip;
@@ -912,6 +917,7 @@ namespace GHelper
Invoke(delegate
{
labelPerf.Text = modeText;
panelPerformance.AccessibleName = labelPerf.Text; // + ". " + Program.trayIcon.Text;
});
}

View File

@@ -1,5 +1,5 @@
{
"sdk": {
"version": "7.0.306"
"version": "7.0.400"
}
}

View File

@@ -52,13 +52,14 @@ _To keep auto switching and hotkeys working the app needs to stay running in the
### :rocket: Performance Modes
Modes are **baked in BIOS** along with default fan curves and power limits. They are the **same** as in the Armoury Crate.
<img align="right" width="200" src="https://github.com/seerge/g-helper/assets/5920850/3e119674-db8d-486b-aa65-2bf9b61f9aa6">
1. **Silent** (minimal or no fans, 45W CPU) + Best power efficiency setting in windows
2. **Balanced** (balanced fans, 45W CPU) + Balanced setting in windows
3. **Turbo** (intense fans, up to 80W CPU) + Best performance setting in windows
All Modes are **baked in BIOS** along with default fan curves and power limits. They are the **same** as in the Armoury Crate.
_Default power limits are measured for G14 2022. For other models they will be different._
1. **Silent** in BIOS + **Best power efficiency** setting in Windows
2. **Balanced** (or Performance as it's called in AC) in BIOS + **Balanced** setting in Windows
3. **Turbo** in BIOS + **Best performance** setting in Windows
### :video_game: GPU Modes
@@ -184,6 +185,21 @@ Small and lightweight Armoury Crate alternative for Asus laptops offering almost
-------------------------------
## Notice for G14 2023 users who complain about not being able to set Eco mode
This is a known issue with the Nvidia Drivers / Windows that occurs if you shutdown or restart a system with dGPU disabled (Eco mode). This situation can happen for **BOTH Armoury Crate and G-Helper** (as it doesn't depend on them in a first place)
Scenario to reproduce (for both AC / GH):
1. Set Eco mode and shutdown / start or reboot your computer
2. After booting in Eco set Standard -> ``brightness controls won't work``
3. Try to set Eco mode -> ``it won't work``
4. G-Helper would offer you to restart GPU in Device Manager, after that you will be able to set Eco, AC won't be able to do anything
To prevent this from happening, G-Helper by default would try to enable dGPU before shutdown / restart.
If you want to turn this feature off uncheck ``Extra`` -> ``Enable GPU on shutdown (prevents issue with Eco mode)``
-------------------------------
I don't have a Microsoft certificate to sign the app yet, so if you get a warning from Windows Defender on launch (Windows Protected your PC), click More Info -> Run anyway.
------------------

View File

@@ -10,27 +10,27 @@
这是一个ROG 幻14、幻15幻13、幻16飞行堡垒/天选系列ROG 枪神/魔霸系列或其他ASUS笔记本的控制工具。可以做到几乎所有Armoury Crate(奥创控制中心)能做的事情,而且不需要任何多余的功能或安装不必要的系统服务。
## 🎁 主要优点
## :gift: 主要优点
1. 自动且无缝的独立显卡模式切换(不需要关闭所有应用或执行其他操作)
2. 可以手动调整所有的性能模式包括自定义风扇曲线以及PPTs(Platform Power Threshold,即CPU总功耗,下文简称PPTs--译注))
1. 自动且无缝的独立显卡模式切换(不需要关闭所有应用或执行其他操作)
2. 可以手动调整所有的性能模式(包括自定义风扇曲线以及PPTs(Platform Power Threshold,即CPU总功耗,下文简称PPTs--译注))
3. 极致的轻量化几乎不消耗任何资源也不需要安装系统服务。只需要下载一个exe文件就可以运行。
4. 简洁的界面设计,可以轻松调整所有设置。
5. 运行不需要管理员权限!
## [:floppy_disk: 下载应用](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
## [💾 下载应用](https://github.com/seerge/g-helper/releases/latest/download/GHelper.zip)
如果你喜欢这个应用,请[给这个项目:star:](https://github.com/seerge/g-helper) 或者向别人推荐它!
### :euro: [(通过paypal)支持和捐赠G-Helper](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
如果你喜欢这个应用,请[给这个项目⭐️](https://github.com/seerge/g-helper) 或者向别人推荐它!
### 💶 [(通过paypal)支持和捐赠G-Helper](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
_如果你在别的地方提到这个软件-请记得加上这个项目的网址。十分感谢。_
![Screenshot 2023-04-11 221528](https://user-images.githubusercontent.com/5920850/231278828-9bb7f5c3-4ce6-4825-b06d-572f39d3ede8.png)
### :zap: 主要功能
### ⚡️ 主要功能
1. **性能模式**: 静音模式 - 平衡模式 - 增强模式 笔电bios内置的性能模式附带默认的风扇曲线
1. **性能模式**: 静音模式 - 平衡模式 - 增强模式 (笔电bios内置的性能模式附带默认的风扇曲线)
2. **显卡模式**: 集显模式 - 标准模式 - 独显直连 - 自动切换
3. 笔记本屏幕刷新率 60hz 或 120hz 自动调节(或者 144hz 等刷新率)包括屏幕Overdrive(OD,即ROG系列的屏幕快速响应/快显功能--译注)功能
4. 可调节的风扇曲线、电源功耗设置(PPTs)(_注:请谨慎调节!_)和CPU超频选项
@@ -40,7 +40,8 @@ _如果你在别的地方提到这个软件-请记得加上这个项目的网址
8. CPU/GPU温度、风扇转速和电池充放电功率显示
9. 电池充电上限设置,保护电池健康度
### :gear: 当使用电池供电或插上电源时,自动切换:
### ⚙️ 当使用电池供电或插上电源时,自动切换:
- 性能模式 (软件会记住上一次使用电池或插上电源时的电源模式)
- 自动切换独立显卡模式 - 使用电池时停用独显,并在插上电源时重新启用
- 自动切换屏幕刷新率 (使用电池时切换为 60hz,插入电源后切换为 120+ hz)
@@ -48,7 +49,7 @@ _如果你在别的地方提到这个软件-请记得加上这个项目的网址
为了保证自动切换功能和按键绑定功能的正常工作,软件需要在后台运行并显示一个托盘图标。这并不会消耗其他资源。
### :rocket: 性能模式
### 🚀 性能模式
性能模式与 Armoury Crate(奥创控制中心)中的 **保持一致**因为这些设置与其对应的风扇曲线都被保存在bios中
@@ -60,70 +61,127 @@ _PPTs 默认在 幻14 2022版上显示, 对于其他型号 PPTs 的显示将会
![Screenshot 2023-04-06 142234](https://user-images.githubusercontent.com/5920850/230377635-7032a480-3a94-4e35-9468-d8911e3e55ec.png)
### :video_game: 显卡模式
### 🎮 显卡模式
1. 集显模式 : 只启用低功耗的内置显卡, 核显连接笔电内置屏幕
2. 标准模式 (MS Hybrid) : 同时启用核显与独显, 核显连接笔电内置屏幕
3. 独显直连: 同时启用核显与独显, 但独显直连笔电屏幕 (仅在幻14 2022版等机型上支持)
4. 自动切换: 使用电池时关闭独显(集显模式),并在插上电源后重新启用独显(混合输出)
## :question: 常见问题解答(FAQ)
## 常见问题解答(FAQ)
#### 当我按下 M4 / Rog键的时候总是弹出安装Armoury Crate的弹窗提示我该如何关闭它?
删除下列文件或者把它移动(注:剪切+粘贴)到别的目录 ``C:\Windows\System32\ASUSACCI\ArmouryCrateKeyControl.exe``.
如果还是出现弹窗 - 进入 BIOS (开机时按住 F2), 按照屏幕下方的快捷键提示进入 Advanced Settings,然后关闭 "Armoury Crate Control Interface" (注:把它设置为disabled)。
#### 为什么我的笔记本不支持独显输出?
独显输出只在幻14 2022版上支持(也可能支持2022年以来的其他机型)。
#### 电池充电限制不起作用
#### 我无法在幻14 2020版上设置集显模式(关闭独显)
很不幸2020版的机型在硬件上不支持这个设置。
这有可能是因为ASUS服务在你设置后又覆写了对应的设置。你可以通过在G-helper中点击"更多",然后在"正在运行的Asus服务项"右侧点击"停止"来停止ASUS服务。
#### 我没看到显卡模式
在一些旧型号中(比如幻14 2020)从硬件层上不支持禁用显卡,在这些机型中并不需要显卡模式,因此没有显示。
#### 为什么我的电脑上没有独显直连
独显直连(在硬件层面上)只对2022年之后的机型中生效。
#### 我是否应该自行调整功耗设置(PPTs)和风扇曲线?
你可以不那么做,这些操作是可选的。按照经验(bios)内置的性能模式工作的很好。请只在遇到问题的时候限制功耗或者手动设置风扇模式。当你在风扇与功率设置中按下“应用”时bios将会认为风扇配置文件为“自定义”! (无论你是否真的修改了风扇曲线)
#### G-helper是如何控制我的风扇转速的?
软件并不会修改风扇转速。这个设置实际上由bios控制(与Armoury Crate的情况相同)。G-helper 所能做的 - 就是将一个自定义的风扇配置(可选地)应用到正在使用的性能模式其中包括8组温度+风扇速度的百分比数值%。软件通过与Armoury Crate看起来相同的WMI endpoint来应用这一设置
#### 我如何把风扇转速显示从百分比%切换到RPM(每分钟转速)?
点击一下百分比即可切换。
#### 当我修改自定义风扇曲线时,我得到了"BIOS拒绝修改风扇曲线"("BIOS rejected fan curve")提示
2021之后的TUF机型不支持自定义风扇曲线。很可能在Armory Crate中也没有这个选项。
#### 我没有在G-helper中看到独显温度
很可能要么你正在使用核显模式/自动切换模式这种情况下独显只是关闭了或者你的windows系统为独显设置了睡眠模式(为了省电)。这种情况下G-helper无法识别到独显也不能获得温度读数。
#### 弹窗提示"G-Helper已经在运行"
#### 打开应用后没有看到应用启动/弹窗提示"G-Helper已经在运行"
请在系统托盘里找到 (G) 图标。windows会默认隐藏所有图标所以你可能需要点击 ^ 来看见它们。建议任务栏右键进入任务栏设置 -> 其他系统图标 -> 将 G-Helper 设置为始终在任务栏上显示。
#### 应用不能启动或者崩溃了,我该怎么做?
从开始菜单里打开“事件管理器”, 进入 Windows日志 -> 应用然后在最近的错误日志里寻找包含G-helper的日志。如果你找到一个 - 请提出一个 [新的 issue](https://github.com/seerge/g-helper/issues) ,其中包含来自这次错误的所有的详细信息。
#### 我可以在用G-Helper的时候同时用myASUS吗?
当然可以! 唯一的问题是myASUS可能会重置你之前在g-helper里设置的电池充电上限。在这种情况下建议你在这两个应用(myASUS和g-helper)里设置相同的充电上限(60%/80%/100%)以避免冲突。
#### 我如何将M3键设置为将麦克风静音?
这个功能由 Asus Optimization Service 管理(所以 G-helper 没有这项设置,也不管理这个功能)。请确认这个系统服务是否正常运行
#### 我如何设置不同的视觉风格(即 Armoury Crate 内的gamevisual功能)?
因为这个功能让颜色显示不正确,我个人(注:作者 :) )并不喜欢这些。但是如果你需要这个功能 - 你可以使用 Nvidia 控制面板/GefoeceExperirence滤镜或者AMD控制面板(Radeon Software/AMD Software: Adrenalin Edition)来修改显示颜色(因显示器和配置而异)。如果你真的非常需要这个功能,你也可以使用 [微软商店中ASUS自己的工具](https://apps.microsoft.com/store/detail/gamevisual/9P4K1LFTXSH8?hl=nl-nl&gl=nl&rtc=1)
#### 我能超频 Nvidia GPU 核心或显存吗?
我(注:作者 :) )现在并没有Nvidia的显卡所以我不能保证这个功能加入之后是安全的。但是你可以用微星小飞机(msi afterburner) 去超频GPU毕竟它是为GPU超频专门设计的 :)
首先确保你的独立显卡是启用的,之后打开"风扇 + 电源"选项在这里即可调整核心和显存频率。这个和Armoury Crate中的设置一样。注意使用这项功能需要管理员权限应用也会弹出需要管理员权限的提示。(*)
#### Windows Defender将该应用标记为恶意软件/病毒
这是Windows Defender的误报(其他使用机器学习来检测病毒的杀毒软件可能也出现同样的结果),这可能是因为本应用没有数字签名和证书。如果你不放心的话,你可以自己编译安装本项目,本项目是完全开源的。
#### 我该在哪找到应用的配置文件和日志文件
你可以在 `%AppData%\GHelper` 文件夹找到他们当你在issue中提交bug的时候请务必附上应用日志。
#### 应用无法在开机时启动或者启动的时候在任务栏没有提示
打开应用,取消再重新勾选"开机自启"项目。如果还是不行的话你可以手动在Windows 任务计划程序(Task Scheduler)中为G-helper应用增加几秒延迟后再启动。
#### 我该如何卸载G-helper?
G-helper是一个单文件的exe文件, 而且它不会向系统中安装任何东西。如果要“卸载”它 - 你可以直接删除exe文件 :) 如果你已经设置了自定义的风扇配置或者功耗设置(PPTs) - 在删除软件之前建议你选择你最喜欢的配置模式(比如"平衡"),然后在“风扇与电源设置”里点击“恢复默认设置”。
#### 我如何给我的CPU降压
目前你只能给AMD CPU降压。如果你的机型支持这个功能 - 你会在“风扇 + 电源”项中看到对应的设置。如果你看不到该项设置说明你的CPU不支持降压。所有支持的型号可以[点此查询](https://github.com/seerge/g-helper/discussions/736)。
#### 我的机型是幻14 2023并且我无法关闭/开启我的独立显卡
这应该是旧版本的BIOS的问题。根据[用户反馈](https://github.com/seerge/g-helper/issues/680)更新最近的BIOS 312版本即可解决问题(可以通过MyASUS或者G-helper "更新" 项进行安装)。
#### 我的机型是幻15 2022并且我无法关闭/开启我的独立显卡或者风扇出问题
幻15 2022款在BIOS 313以上版本会有很多小问题。许多用户反馈可以通过[将BIOS版本降级到311版本来解决](https://rog.asus.com/nl/laptops/rog-zephyrus/rog-zephyrus-g15-2022-series/helpdesk_bios/)。
#### 我删除了Armoury之后我的GPU性能降低了
检查你的 Nvidia Experience 设置确保Whisper Mode项是关闭的。你还可以尝试重置所有设置。`Nvidia 控制面板 -> 管理 3D 设置 -> 恢复`
#### 我如何从硬件层面重启我的笔记本?
所有的华硕笔记本都支持方便的硬重启。它不会影响你的数据,但是会重置所有硬件相关的东西(例如启动独立显卡唤醒wifi/蓝牙模块等)
关闭你的电脑长按“电源”按钮30-40秒。之后正常启动你的电脑(会比正常情况下花更长时间启动)。
#### G-helper 是什么?
这是一个ASUS笔记本的控制工具。可以做到几乎所有Armoury Crate(奥创控制中心)能做的事情,而且不需要任何多余的功能或安装不必要的系统服务。
这是一个轻量化的Armoury Crate(奥创控制中心)替代工具而且不需要任何多余的功能或安装不必要的系统服务的。在ROG G14, G15, G16, M16, X13, Z13, X16, TUF, Scar, Vivobook, ProArt等热门笔记本中都适用。
----------------------------
---
## 💶 [支持这个项目](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
## :euro: [支持这个项目](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
#### 如果你喜欢这个项目你可以[通过Paypal捐赠](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
[![二维码](https://user-images.githubusercontent.com/5920850/233658717-0441494d-fede-4a2c-b4f2-4b16a184a69a.png)](https://www.paypal.com/donate/?hosted_button_id=4HMSHS4EBQWTA)
----------------
---
### 安装指南
@@ -131,21 +189,19 @@ G-helper是一个单文件的exe文件, 而且它不会向系统中安装任何
2. 解压到你选择的文件夹
3. 运行 **GHelper.exe**
### 运行要求必须
### 运行要求(必须)
- Microsoft [.NET7](https://dotnet.microsoft.com/en-us/download)。 你可能已经安装了。 如果没有的话你可以从官方网站 [立即下载](https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-7.0.202-windows-x64-installer)。
- [Asus System Control Interface](https://dlcdnets.asus.com/pub/ASUS/nb/Image/CustomComponent/ASUSSystemControlInterfaceV3/ASUSSystemControlInterfaceV3.exe)。 如果你安装了或者安装过myASUS, 那么这个"驱动"应当已经安装(即使myASUS已经卸载)。 或者你可以手动下载安装。
### 推荐配置可选
### 推荐配置(可选)
- 推荐保持 "Asus Optimization Service" 这个windows服务的运行, 它保证基本的键盘快捷键(比如屏幕或键盘亮度)能够使用。
- 可选选项(!) 你可以通过在管理员模式下运行 [这个用于精简的.bat文件](https://raw.githubusercontent.com/seerge/g-helper/main/debloat.bat)来禁用/移除不必要的服务。如果要恢复这些服务,运行 [这个.bat文件](https://raw.githubusercontent.com/seerge/g-helper/main/bloat.bat)。
-这个应用不建议与Armoury Crate(及其服务)同时运行, 因为它们会调整相同的设置。你可以[使用ASUS官方提供的卸载工具卸载](https://dlcdnets.asus.com/pub/ASUS/mb/14Utilities/Armoury_Crate_Uninstall_Tool.zip?model=armoury%20crate)Armoury Crate。以防万一你总是可以之后再安装回来。
-------------------------------
---
为Asus ROG 幻14 2022 (配置了AMD核显和独显)设计和开发。但应当可能在幻14 2021和2020款, 幻15, X FLOW, 以及其他的ROG机型上使用相关且支持的功能。
@@ -153,13 +209,13 @@ G-helper是一个单文件的exe文件, 而且它不会向系统中安装任何
设置文件保存在 ``%AppData%\GHelper``
------------------
---
精简你的windows可以帮助延长电池的使用时间同时让笔电的温度更低一些
![Helps to save your battery](https://raw.githubusercontent.com/seerge/g-helper/main/docs/screenshots/screen-5w.png)
---------
---
## 高级用户设置
@@ -167,7 +223,7 @@ G-helper是一个单文件的exe文件, 而且它不会向系统中安装任何
在 config.json (位于 %appdata/GHelper) 中你可以手动添加自定义电源设置的GUID (它既可以是"真正的"可被选择的电源计划,也可以是"覆盖式(overlay)"的电源计划就像g-helper默认设置的那样)
格式如下 : "scheme_<mode>" : "GUID"
格式如下 : "scheme_`<mode>`" : "GUID"
Where ``mode = 0 (balanced), 1 (turbo), 2 (silent)``
@@ -180,17 +236,16 @@ Where ``mode = 0 (balanced), 1 (turbo), 2 (silent)``
### 自定义热键行为
软件支持为 M3, M4 和 FN+F4 热键自定义配置。如要设置,在按键旁的选项框中选择"自定义设置",然后执行下面的操作任选其一:
软件支持为 M3, M4 和 FN+F4 热键自定义配置。如要设置,在按键旁的选项框中选择"自定义设置",然后执行下面的操作(任选其一):
1. 要想运行任意应用 - 向 "action" 文本框中粘贴应用文件exe的完整路径例如:
``C:\Program Files\EA Games\Battlefield 2042\BF2042.exe``
``C:\Program Files\EA Games\Battlefield 2042\BF2042.exe``
2. 要想模拟任意windows按键 - 向"action"文本框中粘贴相对应的 keycode例如 ``0x2C`` 为屏幕截图键。
Keycodes的完整列表: https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
Keycodes的完整列表: https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
![Screenshot 2023-04-13 172537](https://user-images.githubusercontent.com/5920850/231837470-df913847-cf8a-43e1-80b6-5eb6e9eaee4e.png)
------------
---
_注:请务必参考下方 **免责声明** 原文,以避免或减小错误或不恰当之翻译引起的负面影响。翻译仅为便于阅读之目的,不具有法律效力,亦不作为发生争端时处理之依据。_