This commit is contained in:
Serge
2024-09-23 15:24:28 +02:00
parent 79cd773632
commit c6d1b29a49
2 changed files with 22 additions and 8 deletions

View File

@@ -2,21 +2,31 @@
public static class TouchscreenHelper public static class TouchscreenHelper
{ {
public static bool? ToggleTouchscreen()
public static bool? GetStatus()
{ {
try try
{ {
ProcessHelper.RunAsAdmin(); ProcessHelper.RunAsAdmin();
return ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK");
}
catch (Exception ex)
{
Logger.WriteLine($"Can't get touchscreen status: {ex.Message}");
return null;
}
}
var status = !ProcessHelper.RunCMD("powershell", "(Get-PnpDevice -FriendlyName '*touch*screen*').Status").Contains("OK"); public static void ToggleTouchscreen(bool status)
{
try
{
ProcessHelper.RunAsAdmin();
ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false"); ProcessHelper.RunCMD("powershell", (status ? "Enable-PnpDevice" : "Disable-PnpDevice") + " -InstanceId (Get-PnpDevice -FriendlyName '*touch*screen*').InstanceId -Confirm:$false");
return status;
} }
catch (Exception ex) catch (Exception ex)
{ {
Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}"); Logger.WriteLine($"Can't toggle touchscreen: {ex.Message}");
return null;
} }
} }

View File

@@ -591,9 +591,13 @@ namespace GHelper.Input
Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey); Program.settingsForm.BeginInvoke(Program.settingsForm.allyControl.ToggleModeHotkey);
break; break;
case "touchscreen": case "touchscreen":
var touchscreenStatus = TouchscreenHelper.ToggleTouchscreen(); var status = !TouchscreenHelper.GetStatus();
if (touchscreenStatus is not null) Logger.WriteLine("Touchscreen status: " + status);
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)touchscreenStatus ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad); if (status is not null)
{
Program.toast.RunToast(Properties.Strings.Touchscreen + " " + ((bool)status ? Properties.Strings.On : Properties.Strings.Off), ToastIcon.Touchpad);
TouchscreenHelper.ToggleTouchscreen((bool)status);
}
break; break;
default: default:
break; break;