diff --git a/app/Extra.cs b/app/Extra.cs index edd25b9f..431f0d5d 100644 --- a/app/Extra.cs +++ b/app/Extra.cs @@ -30,6 +30,7 @@ namespace GHelper {"aura", Properties.Strings.ToggleAura}, {"performance", Properties.Strings.PerformanceMode}, {"screen", Properties.Strings.ToggleScreen}, + {"lock", Properties.Strings.LockScreen}, {"miniled", Properties.Strings.ToggleMiniled}, {"fnlock", Properties.Strings.ToggleFnLock}, {"brightness_down", Properties.Strings.BrightnessDown}, diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs index 566e1da2..2e4ecca1 100644 --- a/app/Input/InputDispatcher.cs +++ b/app/Input/InputDispatcher.cs @@ -473,6 +473,10 @@ namespace GHelper.Input case "screenshot": KeyboardHook.KeyPress(Keys.Snapshot); break; + case "lock": + Logger.WriteLine("Screen lock"); + NativeMethods.LockScreen(); + break; case "screen": Logger.WriteLine("Screen off toggle"); NativeMethods.TurnOffScreen(); diff --git a/app/NativeMethods.cs b/app/NativeMethods.cs index b7d24bfd..e532c89b 100644 --- a/app/NativeMethods.cs +++ b/app/NativeMethods.cs @@ -32,6 +32,15 @@ public class NativeMethods [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); + [DllImport("user32.dll", SetLastError = true)] + [return: MarshalAs(UnmanagedType.Bool)] + private static extern bool LockWorkStation(); + + public static void LockScreen() + { + LockWorkStation(); + } + public static void TurnOffScreen() { Form f = new Form(); diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs index cd370400..430929a1 100644 --- a/app/Properties/Strings.Designer.cs +++ b/app/Properties/Strings.Designer.cs @@ -1223,6 +1223,15 @@ namespace GHelper.Properties { } } + /// + /// Looks up a localized string similar to Lock Screen. + /// + internal static string LockScreen { + get { + return ResourceManager.GetString("LockScreen", resourceCulture); + } + } + /// /// Looks up a localized string similar to Logo. /// diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx index b27501ab..21359f52 100644 --- a/app/Properties/Strings.resx +++ b/app/Properties/Strings.resx @@ -506,6 +506,9 @@ Do you still want to continue? Lighting + + Lock Screen + Logo