【问题标题】:Windows 10 Universal Remove Lock Screen ImageWindows 10 通用删除锁定屏幕图像
【发布时间】:2016-05-31 04:23:45
【问题描述】:

我有一个可以设置锁定屏幕图像的应用程序。但是,我不再支持我的 Win 10 应用程序并希望删除该图像。有没有办法在代码中删除锁定屏幕图像或将其设置回系统默认值?

【问题讨论】:

    标签: windows-10 win-universal-app windows-10-mobile


    【解决方案1】:

    UserProfilePersonalizationSettings 提供了方法TrySetLockScreenImageAsync 来设置锁屏图片。但是没有办法删除锁屏图像或将其设置回系统。

    在 Windows 10 桌面上,它默认使用Windows spotlight 应用程序来获取锁屏图片。据我所知,我们无法通过 API 使用Windows spotlight 设置锁屏。

    在 Windows 移动版 10 中,锁定屏幕与 Windows 10 桌面版不同。它默认使用My picture

    作为一种解决方法,您可以启动锁屏设置,让用户选择My pictureWindows spotlight。无论是 Windows 10 桌面还是 Windows 移动 10,锁屏设置的 uri 都是一样的。

    例如:

    bool result = await Launcher.LaunchUriAsync(new Uri("ms-settings:lockscreen"));
    

    【讨论】:

      【解决方案2】:

      您可以检索当前的锁屏图像并保存。之后,您可以在需要时回滚到以前的状态。

      此功能仅适用于 Windows 10 桌面版(据我所知)。您需要为您的项目添加Windows Desktop Extensions for the UWPlink 提供更多信息。

      之后,您可以在使用LockScreen 操作之前保存当前的LockScreen 图像:

      if (ApiInformation.IsTypePresent("Windows.System.UserProfile.LockScreen"))
      {
          var fileName = "originalLockScreenImage";
          //check is file exists
          var originalLockScreenFile = await ApplicationData.Current.LocalFolder.TryGetItemAsync(fileName);
          if (originalLockScreenFile == null)
          {
              var currentImageStream = Windows.System.UserProfile.LockScreen.GetImageStream();
              var tempFile = await ApplicationData.Current.LocalFolder.CreateFileAsync(fileName, CreationCollisionOption.OpenIfExists);
              using (var fileStream = await tempFile.OpenAsync(FileAccessMode.ReadWrite))
              {
                  await currentImageStream.AsStream().CopyToAsync(fileStream.AsStream());
              }
          }
          else
          {
              //rollback if you want
              await Windows.System.UserProfile.LockScreen.SetImageFileAsync((IStorageFile)originalLockScreenFile);
          }
      }
      

      【讨论】:

      • 嗨!这段代码适用于哪种编程语言?
      • @NetVicious for C#
      • 我正在尝试在 Visual Studio 中创建一个简单的解决方案,用于创建一个命令行 exe 来更改锁壁纸。你能告诉我需要安装哪个 SDK 才能拥有 Windows.System.UserProfile 吗?
      • @NetVicious 如果您想使用Windows.System.UserProfile.LockScreen,请添加到您的解决方案Windows Desktop Extensions for the UWP。看我上面的帖子。
      • 感谢您的信息。解决方案应该是通用应用程序,而 C# 不允许通用控制台应用程序。我想创建一个简单的 exe 来在命令行中更改锁屏壁纸。
      【解决方案3】:

      我假设您想将您的平台恢复到其原始状态或附近。选择设置图标(齿轮状的东西),然后转到“个性化”。点击后,您会在左侧看到一个垂直选项列表,其中之一是“锁定屏幕”。 “背景选项”下的选项栏有一个小的下拉扩展箭头。如果一切顺利,您将拥有三个选项,其中之一应该是“Windows Spotlight”。如果你想要那个,拿去吧。如果您想要不同的图片,请浏览。希望这是有用的和有帮助的。

      【讨论】:

        猜你喜欢
        • 2018-11-07
        • 2018-11-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多