PowerShell 获取必应首页背景图片 3


必应搜索有个无关搜索的亮点,就是每日的图片故事。另外在windows 8以后微软有个软件“必应桌面”作为可选的windows update可能会被安装,除了自动更新桌面背景图片外,其新闻,图片,视频推送,实在有点鸡肋。

那如果我们能通过PowerShell 自动获取必应首页的背景图片,并且把它设置为桌面墙纸,就可以完全卸载‘必应桌面’了。

废话不多说,直接贴脚本了。

#########################################################################
# 描述: PowerShell获取必应背景图片,并设置为桌面墙纸
# 作者:  荔非苔
# 博客链接: https://www.pstips.net/set-wallpaper-by-bing-image.html
# PowerShell版本: 4.0 
#########################################################################
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

有的哥们要问了,人家必应桌面会定期更新,你这脚本不能自动化更新啊。授人以鱼,不如授人以渔,您再读完这篇文章就懂了。

本文链接: https://www.pstips.net/set-wallpaper-by-bing-image.html
请尊重原作者和编辑的辛勤劳动,欢迎转载,并注明出处!

关于 Mooser Lee

我是一个Powershell的爱好者,创建了PowerShell中文博客,热衷于Powershell技术的搜集和分享。本站部分内容来源于互联网,不足之处敬请谅解,并欢迎您批评指正。

发表评论

您的电子邮箱地址不会被公开。 必填项已用 * 标注

3 条评论 “PowerShell 获取必应首页背景图片

  • zc

    format=xml取到的好像都不是高分辨率图片,json格式可以拿到高分辨率图片。在作者的基础上稍微改了一下。

    #########################################################################
    # 描述: PowerShell获取必应背景图片,并设置为桌面墙纸
    # 作者: 荔非苔
    # 博客链接: http://www.pstips.net/set-wallpaper-by-bing-image.html
    # PowerShell版本: 4.0
    #########################################################################
    function Save-BingTodayImage($num)
    {
    #必应图片故事API
    #$bingImageApi =’http://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-cn’
    $bingImageApi =’http://www.bing.com/HPImageArchive.aspx?format=js&idx=’ + $num + ‘&n=1&mkt=zh-cn’
    $bingUri = ‘http://www.bing.com/’

    # 获取图片链接
    $bingImageJsonOrg = (Invoke-WebRequest -Uri $bingImageApi).Content | ConvertFrom-Json
    $bingImageJson = $bingImageJsonOrg.images[0]
    Write-Host “$num ”
    Write-Host “$( $bingImageJson.copyright ) ”
    $imgLink = ‘{0}{1}’ -f $bingUri , $bingImageJson.url

    # 下载和保存图片
    $imageDir = “$HOME\Pictures\Bing\”
    if( -not (Test-Path $imageDir) )
    {
    mkdir $imageDir | Out-Null
    }
    $imageFile = Join-Path $imageDir ( $bingImageJson.enddate + ‘, {0}.jpg’ -f ($bingImageJson.copyright -replace(“[\\/?]{1,}”,”-“)))

    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($args)

    #设置为桌面墙纸
    #Set-DesktopWallPaper -imagePath $image