Compare commits

..

10 Commits

7 changed files with 45 additions and 16 deletions

View File

@@ -413,7 +413,7 @@ public static class AppConfig
public static bool IsDUO() public static bool IsDUO()
{ {
return ContainsModel("Duo") || ContainsModel("GX550") || ContainsModel("GX650"); return ContainsModel("Duo") || ContainsModel("GX550") || ContainsModel("GX650") || ContainsModel("UX840");
} }
// G14 2020 has no aura, but media keys instead // G14 2020 has no aura, but media keys instead
@@ -454,7 +454,7 @@ public static class AppConfig
public static bool IsOLED() public static bool IsOLED()
{ {
return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("UM5606"); return ContainsModel("OLED") || IsSlash() || ContainsModel("M7600") || ContainsModel("UX64") || ContainsModel("UX34") || ContainsModel("UX53") || ContainsModel("K360") || ContainsModel("X150") || ContainsModel("M350") || ContainsModel("K650") || ContainsModel("UM53") || ContainsModel("K660") || ContainsModel("UX84") || ContainsModel("M650") || ContainsModel("M550") || ContainsModel("K340") || ContainsModel("K350") || ContainsModel("M140") || ContainsModel("UM340") || ContainsModel("S540") || ContainsModel("M7400") || ContainsModel("N650") || ContainsModel("HN7306") || ContainsModel("H7606") || ContainsModel("UX5406") || ContainsModel("M5606");
} }
public static bool IsNoOverdrive() public static bool IsNoOverdrive()

View File

@@ -6,7 +6,14 @@ namespace GHelper.Display
{ {
public const int MAX_REFRESH = 1000; public const int MAX_REFRESH = 1000;
public static int MIN_RATE = AppConfig.Get("min_rate", 60);
public static int MAX_RATE = AppConfig.Get("max_rate");
public static int GetMaxRate(string? laptopScreen)
{
if (MAX_RATE > 0) return MAX_RATE;
else return ScreenNative.GetMaxRefreshRate(laptopScreen);
}
public void AutoScreen(bool force = false) public void AutoScreen(bool force = false)
{ {
@@ -15,7 +22,7 @@ namespace GHelper.Display
if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online) if (SystemInformation.PowerStatus.PowerLineStatus == PowerLineStatus.Online)
SetScreen(MAX_REFRESH, 1); SetScreen(MAX_REFRESH, 1);
else else
SetScreen(60, 0); SetScreen(MIN_RATE, 0);
} }
else else
{ {
@@ -29,7 +36,7 @@ namespace GHelper.Display
var refreshRate = ScreenNative.GetRefreshRate(laptopScreen); var refreshRate = ScreenNative.GetRefreshRate(laptopScreen);
if (refreshRate < 0) return; if (refreshRate < 0) return;
ScreenNative.SetRefreshRate(laptopScreen, refreshRate > 60 ? 60 : ScreenNative.GetMaxRefreshRate(laptopScreen)); ScreenNative.SetRefreshRate(laptopScreen, refreshRate > MIN_RATE ? MIN_RATE : GetMaxRate(laptopScreen));
InitScreen(); InitScreen();
} }
@@ -43,7 +50,7 @@ namespace GHelper.Display
if (frequency >= MAX_REFRESH) if (frequency >= MAX_REFRESH)
{ {
frequency = ScreenNative.GetMaxRefreshRate(laptopScreen); frequency = GetMaxRate(laptopScreen);
} }
if (frequency > 0 && frequency != refreshRate) if (frequency > 0 && frequency != refreshRate)
@@ -151,7 +158,7 @@ namespace GHelper.Display
{ {
var laptopScreen = ScreenNative.FindLaptopScreen(); var laptopScreen = ScreenNative.FindLaptopScreen();
int frequency = ScreenNative.GetRefreshRate(laptopScreen); int frequency = ScreenNative.GetRefreshRate(laptopScreen);
int maxFrequency = ScreenNative.GetMaxRefreshRate(laptopScreen); int maxFrequency = GetMaxRate(laptopScreen);
if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency); if (maxFrequency > 0) AppConfig.Set("max_frequency", maxFrequency);
else maxFrequency = AppConfig.Get("max_frequency"); else maxFrequency = AppConfig.Get("max_frequency");

View File

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

View File

@@ -106,7 +106,7 @@ public class Startup
{ {
td.RegistrationInfo.Description = "G-Helper Auto Start"; td.RegistrationInfo.Description = "G-Helper Auto Start";
td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(1) }); td.Triggers.Add(new LogonTrigger { UserId = WindowsIdentity.GetCurrent().Name, Delay = TimeSpan.FromSeconds(2) });
td.Actions.Add(strExeFilePath); td.Actions.Add(strExeFilePath);
if (ProcessHelper.IsUserAdministrator()) if (ProcessHelper.IsUserAdministrator())

View File

@@ -118,6 +118,13 @@ namespace GHelper.Input
if (!AppConfig.Is("skip_hotkeys")) if (!AppConfig.Is("skip_hotkeys"))
{ {
if (AppConfig.IsDUO())
{
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F7);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F8);
}
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F13);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F14);
@@ -129,8 +136,6 @@ namespace GHelper.Input
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F19); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F19);
hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20); hook.RegisterHotKey(ModifierKeys.Shift | ModifierKeys.Control | ModifierKeys.Alt, Keys.F20);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown); hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeDown);
hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp); hook.RegisterHotKey(ModifierKeys.Control, Keys.VolumeUp);
hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown); hook.RegisterHotKey(ModifierKeys.Shift, Keys.VolumeDown);
@@ -435,6 +440,12 @@ namespace GHelper.Input
case Keys.F4: case Keys.F4:
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey); Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break; break;
case Keys.F7:
SetScreenpad(-10);
break;
case Keys.F8:
SetScreenpad(10);
break;
case Keys.F13: case Keys.F13:
ToggleScreenRate(); ToggleScreenRate();
break; break;
@@ -735,6 +746,7 @@ namespace GHelper.Input
KeyProcess("fne"); KeyProcess("fne");
return; return;
case 174: // FN+F5 case 174: // FN+F5
case 157: // Zenbook DUO FN+F
modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift); modeControl.CyclePerformanceMode(Control.ModifierKeys == Keys.Shift);
return; return;
case 179: // FN+F4 case 179: // FN+F4

View File

@@ -10,6 +10,8 @@ namespace GHelper.Input
CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(); CancellationTokenSource cancellationTokenSource = new CancellationTokenSource();
Action<int> _handler; Action<int> _handler;
static int retry = 0;
public KeyboardListener(Action<int> KeyHandler) public KeyboardListener(Action<int> KeyHandler)
{ {
_handler = KeyHandler; _handler = KeyHandler;
@@ -67,6 +69,12 @@ namespace GHelper.Input
catch (Exception ex) catch (Exception ex)
{ {
Logger.WriteLine($"Listener exited: {ex.Message}"); Logger.WriteLine($"Listener exited: {ex.Message}");
if (retry++ < 2)
{
Thread.Sleep(300);
Logger.WriteLine($"Restarting listener {retry}");
Listen();
}
} }
} }

View File

@@ -850,7 +850,7 @@ namespace GHelper
private void Button60Hz_MouseHover(object? sender, EventArgs e) private void Button60Hz_MouseHover(object? sender, EventArgs e)
{ {
labelTipScreen.Text = Properties.Strings.MinRefreshTooltip; labelTipScreen.Text = Properties.Strings.MinRefreshTooltip.Replace("60", ScreenControl.MIN_RATE.ToString());
} }
private void ButtonScreen_MouseLeave(object? sender, EventArgs e) private void ButtonScreen_MouseLeave(object? sender, EventArgs e)
@@ -860,7 +860,7 @@ namespace GHelper
private void ButtonScreenAuto_MouseHover(object? sender, EventArgs e) private void ButtonScreenAuto_MouseHover(object? sender, EventArgs e)
{ {
labelTipScreen.Text = Properties.Strings.AutoRefreshTooltip; labelTipScreen.Text = Properties.Strings.AutoRefreshTooltip.Replace("60", ScreenControl.MIN_RATE.ToString());
} }
private void ButtonUltimate_MouseHover(object? sender, EventArgs e) private void ButtonUltimate_MouseHover(object? sender, EventArgs e)
@@ -1215,7 +1215,7 @@ namespace GHelper
private void Button60Hz_Click(object? sender, EventArgs e) private void Button60Hz_Click(object? sender, EventArgs e)
{ {
AppConfig.Set("screen_auto", 0); AppConfig.Set("screen_auto", 0);
screenControl.SetScreen(60, 0); screenControl.SetScreen(ScreenControl.MIN_RATE, 0);
} }
@@ -1246,16 +1246,18 @@ namespace GHelper
{ {
buttonScreenAuto.Activated = true; buttonScreenAuto.Activated = true;
} }
else if (frequency == 60) else if (frequency == ScreenControl.MIN_RATE)
{ {
button60Hz.Activated = true; button60Hz.Activated = true;
} }
else if (frequency > 60) else if (frequency > ScreenControl.MIN_RATE)
{ {
button120Hz.Activated = true; button120Hz.Activated = true;
} }
if (maxFrequency > 60) button60Hz.Text = ScreenControl.MIN_RATE + "Hz";
if (maxFrequency > ScreenControl.MIN_RATE)
{ {
button120Hz.Text = maxFrequency.ToString() + "Hz" + (overdriveSetting ? " + OD" : ""); button120Hz.Text = maxFrequency.ToString() + "Hz" + (overdriveSetting ? " + OD" : "");
panelScreen.Visible = true; panelScreen.Visible = true;