微软在 Windows 10 上新增了一项功能 Windows 聚焦 (Windows Spotlight),它会自动随机下载并更换锁屏界面的壁纸 (Lockscreen),让你每次打开电脑都有不一样的视觉享受。这些高清锁屏壁纸往往都很精美,很多视觉冲击力十足,非常值得收藏。但很多同学想将这些壁纸设为桌面,却不知道怎样下载保存Win10的锁屏壁纸。实际上这些精美的图片都在你电脑上的缓存文件夹中,比如我的就在“C:\Users\Anymake\AppData\Local\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets”中,这些缓存文件没有后缀名,你只需要重命名加上.jpg就可以看到了。这些手动提取的教程各大网站都有介绍。
但是每次手动复制比较繁琐,我实现了一个自动化的将每天新更新的Windows 聚焦 (Windows Spotlight)图片设置为桌面壁纸的程序。本方法不需要单独安装任何软件,只需要windows自带的Powershell和任务计划程序就可以了。

一、编写自动提取并设置为壁纸的脚本

打开一个文本文件,复制以下代码,保存后缀为.ps1,命名为SetWallPaperFromSpotlight.ps1,然后右键“使用powershell运行”就可以发现桌面壁纸已经被设置为了最新的图片。所有的聚焦图片都被复制到你自己的用户文件夹下的Spotlight文件夹。比如我的是在:“C:\Users\Anymake\Pictures\Spotlight”。这样你就有了一个手动提取并设置最新图片为桌面壁纸的方法。下面第二步介绍每天电脑自动设置的方法。

# 将复制出来的缓存图片保存在下面的文件夹
add-type -AssemblyName System.Drawing
New-Item "$($env:USERPROFILE)\Pictures\Spotlight" -ItemType directory -Force;
New-Item "$($env:USERPROFILE)\Pictures\Spotlight\CopyAssets" -ItemType directory -Force;
New-Item "$($env:USERPROFILE)\Pictures\Spotlight\Horizontal" -ItemType directory -Force;
New-Item "$($env:USERPROFILE)\Pictures\Spotlight\Vertical" -ItemType directory -Force;# 将横竖图片分别复制到对应的两个文件夹
foreach($file in (Get-Item "$($env:LOCALAPPDATA)\Packages\Microsoft.Windows.ContentDeliveryManager_cw5n1h2txyewy\LocalState\Assets\*"))
{if ((Get-Item $file).length -lt 100kb) { continue }Copy-Item $file.FullName "$($env:USERPROFILE)\Pictures\Spotlight\CopyAssets\$($file.Name).jpg";
}foreach($newfile in (Get-Item "$($env:USERPROFILE)\Pictures\Spotlight\CopyAssets\*"))
{$image = New-Object -comObject WIA.ImageFile;$image.LoadFile($newfile.FullName);if($image.Width.ToString() -eq "1920"){ Move-Item $newfile.FullName "$($env:USERPROFILE)\Pictures\Spotlight\Horizontal" -Force; }elseif($image.Width.ToString() -eq "1080"){ Move-Item $newfile.FullName "$($env:USERPROFILE)\Pictures\Spotlight\Vertical" -Force; }
}# 壁纸设置函数
function Set-Wallpaper
{param([Parameter(Mandatory=$true)]$Path,[ValidateSet('Center', 'Stretch')]$Style = 'Center')Add-Type @"
using System;
using System.Runtime.InteropServices;
using Microsoft.Win32;
namespace Wallpaper
{
public enum Style : int
{
Center, Stretch
}
public class Setter {
public const int SetDesktopWallpaper = 20;
public const int UpdateIniFile = 0x01;
public const int SendWinIniChange = 0x02;
[DllImport("user32.dll", SetLastError = true, CharSet = CharSet.Auto)]
private static extern int SystemParametersInfo (int uAction, int uParam, string lpvParam, int fuWinIni);
public static void SetWallpaper ( string path, Wallpaper.Style style ) {
SystemParametersInfo( SetDesktopWallpaper, 0, path, UpdateIniFile | SendWinIniChange );
RegistryKey key = Registry.CurrentUser.OpenSubKey("Control Panel\\Desktop", true);
switch( style )
{
case Style.Stretch :
key.SetValue(@"WallpaperStyle", "2") ;
key.SetValue(@"TileWallpaper", "0") ;
break;
case Style.Center :
key.SetValue(@"WallpaperStyle", "1") ;
key.SetValue(@"TileWallpaper", "0") ;
break;
}
key.Close();
}
}
}
"@[Wallpaper.Setter]::SetWallpaper( $Path, $Style )
}$filePath = "$($env:USERPROFILE)\Pictures\Spotlight\Horizontal\*"
$file = Get-Item -Path $filePath | Sort-Object -Property LastWriteTime -Descending | Select-Object -First 1
Set-Wallpaper -Path $file.FullName
# echo $file.FullNameRemove-Item "$($env:USERPROFILE)\Pictures\Spotlight\CopyAssets\*";
#pause

其中设置桌面壁纸的代码参考自:http://www.pstips.net/powershell-change-wallpaper.html

提取windows聚焦的图片参考自:http://www.iplaysoft.com/save-win10-spotlight-wallpapers.html

二、利用windows自带的任务计划程序每天自动运行脚本

必须以管理员身份登录才能执行这些步骤。如果不是以管理员身份登录,则您仅能更改适用于您的用户帐户的设置。

1、由于windows默认的任务计划没有权限执行ps1脚本,因此首先需要用管理员运行Windows PowerShell

2、输入 Set-ExecutionPolicy Unrestricted进行权限更改,输入Y确认

3、打开“任务计划程序”,方法是依次单击“控制面板”、“系统和安全性”、“管理工具”,然后双击“任务计划程序”。‌  需要管理员权限 如果系统提示您输入管理员密码或进行确认,请键入该密码或提供确认。
单击“操作”菜单,然后单击“创建任务”。
配置如下:

常规:键入任务的名称比如SetWallPaperFromSpotlight和描述(可选)  - 勾选“使用最高权限运行”

触发器:新建 - 选择“制定计划时” - 选择 执行时间如“7:30:00” - 选择执行周期如“每天 每隔1天发生一次” - 勾选"启用",也可以根据需要选择每小时,每半小时或者更高的频率运行脚本。

操作:新建 - 选择“启动程序” - "powershell" ,添加参数为文件路径,如"D:\code\py\SetWallPaperFromSpotlight.ps1",- 点击“确定”

所有完成就大功告成了,要检查效果的话,单机左侧的任务计划程序库,从右边找到你刚设置的SetWallPaperFromSpotlight任务,右键立即运行就可以看到效果了。

PS:
首先,确保你的 Windows 10 已经开启了“聚焦”壁纸功能,桌面右键 > 个性化 > 锁屏界面 > “背景”选项下选择 “Windows 聚焦”即为开启,之后系统将会自动联网更换锁屏壁纸。为了使任务栏颜色随着壁纸改变,最好将颜色设置为从壁纸中自动选取

利用Powershell每天自动设置提取Win10的windows聚焦图片(Spotlight)作为桌面壁纸的方法相关推荐

  1. 计算机桌面壁纸怎样拉伸,win10桌面壁纸怎么拉伸?手把手教你拉伸win10桌面壁纸的方法...

    现在大家喜欢用自己拍摄的照片做电脑桌面壁纸,设置好win10桌面壁纸后,总感觉壁纸很显大,想要重新拉伸一下.那么win10桌面壁纸如何拉伸?针对此疑问,小编手把手教你拉伸win10桌面壁纸的方法. 1 ...

  2. win10计算机语言超清壁纸,Windows 10 Hero高清桌面壁纸(1920×1200)

    Windows 10 Hero高清桌面壁纸(1920×1200)是一份免费的.且高清无水印的Windows 10 Hero高清桌面壁纸文档,其中共有9张分辨率为1920×1200的win10系统专用壁 ...

  3. win10关闭windows聚焦_一劳永逸 教你彻底关闭Win10广告显示

    也许是为了进一步增加营销收入和自身应用商店产品的推广力度,微软在Windows10开始在锁屏界面增加了广告投放功能.而周年更新之后,开始菜单也成为它们的展示区,一些来自官方推荐的应用和游戏,在无意点击 ...

  4. win10关闭windows聚焦_Windows 10聚焦怎么用?教你玩转Windows聚焦功能

    [技术沙龙]AI开发者实战营-7分钟打造1个定制技能.7月22号,我们等你一起! Windows10聚焦怎么用?在Windows10操作系统中,微软加入了Windows聚焦功能,开启Windows聚焦 ...

  5. win10关闭windows聚焦_关闭WIN10聚焦的方法

    也许是为了进一步增加营销收入和自身应用商店产品的推广力度,微软在Windows10开始在锁屏界面增加了广告投放功能.而周年更新之后,开始菜单也成为它们的展示区,一些来自官方推荐的应用和游戏,在无意点击 ...

  6. 计算机图片查看方式,Win10系统如何查看图片显示形式?查看的方法

    全新的 Windows10系统 自带了很多种不同的图片显示形式供用户选择.不过,一些刚刚升级win10的朋友,甚至都不知道该如何选择查看图片显示形式.这该怎么办呢?接下来,PConline小编就为大家 ...

  7. 利用EasySQLMAIL实现自动数据提取和邮件发送功能 (1)

    转自:http://blog.sina.com.cn/s/blog_1549483b70102wioy.html 最近几个月每天都在发通报.过程很繁琐,动作很机械,整个人就是一部机器,执行SQL,填E ...

  8. win10关闭windows聚焦_Win10优化:这8个操作简单的小方法让你的Win10系统更加流畅...

    目前,市场上比较流行的主流电脑系统无非就是win7和win10这两个,这两个也是比较稳定的.但是自从微软发布将于2020年停止对win7支持后,很多小伙伴也表示无奈之下得升win10了啊. win10 ...

  9. python修改电脑桌面壁纸_python设置windows桌面壁纸的方法

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #----------------------------------------------------- ...

最新文章

  1. 动态数据绑定之监听对象变化
  2. cad监控摄像头图例_家庭护卫兵:乐橙 TP2 智能摄像头
  3. 机器人学习--AMCL导航包自己修改源码编译和调用方法
  4. SSM项目spring配置文件详细步骤(分门别类、灵巧记忆)
  5. webpack常用知识点
  6. 【kafka】InvalidReplicationFactorException: Replication factor: 1 larger than available brokers: 0
  7. 基于shell 脚本处理文本数据流程
  8. 华为机试HJ99:自守数(附带提速方案)
  9. Android源码编译FFmpeg4.0.2单独so库for Android(验证可用)
  10. 南洋理工 OJ 115 城市平乱 dijstra算法
  11. 如何用计算机截部分屏,电脑截图只截一部分怎么办
  12. 艾伦·图灵天才的一生,为什么却蒙羞而死?这是被时代所亏欠的一生!
  13. 如何通过几何画板学这些定理
  14. Unity灯光烘焙系统
  15. 阿里云服务搭建微信小程序开发环境
  16. layui中去掉表格的hover变色
  17. 微信小程序获取WIFI列表可手动输入密码连接
  18. 51单片机驱动ESP8266
  19. 传奇服务器限时npc修改,小小方法添加传奇服务器技能兑换NPC
  20. oracle中*_name*知多少

热门文章

  1. KVM虚拟化快照使用详解
  2. Arm A-profile feature names
  3. matlab矩阵转化成一行向量
  4. 数字逻辑实验——138译码器
  5. 电脑监控软件哪个好用,有没有远程监控软件?
  6. VMWare使用鼠标额外的功能键
  7. jmeter参数传递三种方法
  8. SAP中非评估收货或不收货与收货时的应用区别和记账差异
  9. C语言if else语句
  10. 基于差异演化的寄生樽海鞘群算法