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