概要

bing搜索的背景图片每天都会进行自动更新,而且质量都非常的不错,而获取图片的api也是可以在网上找到的。

{
"images": [
{
"startdate": "20250610",
"fullstartdate": "202506101600",
"enddate": "20250611",
"url": "/th?id=OHR.FlamingosNamibia_ZH-CN3639748956_UHD.jpg&rf=LaDigue_UHD.jpg&pid=hp&w=3840&h=2160&rs=1&c=4",
"urlbase": "/th?id=OHR.FlamingosNamibia_ZH-CN3639748956",
"copyright": "大红鹳,吕德里茨,纳米比亚 ( Karine Aigner/TANDEM Stills + Motion)",
"copyrightlink": "/search?q=%e5%a4%a7%e7%ba%a2%e9%b9%b3&form=hpcapt&mkt=zh-cn",
"title": "潮汐间的芭蕾",
"quiz": "/search?q=Bing+homepage+quiz&filters=WQOskey:%22HPQuiz_20250610_FlamingosNamibia%22&FORM=HPQUIZ",
"wp": true,
"hsh": "1f6b2ef4d9ddd344a0ec8166b041b206",
"drk": 1,
"top": 1,
"bot": 1,
"hs": []
}
],
"tooltips": {
"loading": "正在加载...",
"previous": "上一个图像",
"next": "下一个图像",
"walle": "此图片不能下载用作壁纸。",
"walls": "下载今日美图。仅限用作桌面壁纸。"
}
}

下面就介绍如何通过批处理及vbs脚本,无需安装第三方软件实现电脑每天自动设置bing每日一图壁纸。

脚本实现

change_desktop_background.bat

把下面的叫保存为change_desktop_background.bat文件,编码设置为UTF-8,通过双击运行该文件就可以自动获取并设置壁纸了,非常好用。

该批处理的主要功能是通过bing的api获取图片的路径,并把获取到的图片保存在本地的Pictures/BingWallpapers路径下,最后把图片设置为桌面的背景图片。

@echo off & chcp 65001>nul & setlocal enabledelayedexpansion

echo.&echo     设置Bing每日桌面背景 &echo.
for /f "usebackq delims=" %%P in (`powershell -nologo -noprofile -command "[Environment]::GetFolderPath('MyPictures')"`) do (
set "downloadDir=%%P\BingWallpapers"
)
if not exist "!downloadDir!" mkdir "!downloadDir!"
echo 正在获取图片信息...
set "baseUrl=https://www.bing.com"
set "jsonUrl=!baseUrl!/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN&nc=1614319565639&pid=hp&FORM=BEHPTB&uhd=1&uhdwidth=3840&uhdheight=2160"
for /f "usebackq tokens=1,* delims==" %%A in (`
powershell -nologo -command ^
"$json = Invoke-RestMethod -Uri '!jsonUrl!' -UseBasicParsing;" ^
"$img = $json.images[0];" ^
"Write-Output ('imageUrl=!baseUrl!' + $img.url);" ^
"Write-Output ('imageName=' + $img.enddate + '_'+ $img.title);" ^
`) do (
set "%%A=%%B"
)
set "imageFile=!downloadDir!\!imageName!.jpg"
if not exist !imageFile! (
echo 正在下载图片:!imageName!.jpg
if defined imageUrl (
curl.exe --retry 2 --max-time 30 -so "!imageFile!" "!imageUrl!"
)
)
if exist "!imageFile!" (
echo 正在设置桌面背景...
powershell -Command "Add-Type -TypeDefinition '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); }'; [void][Wallpaper]::SystemParametersInfo(20, 0, '!imageFile!', 3)"
echo 桌面背景已更新为: !imageFile!
) else (
echo 未能下载或找到图片文件
) timeout /t 10

上面的批处理脚本只能在我们手动点击的时候才会去获取新的图片,还是比较麻烦,那有没有办法让每天都让电脑自动获取图片并设置背景呢?

有的~ 有的~ 兄弟,我们可以借助windows的任务计划程序来实现。

任务计划程序,也称计划任务。这是Microsoft Windows中的一个组件,可以预先计划在特定时间或指定时间后启动程序或脚本。

change_desktop_background.vbs

前面的批处理还有一个文件,每次运行的时候都会弹出一个黑窗口,很影响我们的日常工作,我们可以创建一个vbs脚本来隐藏运行刚才的批处理脚本。当然这一步不是必须的,仅仅是为了隐藏运行。

把下面的代码保存到change_desktop_background.vbs文件里面,放在批处理的同级目录下。并运行测试一下是否可以切换桌面背景。

Set fso = CreateObject("Scripting.FileSystemObject")
vbsDir = fso.GetParentFolderName(WScript.ScriptFullName) Set ws = CreateObject("WScript.Shell")
ws.CurrentDirectory = vbsDir
ws.Run """change_desktop_background.bat""", 0

下面就开始创建任务计划程序了。

  1. win + r输入taskschd.msc打开任务计划程序
  2. 在右侧的任务计划程序库下面点击创建任务...
  3. 常规名称栏位 写Bing每日图片,或者你喜欢的名字
  4. 触发器点击新建,我这里设置的是在登录电脑后延迟1分钟,并且每12小时执行一次。可以根据自己的情况进行设置,小时不能选,但是可以手动修改。

  1. 操作里面新建启动程序程序或脚本选我们创建的vbs文件。

  2. 确定后可以选中我们创建好的任务点击右侧的运行检验一下是否可以正常运行。

至此我们电脑就可以每天设置新的背景图片啦~~~

windows通过批处理让电脑每天自动设置bing桌面背景的更多相关文章

  1. 获取bing图片并自动设置为电脑桌面背景(C++完整开源程序)

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  2. 【开源程序(C++)】获取bing图片并自动设置为电脑桌面背景

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  3. 获取bing图片并自动设置为电脑桌面背景(使用 URLDownloadToFile API函数)

    众所周知,bing搜索网站首页每日会更新一张图片,张张漂亮(额,也有一些不合我口味的),特别适合用来做电脑壁纸. 我们想要将bing网站背景图片设置为电脑桌面背景的通常做法是: 上网,搜索bing 找 ...

  4. windows bat批处理基础命令学习教程(转载)

    一.基础语法: 1.批处理文件是一个“.bat”结尾的文本文件,这个文件的每一行都是一条DOS命令.可以使用任何文本文件编辑工具创建和修改.2.批处理是一种简单的程序,可以用 if 和 goto 来控 ...

  5. Windows常用批处理命令 CMD BAT (CMD目录操作等dir)

    Windows常用批处理 CMD BAT CMD获取文件夹下所有文件的名称并打印(输出)到指定目录 dir C:\Users\\Desktop\png\*.*/s >c:\.txt //cmd ...

  6. 初尝Windows 下批处理编程

    本文叫“ 初尝Windows 下批处理编程”是为了延续上一篇“初尝 Perl”,其实对于博主而言批处理以及批处理编程早就接触过了. 本文包括以下内容 1.什么是批处理 2.常用批处理命令 3.简介批处 ...

  7. windows中实现python,redis服务自动重启(任务计划程序+bat脚本)

    需求:银行电脑无法自动开机,只能 通过 应用相关服务每天自动重启的方式实现 服务更新并且防止服务假死,内存过大 等情况 相关工具:win10系统中,使用windows自带的任务计划程序 和 bat脚本 ...

  8. C#操作电脑多显示器设置

    电脑多显示器设置 第一种方式 通过使用api函数SetDisplayConfig来设置.这种方式在某些电脑中设置有几率会导致电脑黑屏 使用代码如下: private const uint SDC_AP ...

  9. 【转】WPF: 自动设置Owner的ShowDialog 适用于MVVM

    原文地址:http://www.mgenware.com/blog/?p=339 WPF中的Windows的ShowDialog方法并没有提供设置Owner的参数,开发者需要在ShowDialog前设 ...

  10. PowerShell脚本自动设置安卓手机wifi代理

    在实际测试工作中,经常要将安卓手机通过wifi代理的形式连接到本机的fiddler或charles服务器代理进行抓包测试.最近一直在想,有没有什么方法可以自动设置安卓手机的wifi代理,曾经想通过修改 ...

随机推荐

  1. FastAPI复杂查询终极指南:告别if-else的现代化过滤架构

    title: FastAPI复杂查询终极指南:告别if-else的现代化过滤架构 date: 2025/3/14 updated: 2025/3/14 author: cmdragon excerpt ...

  2. mac zsh: command not found: python

    前言 在 mac 上安装 python 后,会自动在 .zprofile 文件中,加入: # Setting PATH for Python 3.12 # The original version i ...

  3. Golang 入门 : 文件名、关键字与标识符

    Go 的源文件以 .go 为后缀名存储在计算机中,这些文件名均由小写字母组成,如 scanner.go .如果文件名由多个部分组成,则使用下划线 _ 对它们进行分隔,如 scanner_test.go ...

  4. go 密码 hash 加密

    目录 bcrypt加密算法原理和应用 简单使用 一起实现一个demo 获取用户输入的密码 Hash & Salt 用户的密码 目前我们做了什么 验证密码 更新 Main 函数 全部代码 bcr ...

  5. Flask应用实战经验总结:使用工厂函数创建app与uWSGI服务部署启动失败解决方案

    在 Flask 应用开发中,使用工厂函数创建应用实例,并借助 uWSGI 服务进行部署,是常见且高效的组合. 然而,在实际操作过程中,uWSGI 配置文件与应用启动函数之间的关系复杂,容易引发各种问题 ...

  6. 使用SVM在数字验证码识别中的应用研究课程报告

    第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别.面部检测.图像分类等多个领域展现出了其优越性.其在处理小样本.非线性及高维模式识别任务中表 ...

  7. ActiViz 在 .NET 环境下的 CT 图像渲染

    1. 什么是 ActiViz? ActiViz 是 VTK(Visualization Toolkit) 的 .NET 封装,提供了强大的 3D 计算机图形渲染功能,广泛应用于 医学影像(CT.MRI ...

  8. Netty源码—2.Reactor线程模型一

    大纲 1.关于NioEventLoop的问题整理 2.理解Reactor线程模型主要分三部分 3.NioEventLoop的创建 4.NioEventLoop的启动 1.关于NioEventLoop的 ...

  9. Innodb快速复习

    放一张官方架构图: 参考文章: 一文带你了解MySQL之InnoDB_Buffer_Pool-阿里云开发者社区这一篇buffer pool讲解的很好 [动画演示:MySQL的BufferPool和Ch ...

  10. Web前端入门第 38 问:CSS flex 弹性盒子与 grid 网格布局区别及应用场景

    弹性盒子又称为 Flexbox,然而我更喜欢 flex 的叫法. flex 弹性盒子和 grid 网格布局作为前端开发中两把利器,它们的分界线没那么明显,虽然按照 MDN 的说法 flex 多用于一维 ...