以编程方式更改Windows 10桌面锁屏背景

9
我如何通过VB.NET、C#或Visual C++以编程方式更改/设置锁定屏幕背景图像?我正在使用Win 10 Pro并拥有Visual Studio 2017 Pro。
我已经在网上搜索过,但大多数解决方案似乎都不起作用。例如:
1. Change Win 10 Lockscreen Image Mutiple Times C# WPFChange Windows Lock Screen background image in C#都提供了示例代码,但是当我粘贴代码时,导入的System.Windows.Media.ImagingWindows.StorageWindows.Storage.StreamsWindows.System.UserProfile无法找到。我需要添加特定的引用吗? 2. Lock screen personalization sample看起来非常有前途,但打开解决方案/项目文件时,Visual Studio会抛出一个错误,说提供的格式无法读取。
大多数来源(包括 Windows Dev Center - LockScreen Class)似乎建议使用
Windows.System.UserProfile.LockScreen.SetImageFileAsync(file);
但显然我缺少特定的命名空间/导入/包来使它运行。

任何帮助都将不胜感激。


1
在 Visual Studio 中,如果代码需要一个命名空间,你可以通过右击代码行并选择“解决方案”来解决命名空间。 - Albert Laure
我已经尝试过这个,但它不像那样工作。https://i.stack.imgur.com/uVmaa.png - ThomasT
看起来你正在使用 ConsoleApplication,但你的链接是针对 UWP 和 WPF 的。 - David Sdot
1
哪一个是正确的?我看到很多WPF,但没有UWP。https://i.stack.imgur.com/yxCz4.png - ThomasT
你是否已经安装了Windows 10 SDK?此外,这里有一个Win10版本的锁屏个性化示例 链接 - dkwarr87
@dkwarr87 谢谢。我现在已经安装了SDK。https://i.stack.imgur.com/KQhoO.png 你发布的链接确实可以编译,但是我无法启动它。https://i.stack.imgur.com/S5neo.png - ThomasT
3个回答

11
我发现一个更简单的方法,使用这个问题 Windows 10 Pro锁屏批量更改。我只需要设置以下注册表项:

计算机\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\PersonalizationCSP

  • DesktopImagePath
  • DesktopImageUrl
  • LockScreenImagePath
  • LockScreenImageUrl

为所需图片的路径,这可以在没有UWP或WPF的情况下实现。


1
正如我在评论中提到的那样,Windows.System.UserProfile 命名空间是 UWP 平台的一部分,需要安装 Windows 10 SDK 才能使用。
您可以通过运行 Visual Studio 安装程序,单击“修改”,然后选择“通用 Windows 平台开发”工作负载来安装 SDK,或者从“各个组件”的列表中选择 SDK。更多详细信息可以在此处找到。
正如在这个问题如何在 .NET 4.5 中与 Windows Runtime 进行互操作和答案中的这个链接中提到的那样,您也许可以从桌面 .NET 应用程序中使用该库,但是不能保证 Microsoft 将继续允许这样做,因此最好使用 UWP 进行开发。
这里有一份微软提供的关于Windows 10锁屏个性化的示例,可在GitHub 这里 找到。

1
ImageGlass是一款开源的图片浏览器,提供了一个命令行工具来更改Windows LockScreen图片:igcmdWin10.exe 使用方法:igcmdWin10.exe setlockimage "C:\image.jpg" 从他们在Github存储库上发布的.zip压缩包中提取它。
请参考ImageGlass官方文档

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接