使用Powershell自动设置壁纸

Author Avatar
huuhghhgyg 3月 15, 2019
  • 在其它设备中阅读本文章

发现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
link
本文链接:
发文时间
3月 15, 2019
请遵循协议