diff --git a/AtlasToolbox/Services/ConfigurationServices/LockScreenConfigurationService.cs b/AtlasToolbox/Services/ConfigurationServices/LockScreenConfigurationService.cs index 4634913..edecf41 100644 --- a/AtlasToolbox/Services/ConfigurationServices/LockScreenConfigurationService.cs +++ b/AtlasToolbox/Services/ConfigurationServices/LockScreenConfigurationService.cs @@ -1,4 +1,5 @@ using System; +using System.IO; using AtlasToolbox.Stores; using AtlasToolbox.Utils; using Microsoft.Extensions.DependencyInjection; @@ -13,6 +14,12 @@ public class LockScreenConfigurationService : IConfigurationService private const string PERSONALIZATION_KEY_NAME = @"HKLM\SOFTWARE\Policies\Microsoft\Windows\Personalization"; private const string NO_LOCK_SCREEN_VALUE_NAME = "NoLockScreen"; + private const string NO_CHANGING_LOCK_SCREEN_VALUE_NAME = "NoChangingLockScreen"; + + private static readonly string LockScreenScriptDir = Path.Combine( + Environment.GetFolderPath(Environment.SpecialFolder.Windows), + @"AtlasDesktop\4. Interface Tweaks\Lock Screen" + ); private readonly ConfigurationStore _lockScreenConfigurationStore; @@ -25,8 +32,9 @@ public LockScreenConfigurationService( public void Disable() { RegistryHelper.SetValue(PERSONALIZATION_KEY_NAME, NO_LOCK_SCREEN_VALUE_NAME, 1, Microsoft.Win32.RegistryValueKind.DWord); + RegistryHelper.SetValue(PERSONALIZATION_KEY_NAME, NO_CHANGING_LOCK_SCREEN_VALUE_NAME, 1, Microsoft.Win32.RegistryValueKind.DWord); RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, STATE_VALUE_NAME, 0); - RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, "path", @$"{Environment.GetEnvironmentVariable("windir")}\AtlasDesktop\4. Interface Tweaks\Lock Screen\Hide Lock Screen.cmd"); + RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, "path", Path.Combine(LockScreenScriptDir, "Hide Lock Screen.ps1")); _lockScreenConfigurationStore.CurrentSetting = IsEnabled(); } @@ -34,8 +42,9 @@ public void Disable() public void Enable() { RegistryHelper.DeleteValue(PERSONALIZATION_KEY_NAME, NO_LOCK_SCREEN_VALUE_NAME); + RegistryHelper.DeleteValue(PERSONALIZATION_KEY_NAME, NO_CHANGING_LOCK_SCREEN_VALUE_NAME); RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, STATE_VALUE_NAME, 1); - RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, "path", @$"{Environment.GetEnvironmentVariable("windir")}\AtlasDesktop\4. Interface Tweaks\Lock Screen\Show Lock Screen (default).cmd"); + RegistryHelper.SetValue(ATLAS_STORE_KEY_NAME, "path", Path.Combine(LockScreenScriptDir, "Show Lock Screen (default).ps1")); _lockScreenConfigurationStore.CurrentSetting = IsEnabled(); }