// using System.Runtime.InteropServices; // using Microsoft.Win32; // // namespace PicView.Core.WindowsNT.Lockscreen; // // public static partial class LockscreenHelper // { // [LibraryImport("kernel32.dll", SetLastError = true)] // [return: MarshalAs(UnmanagedType.Bool)] // public static partial bool Wow64DisableWow64FsRedirection(ref IntPtr ptr); // // public static bool SetLockScreenImage(string path) // { // const string personalizationcsp = // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP"; // // const string enforceLockScreenAndLogonImage = // // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\DeviceLock\EnforceLockScreenAndLogonImage"; // // const string enforcelockscreenprovider = // // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\DeviceLock\EnforceLockScreenProvider"; // var ptr = new IntPtr(); // Wow64DisableWow64FsRedirection(ref ptr); // // try // { // Registry.SetValue(personalizationcsp, "LockScreenImageStatus", 1, RegistryValueKind.DWord); // Registry.SetValue(personalizationcsp, "LockScreenImagePath", path, RegistryValueKind.String); // Registry.SetValue(personalizationcsp, "LockScreenImageUrl", path, RegistryValueKind.String); // // // Registry.SetValue(enforceLockScreenAndLogonImage, "policytype", 0, RegistryValueKind.DWord); // // Registry.SetValue(enforcelockscreenprovider, "policytype", 0, RegistryValueKind.DWord); // // // Seems to only work once, and then have to restart the machine to make it work again. // // It seems to disable setting the lock screen image in the settings app with the text: // // *Some settings are managed by your organization // // enforceLockScreenAndLogonImage and enforcelockscreenprovider are both set to 0 to try to disable it, // // but it doesn't seem to work. // // Need to investigate further and disable it for now. // } // catch // { // return false; // } // // return true; // } // }