随机下载 Bing 聚焦图片并将其设置为桌面背景
随机下载 Bing 聚焦图片并将其设置为桌面背景

随机下载 Bing 聚焦图片并将其设置为桌面背景

代码如下:

# 设置聚焦图片下载链接

$focusUrl = "https://www.bing.com/HPImageArchive.aspx?format=js&idx=0&n=10&mkt=en-US" # 获取最近的10张聚焦图片信息

# 设置保存图片的临时文件夹路径

$tempFolder = "F:\Temp\FocusImages"

# 确保临时文件夹存在

if (-not (Test-Path -Path $tempFolder)) {
New-Item -Path $tempFolder -ItemType Directory | Out-Null
}

try {
# 下载聚焦图片信息
$response = Invoke-RestMethod -Uri $focusUrl

# 随机选择一张图片信息
$randomImageInfo = Get-Random -InputObject $response.images

# 获取图片地址
$imageUrl = "https://www.bing.com" + $randomImageInfo.url

# 使用正则表达式从 URL 中提取文件名
$imageName = [regex]::Match($imageUrl, '\/([^\/\?]+)\??').Groups[1].Value

# 构造图片的本地保存路径
$imagePath = Join-Path -Path $tempFolder -ChildPath $imageName

# 下载图片到本地
Invoke-WebRequest -Uri $imageUrl -OutFile $imagePath

# 检查类型是否已经添加,如果没有,则添加它
if (-not ([System.Management.Automation.PSTypeName]'Wallpaper').Type) {
    Add-Type -TypeDefinition @"
        using System;
        using System.Runtime.InteropServices;
        public class Wallpaper {
            [DllImport("user32.dll", CharSet = CharSet.Auto)]
            public static extern int SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
        }

"@
}

# 设置桌面背景
[Wallpaper]::SystemParametersInfo(20, 0, $imagePath, 0)

} catch {
Write-Host "发生异常: $_"
}

以上 PowerShell 脚本的作用是:

  1. 定义了一个变量 $focusUrl,用于存储从 Bing API 获取最近的 10 张聚焦图片信息的链接。
  2. 定义了一个变量 $tempFolder,用于存储临时保存图片的文件夹路径。
  3. 使用 Test-Path 函数检查临时文件夹是否存在,如果不存在,则创建该文件夹。
  4. 使用 Invoke-RestMethod 函数从 $focusUrl 获取聚焦图片信息。
  5. 从返回的信息中随机选择一张图片,并提取图片的地址。
  6. 使用正则表达式从图片地址中提取文件名,保证不包含查询参数。
  7. 构造图片的本地保存路径。
  8. 使用 Invoke-WebRequest 函数下载图片到本地。
  9. 使用 Add-Type 函数添加类型定义,其中包含了设置桌面背景的功能。在添加之前,先检查类型是否已经存在,避免重复添加。
  10. 使用 [Wallpaper]::SystemParametersInfo 方法设置桌面背景为下载的图片。
  11. 如果在以上步骤中出现异常,则会捕获异常并打印异常信息。

蓝奏云下载:https://benson88.lanzn.com/ikPj11tdkhij

发表回复

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

Title - Artist
0:00