使用Powershell自动设置壁纸
发现CMD不能达到此目的,更换更高级的Powershell来执行这个任务~
最近有的人经常更换电脑桌面壁纸,而且壁纸我觉得也不算好看(很难看),基本上就是起到哗众取宠的目的,所以我打算利用脚本自动定时更换电脑壁纸,达到锁定电脑壁纸的目的。
准备工作
学校的电脑系统是Win7,默认设置不允许执行脚本(不知道是不是Ghost系统的人设置的),所以第一步要解除限制。
Powershell中执行命令如下:Set-ExecutionPolicy Unrestricted
执行完毕之后就能运行.ps1
脚本了。
自动更换壁纸的函数方法
保存如下代码到一个.ps1
文件中。(可以用记事本编辑再更改文件拓展名)
Function Set-WallPaper($Value)
{
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $value
rundll32.exe user32.dll, UpdatePerUserSystemParameters 1, True
}
Set-WallPaper -value "C:\Windows\Web\Wallpaper\Homes_Background.bmp"
将其中C:\Windows\Web\Wallpaper\Homes_Background.bmp
更改成壁纸所在处,执行脚本即生效。
添加到计划任务
计划任务的位置在 “控制面板”-(“系统和安全”)-“管理工具”-“计划任务”
打开后点击 “添加基本任务” ,之后就可以跟着向导走了。执行文件填写 powershell ,参数填写刚刚保存的脚本文件位置即可。
还可以
每日获取Bing图片并设为壁纸
function Save-BingTodayImage()
{
#必应图片故事API
$bingImageApi ='http://www.bing.com/HPImageArchive.aspx?format=xml&idx=0&n=1&mkt=zh-cn'
$bingUri = 'http://www.bing.com/'
# 获取图片链接
[xml]$bingImageXml = (Invoke-WebRequest -Uri $bingImageApi).Content
Write-Host " 今日图片故事: $( $bingImageXml.images.image.copyright ) "
$imgLink = '{0}{1}' -f $bingUri , $bingImageXml.images.image.url
# 下载和保存图片
$imageDir = "$HOME\Pictures\Bing\"
if( -not (Test-Path $imageDir) )
{
mkdir $imageDir | Out-Null
}
$imageFile = Join-Path $imageDir ( '{0}.jpg' -f $bingImageXml.images.image.fullstartdate)
Invoke-WebRequest -Uri $imgLink -OutFile $imageFile
return $imageFile
}
Function Set-DesktopWallPaper($imagePath)
{
Set-ItemProperty -path 'HKCU:\Control Panel\Desktop\' -name wallpaper -value $imagePath
RUNDLL32.EXE USER32.DLL UpdatePerUserSystemParameters ,1 ,True
}
# 获取今日必应背景图片
$image=Save-BingTodayImage
#设置为桌面墙纸
Set-DesktopWallPaper -imagePath $image
本文链接:
发文时间
3月 15, 2019
请遵循协议