mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Compare commits
113 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
de4905f84f | ||
|
|
121a9224e9 | ||
|
|
af9626e385 | ||
|
|
6b3db926fc | ||
|
|
8f8be7a13e | ||
|
|
12450dbba4 | ||
|
|
4f6de3c6a3 | ||
|
|
d89420e0f1 | ||
|
|
ddc13e0dec | ||
|
|
61a3d782e8 | ||
|
|
b1c8aa97c8 | ||
|
|
3a50ee1784 | ||
|
|
a69ce3592f | ||
|
|
b49ae96dfe | ||
|
|
4c989c9d75 | ||
|
|
2282e56aad | ||
|
|
982f2e8e32 | ||
|
|
e90f19e3e2 | ||
|
|
6d6a9c68f2 | ||
|
|
8138e44cdd | ||
|
|
ef788798b7 | ||
|
|
07d81e6072 | ||
|
|
708e3aa40f | ||
|
|
3075e22e1e | ||
|
|
b15109d13e | ||
|
|
c491087a29 | ||
|
|
cf08ae0789 | ||
|
|
624f15be65 | ||
|
|
4789d0d782 | ||
|
|
f8fd8a9695 | ||
|
|
91cfb8d38c | ||
|
|
130d9b73fb | ||
|
|
604d24ebbe | ||
|
|
8c3a74a991 | ||
|
|
ed143a7bba | ||
|
|
ac5f1ec1b5 | ||
|
|
403db3057c | ||
|
|
4dac7b8e9d | ||
|
|
a856f87146 | ||
|
|
d733101a26 | ||
|
|
89741a5e8a | ||
|
|
f00026b53a | ||
|
|
5004358fe2 | ||
|
|
97f6565024 | ||
|
|
f1a69ebad3 | ||
|
|
bf6c3e636e | ||
|
|
a4e98a9fb1 | ||
|
|
8b717f856a | ||
|
|
4d8f093a4b | ||
|
|
c699c82bbe | ||
|
|
5634d75672 | ||
|
|
cf33b0cc52 | ||
|
|
ddbaeb623b | ||
|
|
3efb2e0db9 | ||
|
|
8159aec53b | ||
|
|
564efb2f32 | ||
|
|
4dfcd6a5f9 | ||
|
|
0aa4d873d0 | ||
|
|
911c01b6b2 | ||
|
|
3a5e5fa227 | ||
|
|
bf5786aca6 | ||
|
|
ed065d00dc | ||
|
|
6aa899d989 | ||
|
|
417d156300 | ||
|
|
2471edd82f | ||
|
|
196eda7463 | ||
|
|
1d63376c99 | ||
|
|
846b05b89e | ||
|
|
0f3b660824 | ||
|
|
14565cf8fa | ||
|
|
3d5c0d5ade | ||
|
|
14e0adaca8 | ||
|
|
4365d3b4cb | ||
|
|
62ca72e684 | ||
|
|
71c0c10f29 | ||
|
|
8733ef34d3 | ||
|
|
ff0a12d104 | ||
|
|
fe628319b7 | ||
|
|
86c11beee6 | ||
|
|
e45a72f6c6 | ||
|
|
88af725a08 | ||
|
|
d3fee87802 | ||
|
|
ea61e428da | ||
|
|
7d5bd42f53 | ||
|
|
78c689eb08 | ||
|
|
69c2f6ff6e | ||
|
|
b59db1432a | ||
|
|
4f85cd32aa | ||
|
|
f0d6d25e93 | ||
|
|
2d6d4093e9 | ||
|
|
8fc167fd57 | ||
|
|
475110af09 | ||
|
|
3fc4621dc9 | ||
|
|
43ddf6585c | ||
|
|
61d155d936 | ||
|
|
d133162579 | ||
|
|
fff4612a8d | ||
|
|
d6f410c6e6 | ||
|
|
ab11965d50 | ||
|
|
6071f41c33 | ||
|
|
e220ad73b3 | ||
|
|
f7b9efc3cb | ||
|
|
e19f815498 | ||
|
|
cf95bb1faa | ||
|
|
c9b7e4b2af | ||
|
|
1827450f4b | ||
|
|
a990770ce1 | ||
|
|
8bf20a9ed1 | ||
|
|
48674dcf90 | ||
|
|
4be50d68da | ||
|
|
0c6d31950e | ||
|
|
80e8c8fcc2 | ||
|
|
0c7621b798 |
@@ -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);
|
||||
|
||||
@@ -154,6 +154,11 @@ public static class AppConfig
|
||||
Write();
|
||||
}
|
||||
|
||||
public static void RemoveMode(string name)
|
||||
{
|
||||
Remove(name + "_" + Modes.GetCurrent());
|
||||
}
|
||||
|
||||
public static string GgetParamName(AsusFan device, string paramName = "fan_profile")
|
||||
{
|
||||
int mode = Modes.GetCurrent();
|
||||
@@ -298,9 +303,9 @@ public static class AppConfig
|
||||
return ContainsModel("GA401I") && !ContainsModel("GA401IHR");
|
||||
}
|
||||
|
||||
public static bool NoAuraColor()
|
||||
public static bool IsSingleColor()
|
||||
{
|
||||
return ContainsModel("GA401") || ContainsModel("X13") || ContainsModel("GA503RM");
|
||||
return ContainsModel("GA401");
|
||||
}
|
||||
|
||||
public static bool IsStrix()
|
||||
@@ -318,6 +323,12 @@ public static class AppConfig
|
||||
return ContainsModel("X16") || ContainsModel("X13");
|
||||
}
|
||||
|
||||
public static bool IsX13()
|
||||
{
|
||||
return ContainsModel("X13");
|
||||
}
|
||||
|
||||
|
||||
public static bool IsAdvantageEdition()
|
||||
{
|
||||
return ContainsModel("13QY");
|
||||
@@ -337,7 +348,8 @@ public static class AppConfig
|
||||
return
|
||||
Is("manual_mode") ||
|
||||
ContainsModel("GU604") ||
|
||||
ContainsModel("G733");
|
||||
ContainsModel("G733") ||
|
||||
ContainsModel("FX507Z");
|
||||
}
|
||||
|
||||
public static bool IsFanRequired()
|
||||
@@ -350,5 +362,14 @@ public static class AppConfig
|
||||
return ContainsModel("FX507") || ContainsModel("FX517") || ContainsModel("FX707");
|
||||
}
|
||||
|
||||
public static bool IsGPUFixNeeded()
|
||||
{
|
||||
return ContainsModel("GA402X") || ContainsModel("GV302") || ContainsModel("FX506") || ContainsModel("GU603V");
|
||||
}
|
||||
|
||||
public static bool IsGPUFix()
|
||||
{
|
||||
return Is("gpu_fix") || (ContainsModel("GA402X") && IsNotFalse("gpu_fix"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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)
|
||||
|
||||
286
app/AsusUSB.cs
286
app/AsusUSB.cs
@@ -1,6 +1,9 @@
|
||||
using GHelper.Helpers;
|
||||
using GHelper.Gpu;
|
||||
using GHelper.Helpers;
|
||||
using HidLibrary;
|
||||
using NAudio.Gui;
|
||||
using System.Diagnostics;
|
||||
using System.Drawing;
|
||||
using System.Text;
|
||||
|
||||
namespace GHelper
|
||||
@@ -38,6 +41,7 @@ namespace GHelper
|
||||
public static class AsusUSB
|
||||
{
|
||||
public const int HEATMAP = 20;
|
||||
public const int GPUMODE = 21;
|
||||
|
||||
public const int ASUS_ID = 0x0b05;
|
||||
|
||||
@@ -63,11 +67,14 @@ namespace GHelper
|
||||
static bool isTuf = AppConfig.IsTUF();
|
||||
static bool isStrix = AppConfig.IsStrix();
|
||||
|
||||
static public bool isSingleColor = false;
|
||||
|
||||
static bool isOldHeatmap = AppConfig.Is("old_heatmap");
|
||||
|
||||
|
||||
static System.Timers.Timer timer = new System.Timers.Timer(2000);
|
||||
static HidDevice? auraDevice = null;
|
||||
|
||||
static bool Manual = false;
|
||||
|
||||
static byte[] AuraPowerMessage(AuraPower flags)
|
||||
{
|
||||
@@ -113,6 +120,11 @@ namespace GHelper
|
||||
static AsusUSB()
|
||||
{
|
||||
timer.Elapsed += Timer_Elapsed;
|
||||
|
||||
isSingleColor = AppConfig.ContainsModel("GA401") || AppConfig.ContainsModel("X13"); // Mono Color
|
||||
|
||||
var device = GetDevice(AURA_HID_ID);
|
||||
if (device is not null && device.Attributes.Version == 22 && AppConfig.ContainsModel("GA402X")) isSingleColor = true;
|
||||
}
|
||||
|
||||
private static void Timer_Elapsed(object? sender, System.Timers.ElapsedEventArgs e)
|
||||
@@ -146,33 +158,40 @@ namespace GHelper
|
||||
};
|
||||
}
|
||||
|
||||
static Dictionary<int, string> _modesSingleColor = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
};
|
||||
|
||||
static Dictionary<int, string> _modes = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 10, Properties.Strings.AuraStrobe },
|
||||
{ HEATMAP, "Heatmap"},
|
||||
{ GPUMODE, "GPU Mode" }
|
||||
};
|
||||
|
||||
static Dictionary<int, string> _modesStrix = new Dictionary<int, string>
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 4, "Star" },
|
||||
{ 5, "Rain" },
|
||||
{ 6, "Highlight" },
|
||||
{ 7, "Laser" },
|
||||
{ 8, "Ripple" },
|
||||
{ 10, Properties.Strings.AuraStrobe},
|
||||
{ 11, "Comet" },
|
||||
{ 12, "Flash" },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
{
|
||||
{ 0, Properties.Strings.AuraStatic },
|
||||
{ 1, Properties.Strings.AuraBreathe },
|
||||
{ 2, Properties.Strings.AuraColorCycle },
|
||||
{ 3, Properties.Strings.AuraRainbow },
|
||||
{ 4, "Star" },
|
||||
{ 5, "Rain" },
|
||||
{ 6, "Highlight" },
|
||||
{ 7, "Laser" },
|
||||
{ 8, "Ripple" },
|
||||
{ 10, Properties.Strings.AuraStrobe},
|
||||
{ 11, "Comet" },
|
||||
{ 12, "Flash" },
|
||||
{ HEATMAP, "Heatmap"}
|
||||
};
|
||||
|
||||
|
||||
public static Dictionary<int, string> GetModes()
|
||||
@@ -182,10 +201,9 @@ namespace GHelper
|
||||
_modes.Remove(3);
|
||||
}
|
||||
|
||||
if (AppConfig.NoAuraColor())
|
||||
if (isSingleColor)
|
||||
{
|
||||
_modes.Remove(2);
|
||||
_modes.Remove(3);
|
||||
return _modesSingleColor;
|
||||
}
|
||||
|
||||
if (AppConfig.IsAdvantageEdition())
|
||||
@@ -276,7 +294,7 @@ namespace GHelper
|
||||
}
|
||||
|
||||
|
||||
public static byte[] AuraMessage(int mode, Color color, Color color2, int speed)
|
||||
public static byte[] AuraMessage(int mode, Color color, Color color2, int speed, bool mono = false)
|
||||
{
|
||||
|
||||
byte[] msg = new byte[17];
|
||||
@@ -284,15 +302,15 @@ namespace GHelper
|
||||
msg[1] = 0xb3;
|
||||
msg[2] = 0x00; // Zone
|
||||
msg[3] = (byte)mode; // Aura Mode
|
||||
msg[4] = (byte)(color.R); // R
|
||||
msg[5] = (byte)(color.G); // G
|
||||
msg[6] = (byte)(color.B); // B
|
||||
msg[4] = color.R; // R
|
||||
msg[5] = mono ? (byte)0 : color.G; // G
|
||||
msg[6] = mono ? (byte)0 : color.B; // B
|
||||
msg[7] = (byte)speed; // aura.speed as u8;
|
||||
msg[8] = 0; // aura.direction as u8;
|
||||
msg[9] = (mode == 1) ? (byte)1 : (byte)0;
|
||||
msg[10] = (byte)(color2.R); // R
|
||||
msg[11] = (byte)(color2.G); // G
|
||||
msg[12] = (byte)(color2.B); // B
|
||||
msg[10] = color2.R; // R
|
||||
msg[11] = mono ? (byte)0 : color2.G; // G
|
||||
msg[12] = mono ? (byte)0 : color2.B; // B
|
||||
return msg;
|
||||
}
|
||||
|
||||
@@ -372,63 +390,58 @@ namespace GHelper
|
||||
public static void ApplyAuraPower()
|
||||
{
|
||||
|
||||
Task.Run(async () =>
|
||||
AuraPower flags = new();
|
||||
|
||||
// Keyboard
|
||||
flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
|
||||
flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
|
||||
flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
|
||||
flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
|
||||
|
||||
// Logo
|
||||
flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
|
||||
flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
|
||||
flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
|
||||
flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
|
||||
|
||||
// Lightbar
|
||||
flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
|
||||
flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
|
||||
flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
|
||||
flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
|
||||
|
||||
// Lid
|
||||
flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
// Rear Bar
|
||||
flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
byte[] msg = AuraPowerMessage(flags);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
|
||||
AuraPower flags = new();
|
||||
|
||||
// Keyboard
|
||||
flags.AwakeKeyb = AppConfig.IsNotFalse("keyboard_awake");
|
||||
flags.BootKeyb = AppConfig.IsNotFalse("keyboard_boot");
|
||||
flags.SleepKeyb = AppConfig.IsNotFalse("keyboard_sleep");
|
||||
flags.ShutdownKeyb = AppConfig.IsNotFalse("keyboard_shutdown");
|
||||
|
||||
// Logo
|
||||
flags.AwakeLogo = AppConfig.IsNotFalse("keyboard_awake_logo");
|
||||
flags.BootLogo = AppConfig.IsNotFalse("keyboard_boot_logo");
|
||||
flags.SleepLogo = AppConfig.IsNotFalse("keyboard_sleep_logo");
|
||||
flags.ShutdownLogo = AppConfig.IsNotFalse("keyboard_shutdown_logo");
|
||||
|
||||
// Lightbar
|
||||
flags.AwakeBar = AppConfig.IsNotFalse("keyboard_awake_bar");
|
||||
flags.BootBar = AppConfig.IsNotFalse("keyboard_boot_bar");
|
||||
flags.SleepBar = AppConfig.IsNotFalse("keyboard_sleep_bar");
|
||||
flags.ShutdownBar = AppConfig.IsNotFalse("keyboard_shutdown_bar");
|
||||
|
||||
// Lid
|
||||
flags.AwakeLid = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootLid = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepLid = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownLid = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
// Rear Bar
|
||||
flags.AwakeRear = AppConfig.IsNotFalse("keyboard_awake_lid");
|
||||
flags.BootRear = AppConfig.IsNotFalse("keyboard_boot_lid");
|
||||
flags.SleepRear = AppConfig.IsNotFalse("keyboard_sleep_lid");
|
||||
flags.ShutdownRear = AppConfig.IsNotFalse("keyboard_shutdown_lid");
|
||||
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
byte[] msg = AuraPowerMessage(flags);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
device.WriteFeatureData(msg);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
device.WriteFeatureData(msg);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.ProductHexId + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardPower(
|
||||
flags.AwakeKeyb,
|
||||
flags.BootKeyb,
|
||||
flags.SleepKeyb,
|
||||
flags.ShutdownKeyb);
|
||||
|
||||
});
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardPower(
|
||||
flags.AwakeKeyb,
|
||||
flags.BootKeyb,
|
||||
flags.SleepKeyb,
|
||||
flags.ShutdownKeyb);
|
||||
|
||||
}
|
||||
|
||||
@@ -464,10 +477,10 @@ 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];
|
||||
|
||||
|
||||
byte start = 9;
|
||||
byte maxLeds = 0x93;
|
||||
|
||||
@@ -495,7 +508,7 @@ namespace GHelper
|
||||
auraDevice.Write(LED_INIT3);
|
||||
auraDevice.Write(LED_INIT4);
|
||||
auraDevice.Write(LED_INIT5);
|
||||
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc});
|
||||
auraDevice.Write(new byte[] { AURA_HID_ID, 0xbc });
|
||||
}
|
||||
|
||||
for (byte b = 0; b < maxLeds; b += 0x10)
|
||||
@@ -516,6 +529,7 @@ namespace GHelper
|
||||
|
||||
else
|
||||
{
|
||||
Debug.WriteLine(color.ToString());
|
||||
auraDevice.Write(AuraMessage(0, color, color, 0));
|
||||
auraDevice.Write(MESSAGE_SET);
|
||||
}
|
||||
@@ -523,6 +537,27 @@ namespace GHelper
|
||||
}
|
||||
|
||||
|
||||
public static void ApplyGPUColor()
|
||||
{
|
||||
if (AppConfig.Get("aura_mode") != GPUMODE) return;
|
||||
|
||||
Logger.WriteLine(GPUModeControl.gpuMode.ToString());
|
||||
|
||||
switch (GPUModeControl.gpuMode)
|
||||
{
|
||||
case AsusACPI.GPUModeUltimate:
|
||||
ApplyColor(Color.Red, true);
|
||||
break;
|
||||
case AsusACPI.GPUModeEco:
|
||||
ApplyColor(Color.Green, true);
|
||||
break;
|
||||
default:
|
||||
ApplyColor(Color.Yellow, true);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public static void ApplyAura()
|
||||
{
|
||||
|
||||
@@ -531,55 +566,54 @@ namespace GHelper
|
||||
SetColor(AppConfig.Get("aura_color"));
|
||||
SetColor2(AppConfig.Get("aura_color2"));
|
||||
|
||||
timer.Enabled = false;
|
||||
|
||||
if (Mode == HEATMAP)
|
||||
{
|
||||
SetHeatmap(true);
|
||||
timer.Enabled = true;
|
||||
return;
|
||||
}
|
||||
else
|
||||
}
|
||||
|
||||
if (Mode == GPUMODE)
|
||||
{
|
||||
timer.Enabled = false;
|
||||
ApplyGPUColor();
|
||||
return;
|
||||
}
|
||||
|
||||
Task.Run(async () =>
|
||||
int _speed;
|
||||
switch (Speed)
|
||||
{
|
||||
case 1:
|
||||
_speed = 0xeb;
|
||||
break;
|
||||
case 2:
|
||||
_speed = 0xf5;
|
||||
break;
|
||||
default:
|
||||
_speed = 0xe1;
|
||||
break;
|
||||
}
|
||||
|
||||
byte[] msg;
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
|
||||
int _speed;
|
||||
|
||||
switch (Speed)
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
case 1:
|
||||
_speed = 0xeb;
|
||||
break;
|
||||
case 2:
|
||||
_speed = 0xf5;
|
||||
break;
|
||||
default:
|
||||
_speed = 0xe1;
|
||||
break;
|
||||
msg = AuraMessage(Mode, Color1, Color2, _speed, isSingleColor);
|
||||
device.WriteFeatureData(msg);
|
||||
device.WriteFeatureData(MESSAGE_APPLY);
|
||||
device.WriteFeatureData(MESSAGE_SET);
|
||||
Logger.WriteLine("USB-KB " + device.Attributes.Version + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
byte[] msg = AuraMessage(Mode, Color1, Color2, _speed);
|
||||
var devices = GetHidDevices(deviceIds);
|
||||
|
||||
foreach (HidDevice device in devices)
|
||||
{
|
||||
device.OpenDevice();
|
||||
if (device.ReadFeatureData(out byte[] data, AURA_HID_ID))
|
||||
{
|
||||
device.WriteFeatureData(msg);
|
||||
device.WriteFeatureData(MESSAGE_APPLY);
|
||||
device.WriteFeatureData(MESSAGE_SET);
|
||||
Logger.WriteLine("USB-KB " + device.Capabilities.FeatureReportByteLength + "|" + device.Capabilities.InputReportByteLength + device.Description + device.DevicePath + ":" + BitConverter.ToString(msg));
|
||||
}
|
||||
device.CloseDevice();
|
||||
}
|
||||
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||
});
|
||||
if (isTuf)
|
||||
Program.acpi.TUFKeyboardRGB(Mode, Color1, _speed);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
185
app/Extra.Designer.cs
generated
185
app/Extra.Designer.cs
generated
@@ -103,13 +103,16 @@ namespace GHelper
|
||||
labelSettings = new Label();
|
||||
panelSettings = new Panel();
|
||||
checkAutoToggleClamshellMode = new CheckBox();
|
||||
checkAutoApplyWindowsPowerMode = new CheckBox();
|
||||
checkTopmost = new CheckBox();
|
||||
checkNoOverdrive = new CheckBox();
|
||||
checkUSBC = new CheckBox();
|
||||
checkVariBright = new CheckBox();
|
||||
checkGpuApps = new CheckBox();
|
||||
checkFnLock = new CheckBox();
|
||||
checkGPUFix = 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 +132,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, 1279);
|
||||
panelServices.Name = "panelServices";
|
||||
panelServices.Size = new Size(983, 75);
|
||||
panelServices.TabIndex = 3;
|
||||
panelServices.TabIndex = 5;
|
||||
//
|
||||
// pictureService
|
||||
//
|
||||
@@ -228,6 +236,7 @@ namespace GHelper
|
||||
//
|
||||
// panelBindings
|
||||
//
|
||||
panelBindings.AccessibleName = "Key Bindings";
|
||||
panelBindings.AutoSize = true;
|
||||
panelBindings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelBindings.Controls.Add(tableBindings);
|
||||
@@ -236,10 +245,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 +309,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 +318,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 +329,7 @@ namespace GHelper
|
||||
textFNE.PlaceholderText = "action";
|
||||
textFNE.Size = new Size(375, 39);
|
||||
textFNE.TabIndex = 18;
|
||||
textFNE.TabStop = false;
|
||||
//
|
||||
// labelFNC
|
||||
//
|
||||
@@ -337,6 +351,7 @@ namespace GHelper
|
||||
textM2.PlaceholderText = "action";
|
||||
textM2.Size = new Size(373, 39);
|
||||
textM2.TabIndex = 14;
|
||||
textM2.TabStop = false;
|
||||
//
|
||||
// textM1
|
||||
//
|
||||
@@ -347,9 +362,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 +376,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 +391,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 +401,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 +415,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 +426,7 @@ namespace GHelper
|
||||
textM4.PlaceholderText = "action";
|
||||
textM4.Size = new Size(375, 39);
|
||||
textM4.TabIndex = 5;
|
||||
textM4.TabStop = false;
|
||||
//
|
||||
// textM3
|
||||
//
|
||||
@@ -417,6 +437,7 @@ namespace GHelper
|
||||
textM3.PlaceholderText = "action";
|
||||
textM3.Size = new Size(375, 39);
|
||||
textM3.TabIndex = 4;
|
||||
textM3.TabStop = false;
|
||||
//
|
||||
// labelM4
|
||||
//
|
||||
@@ -453,6 +474,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 +484,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 +499,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 +508,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 +519,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 +532,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 +543,7 @@ namespace GHelper
|
||||
textFNC.PlaceholderText = "action";
|
||||
textFNC.Size = new Size(375, 39);
|
||||
textFNC.TabIndex = 17;
|
||||
textFNC.TabStop = false;
|
||||
//
|
||||
// tableKeys
|
||||
//
|
||||
@@ -562,6 +588,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 +623,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 +644,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 +684,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 +697,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 +777,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 +790,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 +803,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 +816,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,48 +1056,36 @@ namespace GHelper
|
||||
//
|
||||
// panelSettings
|
||||
//
|
||||
panelSettings.AccessibleName = "Extra Settings";
|
||||
panelSettings.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelSettings.AutoSize = true;
|
||||
panelSettings.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelSettings.Controls.Add(checkAutoToggleClamshellMode);
|
||||
panelSettings.Controls.Add(checkAutoApplyWindowsPowerMode);
|
||||
panelSettings.Controls.Add(checkTopmost);
|
||||
panelSettings.Controls.Add(checkNoOverdrive);
|
||||
panelSettings.Controls.Add(checkUSBC);
|
||||
panelSettings.Controls.Add(checkVariBright);
|
||||
panelSettings.Controls.Add(checkGpuApps);
|
||||
panelSettings.Controls.Add(checkFnLock);
|
||||
panelSettings.Controls.Add(checkGPUFix);
|
||||
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, 304);
|
||||
panelSettings.TabIndex = 3;
|
||||
//
|
||||
// checkAutoToggleClamshellMode
|
||||
//
|
||||
checkAutoToggleClamshellMode.AutoSize = true;
|
||||
checkAutoToggleClamshellMode.Dock = DockStyle.Top;
|
||||
checkAutoToggleClamshellMode.Location = new Point(20, 299);
|
||||
checkAutoToggleClamshellMode.Location = new Point(20, 257);
|
||||
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;
|
||||
//
|
||||
// checkAutoApplyWindowsPowerMode
|
||||
//
|
||||
checkAutoApplyWindowsPowerMode.AutoSize = true;
|
||||
checkAutoApplyWindowsPowerMode.Dock = DockStyle.Top;
|
||||
checkAutoApplyWindowsPowerMode.Location = new Point(20, 257);
|
||||
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.Text = "Auto Adjust Windows Power Mode";
|
||||
checkAutoApplyWindowsPowerMode.UseVisualStyleBackColor = true;
|
||||
//
|
||||
// checkTopmost
|
||||
//
|
||||
checkTopmost.AutoSize = true;
|
||||
@@ -1073,7 +1095,7 @@ namespace GHelper
|
||||
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;
|
||||
//
|
||||
@@ -1086,7 +1108,7 @@ namespace GHelper
|
||||
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;
|
||||
//
|
||||
@@ -1099,7 +1121,7 @@ namespace GHelper
|
||||
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;
|
||||
//
|
||||
@@ -1112,7 +1134,7 @@ namespace GHelper
|
||||
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;
|
||||
//
|
||||
@@ -1125,33 +1147,75 @@ namespace GHelper
|
||||
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;
|
||||
//
|
||||
// checkFnLock
|
||||
// checkGPUFix
|
||||
//
|
||||
checkFnLock.AutoSize = true;
|
||||
checkFnLock.Dock = DockStyle.Top;
|
||||
checkFnLock.Location = new Point(20, 5);
|
||||
checkFnLock.Margin = new Padding(4, 3, 4, 3);
|
||||
checkFnLock.MaximumSize = new Size(800, 0);
|
||||
checkFnLock.Name = "checkFnLock";
|
||||
checkFnLock.Padding = new Padding(3);
|
||||
checkFnLock.Size = new Size(800, 42);
|
||||
checkFnLock.TabIndex = 56;
|
||||
checkFnLock.Text = "Process Fn+F hotkeys without Fn";
|
||||
checkFnLock.UseVisualStyleBackColor = true;
|
||||
checkGPUFix.AutoSize = true;
|
||||
checkGPUFix.Dock = DockStyle.Top;
|
||||
checkGPUFix.Location = new Point(20, 5);
|
||||
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;
|
||||
//
|
||||
// panelPower
|
||||
//
|
||||
panelPower.Controls.Add(numericHibernateAfter);
|
||||
panelPower.Controls.Add(labelHibernateAfter);
|
||||
panelPower.Controls.Add(pictureHibernate);
|
||||
panelPower.Dock = DockStyle.Top;
|
||||
panelPower.Location = new Point(15, 1225);
|
||||
panelPower.Name = "panelPower";
|
||||
panelPower.Size = new Size(983, 54);
|
||||
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, 7);
|
||||
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, 10);
|
||||
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, 10);
|
||||
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 +1227,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 +1261,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();
|
||||
}
|
||||
@@ -1265,13 +1333,11 @@ namespace GHelper
|
||||
private PictureBox pictureSettings;
|
||||
private Label labelSettings;
|
||||
private Panel panelSettings;
|
||||
private CheckBox checkAutoApplyWindowsPowerMode;
|
||||
private CheckBox checkTopmost;
|
||||
private CheckBox checkNoOverdrive;
|
||||
private CheckBox checkUSBC;
|
||||
private CheckBox checkVariBright;
|
||||
private CheckBox checkGpuApps;
|
||||
private CheckBox checkFnLock;
|
||||
private PictureBox pictureBacklight;
|
||||
private Label labelBacklightTitle;
|
||||
private PictureBox pictureService;
|
||||
@@ -1282,5 +1348,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;
|
||||
}
|
||||
}
|
||||
58
app/Extra.cs
58
app/Extra.cs
@@ -2,6 +2,7 @@
|
||||
using GHelper.Gpu.AMD;
|
||||
using GHelper.Helpers;
|
||||
using GHelper.Input;
|
||||
using GHelper.Mode;
|
||||
using GHelper.UI;
|
||||
using System.Diagnostics;
|
||||
|
||||
@@ -117,8 +118,6 @@ namespace GHelper
|
||||
checkNoOverdrive.Text = Properties.Strings.DisableOverdrive;
|
||||
checkTopmost.Text = Properties.Strings.WindowTop;
|
||||
checkUSBC.Text = Properties.Strings.OptimizedUSBC;
|
||||
checkAutoApplyWindowsPowerMode.Text = Properties.Strings.ApplyWindowsPowerPlan;
|
||||
checkFnLock.Text = Properties.Strings.FnLock;
|
||||
checkAutoToggleClamshellMode.Text = Properties.Strings.ToggleClamshellMode;
|
||||
|
||||
labelBacklightKeyboard.Text = Properties.Strings.Keyboard;
|
||||
@@ -127,6 +126,7 @@ namespace GHelper
|
||||
labelBacklightLogo.Text = Properties.Strings.Logo;
|
||||
|
||||
checkGpuApps.Text = Properties.Strings.KillGpuApps;
|
||||
labelHibernateAfter.Text = Properties.Strings.HibernateAfter;
|
||||
|
||||
Text = Properties.Strings.ExtraSettings;
|
||||
|
||||
@@ -292,9 +292,6 @@ namespace GHelper
|
||||
checkUSBC.Checked = AppConfig.Is("optimized_usbc");
|
||||
checkUSBC.CheckedChanged += CheckUSBC_CheckedChanged;
|
||||
|
||||
checkAutoApplyWindowsPowerMode.Checked = (AppConfig.Get("auto_apply_power_plan") != 0);
|
||||
checkAutoApplyWindowsPowerMode.CheckedChanged += checkAutoApplyWindowsPowerMode_CheckedChanged;
|
||||
|
||||
sliderBrightness.Value = InputDispatcher.GetBacklight();
|
||||
sliderBrightness.ValueChanged += SliderBrightness_ValueChanged;
|
||||
|
||||
@@ -311,17 +308,46 @@ namespace GHelper
|
||||
checkGpuApps.Checked = AppConfig.Is("kill_gpu_apps");
|
||||
checkGpuApps.CheckedChanged += CheckGpuApps_CheckedChanged;
|
||||
|
||||
checkFnLock.Checked = AppConfig.Is("fn_lock");
|
||||
checkFnLock.CheckedChanged += CheckFnLock_CheckedChanged; ;
|
||||
|
||||
pictureHelp.Click += PictureHelp_Click;
|
||||
|
||||
buttonServices.Click += ButtonServices_Click;
|
||||
|
||||
pictureLog.Click += PictureLog_Click;
|
||||
|
||||
checkGPUFix.Visible = AppConfig.IsGPUFixNeeded();
|
||||
checkGPUFix.Checked = AppConfig.IsGPUFix();
|
||||
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
|
||||
{
|
||||
int hibernate = PowerNative.GetHibernateAfter();
|
||||
if (hibernate < 0 || hibernate > numericHibernateAfter.Maximum) hibernate = 0;
|
||||
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 +432,7 @@ namespace GHelper
|
||||
{
|
||||
try
|
||||
{
|
||||
|
||||
using (var amdControl = new AmdGpuControl())
|
||||
{
|
||||
int variBrightSupported = 0, VariBrightEnabled;
|
||||
@@ -438,15 +465,6 @@ namespace GHelper
|
||||
}
|
||||
}
|
||||
|
||||
private void CheckFnLock_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
int fnLock = checkFnLock.Checked ? 1 : 0;
|
||||
AppConfig.Set("fn_lock", fnLock);
|
||||
Program.acpi.DeviceSet(AsusACPI.FnLock, (fnLock == 1) ? 0 : 1, "FnLock");
|
||||
|
||||
Program.inputDispatcher.RegisterKeys();
|
||||
}
|
||||
|
||||
private void CheckGpuApps_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("kill_gpu_apps", (checkGpuApps.Checked ? 1 : 0));
|
||||
@@ -535,10 +553,6 @@ namespace GHelper
|
||||
Left = Program.settingsForm.Left - Width - 5;
|
||||
}
|
||||
|
||||
private void checkAutoApplyWindowsPowerMode_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("auto_apply_power_plan", checkAutoApplyWindowsPowerMode.Checked ? 1 : 0);
|
||||
}
|
||||
|
||||
private void checkAutoToggleClamshellMode_CheckedChanged(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
221
app/Fans.Designer.cs
generated
221
app/Fans.Designer.cs
generated
@@ -31,14 +31,14 @@ namespace GHelper
|
||||
/// </summary>
|
||||
private void InitializeComponent()
|
||||
{
|
||||
ChartArea chartArea1 = new ChartArea();
|
||||
Title title1 = new Title();
|
||||
ChartArea chartArea2 = new ChartArea();
|
||||
Title title2 = new Title();
|
||||
ChartArea chartArea3 = new ChartArea();
|
||||
Title title3 = new Title();
|
||||
ChartArea chartArea4 = new ChartArea();
|
||||
Title title4 = new Title();
|
||||
ChartArea chartArea9 = new ChartArea();
|
||||
Title title9 = new Title();
|
||||
ChartArea chartArea10 = new ChartArea();
|
||||
Title title10 = new Title();
|
||||
ChartArea chartArea11 = new ChartArea();
|
||||
Title title11 = new Title();
|
||||
ChartArea chartArea12 = new ChartArea();
|
||||
Title title12 = new Title();
|
||||
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Fans));
|
||||
panelFans = new Panel();
|
||||
labelTip = new Label();
|
||||
@@ -106,6 +106,11 @@ namespace GHelper
|
||||
panelBoostTitle = new Panel();
|
||||
pictureBoost = new PictureBox();
|
||||
labelBoost = new Label();
|
||||
panelPowerMode = new Panel();
|
||||
comboPowerMode = new RComboBox();
|
||||
panelPowerModeTItle = new Panel();
|
||||
picturePowerMode = new PictureBox();
|
||||
labelPowerModeTitle = new Label();
|
||||
panelGPU = new Panel();
|
||||
panelGPUTemp = new Panel();
|
||||
labelGPUTemp = new Label();
|
||||
@@ -131,6 +136,10 @@ namespace GHelper
|
||||
buttonAdvanced = new RButton();
|
||||
buttonGPU = new RButton();
|
||||
buttonCPU = new RButton();
|
||||
panelGPUClockLimit = new Panel();
|
||||
labelGPUClockLimit = new Label();
|
||||
trackGPUClockLimit = new TrackBar();
|
||||
labelGPUClockLimitTitle = new Label();
|
||||
panelFans.SuspendLayout();
|
||||
tableFanCharts.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)chartGPU).BeginInit();
|
||||
@@ -167,6 +176,9 @@ namespace GHelper
|
||||
panelBoost.SuspendLayout();
|
||||
panelBoostTitle.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoost).BeginInit();
|
||||
panelPowerMode.SuspendLayout();
|
||||
panelPowerModeTItle.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).BeginInit();
|
||||
panelGPU.SuspendLayout();
|
||||
panelGPUTemp.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUTemp).BeginInit();
|
||||
@@ -180,6 +192,8 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)pictureGPU).BeginInit();
|
||||
panelNav.SuspendLayout();
|
||||
tableNav.SuspendLayout();
|
||||
panelGPUClockLimit.SuspendLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUClockLimit).BeginInit();
|
||||
SuspendLayout();
|
||||
//
|
||||
// panelFans
|
||||
@@ -236,8 +250,8 @@ namespace GHelper
|
||||
//
|
||||
// chartGPU
|
||||
//
|
||||
chartArea1.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea1);
|
||||
chartArea9.Name = "ChartArea1";
|
||||
chartGPU.ChartAreas.Add(chartArea9);
|
||||
chartGPU.Dock = DockStyle.Fill;
|
||||
chartGPU.Location = new Point(12, 491);
|
||||
chartGPU.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -245,13 +259,13 @@ namespace GHelper
|
||||
chartGPU.Size = new Size(782, 461);
|
||||
chartGPU.TabIndex = 17;
|
||||
chartGPU.Text = "chartGPU";
|
||||
title1.Name = "Title1";
|
||||
chartGPU.Titles.Add(title1);
|
||||
title9.Name = "Title1";
|
||||
chartGPU.Titles.Add(title9);
|
||||
//
|
||||
// chartCPU
|
||||
//
|
||||
chartArea2.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea2);
|
||||
chartArea10.Name = "ChartArea1";
|
||||
chartCPU.ChartAreas.Add(chartArea10);
|
||||
chartCPU.Dock = DockStyle.Fill;
|
||||
chartCPU.Location = new Point(12, 10);
|
||||
chartCPU.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -259,13 +273,13 @@ namespace GHelper
|
||||
chartCPU.Size = new Size(782, 461);
|
||||
chartCPU.TabIndex = 14;
|
||||
chartCPU.Text = "chartCPU";
|
||||
title2.Name = "Title1";
|
||||
chartCPU.Titles.Add(title2);
|
||||
title10.Name = "Title1";
|
||||
chartCPU.Titles.Add(title10);
|
||||
//
|
||||
// chartXGM
|
||||
//
|
||||
chartArea3.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea3);
|
||||
chartArea11.Name = "ChartAreaXGM";
|
||||
chartXGM.ChartAreas.Add(chartArea11);
|
||||
chartXGM.Dock = DockStyle.Fill;
|
||||
chartXGM.Location = new Point(12, 1453);
|
||||
chartXGM.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -273,14 +287,14 @@ namespace GHelper
|
||||
chartXGM.Size = new Size(782, 464);
|
||||
chartXGM.TabIndex = 14;
|
||||
chartXGM.Text = "chartXGM";
|
||||
title3.Name = "Title4";
|
||||
chartXGM.Titles.Add(title3);
|
||||
title11.Name = "Title4";
|
||||
chartXGM.Titles.Add(title11);
|
||||
chartXGM.Visible = false;
|
||||
//
|
||||
// chartMid
|
||||
//
|
||||
chartArea4.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea4);
|
||||
chartArea12.Name = "ChartArea3";
|
||||
chartMid.ChartAreas.Add(chartArea12);
|
||||
chartMid.Dock = DockStyle.Fill;
|
||||
chartMid.Location = new Point(12, 972);
|
||||
chartMid.Margin = new Padding(2, 10, 2, 10);
|
||||
@@ -288,8 +302,8 @@ namespace GHelper
|
||||
chartMid.Size = new Size(782, 461);
|
||||
chartMid.TabIndex = 14;
|
||||
chartMid.Text = "chartMid";
|
||||
title4.Name = "Title3";
|
||||
chartMid.Titles.Add(title4);
|
||||
title12.Name = "Title3";
|
||||
chartMid.Titles.Add(title12);
|
||||
chartMid.Visible = false;
|
||||
//
|
||||
// panelTitleFans
|
||||
@@ -491,7 +505,7 @@ namespace GHelper
|
||||
panelAdvanced.Controls.Add(panelTemperature);
|
||||
panelAdvanced.Controls.Add(panelTitleTemp);
|
||||
panelAdvanced.Dock = DockStyle.Top;
|
||||
panelAdvanced.Location = new Point(10, 1272);
|
||||
panelAdvanced.Location = new Point(10, 1520);
|
||||
panelAdvanced.Name = "panelAdvanced";
|
||||
panelAdvanced.Size = new Size(520, 888);
|
||||
panelAdvanced.TabIndex = 14;
|
||||
@@ -786,11 +800,13 @@ namespace GHelper
|
||||
panelPower.Controls.Add(panelTitleCPU);
|
||||
panelPower.Controls.Add(panelBoost);
|
||||
panelPower.Controls.Add(panelBoostTitle);
|
||||
panelPower.Controls.Add(panelPowerMode);
|
||||
panelPower.Controls.Add(panelPowerModeTItle);
|
||||
panelPower.Dock = DockStyle.Top;
|
||||
panelPower.Location = new Point(10, 640);
|
||||
panelPower.Location = new Point(10, 764);
|
||||
panelPower.Margin = new Padding(4);
|
||||
panelPower.Name = "panelPower";
|
||||
panelPower.Size = new Size(520, 632);
|
||||
panelPower.Size = new Size(520, 756);
|
||||
panelPower.TabIndex = 43;
|
||||
//
|
||||
// panelApplyPower
|
||||
@@ -798,7 +814,7 @@ namespace GHelper
|
||||
panelApplyPower.AutoSize = true;
|
||||
panelApplyPower.Controls.Add(checkApplyPower);
|
||||
panelApplyPower.Dock = DockStyle.Top;
|
||||
panelApplyPower.Location = new Point(0, 556);
|
||||
panelApplyPower.Location = new Point(0, 680);
|
||||
panelApplyPower.Name = "panelApplyPower";
|
||||
panelApplyPower.Padding = new Padding(15);
|
||||
panelApplyPower.Size = new Size(520, 76);
|
||||
@@ -825,7 +841,7 @@ namespace GHelper
|
||||
panelB0.Controls.Add(labelLeftB0);
|
||||
panelB0.Controls.Add(trackB0);
|
||||
panelB0.Dock = DockStyle.Top;
|
||||
panelB0.Location = new Point(0, 432);
|
||||
panelB0.Location = new Point(0, 556);
|
||||
panelB0.Margin = new Padding(4);
|
||||
panelB0.MaximumSize = new Size(0, 124);
|
||||
panelB0.Name = "panelB0";
|
||||
@@ -874,7 +890,7 @@ namespace GHelper
|
||||
panelC1.Controls.Add(labelLeftC1);
|
||||
panelC1.Controls.Add(trackC1);
|
||||
panelC1.Dock = DockStyle.Top;
|
||||
panelC1.Location = new Point(0, 308);
|
||||
panelC1.Location = new Point(0, 432);
|
||||
panelC1.Margin = new Padding(4);
|
||||
panelC1.MaximumSize = new Size(0, 124);
|
||||
panelC1.Name = "panelC1";
|
||||
@@ -923,7 +939,7 @@ namespace GHelper
|
||||
panelA0.Controls.Add(labelLeftA0);
|
||||
panelA0.Controls.Add(trackA0);
|
||||
panelA0.Dock = DockStyle.Top;
|
||||
panelA0.Location = new Point(0, 184);
|
||||
panelA0.Location = new Point(0, 308);
|
||||
panelA0.Margin = new Padding(4);
|
||||
panelA0.MaximumSize = new Size(0, 124);
|
||||
panelA0.Name = "panelA0";
|
||||
@@ -971,7 +987,7 @@ namespace GHelper
|
||||
panelTitleCPU.Controls.Add(pictureBoxCPU);
|
||||
panelTitleCPU.Controls.Add(labelPowerLimits);
|
||||
panelTitleCPU.Dock = DockStyle.Top;
|
||||
panelTitleCPU.Location = new Point(0, 124);
|
||||
panelTitleCPU.Location = new Point(0, 248);
|
||||
panelTitleCPU.Margin = new Padding(4);
|
||||
panelTitleCPU.Name = "panelTitleCPU";
|
||||
panelTitleCPU.Size = new Size(520, 60);
|
||||
@@ -1004,7 +1020,7 @@ namespace GHelper
|
||||
//
|
||||
panelBoost.Controls.Add(comboBoost);
|
||||
panelBoost.Dock = DockStyle.Top;
|
||||
panelBoost.Location = new Point(0, 60);
|
||||
panelBoost.Location = new Point(0, 184);
|
||||
panelBoost.Margin = new Padding(4);
|
||||
panelBoost.Name = "panelBoost";
|
||||
panelBoost.Size = new Size(520, 64);
|
||||
@@ -1017,7 +1033,7 @@ namespace GHelper
|
||||
panelBoostTitle.Controls.Add(pictureBoost);
|
||||
panelBoostTitle.Controls.Add(labelBoost);
|
||||
panelBoostTitle.Dock = DockStyle.Top;
|
||||
panelBoostTitle.Location = new Point(0, 0);
|
||||
panelBoostTitle.Location = new Point(0, 124);
|
||||
panelBoostTitle.Margin = new Padding(4);
|
||||
panelBoostTitle.Name = "panelBoostTitle";
|
||||
panelBoostTitle.Size = new Size(520, 60);
|
||||
@@ -1046,6 +1062,66 @@ namespace GHelper
|
||||
labelBoost.TabIndex = 39;
|
||||
labelBoost.Text = "CPU Boost";
|
||||
//
|
||||
// panelPowerMode
|
||||
//
|
||||
panelPowerMode.Controls.Add(comboPowerMode);
|
||||
panelPowerMode.Dock = DockStyle.Top;
|
||||
panelPowerMode.Location = new Point(0, 60);
|
||||
panelPowerMode.Margin = new Padding(4);
|
||||
panelPowerMode.Name = "panelPowerMode";
|
||||
panelPowerMode.Size = new Size(520, 64);
|
||||
panelPowerMode.TabIndex = 49;
|
||||
//
|
||||
// comboPowerMode
|
||||
//
|
||||
comboPowerMode.Anchor = AnchorStyles.Top | AnchorStyles.Left | AnchorStyles.Right;
|
||||
comboPowerMode.BorderColor = Color.White;
|
||||
comboPowerMode.ButtonColor = Color.FromArgb(255, 255, 255);
|
||||
comboPowerMode.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboPowerMode.FormattingEnabled = true;
|
||||
comboPowerMode.Items.AddRange(new object[] { "Disabled", "Enabled", "Aggressive", "Efficient Enabled", "Efficient Aggressive", "Aggressive at Guaranteed", "Efficient at Guaranteed" });
|
||||
comboPowerMode.Location = new Point(13, 12);
|
||||
comboPowerMode.Margin = new Padding(4);
|
||||
comboPowerMode.Name = "comboPowerMode";
|
||||
comboPowerMode.Size = new Size(329, 40);
|
||||
comboPowerMode.TabIndex = 42;
|
||||
//
|
||||
// panelPowerModeTItle
|
||||
//
|
||||
panelPowerModeTItle.AutoSize = true;
|
||||
panelPowerModeTItle.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelPowerModeTItle.Controls.Add(picturePowerMode);
|
||||
panelPowerModeTItle.Controls.Add(labelPowerModeTitle);
|
||||
panelPowerModeTItle.Dock = DockStyle.Top;
|
||||
panelPowerModeTItle.Location = new Point(0, 0);
|
||||
panelPowerModeTItle.Margin = new Padding(4);
|
||||
panelPowerModeTItle.Name = "panelPowerModeTItle";
|
||||
panelPowerModeTItle.Size = new Size(520, 60);
|
||||
panelPowerModeTItle.TabIndex = 50;
|
||||
//
|
||||
// picturePowerMode
|
||||
//
|
||||
picturePowerMode.BackgroundImage = Properties.Resources.icons8_gauge_32;
|
||||
picturePowerMode.BackgroundImageLayout = ImageLayout.Zoom;
|
||||
picturePowerMode.InitialImage = null;
|
||||
picturePowerMode.Location = new Point(10, 18);
|
||||
picturePowerMode.Margin = new Padding(4, 2, 4, 10);
|
||||
picturePowerMode.Name = "picturePowerMode";
|
||||
picturePowerMode.Size = new Size(32, 32);
|
||||
picturePowerMode.TabIndex = 40;
|
||||
picturePowerMode.TabStop = false;
|
||||
//
|
||||
// labelPowerModeTitle
|
||||
//
|
||||
labelPowerModeTitle.AutoSize = true;
|
||||
labelPowerModeTitle.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelPowerModeTitle.Location = new Point(46, 18);
|
||||
labelPowerModeTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelPowerModeTitle.Name = "labelPowerModeTitle";
|
||||
labelPowerModeTitle.Size = new Size(271, 32);
|
||||
labelPowerModeTitle.TabIndex = 39;
|
||||
labelPowerModeTitle.Text = "Windows Power Mode";
|
||||
//
|
||||
// panelGPU
|
||||
//
|
||||
panelGPU.AutoSize = true;
|
||||
@@ -1053,13 +1129,14 @@ namespace GHelper
|
||||
panelGPU.Controls.Add(panelGPUBoost);
|
||||
panelGPU.Controls.Add(panelGPUMemory);
|
||||
panelGPU.Controls.Add(panelGPUCore);
|
||||
panelGPU.Controls.Add(panelGPUClockLimit);
|
||||
panelGPU.Controls.Add(panelTitleGPU);
|
||||
panelGPU.Dock = DockStyle.Top;
|
||||
panelGPU.Location = new Point(10, 66);
|
||||
panelGPU.Margin = new Padding(4);
|
||||
panelGPU.Name = "panelGPU";
|
||||
panelGPU.Padding = new Padding(0, 0, 0, 18);
|
||||
panelGPU.Size = new Size(520, 574);
|
||||
panelGPU.Size = new Size(520, 698);
|
||||
panelGPU.TabIndex = 44;
|
||||
panelGPU.Visible = false;
|
||||
//
|
||||
@@ -1071,7 +1148,7 @@ namespace GHelper
|
||||
panelGPUTemp.Controls.Add(labelGPUTempTitle);
|
||||
panelGPUTemp.Controls.Add(trackGPUTemp);
|
||||
panelGPUTemp.Dock = DockStyle.Top;
|
||||
panelGPUTemp.Location = new Point(0, 432);
|
||||
panelGPUTemp.Location = new Point(0, 556);
|
||||
panelGPUTemp.Margin = new Padding(4);
|
||||
panelGPUTemp.MaximumSize = new Size(0, 124);
|
||||
panelGPUTemp.Name = "panelGPUTemp";
|
||||
@@ -1120,7 +1197,7 @@ namespace GHelper
|
||||
panelGPUBoost.Controls.Add(labelGPUBoostTitle);
|
||||
panelGPUBoost.Controls.Add(trackGPUBoost);
|
||||
panelGPUBoost.Dock = DockStyle.Top;
|
||||
panelGPUBoost.Location = new Point(0, 308);
|
||||
panelGPUBoost.Location = new Point(0, 432);
|
||||
panelGPUBoost.Margin = new Padding(4);
|
||||
panelGPUBoost.MaximumSize = new Size(0, 124);
|
||||
panelGPUBoost.Name = "panelGPUBoost";
|
||||
@@ -1169,7 +1246,7 @@ namespace GHelper
|
||||
panelGPUMemory.Controls.Add(labelGPUMemoryTitle);
|
||||
panelGPUMemory.Controls.Add(trackGPUMemory);
|
||||
panelGPUMemory.Dock = DockStyle.Top;
|
||||
panelGPUMemory.Location = new Point(0, 184);
|
||||
panelGPUMemory.Location = new Point(0, 308);
|
||||
panelGPUMemory.Margin = new Padding(4);
|
||||
panelGPUMemory.MaximumSize = new Size(0, 124);
|
||||
panelGPUMemory.Name = "panelGPUMemory";
|
||||
@@ -1218,7 +1295,7 @@ namespace GHelper
|
||||
panelGPUCore.Controls.Add(trackGPUCore);
|
||||
panelGPUCore.Controls.Add(labelGPUCoreTitle);
|
||||
panelGPUCore.Dock = DockStyle.Top;
|
||||
panelGPUCore.Location = new Point(0, 60);
|
||||
panelGPUCore.Location = new Point(0, 184);
|
||||
panelGPUCore.Margin = new Padding(4);
|
||||
panelGPUCore.MaximumSize = new Size(0, 124);
|
||||
panelGPUCore.Name = "panelGPUCore";
|
||||
@@ -1382,6 +1459,56 @@ namespace GHelper
|
||||
buttonCPU.TextImageRelation = TextImageRelation.ImageBeforeText;
|
||||
buttonCPU.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// panelGPUClockLimit
|
||||
//
|
||||
panelGPUClockLimit.AutoSize = true;
|
||||
panelGPUClockLimit.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPUClockLimit.Controls.Add(labelGPUClockLimit);
|
||||
panelGPUClockLimit.Controls.Add(trackGPUClockLimit);
|
||||
panelGPUClockLimit.Controls.Add(labelGPUClockLimitTitle);
|
||||
panelGPUClockLimit.Dock = DockStyle.Top;
|
||||
panelGPUClockLimit.Location = new Point(0, 60);
|
||||
panelGPUClockLimit.Margin = new Padding(4);
|
||||
panelGPUClockLimit.MaximumSize = new Size(0, 124);
|
||||
panelGPUClockLimit.Name = "panelGPUClockLimit";
|
||||
panelGPUClockLimit.Size = new Size(520, 124);
|
||||
panelGPUClockLimit.TabIndex = 48;
|
||||
//
|
||||
// labelGPUClockLimit
|
||||
//
|
||||
labelGPUClockLimit.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelGPUClockLimit.Location = new Point(326, 16);
|
||||
labelGPUClockLimit.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUClockLimit.Name = "labelGPUClockLimit";
|
||||
labelGPUClockLimit.Size = new Size(176, 32);
|
||||
labelGPUClockLimit.TabIndex = 29;
|
||||
labelGPUClockLimit.Text = "1500 MHz";
|
||||
labelGPUClockLimit.TextAlign = ContentAlignment.TopRight;
|
||||
//
|
||||
// trackGPUClockLimit
|
||||
//
|
||||
trackGPUClockLimit.LargeChange = 100;
|
||||
trackGPUClockLimit.Location = new Point(6, 48);
|
||||
trackGPUClockLimit.Margin = new Padding(4, 2, 4, 2);
|
||||
trackGPUClockLimit.Maximum = 3000;
|
||||
trackGPUClockLimit.Name = "trackGPUClockLimit";
|
||||
trackGPUClockLimit.RightToLeft = RightToLeft.No;
|
||||
trackGPUClockLimit.Size = new Size(496, 90);
|
||||
trackGPUClockLimit.SmallChange = 10;
|
||||
trackGPUClockLimit.TabIndex = 18;
|
||||
trackGPUClockLimit.TickFrequency = 50;
|
||||
trackGPUClockLimit.TickStyle = TickStyle.TopLeft;
|
||||
//
|
||||
// labelGPUClockLimitTitle
|
||||
//
|
||||
labelGPUClockLimitTitle.AutoSize = true;
|
||||
labelGPUClockLimitTitle.Location = new Point(10, 16);
|
||||
labelGPUClockLimitTitle.Margin = new Padding(4, 0, 4, 0);
|
||||
labelGPUClockLimitTitle.Name = "labelGPUClockLimitTitle";
|
||||
labelGPUClockLimitTitle.Size = new Size(188, 32);
|
||||
labelGPUClockLimitTitle.TabIndex = 17;
|
||||
labelGPUClockLimitTitle.Text = "Core Clock Limit";
|
||||
//
|
||||
// Fans
|
||||
//
|
||||
AutoScaleDimensions = new SizeF(192F, 192F);
|
||||
@@ -1452,6 +1579,10 @@ namespace GHelper
|
||||
panelBoostTitle.ResumeLayout(false);
|
||||
panelBoostTitle.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)pictureBoost).EndInit();
|
||||
panelPowerMode.ResumeLayout(false);
|
||||
panelPowerModeTItle.ResumeLayout(false);
|
||||
panelPowerModeTItle.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)picturePowerMode).EndInit();
|
||||
panelGPU.ResumeLayout(false);
|
||||
panelGPU.PerformLayout();
|
||||
panelGPUTemp.ResumeLayout(false);
|
||||
@@ -1471,6 +1602,9 @@ namespace GHelper
|
||||
((System.ComponentModel.ISupportInitialize)pictureGPU).EndInit();
|
||||
panelNav.ResumeLayout(false);
|
||||
tableNav.ResumeLayout(false);
|
||||
panelGPUClockLimit.ResumeLayout(false);
|
||||
panelGPUClockLimit.PerformLayout();
|
||||
((System.ComponentModel.ISupportInitialize)trackGPUClockLimit).EndInit();
|
||||
ResumeLayout(false);
|
||||
PerformLayout();
|
||||
}
|
||||
@@ -1568,5 +1702,14 @@ namespace GHelper
|
||||
private TrackBar trackTemp;
|
||||
private Panel panelAdvancedAlways;
|
||||
private RCheckBox checkApplyUV;
|
||||
private Panel panelPowerMode;
|
||||
private RComboBox comboPowerMode;
|
||||
private Panel panelPowerModeTItle;
|
||||
private PictureBox picturePowerMode;
|
||||
private Label labelPowerModeTitle;
|
||||
private Panel panelGPUClockLimit;
|
||||
private Label labelGPUClockLimit;
|
||||
private TrackBar trackGPUClockLimit;
|
||||
private Label labelGPUClockLimitTitle;
|
||||
}
|
||||
}
|
||||
71
app/Fans.cs
71
app/Fans.cs
@@ -109,6 +109,9 @@ namespace GHelper
|
||||
checkApplyFans.Click += CheckApplyFans_Click;
|
||||
checkApplyPower.Click += CheckApplyPower_Click;
|
||||
|
||||
trackGPUClockLimit.Minimum = NvidiaGpuControl.MinClockLimit;
|
||||
trackGPUClockLimit.Maximum = NvidiaGpuControl.MaxClockLimit;
|
||||
|
||||
trackGPUCore.Minimum = NvidiaGpuControl.MinCoreOffset;
|
||||
trackGPUCore.Maximum = NvidiaGpuControl.MaxCoreOffset;
|
||||
|
||||
@@ -121,6 +124,7 @@ namespace GHelper
|
||||
trackGPUTemp.Minimum = AsusACPI.MinGPUTemp;
|
||||
trackGPUTemp.Maximum = AsusACPI.MaxGPUTemp;
|
||||
|
||||
trackGPUClockLimit.Scroll += trackGPUClockLimit_Scroll;
|
||||
trackGPUCore.Scroll += trackGPU_Scroll;
|
||||
trackGPUMemory.Scroll += trackGPU_Scroll;
|
||||
|
||||
@@ -131,6 +135,7 @@ namespace GHelper
|
||||
trackGPUMemory.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUBoost.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUTemp.MouseUp += TrackGPU_MouseUp;
|
||||
trackGPUClockLimit.MouseUp += TrackGPU_MouseUp;
|
||||
|
||||
//labelInfo.MaximumSize = new Size(280, 0);
|
||||
labelFansResult.Visible = false;
|
||||
@@ -145,11 +150,17 @@ namespace GHelper
|
||||
trackTemp.Minimum = RyzenControl.MinTemp;
|
||||
trackTemp.Maximum = RyzenControl.MaxTemp;
|
||||
|
||||
comboPowerMode.DropDownStyle = ComboBoxStyle.DropDownList;
|
||||
comboPowerMode.DataSource = new BindingSource(PowerNative.powerModes, null);
|
||||
comboPowerMode.DisplayMember = "Value";
|
||||
comboPowerMode.ValueMember = "Key";
|
||||
|
||||
FillModes();
|
||||
InitAll();
|
||||
|
||||
comboBoost.SelectedValueChanged += ComboBoost_Changed;
|
||||
comboPowerMode.SelectedValueChanged += ComboPowerMode_Changed;
|
||||
|
||||
|
||||
comboModes.SelectionChangeCommitted += ComboModes_SelectedValueChanged;
|
||||
comboModes.TextChanged += ComboModes_TextChanged;
|
||||
@@ -201,7 +212,7 @@ namespace GHelper
|
||||
InitMode();
|
||||
InitFans();
|
||||
InitPower();
|
||||
InitBoost();
|
||||
InitPowerPlan();
|
||||
InitUV();
|
||||
InitGPU();
|
||||
}
|
||||
@@ -293,7 +304,7 @@ namespace GHelper
|
||||
panelUViGPU.Visible = false;
|
||||
}
|
||||
|
||||
if (!RyzenControl.IsSupportedUV())
|
||||
if (!RyzenControl.IsSupportedUViGPU())
|
||||
{
|
||||
panelUViGPU.Visible = false;
|
||||
}
|
||||
@@ -429,24 +440,29 @@ namespace GHelper
|
||||
|
||||
int gpu_boost = AppConfig.GetMode("gpu_boost");
|
||||
int gpu_temp = AppConfig.GetMode("gpu_temp");
|
||||
|
||||
int core = AppConfig.GetMode("gpu_core");
|
||||
int memory = AppConfig.GetMode("gpu_memory");
|
||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||
|
||||
if (gpu_boost < 0) gpu_boost = AsusACPI.MaxGPUBoost;
|
||||
if (gpu_temp < 0) gpu_temp = AsusACPI.MaxGPUTemp;
|
||||
|
||||
if (core == -1) core = 0;
|
||||
if (memory == -1) memory = 0;
|
||||
if (clock_limit == -1) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
|
||||
//if (readClocks)
|
||||
//{
|
||||
int status = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||
if (status != -1)
|
||||
if (nvControl.GetClocks(out int current_core, out int current_memory))
|
||||
{
|
||||
core = current_core;
|
||||
memory = current_memory;
|
||||
}
|
||||
|
||||
int _clockLimit = nvControl.GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit == 0) clock_limit = NvidiaGpuControl.MaxClockLimit;
|
||||
else if (_clockLimit > 0) clock_limit = _clockLimit;
|
||||
|
||||
try
|
||||
{
|
||||
labelGPU.Text = nvControl.FullName;
|
||||
@@ -457,6 +473,7 @@ namespace GHelper
|
||||
}
|
||||
|
||||
//}
|
||||
trackGPUClockLimit.Value = Math.Max(Math.Min(clock_limit, NvidiaGpuControl.MaxClockLimit), NvidiaGpuControl.MinClockLimit);
|
||||
|
||||
trackGPUCore.Value = Math.Max(Math.Min(core, NvidiaGpuControl.MaxCoreOffset), NvidiaGpuControl.MinCoreOffset);
|
||||
trackGPUMemory.Value = Math.Max(Math.Min(memory, NvidiaGpuControl.MaxMemoryOffset), NvidiaGpuControl.MinMemoryOffset);
|
||||
@@ -482,8 +499,24 @@ namespace GHelper
|
||||
{
|
||||
labelGPUCore.Text = $"{trackGPUCore.Value} MHz";
|
||||
labelGPUMemory.Text = $"{trackGPUMemory.Value} MHz";
|
||||
|
||||
labelGPUBoost.Text = $"{trackGPUBoost.Value}W";
|
||||
labelGPUTemp.Text = $"{trackGPUTemp.Value}°C";
|
||||
|
||||
if (trackGPUClockLimit.Value >= NvidiaGpuControl.MaxClockLimit)
|
||||
labelGPUClockLimit.Text = "Default";
|
||||
else
|
||||
labelGPUClockLimit.Text = $"{trackGPUClockLimit.Value} MHz";
|
||||
}
|
||||
|
||||
private void trackGPUClockLimit_Scroll(object? sender, EventArgs e)
|
||||
{
|
||||
|
||||
int maxClock = (int)Math.Round((float)trackGPUClockLimit.Value / 50) * 50;
|
||||
|
||||
trackGPUClockLimit.Value = maxClock;
|
||||
AppConfig.SetMode("gpu_clock_limit", maxClock);
|
||||
VisualiseGPUSettings();
|
||||
}
|
||||
|
||||
private void trackGPU_Scroll(object? sender, EventArgs e)
|
||||
@@ -495,6 +528,7 @@ namespace GHelper
|
||||
AppConfig.SetMode("gpu_core", trackGPUCore.Value);
|
||||
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
|
||||
|
||||
|
||||
VisualiseGPUSettings();
|
||||
|
||||
}
|
||||
@@ -512,7 +546,7 @@ namespace GHelper
|
||||
if (percentage == 0) return "OFF";
|
||||
|
||||
int Max = MaxRPM;
|
||||
if (device == AsusFan.XGM ) Max = 72;
|
||||
if (device == AsusFan.XGM) Max = 72;
|
||||
|
||||
return (200 * Math.Round((float)(MinRPM * 100 + (Max - MinRPM) * percentage) / 200)).ToString() + unit;
|
||||
}
|
||||
@@ -594,11 +628,26 @@ namespace GHelper
|
||||
}
|
||||
|
||||
|
||||
public void InitBoost()
|
||||
public void InitPowerPlan()
|
||||
{
|
||||
int boost = PowerNative.GetCPUBoost();
|
||||
if (boost >= 0)
|
||||
comboBoost.SelectedIndex = Math.Min(boost, comboBoost.Items.Count - 1);
|
||||
|
||||
string powerMode = PowerNative.GetPowerMode();
|
||||
comboPowerMode.SelectedValue = powerMode;
|
||||
|
||||
}
|
||||
|
||||
private void ComboPowerMode_Changed(object? sender, EventArgs e)
|
||||
{
|
||||
string powerMode = (string)comboPowerMode.SelectedValue;
|
||||
PowerNative.SetPowerMode(powerMode);
|
||||
|
||||
if (PowerNative.GetDefaultPowerMode(Modes.GetCurrentBase()) != powerMode)
|
||||
AppConfig.SetMode("powermode", powerMode);
|
||||
else
|
||||
AppConfig.RemoveMode("powermode");
|
||||
}
|
||||
|
||||
private void ComboBoost_Changed(object? sender, EventArgs e)
|
||||
@@ -871,18 +920,24 @@ namespace GHelper
|
||||
|
||||
modeControl.ResetPerformanceMode();
|
||||
|
||||
InitPowerPlan();
|
||||
|
||||
if (Program.acpi.IsXGConnected()) AsusUSB.ResetXGM();
|
||||
|
||||
|
||||
if (gpuVisible)
|
||||
{
|
||||
trackGPUClockLimit.Value = NvidiaGpuControl.MaxClockLimit;
|
||||
trackGPUCore.Value = 0;
|
||||
trackGPUMemory.Value = 0;
|
||||
trackGPUBoost.Value = AsusACPI.MaxGPUBoost;
|
||||
trackGPUTemp.Value = AsusACPI.MaxGPUTemp;
|
||||
|
||||
AppConfig.SetMode("gpu_clock_limit", trackGPUClockLimit.Value);
|
||||
|
||||
AppConfig.SetMode("gpu_boost", trackGPUBoost.Value);
|
||||
AppConfig.SetMode("gpu_temp", trackGPUTemp.Value);
|
||||
|
||||
AppConfig.SetMode("gpu_core", trackGPUCore.Value);
|
||||
AppConfig.SetMode("gpu_memory", trackGPUMemory.Value);
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<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="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>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<ProduceReferenceAssembly>False</ProduceReferenceAssembly>
|
||||
<AllowUnsafeBlocks>True</AllowUnsafeBlocks>
|
||||
<AssemblyVersion>0.107</AssemblyVersion>
|
||||
<AssemblyVersion>0.112</AssemblyVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'">
|
||||
|
||||
@@ -10,6 +10,8 @@ namespace GHelper.Gpu
|
||||
SettingsForm settings;
|
||||
ScreenControl screenControl = new ScreenControl();
|
||||
|
||||
public static int gpuMode;
|
||||
|
||||
public GPUModeControl(SettingsForm settingsForm)
|
||||
{
|
||||
settings = settingsForm;
|
||||
@@ -23,18 +25,16 @@ namespace GHelper.Gpu
|
||||
Logger.WriteLine("Eco flag : " + eco);
|
||||
Logger.WriteLine("Mux flag : " + mux);
|
||||
|
||||
int GpuMode;
|
||||
|
||||
if (mux == 0)
|
||||
{
|
||||
GpuMode = AsusACPI.GPUModeUltimate;
|
||||
gpuMode = AsusACPI.GPUModeUltimate;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (eco == 1)
|
||||
GpuMode = AsusACPI.GPUModeEco;
|
||||
gpuMode = AsusACPI.GPUModeEco;
|
||||
else
|
||||
GpuMode = AsusACPI.GPUModeStandard;
|
||||
gpuMode = AsusACPI.GPUModeStandard;
|
||||
|
||||
// Ultimate mode not supported
|
||||
if (mux != 1) settings.HideUltimateMode();
|
||||
@@ -42,10 +42,13 @@ namespace GHelper.Gpu
|
||||
if (eco < 0 && mux < 0) settings.HideGPUModes();
|
||||
}
|
||||
|
||||
AppConfig.Set("gpu_mode", GpuMode);
|
||||
AppConfig.Set("gpu_mode", gpuMode);
|
||||
|
||||
InitXGM();
|
||||
settings.VisualiseGPUMode(GpuMode);
|
||||
settings.VisualiseGPUMode(gpuMode);
|
||||
|
||||
AsusUSB.ApplyGPUColor();
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -131,6 +134,7 @@ namespace GHelper.Gpu
|
||||
|
||||
if (eco == 1)
|
||||
{
|
||||
/*
|
||||
if (NvidiaSmi.GetDisplayActiveStatus())
|
||||
{
|
||||
DialogResult dialogResult = MessageBox.Show(Properties.Strings.EnableOptimusText, Properties.Strings.EnableOptimusTitle, MessageBoxButtons.YesNo);
|
||||
@@ -140,6 +144,7 @@ namespace GHelper.Gpu
|
||||
return;
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
HardwareControl.KillGPUApps();
|
||||
}
|
||||
@@ -187,7 +192,7 @@ namespace GHelper.Gpu
|
||||
{
|
||||
|
||||
bool GpuAuto = AppConfig.Is("gpu_auto");
|
||||
bool ForceGPU = AppConfig.ContainsModel("503") || AppConfig.Is("gpu_fix");
|
||||
bool ForceGPU = AppConfig.ContainsModel("503");
|
||||
|
||||
int GpuMode = AppConfig.Get("gpu_mode");
|
||||
|
||||
@@ -321,7 +326,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");
|
||||
|
||||
@@ -18,6 +18,9 @@ public class NvidiaGpuControl : IGpuControl
|
||||
public const int MinCoreOffset = -250;
|
||||
public const int MinMemoryOffset = -250;
|
||||
|
||||
public const int MinClockLimit = 1000;
|
||||
public const int MaxClockLimit = 3000;
|
||||
|
||||
private static PhysicalGPU? _internalGpu;
|
||||
|
||||
public NvidiaGpuControl()
|
||||
@@ -72,11 +75,11 @@ public class NvidiaGpuControl : IGpuControl
|
||||
Logger.WriteLine(ex.Message);
|
||||
}
|
||||
|
||||
//NVIDIA.RestartDisplayDriver();
|
||||
//GeneralApi.RestartDisplayDriver();
|
||||
}
|
||||
|
||||
|
||||
public int GetClocks(out int core, out int memory)
|
||||
public bool GetClocks(out int core, out int memory)
|
||||
{
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
|
||||
@@ -95,27 +98,24 @@ public class NvidiaGpuControl : IGpuControl
|
||||
Logger.WriteLine("GPU VOLT:" + delta.IsEditable + " - " + delta.ValueDeltaInMicroVolt.DeltaValue);
|
||||
}
|
||||
|
||||
return 0;
|
||||
return true;
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("GET GPU CLOCKS:" + ex.Message);
|
||||
core = memory = 0;
|
||||
return -1;
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public bool RestartGPU()
|
||||
private bool RunPowershellCommand(string script)
|
||||
{
|
||||
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";
|
||||
Logger.WriteLine(script);
|
||||
ProcessHelper.RunCMD("powershell", script);
|
||||
//Thread.Sleep(2000);
|
||||
return true;
|
||||
}
|
||||
catch (Exception ex)
|
||||
@@ -123,27 +123,71 @@ public class NvidiaGpuControl : IGpuControl
|
||||
Logger.WriteLine(ex.ToString());
|
||||
return false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int SetClocksFromConfig()
|
||||
public int GetMaxGPUCLock()
|
||||
{
|
||||
int core = AppConfig.Get("gpu_core", 0);
|
||||
int memory = AppConfig.Get("gpu_memory", 0);
|
||||
int status = SetClocks(core, memory);
|
||||
return status;
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
try
|
||||
{
|
||||
PrivateClockBoostLockV2 data = GPUApi.GetClockBoostLock(internalGpu.Handle);
|
||||
int limit = (int)data.ClockBoostLocks[0].VoltageInMicroV / 1000;
|
||||
Logger.WriteLine("GET CLOCK LIMIT: " + limit);
|
||||
return limit;
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine("GET CLOCK LIMIT: " + ex.Message);
|
||||
return -1;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
public int SetClocks(int core, int memory, int voltage = 0)
|
||||
|
||||
public int SetMaxGPUClock(int clock)
|
||||
{
|
||||
|
||||
if (clock < MinClockLimit || clock >= MaxClockLimit) clock = 0;
|
||||
|
||||
int _clockLimit = GetMaxGPUCLock();
|
||||
|
||||
if (_clockLimit != clock)
|
||||
{
|
||||
if (clock > 0) RunPowershellCommand($"nvidia-smi -lgc 0,{clock}");
|
||||
else RunPowershellCommand($"nvidia-smi -rgc");
|
||||
return 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public bool RestartGPU()
|
||||
{
|
||||
return RunPowershellCommand(@"$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");
|
||||
}
|
||||
|
||||
|
||||
public int SetClocks(int core, int memory)
|
||||
{
|
||||
|
||||
if (core < MinCoreOffset || core > MaxCoreOffset) return 0;
|
||||
if (memory < MinMemoryOffset || memory > MaxMemoryOffset) return 0;
|
||||
|
||||
if (GetClocks(out int currentCore, out int currentMemory))
|
||||
{
|
||||
if (Math.Abs(core - currentCore) < 5 && Math.Abs(memory - currentMemory) < 5) return 0;
|
||||
}
|
||||
|
||||
PhysicalGPU internalGpu = _internalGpu!;
|
||||
|
||||
var coreClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Graphics, new PerformanceStates20ParameterDelta(core * 1000));
|
||||
var memoryClock = new PerformanceStates20ClockEntryV1(PublicClockDomain.Memory, new PerformanceStates20ParameterDelta(memory * 1000));
|
||||
var voltageEntry = new PerformanceStates20BaseVoltageEntryV1(PerformanceVoltageDomain.Core, new PerformanceStates20ParameterDelta(voltage));
|
||||
//var voltageEntry = new PerformanceStates20BaseVoltageEntryV1(PerformanceVoltageDomain.Core, new PerformanceStates20ParameterDelta(voltage));
|
||||
|
||||
PerformanceStates20ClockEntryV1[] clocks = { coreClock, memoryClock };
|
||||
PerformanceStates20BaseVoltageEntryV1[] voltages = { };
|
||||
@@ -163,8 +207,6 @@ public class NvidiaGpuControl : IGpuControl
|
||||
return -1;
|
||||
}
|
||||
|
||||
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
||||
@@ -132,7 +132,12 @@ namespace GHelper.Helpers
|
||||
cmd.StartInfo.FileName = name;
|
||||
cmd.StartInfo.Arguments = args;
|
||||
cmd.Start();
|
||||
Logger.WriteLine(cmd.StandardOutput.ReadToEnd());
|
||||
|
||||
string result = cmd.StandardOutput.ReadToEnd().Replace(Environment.NewLine, " ").Trim(' ');
|
||||
|
||||
Logger.WriteLine(args);
|
||||
Logger.WriteLine(result);
|
||||
|
||||
cmd.WaitForExit();
|
||||
}
|
||||
|
||||
|
||||
@@ -401,7 +401,7 @@ namespace GHelper.Input
|
||||
}
|
||||
}
|
||||
|
||||
static void ToggleFnLock()
|
||||
public static void ToggleFnLock()
|
||||
{
|
||||
int fnLock = AppConfig.Is("fn_lock") ? 0 : 1;
|
||||
AppConfig.Set("fn_lock", fnLock);
|
||||
@@ -411,6 +411,8 @@ namespace GHelper.Input
|
||||
else
|
||||
Program.settingsForm.BeginInvoke(Program.inputDispatcher.RegisterKeys);
|
||||
|
||||
Program.settingsForm.BeginInvoke(Program.settingsForm.VisualiseFnLock);
|
||||
|
||||
Program.toast.RunToast("Fn-Lock " + (fnLock == 1 ? "On" : "Off"), ToastIcon.FnLock);
|
||||
}
|
||||
|
||||
|
||||
@@ -46,7 +46,12 @@ namespace GHelper.Mode
|
||||
public void ResetPerformanceMode()
|
||||
{
|
||||
ResetRyzen();
|
||||
|
||||
Program.acpi.DeviceSet(AsusACPI.PerformanceMode, Modes.GetCurrentBase(), "Mode");
|
||||
|
||||
// Default power mode
|
||||
AppConfig.RemoveMode("powermode");
|
||||
PowerNative.SetPowerMode(Modes.GetCurrentBase());
|
||||
}
|
||||
|
||||
public void SetPerformanceMode(int mode = -1, bool notify = false)
|
||||
@@ -76,18 +81,21 @@ namespace GHelper.Mode
|
||||
AutoFans();
|
||||
AutoPower(1000);
|
||||
|
||||
if (AppConfig.Get("auto_apply_power_plan") != 0)
|
||||
{
|
||||
if (AppConfig.GetModeString("scheme") is not null)
|
||||
PowerNative.SetPowerScheme(AppConfig.GetModeString("scheme"));
|
||||
else
|
||||
PowerNative.SetPowerScheme(Modes.GetBase(mode));
|
||||
}
|
||||
// Power plan from config or defaulting to balanced
|
||||
if (AppConfig.GetModeString("scheme") is not null)
|
||||
PowerNative.SetPowerPlan(AppConfig.GetModeString("scheme"));
|
||||
else
|
||||
PowerNative.SetBalancedPowerPlan();
|
||||
|
||||
// Windows power mode
|
||||
if (AppConfig.GetModeString("powermode") is not null)
|
||||
PowerNative.SetPowerMode(AppConfig.GetModeString("powermode"));
|
||||
else
|
||||
PowerNative.SetPowerMode(Modes.GetBase(mode));
|
||||
|
||||
// CPU Boost setting override
|
||||
if (AppConfig.GetMode("auto_boost") != -1)
|
||||
{
|
||||
PowerNative.SetCPUBoost(AppConfig.GetMode("auto_boost"));
|
||||
}
|
||||
|
||||
//BatteryControl.SetBatteryChargeLimit();
|
||||
|
||||
@@ -280,35 +288,35 @@ namespace GHelper.Mode
|
||||
|
||||
public void SetGPUClocks(bool launchAsAdmin = true)
|
||||
{
|
||||
|
||||
int gpu_core = AppConfig.GetMode("gpu_core");
|
||||
int gpu_memory = AppConfig.GetMode("gpu_memory");
|
||||
|
||||
if (gpu_core == -1 && gpu_memory == -1) return;
|
||||
|
||||
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) return;
|
||||
if (HardwareControl.GpuControl is null) return;
|
||||
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||
|
||||
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||
try
|
||||
Task.Run(() =>
|
||||
{
|
||||
int getStatus = nvControl.GetClocks(out int current_core, out int current_memory);
|
||||
if (getStatus != -1)
|
||||
|
||||
int core = AppConfig.GetMode("gpu_core");
|
||||
int memory = AppConfig.GetMode("gpu_memory");
|
||||
int clock_limit = AppConfig.GetMode("gpu_clock_limit");
|
||||
|
||||
if (core == -1 && memory == -1) return;
|
||||
|
||||
//if ((gpu_core > -5 && gpu_core < 5) && (gpu_memory > -5 && gpu_memory < 5)) launchAsAdmin = false;
|
||||
|
||||
if (Program.acpi.DeviceGet(AsusACPI.GPUEco) == 1) return;
|
||||
if (HardwareControl.GpuControl is null) return;
|
||||
if (!HardwareControl.GpuControl!.IsNvidia) return;
|
||||
|
||||
using NvidiaGpuControl nvControl = (NvidiaGpuControl)HardwareControl.GpuControl;
|
||||
try
|
||||
{
|
||||
if (Math.Abs(gpu_core - current_core) < 5 && Math.Abs(gpu_memory - current_memory) < 5) return;
|
||||
int statusLimit = nvControl.SetMaxGPUClock(clock_limit);
|
||||
int statusClocks = nvControl.SetClocks(core, memory);
|
||||
if ((statusLimit != 0 || statusClocks != 0) && launchAsAdmin) ProcessHelper.RunAsAdmin("gpu");
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
|
||||
int setStatus = nvControl.SetClocks(gpu_core, gpu_memory);
|
||||
if (launchAsAdmin && setStatus == -1) ProcessHelper.RunAsAdmin("gpu");
|
||||
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
Logger.WriteLine(ex.ToString());
|
||||
}
|
||||
settings.GPUInit();
|
||||
});
|
||||
}
|
||||
|
||||
public void SetGPUPower()
|
||||
|
||||
@@ -51,7 +51,8 @@
|
||||
"gpu_memory",
|
||||
"auto_boost",
|
||||
"auto_apply",
|
||||
"auto_apply_power"
|
||||
"auto_apply_power",
|
||||
"powermode"
|
||||
};
|
||||
|
||||
foreach (string clean in cleanup)
|
||||
|
||||
@@ -72,7 +72,24 @@ namespace GHelper.Mode
|
||||
[DllImportAttribute("powrprof.dll", EntryPoint = "PowerSetActiveOverlayScheme")]
|
||||
public static extern uint PowerSetActiveOverlayScheme(Guid OverlaySchemeGuid);
|
||||
|
||||
const string POWER_SILENT = "961cc777-2547-4f9d-8174-7d86181b8a7a";
|
||||
const string POWER_BALANCED = "00000000-0000-0000-0000-000000000000";
|
||||
const string POWER_TURBO = "ded574b5-45a0-4f42-8737-46345c09c238";
|
||||
const string POWER_BETTERPERFORMANCE = "ded574b5-45a0-4f42-8737-46345c09c238";
|
||||
|
||||
static List<string> overlays = new() {
|
||||
POWER_BALANCED,
|
||||
POWER_TURBO,
|
||||
POWER_SILENT,
|
||||
POWER_BETTERPERFORMANCE
|
||||
};
|
||||
|
||||
public static Dictionary<string, string> powerModes = new Dictionary<string, string>
|
||||
{
|
||||
{ POWER_SILENT, "Best Power Efficiency" },
|
||||
{ POWER_BALANCED, "Balanced" },
|
||||
{ POWER_TURBO, "Best Performance" },
|
||||
};
|
||||
static Guid GetActiveScheme()
|
||||
{
|
||||
IntPtr pActiveSchemeGuid;
|
||||
@@ -122,51 +139,67 @@ namespace GHelper.Mode
|
||||
Logger.WriteLine("Boost " + boost);
|
||||
}
|
||||
|
||||
public static void SetPowerScheme(string scheme)
|
||||
public static string GetPowerMode()
|
||||
{
|
||||
List<string> overlays = new() {
|
||||
"00000000-0000-0000-0000-000000000000",
|
||||
"ded574b5-45a0-4f42-8737-46345c09c238",
|
||||
"961cc777-2547-4f9d-8174-7d86181b8a7a",
|
||||
"3af9B8d9-7c97-431d-ad78-34a8bfea439f"
|
||||
};
|
||||
PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
return activeScheme.ToString();
|
||||
}
|
||||
|
||||
public static void SetPowerMode(string scheme)
|
||||
{
|
||||
|
||||
if (!overlays.Contains(scheme)) return;
|
||||
|
||||
Guid guidScheme = new Guid(scheme);
|
||||
|
||||
if (overlays.Contains(scheme))
|
||||
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
if (status != 0 || activeScheme != guidScheme)
|
||||
{
|
||||
uint status = PowerGetEffectiveOverlayScheme(out Guid activeScheme);
|
||||
if (status != 0 || activeScheme != guidScheme)
|
||||
{
|
||||
PowerSetActiveOverlayScheme(guidScheme);
|
||||
Logger.WriteLine("Power mode: " + scheme);
|
||||
}
|
||||
status = PowerSetActiveOverlayScheme(guidScheme);
|
||||
Logger.WriteLine("Power Mode " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
}
|
||||
else
|
||||
{
|
||||
PowerSetActiveScheme(IntPtr.Zero, guidScheme);
|
||||
Logger.WriteLine("Power plan: " + scheme);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
public static void SetPowerScheme(int mode)
|
||||
public static void SetBalancedPowerPlan()
|
||||
{
|
||||
Guid activeSchemeGuid = GetActiveScheme();
|
||||
string balanced = "381b4222-f694-41f0-9685-ff5bb260df2e";
|
||||
|
||||
if (activeSchemeGuid.ToString() != balanced && !AppConfig.Is("skip_power_plan"))
|
||||
{
|
||||
SetPowerPlan(balanced);
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetPowerPlan(string scheme)
|
||||
{
|
||||
// Skipping power modes
|
||||
if (overlays.Contains(scheme)) return;
|
||||
|
||||
Guid guidScheme = new Guid(scheme);
|
||||
uint status = PowerSetActiveScheme(IntPtr.Zero, guidScheme);
|
||||
Logger.WriteLine("Power Plan " + scheme + ":" + (status == 0 ? "OK" : status));
|
||||
}
|
||||
|
||||
public static string GetDefaultPowerMode(int mode)
|
||||
{
|
||||
switch (mode)
|
||||
{
|
||||
case 0: // balanced
|
||||
SetPowerScheme("00000000-0000-0000-0000-000000000000");
|
||||
break;
|
||||
case 1: // turbo
|
||||
SetPowerScheme("ded574b5-45a0-4f42-8737-46345c09c238");
|
||||
break;
|
||||
return POWER_TURBO;
|
||||
case 2: //silent
|
||||
SetPowerScheme("961cc777-2547-4f9d-8174-7d86181b8a7a");
|
||||
break;
|
||||
return POWER_SILENT;
|
||||
default: // balanced
|
||||
return POWER_BALANCED;
|
||||
}
|
||||
}
|
||||
|
||||
public static void SetPowerMode(int mode)
|
||||
{
|
||||
SetPowerMode(GetDefaultPowerMode(mode));
|
||||
}
|
||||
|
||||
public static int GetLidAction(bool ac)
|
||||
{
|
||||
Guid activeSchemeGuid = GetActiveScheme();
|
||||
@@ -223,5 +256,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));
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -128,6 +128,7 @@ namespace GHelper
|
||||
private static void SystemEvents_SessionEnding(object sender, SessionEndingEventArgs e)
|
||||
{
|
||||
gpuControl.StandardModeFix();
|
||||
BatteryControl.SetBatteryChargeLimit();
|
||||
}
|
||||
|
||||
private static void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
|
||||
@@ -193,15 +194,17 @@ namespace GHelper
|
||||
BatteryControl.SetBatteryChargeLimit();
|
||||
|
||||
settingsForm.AutoKeyboard();
|
||||
settingsForm.matrix.SetMatrix();
|
||||
settingsForm.matrix.SetMatrix(true);
|
||||
}
|
||||
|
||||
private static void SystemEvents_PowerModeChanged(object sender, PowerModeChangedEventArgs e)
|
||||
{
|
||||
Logger.WriteLine("Power Mode:" + e.Mode.ToString());
|
||||
|
||||
|
||||
if (e.Mode == PowerModes.Suspend) gpuControl.StandardModeFix();
|
||||
if (e.Mode == PowerModes.Suspend)
|
||||
{
|
||||
Logger.WriteLine("Power Mode:" + e.Mode.ToString());
|
||||
gpuControl.StandardModeFix();
|
||||
}
|
||||
|
||||
if (SystemInformation.PowerStatus.PowerLineStatus == isPlugged) return;
|
||||
SetAutoModes(true);
|
||||
|
||||
16
app/Properties/Resources.Designer.cs
generated
16
app/Properties/Resources.Designer.cs
generated
@@ -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 {
|
||||
|
||||
@@ -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>
|
||||
13
app/Properties/Strings.Designer.cs
generated
13
app/Properties/Strings.Designer.cs
generated
@@ -565,7 +565,7 @@ namespace GHelper.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Download Update.
|
||||
/// Looks up a localized string similar to Download.
|
||||
/// </summary>
|
||||
internal static string DownloadUpdate {
|
||||
get {
|
||||
@@ -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>
|
||||
@@ -1314,7 +1323,7 @@ namespace GHelper.Properties {
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed at your own risk..
|
||||
/// Looks up a localized string similar to Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk).
|
||||
/// </summary>
|
||||
internal static string RestartGPU {
|
||||
get {
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Entlädt</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Updates herunterladen</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Treiber und Software</value>
|
||||
@@ -374,6 +374,9 @@ Trotzdem fortfahren?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Maximale GPU Temperatur</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>Hoch</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@ Trotzdem fortfahren?</value>
|
||||
<value>Schließen</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Ein Prozess verhindert den Wechsel in den Eco-Modus. dGPU neu starten? Fortfahren auf eigene Gefahr.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>U/Min</value>
|
||||
|
||||
@@ -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>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Descargando</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Descargar actualización</value>
|
||||
<value>Descargar</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers y Software</value>
|
||||
@@ -374,6 +374,9 @@
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperatura objetivo</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutos hasta hibernación en suspensión con batería (0 - OFF)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Alto</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@
|
||||
<value>Quitar</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Algo está usando la dGPU e impide usar Modo Eco. ¿Reiniciar dGPU en administrador de dispositivos? * Proceda bajo su propio riesgo.</value>
|
||||
<value>Algo está usando la dGPU e impide el modo Eco. ¿Reiniciar dGPU en el administrador de dispositivos? (Proceda bajo su propio riesgo)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Taux décharge </value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Télécharger la mise à jour</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Pilotes et Logiciels</value>
|
||||
@@ -374,6 +374,9 @@ Voulez-vous continuer ?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Température cible</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>
|
||||
@@ -537,7 +540,7 @@ Voulez-vous continuer ?</value>
|
||||
<value>Quitter</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Un processus utilisant le dGPU empêche le passage en mode Éco. Redémarrer le dGPU ? * Procédez à vos risques.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value> RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Merülés</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Frissítés letöltése</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Illesztőprogramok és alkalmazások</value>
|
||||
@@ -374,6 +374,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Célhőmérséklet</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>
|
||||
@@ -537,7 +540,7 @@ Do you still want to continue?</value>
|
||||
<value>Bezárás</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Valami használja még a dGPU-t, ezzel megakadályozva az Eco móda lépést. Újraindítsuk a dGPU-t eszközkezelőben? * Kérjük, saját felelősségére folytassa.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>Fordulatszám</value>
|
||||
|
||||
@@ -163,28 +163,28 @@
|
||||
<value>Servizi Asus in Esecuzione</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Battery State</value>
|
||||
<value>Stato Batteria</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Respiro</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Clockwise</value>
|
||||
<value>Senso Orario</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Ciclo Colori</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Comet</value>
|
||||
<value>Cometa</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Counterclockwise</value>
|
||||
<value>Senso Antiorario</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>Veloce</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lighting Mode</value>
|
||||
<value>Modalità Illuminazione</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>Normale</value>
|
||||
@@ -193,10 +193,10 @@
|
||||
<value>Arcobaleno</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Random</value>
|
||||
<value>Casuale</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>React</value>
|
||||
<value>Reazione</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>Lenta</value>
|
||||
@@ -208,7 +208,7 @@
|
||||
<value>Strobo</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>All</value>
|
||||
<value>Tutte</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
@@ -217,7 +217,7 @@
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scrollwheel</value>
|
||||
<value>Rotellina</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
@@ -241,7 +241,7 @@
|
||||
<value>Bilanciato</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Charge</value>
|
||||
<value>Carica</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>Limite Ricarica Batteria</value>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Scaricamento</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Scarica aggiornamento</value>
|
||||
<value>Scarica</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Driver e Software</value>
|
||||
@@ -306,7 +306,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Modalità schermo NVIDIA non impostata su Optimus</value>
|
||||
</data>
|
||||
<data name="EnergySettings" xml:space="preserve">
|
||||
<value>Energy Settings</value>
|
||||
<value>Risparmio Energia</value>
|
||||
</data>
|
||||
<data name="Extra" xml:space="preserve">
|
||||
<value>Extra</value>
|
||||
@@ -374,8 +374,11 @@ Sei sicuro di voler continuare?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperatura Target</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Iberna dopo X minuti se alimentato a batteria (0 - ACCESO)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
<value>Elevato</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>Associazione Tasti</value>
|
||||
@@ -402,13 +405,13 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Barra Luminosa</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
<value>Illuminazione</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
<value>Basso</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>Visualizzatore Audio</value>
|
||||
@@ -444,31 +447,31 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>60Hz refresh rate per risparmiare batteria</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>Minute</value>
|
||||
<value>Minuto</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>Minutes</value>
|
||||
<value>Minuti</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Auto Power Off After</value>
|
||||
<value>Auto-disattivazione dopo</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
<value>Risposta Tasto Mouse</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Low Battery Warning at</value>
|
||||
<value>Avviso Batteria Mouse in Esaurimento</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
<value>Prestazioni</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synchronize with mouse</value>
|
||||
<value>Sincronizza con Mouse</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>Multizona</value>
|
||||
@@ -477,7 +480,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Silenzia microfono</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Never</value>
|
||||
<value>Mai</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>Nuovi aggiornamenti</value>
|
||||
@@ -486,7 +489,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Sistema aggiornato</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
<value>Non Connesso</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>Apri G-Helper</value>
|
||||
@@ -510,7 +513,7 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>Profilo</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Peripherals</value>
|
||||
<value>Periferiche</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>Immagine / Gif</value>
|
||||
@@ -531,13 +534,13 @@ Sei sicuro di voler continuare?</value>
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profile</value>
|
||||
<value>Profilo</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>Esci</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Qualcosa sta utilizzando la dGPU e impedendo la modalità Eco. Riavviare la dGPU da Gestione dispositivi? * Procedere a proprio rischio e pericolo.</value>
|
||||
<value>Qualcosa sta utilizzando la dGPU e impedisce il passaggio alla modalità Eco. Vuoi che G-Helper provi a riavviare la dGPU in gestione dispositivi? (Procedi a tuo rischio)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -163,64 +163,64 @@
|
||||
<value>실행중인 Asus 서비스</value>
|
||||
</data>
|
||||
<data name="AuraBatteryState" xml:space="preserve">
|
||||
<value>Battery State</value>
|
||||
<value>배터리 상태</value>
|
||||
</data>
|
||||
<data name="AuraBreathe" xml:space="preserve">
|
||||
<value>Breathe</value>
|
||||
<value>숨쉬기</value>
|
||||
</data>
|
||||
<data name="AuraClockwise" xml:space="preserve">
|
||||
<value>Clockwise</value>
|
||||
<value>시계 방향</value>
|
||||
</data>
|
||||
<data name="AuraColorCycle" xml:space="preserve">
|
||||
<value>Color Cycle</value>
|
||||
<value>색 순환</value>
|
||||
</data>
|
||||
<data name="AuraComet" xml:space="preserve">
|
||||
<value>Comet</value>
|
||||
<value>혜성</value>
|
||||
</data>
|
||||
<data name="AuraCounterClockwise" xml:space="preserve">
|
||||
<value>Counterclockwise</value>
|
||||
<value>반시계 방향</value>
|
||||
</data>
|
||||
<data name="AuraFast" xml:space="preserve">
|
||||
<value>빠르게</value>
|
||||
</data>
|
||||
<data name="AuraLightingMode" xml:space="preserve">
|
||||
<value>Lighting Mode</value>
|
||||
<value>조명 모드</value>
|
||||
</data>
|
||||
<data name="AuraNormal" xml:space="preserve">
|
||||
<value>보통</value>
|
||||
</data>
|
||||
<data name="AuraRainbow" xml:space="preserve">
|
||||
<value>Rainbow</value>
|
||||
<value>무지개</value>
|
||||
</data>
|
||||
<data name="AuraRandomColor" xml:space="preserve">
|
||||
<value>Random</value>
|
||||
<value>랜덤</value>
|
||||
</data>
|
||||
<data name="AuraReact" xml:space="preserve">
|
||||
<value>React</value>
|
||||
<value>반응</value>
|
||||
</data>
|
||||
<data name="AuraSlow" xml:space="preserve">
|
||||
<value>느리게</value>
|
||||
</data>
|
||||
<data name="AuraStatic" xml:space="preserve">
|
||||
<value>Static</value>
|
||||
<value>정적</value>
|
||||
</data>
|
||||
<data name="AuraStrobe" xml:space="preserve">
|
||||
<value>Strobe</value>
|
||||
<value>섬광</value>
|
||||
</data>
|
||||
<data name="AuraZoneAll" xml:space="preserve">
|
||||
<value>All</value>
|
||||
<value>전체</value>
|
||||
</data>
|
||||
<data name="AuraZoneDock" xml:space="preserve">
|
||||
<value>Dock</value>
|
||||
<value>독</value>
|
||||
</data>
|
||||
<data name="AuraZoneLogo" xml:space="preserve">
|
||||
<value>Logo</value>
|
||||
<value>로고</value>
|
||||
</data>
|
||||
<data name="AuraZoneScroll" xml:space="preserve">
|
||||
<value>Scrollwheel</value>
|
||||
<value>스크롤 휠</value>
|
||||
</data>
|
||||
<data name="AuraZoneUnderglow" xml:space="preserve">
|
||||
<value>Underglow</value>
|
||||
<value>하단 조명</value>
|
||||
</data>
|
||||
<data name="AutoApply" xml:space="preserve">
|
||||
<value>자동 적용</value>
|
||||
@@ -232,28 +232,28 @@
|
||||
<value>배터리 사용 중에만 60Hz 설정</value>
|
||||
</data>
|
||||
<data name="Awake" xml:space="preserve">
|
||||
<value>Awake</value>
|
||||
<value>절전 모드 해제</value>
|
||||
</data>
|
||||
<data name="BacklightTimeout" xml:space="preserve">
|
||||
<value>전원 연결 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
|
||||
<value>전원 / 배터리 사용 중 자동 꺼짐 시간 (0 - 항상 켜짐)</value>
|
||||
</data>
|
||||
<data name="Balanced" xml:space="preserve">
|
||||
<value>균형</value>
|
||||
</data>
|
||||
<data name="BatteryCharge" xml:space="preserve">
|
||||
<value>Charge</value>
|
||||
<value>잔량</value>
|
||||
</data>
|
||||
<data name="BatteryChargeLimit" xml:space="preserve">
|
||||
<value>배터리 충전 제한</value>
|
||||
</data>
|
||||
<data name="BatteryHealth" xml:space="preserve">
|
||||
<value>Battery Health</value>
|
||||
<value>배터리 수명</value>
|
||||
</data>
|
||||
<data name="BiosAndDriverUpdates" xml:space="preserve">
|
||||
<value>바이오스/드라이버 업데이트</value>
|
||||
</data>
|
||||
<data name="Boot" xml:space="preserve">
|
||||
<value>Boot</value>
|
||||
<value>부팅</value>
|
||||
</data>
|
||||
<data name="Brightness" xml:space="preserve">
|
||||
<value>밝기</value>
|
||||
@@ -265,7 +265,7 @@
|
||||
<value>밝기 증가</value>
|
||||
</data>
|
||||
<data name="Charging" xml:space="preserve">
|
||||
<value>Charging</value>
|
||||
<value>충전 중</value>
|
||||
</data>
|
||||
<data name="Color" xml:space="preserve">
|
||||
<value>색상</value>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>방전 중</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>업데이트 다운로드</value>
|
||||
<value>다운로드</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>드라이버와 소프트웨어</value>
|
||||
@@ -336,7 +336,7 @@
|
||||
<value>팬 속도/전력</value>
|
||||
</data>
|
||||
<data name="FanSpeed" xml:space="preserve">
|
||||
<value>Fan</value>
|
||||
<value>팬</value>
|
||||
</data>
|
||||
<data name="FansPower" xml:space="preserve">
|
||||
<value>팬 + 전력</value>
|
||||
@@ -374,8 +374,11 @@
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>목표 온도</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>최대 절전 모드 전환 시간 (0 - 꺼짐)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>High</value>
|
||||
<value>높게</value>
|
||||
</data>
|
||||
<data name="KeyBindings" xml:space="preserve">
|
||||
<value>키 설정</value>
|
||||
@@ -402,13 +405,13 @@
|
||||
<value>라이트바</value>
|
||||
</data>
|
||||
<data name="Lighting" xml:space="preserve">
|
||||
<value>Lighting</value>
|
||||
<value>조명</value>
|
||||
</data>
|
||||
<data name="Logo" xml:space="preserve">
|
||||
<value>로고</value>
|
||||
</data>
|
||||
<data name="Low" xml:space="preserve">
|
||||
<value>Low</value>
|
||||
<value>낮게</value>
|
||||
</data>
|
||||
<data name="MatrixAudio" xml:space="preserve">
|
||||
<value>오디오 비주얼라이저</value>
|
||||
@@ -444,31 +447,31 @@
|
||||
<value>60Hz 주사율 설정</value>
|
||||
</data>
|
||||
<data name="Minute" xml:space="preserve">
|
||||
<value>Minute</value>
|
||||
<value>분 후</value>
|
||||
</data>
|
||||
<data name="Minutes" xml:space="preserve">
|
||||
<value>Minutes</value>
|
||||
<value>분 후</value>
|
||||
</data>
|
||||
<data name="MouseAngleSnapping" xml:space="preserve">
|
||||
<value>Angle Snapping</value>
|
||||
<value>직선 보정</value>
|
||||
</data>
|
||||
<data name="MouseAutoPowerOff" xml:space="preserve">
|
||||
<value>Auto Power Off After</value>
|
||||
<value>자동 전원 꺼짐</value>
|
||||
</data>
|
||||
<data name="MouseButtonResponse" xml:space="preserve">
|
||||
<value>Button Response</value>
|
||||
<value>버튼 응답</value>
|
||||
</data>
|
||||
<data name="MouseLiftOffDistance" xml:space="preserve">
|
||||
<value>Lift Off Distance</value>
|
||||
<value>들어올림 거리</value>
|
||||
</data>
|
||||
<data name="MouseLowBatteryWarning" xml:space="preserve">
|
||||
<value>Low Battery Warning at</value>
|
||||
<value>배터리 부족 경고 알림</value>
|
||||
</data>
|
||||
<data name="MousePerformance" xml:space="preserve">
|
||||
<value>Performance</value>
|
||||
<value>성능</value>
|
||||
</data>
|
||||
<data name="MouseSynchronize" xml:space="preserve">
|
||||
<value>Synchronize with mouse</value>
|
||||
<value>마우스와 동기화</value>
|
||||
</data>
|
||||
<data name="Multizone" xml:space="preserve">
|
||||
<value>멀티존</value>
|
||||
@@ -477,7 +480,7 @@
|
||||
<value>마이크 음소거</value>
|
||||
</data>
|
||||
<data name="Never" xml:space="preserve">
|
||||
<value>Never</value>
|
||||
<value>사용 안함</value>
|
||||
</data>
|
||||
<data name="NewUpdates" xml:space="preserve">
|
||||
<value>새 업데이트</value>
|
||||
@@ -486,7 +489,7 @@
|
||||
<value>새 업데이트 없음</value>
|
||||
</data>
|
||||
<data name="NotConnected" xml:space="preserve">
|
||||
<value>Not Connected</value>
|
||||
<value>연결되지 않음</value>
|
||||
</data>
|
||||
<data name="OpenGHelper" xml:space="preserve">
|
||||
<value>G-Helper 열기</value>
|
||||
@@ -510,7 +513,7 @@
|
||||
<value>성능 모드</value>
|
||||
</data>
|
||||
<data name="Peripherals" xml:space="preserve">
|
||||
<value>Peripherals</value>
|
||||
<value>주변 장치</value>
|
||||
</data>
|
||||
<data name="PictureGif" xml:space="preserve">
|
||||
<value>사진 / Gif</value>
|
||||
@@ -519,7 +522,7 @@
|
||||
<value>재생 / 정지</value>
|
||||
</data>
|
||||
<data name="PollingRate" xml:space="preserve">
|
||||
<value>Polling Rate</value>
|
||||
<value>폴링레이트</value>
|
||||
</data>
|
||||
<data name="PowerLimits" xml:space="preserve">
|
||||
<value>전력 제한</value>
|
||||
@@ -531,7 +534,7 @@
|
||||
<value>PrintScreen</value>
|
||||
</data>
|
||||
<data name="Profile" xml:space="preserve">
|
||||
<value>Profile</value>
|
||||
<value>프로필</value>
|
||||
</data>
|
||||
<data name="Quit" xml:space="preserve">
|
||||
<value>종료</value>
|
||||
@@ -552,13 +555,13 @@
|
||||
<value>Screenpad 밝기 증가</value>
|
||||
</data>
|
||||
<data name="Shutdown" xml:space="preserve">
|
||||
<value>꺼짐</value>
|
||||
<value>시스템 종료</value>
|
||||
</data>
|
||||
<data name="Silent" xml:space="preserve">
|
||||
<value>조용</value>
|
||||
</data>
|
||||
<data name="Sleep" xml:space="preserve">
|
||||
<value>Sleep</value>
|
||||
<value>절전 모드</value>
|
||||
</data>
|
||||
<data name="StandardGPUTooltip" xml:space="preserve">
|
||||
<value>Standard 모드에서 dGPU 켜기</value>
|
||||
@@ -585,19 +588,19 @@
|
||||
<value>서비스 중지 중</value>
|
||||
</data>
|
||||
<data name="ToggleAura" xml:space="preserve">
|
||||
<value>Aura 토글 키</value>
|
||||
<value>Aura 전환 키</value>
|
||||
</data>
|
||||
<data name="ToggleClamshellMode" xml:space="preserve">
|
||||
<value>Auto Toggle Clamshell Mode</value>
|
||||
<value>클램쉘 모드 자동 전환</value>
|
||||
</data>
|
||||
<data name="ToggleFnLock" xml:space="preserve">
|
||||
<value>Fn-Lock 토글 키</value>
|
||||
<value>Fn-Lock 전환 키</value>
|
||||
</data>
|
||||
<data name="ToggleMiniled" xml:space="preserve">
|
||||
<value>Miniled 토글 키 (지원하는 기기만)</value>
|
||||
<value>Miniled 전환 키 (지원하는 기기만)</value>
|
||||
</data>
|
||||
<data name="ToggleScreen" xml:space="preserve">
|
||||
<value>화면 토글 키</value>
|
||||
<value>화면 전환 키</value>
|
||||
</data>
|
||||
<data name="Turbo" xml:space="preserve">
|
||||
<value>터보</value>
|
||||
@@ -615,7 +618,7 @@
|
||||
<value>Ultimate</value>
|
||||
</data>
|
||||
<data name="UndervoltingRisky" xml:space="preserve">
|
||||
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 종료되거나 데이터 손상을 유발할 수 있습니다. 작은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
|
||||
<value>언더볼팅은 실험적이며 위험한 기능입니다. 적용 값이 너무 낮은 경우 시스템이 불안정해지고, 강제 종료되거나 데이터 손상을 유발할 수 있습니다. 낮은 값부터 적용하여 잘 작동하는지 확인해 보십시오.</value>
|
||||
</data>
|
||||
<data name="Updates" xml:space="preserve">
|
||||
<value>업데이트</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Iškrovimas</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Atsisiųsti naujinimą</value>
|
||||
<value>Atsisiųsti</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Tvarkyklės ir programinė įranga</value>
|
||||
@@ -374,6 +374,9 @@ Vis tiek norite tęsti?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperatūros tikslas</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Minutės iki miego su akumuliatoriumi (0 – IŠJUNGTA)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Aukštas</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@ Vis tiek norite tęsti?</value>
|
||||
<value>Išeiti</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Kažkas naudoja dGPU ir neleidžia nustatyti ekonomiško režimo. Iš naujo paleisti dGPU įrenginių tvarkytuvėje? * Tęskite savo rizika.</value>
|
||||
<value>Kažkas naudoja dGPU ir neleidžia įjungti ekonomiško režimo. Norite leisti G-Helper bandyti iš naujo paleisti dGPU įrenginių tvarkytuvėje? (Tęskite savo rizika)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -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>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Zużycie mocy</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Pobierz aktualizację</value>
|
||||
<value>Pobierz</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Sterowniki i oprogramowanie</value>
|
||||
@@ -374,6 +374,9 @@ Nadal chcesz kontynuować?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperatura docelowa</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>Czas przejścia w hibernację na baterii (0 - wcale)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>Wysoka</value>
|
||||
</data>
|
||||
@@ -456,7 +459,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>
|
||||
@@ -537,13 +540,13 @@ Nadal chcesz kontynuować?</value>
|
||||
<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>
|
||||
<value>Coś korzysta z dGPU, uniemożliwiając włączenie trybu Eco. Czy G-Helper ma zresetować dGPU w Menadżerze Urządzeń? (Korzystasz na własne ryzyko)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
</data>
|
||||
<data name="RunOnStartup" xml:space="preserve">
|
||||
<value>Uruchom przy starcie systemu</value>
|
||||
<value>Uruchom przy starcie</value>
|
||||
</data>
|
||||
<data name="ScreenPadDown" xml:space="preserve">
|
||||
<value>Zmniejsz jasność ScreenPad</value>
|
||||
@@ -588,7 +591,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>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Descarregando</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Baixar a atualização</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers and Software</value>
|
||||
@@ -374,6 +374,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Alvo de temperatura</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>
|
||||
@@ -537,7 +540,7 @@ Do you still want to continue?</value>
|
||||
<value>Sair</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Algum processo está usando o dGPU e impedindo o modo Econômico. Reinicialize o dGPU no gerenciador de dispositivos. Por favor, proceda por sua conta e risco. </value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Discharging</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Download Update</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers and Software</value>
|
||||
@@ -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>
|
||||
@@ -537,7 +540,7 @@ Do you still want to continue?</value>
|
||||
<value>Quit</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed at your own risk.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Se descarcă</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Descărcați actualizarea</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers și Aplicații</value>
|
||||
@@ -374,6 +374,9 @@
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Temperatura țintă</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>
|
||||
@@ -537,7 +540,7 @@
|
||||
<value>Închide</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>O aplicație folosește dGPU și previne pornirea modului Eco. Reporniți dGPU în device manager? * Continuați pe propriul risc.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Pil boşalıyor</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Güncelleştirmeyi İndir</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Drivers and Software</value>
|
||||
@@ -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>
|
||||
@@ -537,7 +540,7 @@ Do you still want to continue?</value>
|
||||
<value>Çıkış Yap</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Something is using dGPU and preventing Eco mode. Restart dGPU in device manager? * Please proceed at your own risk.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>RPM</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Розрядка</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Завантажити</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Драйвери та програми</value>
|
||||
@@ -374,6 +374,9 @@
|
||||
<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>Висока</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@
|
||||
<value>Вихід</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>Щось використовує dGPU та не дає перейти в режимі Еко. Перезапустити dGPU у менеджері пристроїв? * Будь ласка, продовжуйте на свій страх і ризик.</value>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>Оберти</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>Đang không sạc</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>Tải xuống bản cập nhật</value>
|
||||
<value>Download</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>Driver và phần mềm</value>
|
||||
@@ -374,6 +374,9 @@ Do you still want to continue?</value>
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>Nhiệt độ đích</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>
|
||||
@@ -537,7 +540,7 @@ Do you still want to continue?</value>
|
||||
<value>Thoát</value>
|
||||
</data>
|
||||
<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 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>
|
||||
<value>Something is using dGPU and preventing Eco mode. Let G-Helper try to restart dGPU in device manager? (Please proceed at your own risk)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>VTP</value>
|
||||
|
||||
@@ -151,7 +151,7 @@
|
||||
<value>应用</value>
|
||||
</data>
|
||||
<data name="ApplyFanCurve" xml:space="preserve">
|
||||
<value>应用自定义扇形曲线</value>
|
||||
<value>应用自定义风扇曲线</value>
|
||||
</data>
|
||||
<data name="ApplyPowerLimits" xml:space="preserve">
|
||||
<value>应用功率限制</value>
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>正在放电</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>下载更新</value>
|
||||
<value>下载</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>驱动程序和软件</value>
|
||||
@@ -374,6 +374,9 @@
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>温度目标</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>在使用电池时几分钟后进入休眠状态 (0 - 关闭)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>高</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@
|
||||
<value>退出</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>有程序正在使用独立显卡阻止进入节能模式。要在设备管理器中重新启动dGPU 吗?* 请自行承担风险。</value>
|
||||
<value>有程序正在使用独显并阻止进入集显模式。要让 G-Helper 在设备管理器中重新启动独显吗?(请自行承担风险)</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>转/分钟</value>
|
||||
|
||||
@@ -286,7 +286,7 @@
|
||||
<value>正在釋放電力</value>
|
||||
</data>
|
||||
<data name="DownloadUpdate" xml:space="preserve">
|
||||
<value>下載更新</value>
|
||||
<value>下載</value>
|
||||
</data>
|
||||
<data name="DriverAndSoftware" xml:space="preserve">
|
||||
<value>驅動程式與軟體</value>
|
||||
@@ -374,6 +374,9 @@
|
||||
<data name="GPUTempTarget" xml:space="preserve">
|
||||
<value>GPU溫度上限</value>
|
||||
</data>
|
||||
<data name="HibernateAfter" xml:space="preserve">
|
||||
<value>使用電池下何時進入休眠(0=關閉此功能)</value>
|
||||
</data>
|
||||
<data name="High" xml:space="preserve">
|
||||
<value>高</value>
|
||||
</data>
|
||||
@@ -537,7 +540,7 @@
|
||||
<value>退出</value>
|
||||
</data>
|
||||
<data name="RestartGPU" xml:space="preserve">
|
||||
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否在裝置管理員中重啟獨顯? * 請自行評估風險</value>
|
||||
<value>有其他程式正在使用獨顯導致無法切換至節能模式. 是否讓G-Helper重新啟動獨顯? * 請自行評估風險</value>
|
||||
</data>
|
||||
<data name="RPM" xml:space="preserve">
|
||||
<value>每分鐘轉數</value>
|
||||
|
||||
BIN
app/Resources/icons8-hibernate-32.png
Normal file
BIN
app/Resources/icons8-hibernate-32.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 563 B |
70
app/Settings.Designer.cs
generated
70
app/Settings.Designer.cs
generated
@@ -94,6 +94,7 @@ namespace GHelper
|
||||
buttonKeyboardColor = new RButton();
|
||||
comboKeyboard = new RComboBox();
|
||||
panelKeyboardTitle = new Panel();
|
||||
buttonFnLock = new RButton();
|
||||
pictureKeyboard = new PictureBox();
|
||||
labelKeyboard = new Label();
|
||||
panelVersion = new Panel();
|
||||
@@ -143,6 +144,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 +157,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 +300,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 +411,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 +433,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 +451,8 @@ namespace GHelper
|
||||
//
|
||||
// panelPerformance
|
||||
//
|
||||
panelPerformance.AccessibleName = "Performance";
|
||||
panelPerformance.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelPerformance.AutoSize = true;
|
||||
panelPerformance.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelPerformance.Controls.Add(tablePerf);
|
||||
@@ -459,6 +464,7 @@ namespace GHelper
|
||||
panelPerformance.Padding = new Padding(20);
|
||||
panelPerformance.Size = new Size(827, 208);
|
||||
panelPerformance.TabIndex = 0;
|
||||
panelPerformance.TabStop = true;
|
||||
//
|
||||
// tablePerf
|
||||
//
|
||||
@@ -502,7 +508,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 +531,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 +554,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 +576,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 +606,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 +619,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 +632,8 @@ namespace GHelper
|
||||
//
|
||||
// panelGPU
|
||||
//
|
||||
panelGPU.AccessibleName = "GPU";
|
||||
panelGPU.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelGPU.AutoSize = true;
|
||||
panelGPU.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelGPU.Controls.Add(labelTipGPU);
|
||||
@@ -635,6 +646,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 +779,7 @@ namespace GHelper
|
||||
//
|
||||
// buttonOptimized
|
||||
//
|
||||
buttonOptimized.AccessibleName = "Optimized GPU Mode";
|
||||
buttonOptimized.Activated = false;
|
||||
buttonOptimized.BackColor = SystemColors.ControlLightLight;
|
||||
buttonOptimized.BorderColor = Color.Transparent;
|
||||
@@ -857,6 +870,8 @@ namespace GHelper
|
||||
//
|
||||
// panelScreen
|
||||
//
|
||||
panelScreen.AccessibleName = "Screen";
|
||||
panelScreen.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelScreen.AutoSize = true;
|
||||
panelScreen.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelScreen.Controls.Add(labelTipScreen);
|
||||
@@ -869,6 +884,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 +1046,8 @@ namespace GHelper
|
||||
//
|
||||
// panelKeyboard
|
||||
//
|
||||
panelKeyboard.AccessibleName = "Keyboard";
|
||||
panelKeyboard.AccessibleRole = AccessibleRole.Grouping;
|
||||
panelKeyboard.AutoSize = true;
|
||||
panelKeyboard.AutoSizeMode = AutoSizeMode.GrowAndShrink;
|
||||
panelKeyboard.Controls.Add(tableLayoutKeyboard);
|
||||
@@ -1040,7 +1058,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 +1099,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;
|
||||
//
|
||||
@@ -1155,15 +1174,37 @@ namespace GHelper
|
||||
//
|
||||
// panelKeyboardTitle
|
||||
//
|
||||
panelKeyboardTitle.Controls.Add(buttonFnLock);
|
||||
panelKeyboardTitle.Controls.Add(pictureKeyboard);
|
||||
panelKeyboardTitle.Controls.Add(labelKeyboard);
|
||||
panelKeyboardTitle.Dock = DockStyle.Top;
|
||||
panelKeyboardTitle.Location = new Point(20, 20);
|
||||
panelKeyboardTitle.Margin = new Padding(4);
|
||||
panelKeyboardTitle.Margin = new Padding(0);
|
||||
panelKeyboardTitle.Name = "panelKeyboardTitle";
|
||||
panelKeyboardTitle.Padding = new Padding(0, 2, 4, 2);
|
||||
panelKeyboardTitle.Size = new Size(787, 40);
|
||||
panelKeyboardTitle.TabIndex = 40;
|
||||
//
|
||||
// buttonFnLock
|
||||
//
|
||||
buttonFnLock.Activated = false;
|
||||
buttonFnLock.BackColor = SystemColors.ControlLight;
|
||||
buttonFnLock.BorderColor = Color.Transparent;
|
||||
buttonFnLock.BorderRadius = 2;
|
||||
buttonFnLock.Dock = DockStyle.Right;
|
||||
buttonFnLock.FlatAppearance.BorderSize = 0;
|
||||
buttonFnLock.FlatStyle = FlatStyle.Flat;
|
||||
buttonFnLock.Font = new Font("Segoe UI", 7.125F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
buttonFnLock.ForeColor = SystemColors.ControlDark;
|
||||
buttonFnLock.Location = new Point(676, 2);
|
||||
buttonFnLock.Margin = new Padding(0);
|
||||
buttonFnLock.Name = "buttonFnLock";
|
||||
buttonFnLock.Secondary = true;
|
||||
buttonFnLock.Size = new Size(107, 36);
|
||||
buttonFnLock.TabIndex = 4;
|
||||
buttonFnLock.Text = "FN-Lock";
|
||||
buttonFnLock.UseVisualStyleBackColor = false;
|
||||
//
|
||||
// pictureKeyboard
|
||||
//
|
||||
pictureKeyboard.BackgroundImage = Properties.Resources.icons8_keyboard_32__1_;
|
||||
@@ -1179,7 +1220,7 @@ namespace GHelper
|
||||
//
|
||||
labelKeyboard.AutoSize = true;
|
||||
labelKeyboard.Font = new Font("Segoe UI", 9F, FontStyle.Bold, GraphicsUnit.Point);
|
||||
labelKeyboard.Location = new Point(44, 0);
|
||||
labelKeyboard.Location = new Point(40, -2);
|
||||
labelKeyboard.Margin = new Padding(8, 0, 8, 0);
|
||||
labelKeyboard.Name = "labelKeyboard";
|
||||
labelKeyboard.Size = new Size(210, 32);
|
||||
@@ -1508,5 +1549,6 @@ namespace GHelper
|
||||
private RButton buttonKeyboard;
|
||||
private RButton buttonUpdates;
|
||||
private Label labelCharge;
|
||||
private RButton buttonFnLock;
|
||||
}
|
||||
}
|
||||
@@ -195,8 +195,14 @@ 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();
|
||||
|
||||
VisualiseFnLock();
|
||||
buttonFnLock.Click += ButtonFnLock_Click;
|
||||
|
||||
panelPerformance.Focus();
|
||||
}
|
||||
|
||||
|
||||
private void SettingsForm_Resize(object? sender, EventArgs e)
|
||||
{
|
||||
Left = Screen.FromControl(this).WorkingArea.Width - 10 - Width;
|
||||
@@ -545,8 +551,7 @@ namespace GHelper
|
||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
AppConfig.Set("aura_color2", colorDlg.Color.ToArgb());
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -576,6 +581,14 @@ namespace GHelper
|
||||
});
|
||||
}
|
||||
|
||||
public void GPUInit()
|
||||
{
|
||||
Invoke(delegate
|
||||
{
|
||||
if (fans != null && fans.Text != "") fans.InitGPU();
|
||||
});
|
||||
}
|
||||
|
||||
public void FansToggle(int index = 0)
|
||||
{
|
||||
if (fans == null || fans.Text == "")
|
||||
@@ -611,8 +624,7 @@ namespace GHelper
|
||||
if (colorDlg.ShowDialog() == DialogResult.OK)
|
||||
{
|
||||
AppConfig.Set("aura_color", colorDlg.Color.ToArgb());
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -631,7 +643,7 @@ namespace GHelper
|
||||
comboKeyboard.SelectedValueChanged += ComboKeyboard_SelectedValueChanged;
|
||||
|
||||
|
||||
if (AppConfig.NoAuraColor())
|
||||
if (AppConfig.IsSingleColor())
|
||||
{
|
||||
panelColor.Visible = false;
|
||||
}
|
||||
@@ -645,11 +657,23 @@ namespace GHelper
|
||||
|
||||
}
|
||||
|
||||
public void SetAura()
|
||||
{
|
||||
Task.Run(() =>
|
||||
{
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
});
|
||||
}
|
||||
|
||||
public void VisualiseAura()
|
||||
{
|
||||
pictureColor.BackColor = AsusUSB.Color1;
|
||||
pictureColor2.BackColor = AsusUSB.Color2;
|
||||
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
||||
Invoke(delegate
|
||||
{
|
||||
pictureColor.BackColor = AsusUSB.Color1;
|
||||
pictureColor2.BackColor = AsusUSB.Color2;
|
||||
pictureColor2.Visible = AsusUSB.HasSecondColor();
|
||||
});
|
||||
}
|
||||
|
||||
public void InitMatrix()
|
||||
@@ -681,8 +705,7 @@ namespace GHelper
|
||||
private void ComboKeyboard_SelectedValueChanged(object? sender, EventArgs e)
|
||||
{
|
||||
AppConfig.Set("aura_mode", (int)comboKeyboard.SelectedValue);
|
||||
AsusUSB.ApplyAura();
|
||||
VisualiseAura();
|
||||
SetAura();
|
||||
}
|
||||
|
||||
|
||||
@@ -841,6 +864,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 +877,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 +938,7 @@ namespace GHelper
|
||||
Invoke(delegate
|
||||
{
|
||||
labelPerf.Text = modeText;
|
||||
panelPerformance.AccessibleName = labelPerf.Text; // + ". " + Program.trayIcon.Text;
|
||||
});
|
||||
}
|
||||
|
||||
@@ -1188,6 +1215,28 @@ namespace GHelper
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void VisualiseFnLock()
|
||||
{
|
||||
|
||||
if (AppConfig.Is("fn_lock"))
|
||||
{
|
||||
buttonFnLock.BackColor = colorStandard;
|
||||
buttonFnLock.ForeColor = SystemColors.ControlLightLight;
|
||||
}
|
||||
else
|
||||
{
|
||||
buttonFnLock.BackColor = buttonSecond;
|
||||
buttonFnLock.ForeColor = SystemColors.ControlDark;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void ButtonFnLock_Click(object? sender, EventArgs e)
|
||||
{
|
||||
InputDispatcher.ToggleFnLock();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
<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="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>
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
{
|
||||
"sdk": {
|
||||
"version": "7.0.306"
|
||||
"version": "7.0.400"
|
||||
}
|
||||
}
|
||||
102
docs/README.md
102
docs/README.md
@@ -1,7 +1,7 @@
|
||||
# G-Helper - Lightweight control tool for Asus laptops
|
||||
[](https://u24.gov.ua/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/) <sup> Language: English | <a href="https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md">[中文]</a></sup>
|
||||
[](https://GitHub.com/seerge/g-helper/releases/)
|
||||
[](https://GitHub.com/seerge/g-helper/releases/) [](https://GitHub.com/seerge/g-helper/stargazers/) <sup> Language: English | <a href="https://github.com/seerge/g-helper/blob/main/docs/README.zh-CN.md">[中文]</a></sup>
|
||||
|
||||
Small and lightweight Armoury Crate alternative for Asus laptops offering almost same functionality without extra bloat and unnecessary services. Works on all popular models, such as ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, Flow Z13, TUF Series, Strix / Scar Series, ProArt, VivoBook and many more!
|
||||
|
||||
@@ -52,13 +52,16 @@ _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="300" 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 and they are the **same** as in the Armoury Crate.
|
||||
|
||||
_Default power limits are measured for G14 2022. For other models they will be different._
|
||||
Each BIOS mode is paired with matching Windows Power Mode. You can adjust this setting under ``Fans + Power``
|
||||
|
||||
1. **Silent** in BIOS + **Best power efficiency** power mode
|
||||
2. **Balanced** (Performance in AC) in BIOS + **Balanced** power mode
|
||||
3. **Turbo** in BIOS + **Best performance** power mode
|
||||
|
||||
|
||||
### :video_game: GPU Modes
|
||||
|
||||
@@ -184,6 +187,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.
|
||||
|
||||
------------------
|
||||
@@ -202,39 +220,23 @@ _Make sure to keep json structure (i.e. not to break it with extra or missing co
|
||||
|
||||
By default the app will use your windows language setting. But you can set language manually (if it supported of course)
|
||||
|
||||
``"language" : "en"`` (by replacing "en" with language of your choice)
|
||||
```
|
||||
"language" : "en",
|
||||
```
|
||||
(by replacing "en" with language of your choice)
|
||||
|
||||
### Custom windows power plans with each mode
|
||||
|
||||
You can manually assign a custom power plan (or power mode) GUID to each mode. It can be either "real" power plan that can be switched or "overlay" power plan like the ones g-helper sets by default.
|
||||
You can manually assign a custom power plan GUID to each mode.
|
||||
|
||||
Format is following : ``"scheme_<mode>" : "GUID" ``
|
||||
Where ``mode = 0 (balanced), 1 (turbo), 2 (silent)``
|
||||
|
||||
Default behavior is :
|
||||
Example (for default windows "balanced" power plan):
|
||||
```
|
||||
"scheme_0": "00000000-0000-0000-0000-000000000000",
|
||||
"scheme_1": "ded574b5-45a0-4f42-8737-46345c09c238",
|
||||
"scheme_2": "961cc777-2547-4f9d-8174-7d86181b8a7a",
|
||||
```
|
||||
|
||||
### Custom hotkey actions
|
||||
|
||||
Select ``Custom`` next to appropriate hotkey under ``Extra`` settings and do one of the following:
|
||||
|
||||
1. To run any custom application - put a full path to exe into "action" text field, for example:
|
||||
``C:\Program Files\EA Games\Battlefield 2042\BF2042.exe``
|
||||
|
||||
2. To simulate any windows key - put appropriate keycode into the "action" field, for example ``0x2C`` for Print Screen.
|
||||
Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
|
||||
|
||||

|
||||
|
||||
### Force Standard mode on shutdown / hibernation
|
||||
|
||||
In some rare cases G14 2023 seem to have issues with enabling / disabling dGPU - i.e. Eco mode. Till we wait for a fix from asus on BIOS level, one of the proposed solutions is to always shutdown the laptop in Standard mode (then everything seems to work fine). To enable "forced" Standard mode on shutdown add following line config
|
||||
```
|
||||
"gpu_fix" : 1,
|
||||
"scheme_0": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
"scheme_1": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
"scheme_2": "381b4222-f694-41f0-9685-ff5bb260df2e",
|
||||
```
|
||||
|
||||
### Disable OSD
|
||||
@@ -249,11 +251,41 @@ Disable app's OSD (for performance modes, keyboard backlight, etc.)
|
||||
- ``Ctrl + M1 / M2`` - Screen brightness Down / Up
|
||||
- ``Shift + M1 / M2`` - Backlight brightness Down / Up
|
||||
|
||||
If you don't want this bindings to work you can add ``"skip_hotkeys":1,``
|
||||
If you don't want this bindings to work you can add
|
||||
```
|
||||
"skip_hotkeys":1,
|
||||
```
|
||||
|
||||
### Keybinding to toggle performance modes (on external keyboards)
|
||||
### Toggle Performance Mode key binding
|
||||
|
||||
By default the app will toggle performance modes with Ctr+Shift+F5. You can change this binding by adding ``"keybind_profile": 116`` in config.json (under ``%AppData%\GHelper``), where 116 is [numerical code for desired key](https://www.oreilly.com/library/view/javascript-dhtml/9780596514082/apb.html). Put 0 to completely disable this binding.
|
||||
To change binding for Toggle Performance Modes to ``Ctrl + Shift + KEY``
|
||||
|
||||
```
|
||||
"keybind_profile": 116,
|
||||
```
|
||||
|
||||
Where 116 is [numerical code for desired key](https://www.oreilly.com/library/view/javascript-dhtml/9780596514082/apb.html). Put 0 to completely disable this binding.
|
||||
|
||||
|
||||
### Higher Maximum GPU Clock / Memory Offsets
|
||||
|
||||
By default under GPU section you can set up to +250/+250 for Core and Memory Clock Offset. To increase this value:
|
||||
```
|
||||
"max_gpu_core": 300,
|
||||
"max_gpu_memory": 1500,
|
||||
```
|
||||
|
||||
### Custom hotkey actions
|
||||
|
||||
Select ``Custom`` next to appropriate hotkey under ``Extra`` settings and do one of the following:
|
||||
|
||||
1. To run any custom application - put a full path to exe into "action" text field, for example:
|
||||
``C:\Program Files\EA Games\Battlefield 2042\BF2042.exe``
|
||||
|
||||
2. To simulate any windows key - put appropriate keycode into the "action" field, for example ``0x2C`` for Print Screen.
|
||||
Full list of keycodes https://learn.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes
|
||||
|
||||

|
||||
|
||||
------------
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
_如果你在别的地方提到这个软件-请记得加上这个项目的网址。十分感谢。_
|
||||
|
||||

|
||||
|
||||
### :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 的显示将会
|
||||
|
||||

|
||||
|
||||
### :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://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可以帮助延长电池的使用时间,同时让笔电的温度更低一些
|
||||
|
||||

|
||||
|
||||
---------
|
||||
---
|
||||
|
||||
## 高级用户设置
|
||||
|
||||
@@ -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
|
||||
|
||||

|
||||
|
||||
------------
|
||||
---
|
||||
|
||||
_注:请务必参考下方 **免责声明** 原文,以避免或减小错误或不恰当之翻译引起的负面影响。翻译仅为便于阅读之目的,不具有法律效力,亦不作为发生争端时处理之依据。_
|
||||
|
||||
|
||||
Reference in New Issue
Block a user