LockscreenHelper.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. // using System.Runtime.InteropServices;
  2. // using Microsoft.Win32;
  3. //
  4. // namespace PicView.Core.WindowsNT.Lockscreen;
  5. //
  6. // public static partial class LockscreenHelper
  7. // {
  8. // [LibraryImport("kernel32.dll", SetLastError = true)]
  9. // [return: MarshalAs(UnmanagedType.Bool)]
  10. // public static partial bool Wow64DisableWow64FsRedirection(ref IntPtr ptr);
  11. //
  12. // public static bool SetLockScreenImage(string path)
  13. // {
  14. // const string personalizationcsp =
  15. // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP";
  16. // // const string enforceLockScreenAndLogonImage =
  17. // // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\DeviceLock\EnforceLockScreenAndLogonImage";
  18. // // const string enforcelockscreenprovider =
  19. // // @"HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PolicyManager\default\DeviceLock\EnforceLockScreenProvider";
  20. // var ptr = new IntPtr();
  21. // Wow64DisableWow64FsRedirection(ref ptr);
  22. //
  23. // try
  24. // {
  25. // Registry.SetValue(personalizationcsp, "LockScreenImageStatus", 1, RegistryValueKind.DWord);
  26. // Registry.SetValue(personalizationcsp, "LockScreenImagePath", path, RegistryValueKind.String);
  27. // Registry.SetValue(personalizationcsp, "LockScreenImageUrl", path, RegistryValueKind.String);
  28. //
  29. // // Registry.SetValue(enforceLockScreenAndLogonImage, "policytype", 0, RegistryValueKind.DWord);
  30. // // Registry.SetValue(enforcelockscreenprovider, "policytype", 0, RegistryValueKind.DWord);
  31. //
  32. // // Seems to only work once, and then have to restart the machine to make it work again.
  33. // // It seems to disable setting the lock screen image in the settings app with the text:
  34. // // *Some settings are managed by your organization
  35. // // enforceLockScreenAndLogonImage and enforcelockscreenprovider are both set to 0 to try to disable it,
  36. // // but it doesn't seem to work.
  37. // // Need to investigate further and disable it for now.
  38. // }
  39. // catch
  40. // {
  41. // return false;
  42. // }
  43. //
  44. // return true;
  45. // }
  46. // }