From 6a353e0941b37a9018e7171e4bd8187b956b3987 Mon Sep 17 00:00:00 2001 From: seraphima Date: Thu, 13 Jun 2024 23:07:43 +0200 Subject: [PATCH] gpo --- src/common/GPOWrapperProjection/GPOWrapper.cs | 5 +++++ src/modules/Projects/ProjectsEditor/App.xaml.cs | 7 +++++++ .../Projects/ProjectsEditor/ProjectsEditor.csproj | 1 + src/modules/Projects/ProjectsLauncher/main.cpp | 7 +++++++ src/modules/Projects/ProjectsSnapshotTool/main.cpp | 9 ++++++++- 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/src/common/GPOWrapperProjection/GPOWrapper.cs b/src/common/GPOWrapperProjection/GPOWrapper.cs index f0c0b8421c..b352ed0cbb 100644 --- a/src/common/GPOWrapperProjection/GPOWrapper.cs +++ b/src/common/GPOWrapperProjection/GPOWrapper.cs @@ -61,5 +61,10 @@ namespace PowerToys.GPOWrapperProjection { return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetRunPluginEnabledValue(pluginID); } + + public static GpoRuleConfigured GetConfiguredProjectsEnabledValue() + { + return (GpoRuleConfigured)PowerToys.GPOWrapper.GPOWrapper.GetConfiguredProjectsEnabledValue(); + } } } diff --git a/src/modules/Projects/ProjectsEditor/App.xaml.cs b/src/modules/Projects/ProjectsEditor/App.xaml.cs index 568893ad0a..6d552658de 100644 --- a/src/modules/Projects/ProjectsEditor/App.xaml.cs +++ b/src/modules/Projects/ProjectsEditor/App.xaml.cs @@ -33,6 +33,13 @@ namespace ProjectsEditor private void OnStartup(object sender, StartupEventArgs e) { + if (PowerToys.GPOWrapperProjection.GPOWrapper.GetConfiguredProjectsEnabledValue() == PowerToys.GPOWrapperProjection.GpoRuleConfigured.Disabled) + { + Logger.LogWarning("Tried to start with a GPO policy setting the utility to always be disabled. Please contact your systems administrator."); + Shutdown(0); + return; + } + AppDomain.CurrentDomain.UnhandledException += OnUnhandledException; Logger.InitializeLogger("\\Projects\\Logs"); diff --git a/src/modules/Projects/ProjectsEditor/ProjectsEditor.csproj b/src/modules/Projects/ProjectsEditor/ProjectsEditor.csproj index f47d203c69..9aecdb4f8d 100644 --- a/src/modules/Projects/ProjectsEditor/ProjectsEditor.csproj +++ b/src/modules/Projects/ProjectsEditor/ProjectsEditor.csproj @@ -86,6 +86,7 @@ + diff --git a/src/modules/Projects/ProjectsLauncher/main.cpp b/src/modules/Projects/ProjectsLauncher/main.cpp index 6abc3a6965..628b4834b5 100644 --- a/src/modules/Projects/ProjectsLauncher/main.cpp +++ b/src/modules/Projects/ProjectsLauncher/main.cpp @@ -6,6 +6,7 @@ #include +#include #include #include @@ -17,6 +18,12 @@ int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR cmdline, int cm LoggerHelpers::init_logger(moduleName, internalPath, LogSettings::projectsLauncherLoggerName); InitUnhandledExceptionHandler(); + if (powertoys_gpo::getConfiguredProjectsEnabledValue() == powertoys_gpo::gpo_rule_configured_disabled) + { + Logger::warn(L"Tried to start with a GPO policy setting the utility to always be disabled. Please contact your systems administrator."); + return 0; + } + // read projects std::vector projects; try diff --git a/src/modules/Projects/ProjectsSnapshotTool/main.cpp b/src/modules/Projects/ProjectsSnapshotTool/main.cpp index 5bb079279d..854a12973e 100644 --- a/src/modules/Projects/ProjectsSnapshotTool/main.cpp +++ b/src/modules/Projects/ProjectsSnapshotTool/main.cpp @@ -11,6 +11,7 @@ #include +#include #include #include @@ -20,7 +21,13 @@ const std::wstring internalPath = L""; int APIENTRY WinMain(HINSTANCE hInst, HINSTANCE hInstPrev, LPSTR cmdLine, int cmdShow) { LoggerHelpers::init_logger(moduleName, internalPath, LogSettings::projectsLauncherLoggerName); - InitUnhandledExceptionHandler(); + InitUnhandledExceptionHandler(); + + if (powertoys_gpo::getConfiguredProjectsEnabledValue() == powertoys_gpo::gpo_rule_configured_disabled) + { + Logger::warn(L"Tried to start with a GPO policy setting the utility to always be disabled. Please contact your systems administrator."); + return 0; + } SetProcessDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2);