mirror of
https://github.com/jkocon/g-helper.git
synced 2026-02-23 13:00:52 +01:00
Turn off display fix https://github.com/seerge/g-helper/issues/1218
Zephyrus DUO Screenpad hotkey https://github.com/seerge/g-helper/issues/1215
This commit is contained in:
@@ -355,7 +355,7 @@ namespace GHelper.Input
|
|||||||
break;
|
break;
|
||||||
case "screen":
|
case "screen":
|
||||||
Logger.WriteLine("Screen off toggle");
|
Logger.WriteLine("Screen off toggle");
|
||||||
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
NativeMethods.TurnOffScreen();
|
||||||
break;
|
break;
|
||||||
case "miniled":
|
case "miniled":
|
||||||
screenControl.ToogleMiniled();
|
screenControl.ToogleMiniled();
|
||||||
@@ -506,7 +506,7 @@ namespace GHelper.Input
|
|||||||
SetBacklight(4);
|
SetBacklight(4);
|
||||||
return;
|
return;
|
||||||
case 53: // FN+F6 on GA-502DU model
|
case 53: // FN+F6 on GA-502DU model
|
||||||
NativeMethods.TurnOffScreen(Program.settingsForm.Handle);
|
NativeMethods.TurnOffScreen();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -537,6 +537,11 @@ namespace GHelper.Input
|
|||||||
case 108: // FN+F11
|
case 108: // FN+F11
|
||||||
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_Sleep, "Sleep");
|
Program.acpi.DeviceSet(AsusACPI.UniversalControl, AsusACPI.KB_Sleep, "Sleep");
|
||||||
break;
|
break;
|
||||||
|
case 106: // Screenpad button on DUO
|
||||||
|
SetScreenpad(100);
|
||||||
|
break;
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -594,14 +599,28 @@ namespace GHelper.Input
|
|||||||
public static void SetScreenpad(int delta)
|
public static void SetScreenpad(int delta)
|
||||||
{
|
{
|
||||||
int brightness = AppConfig.Get("screenpad", 100);
|
int brightness = AppConfig.Get("screenpad", 100);
|
||||||
brightness = Math.Max(Math.Min(100, brightness + delta), 0);
|
|
||||||
|
if (delta == 100)
|
||||||
|
{
|
||||||
|
if (brightness < 0) brightness = 0;
|
||||||
|
else if (brightness < 100) brightness = 100;
|
||||||
|
else brightness = -10;
|
||||||
|
|
||||||
|
} else
|
||||||
|
{
|
||||||
|
brightness = Math.Max(Math.Min(100, brightness + delta), -10);
|
||||||
|
}
|
||||||
|
|
||||||
AppConfig.Set("screenpad", brightness);
|
AppConfig.Set("screenpad", brightness);
|
||||||
|
|
||||||
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, (brightness * 255 / 100), "Screenpad");
|
Program.acpi.DeviceSet(AsusACPI.ScreenPadBrightness, Math.Min(brightness * 255 / 100, 0 ), "Screenpad");
|
||||||
if (brightness == 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, brightness, "ScreenpadToggle");
|
if (brightness < 0) Program.acpi.DeviceSet(AsusACPI.ScreenPadToggle, brightness, "ScreenpadToggle");
|
||||||
|
|
||||||
Program.toast.RunToast($"Screen Pad {brightness}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
string toast;
|
||||||
|
|
||||||
|
if (brightness < 0) toast = "Off"; else toast = brightness.ToString() + "%";
|
||||||
|
|
||||||
|
Program.toast.RunToast($"Screen Pad {toast}", delta > 0 ? ToastIcon.BrightnessUp : ToastIcon.BrightnessDown);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -32,9 +32,9 @@ public class NativeMethods
|
|||||||
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
[DllImport("kernel32.dll", CharSet = CharSet.Auto, SetLastError = true)]
|
||||||
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
|
private static extern uint FormatMessage(uint dwFlags, IntPtr lpSource, uint dwMessageId, uint dwLanguageId, out string lpBuffer, uint nSize, IntPtr Arguments);
|
||||||
|
|
||||||
public static void TurnOffScreen(IntPtr handle)
|
public static void TurnOffScreen()
|
||||||
{
|
{
|
||||||
IntPtr result = SendMessage(handle, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);
|
IntPtr result = SendMessage(-1, WM_SYSCOMMAND, (IntPtr)SC_MONITORPOWER, (IntPtr)MONITOR_OFF);
|
||||||
if (result == IntPtr.Zero)
|
if (result == IntPtr.Zero)
|
||||||
{
|
{
|
||||||
int error = Marshal.GetLastWin32Error();
|
int error = Marshal.GetLastWin32Error();
|
||||||
|
|||||||
Reference in New Issue
Block a user