diff --git a/app/Extra.cs b/app/Extra.cs
index 64aebc1e..ed3d4d41 100644
--- a/app/Extra.cs
+++ b/app/Extra.cs
@@ -36,6 +36,7 @@ namespace GHelper
{"brightness_down", Properties.Strings.BrightnessDown},
{"brightness_up", Properties.Strings.BrightnessUp},
{"visual", Properties.Strings.VisualMode},
+ {"touchscreen", Properties.Strings.ToggleTouchscreen },
{"ghelper", Properties.Strings.OpenGHelper},
{"custom", Properties.Strings.Custom}
};
diff --git a/app/Helpers/TouchscreenHelper.cs b/app/Helpers/TouchscreenHelper.cs
new file mode 100644
index 00000000..aafb8d7b
--- /dev/null
+++ b/app/Helpers/TouchscreenHelper.cs
@@ -0,0 +1,23 @@
+using GHelper.Helpers;
+
+public static class TouchscreenHelper
+{
+ public static bool? ToggleTouchscreen()
+ {
+ try
+ {
+ ProcessHelper.RunAsAdmin();
+
+ var status = !ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
+ ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
+
+ return status;
+ }
+ catch (Exception ex)
+ {
+ Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
+ return null;
+ }
+
+ }
+}
diff --git a/app/Input/InputDispatcher.cs b/app/Input/InputDispatcher.cs
index f714d57e..1f9f8ddd 100644
--- a/app/Input/InputDispatcher.cs
+++ b/app/Input/InputDispatcher.cs
@@ -544,6 +544,11 @@ namespace GHelper.Input
case "controller":
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break;
+ case "touchscreen":
+ var touchscreenStatus = TouchscreenHelper.ToggleTouchscreen();
+ if (touchscreenStatus is not null)
+ Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)touchscreenStatus ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
+ break;
default:
break;
}
diff --git a/app/Properties/Strings.Designer.cs b/app/Properties/Strings.Designer.cs
index 430929a1..9a6b11b4 100644
--- a/app/Properties/Strings.Designer.cs
+++ b/app/Properties/Strings.Designer.cs
@@ -1925,6 +1925,24 @@ namespace GHelper.Properties {
}
}
+ ///
+ /// Looks up a localized string similar to Toggle Touchscreen.
+ ///
+ internal static string ToggleTouchscreen {
+ get {
+ return ResourceManager.GetString("ToggleTouchscreen", resourceCulture);
+ }
+ }
+
+ ///
+ /// Looks up a localized string similar to .
+ ///
+ internal static string Touchscreen {
+ get {
+ return ResourceManager.GetString("Touchscreen", resourceCulture);
+ }
+ }
+
///
/// Looks up a localized string similar to Turbo.
///
diff --git a/app/Properties/Strings.resx b/app/Properties/Strings.resx
index 21359f52..81b8c1ec 100644
--- a/app/Properties/Strings.resx
+++ b/app/Properties/Strings.resx
@@ -740,6 +740,12 @@ Do you still want to continue?
Toggle Screen
+
+ Toggle Touchscreen
+
+
+
+
Turbo