代码简单,只是实现自己的想法而已。不知道有冇有和我一样想法的人。
做这个东西的理由:1、搜索壁纸复杂
2、bing的壁纸还不错
3、我懒得很,但我喜欢新鲜感
4、其他的壁纸程序占我内存,我想要不占内存的
所以就想到了这个。就是开机启动,获取最新bing首页壁纸,然后下载,再然后设置桌面壁纸,最后功成身退,程序自己退出。
运行时候的样子,只是命令行提示
运行弹出
设置成功后,就是与bing首页的壁纸一样
[Python] 纯文本查看 复制代码 import os
import requests
import ctypes
import json
import configparser
import shutil
from datetime import date
def download_image(url, save_path):
try:
response = requests.get(url)
response.raise_for_status()
with open(save_path, 'wb') as file:
file.write(response.content)
print("图片下载成功!")
except requests.HTTPError as e:
print(f"图片下载失败:{e}")
def set_wallpaper(image_path):
# 设置桌面背景
SPI_SETDESKWALLPAPER = 0x0014
ctypes.windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, image_path, 3)
print("桌面背景设置成功!")
# 读取配置文件
config = configparser.ConfigParser()
config.read('set.ini')
path = config.get('Settings', 'path')
boot = config.get('Settings', 'boot')
# 解析链接获取图片地址
url = "https://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&mkt=zh-CN"
response = requests.get(url)
data = response.json()
image_url = "https://cn.bing.com" + data['images'][0]['url']
# 图片保存目录
save_dir = path
# 获取今天的日期,并构建图片保存文件名
today = date.today()
save_file_name = today.strftime("%Y%m%d") + ".jpg"
# 图片保存路径和文件名
save_file_path = os.path.join(save_dir, save_file_name)
# 检查保存目录是否存在,如果不存在则新建目录
if not os.path.exists(save_dir):
os.makedirs(save_dir)
# 下载图片
download_image(image_url, save_file_path)
# 设置桌面背景
set_wallpaper(save_file_path)
# 判断是否添加到计算机启动项
current_path = os.getcwd()
shortcut_path = os.path.join(os.environ["APPDATA"], "Microsoft", "Windows", "Start Menu", "Programs", "Startup", "WallpaperChanger.lnk")
if boot.lower() == "yes": # 添加到计算机启动项
shutil.copyfile(os.path.join(current_path, "WallpaperChanger.lnk"), shortcut_path)
print("已添加到计算机启动项")
elif boot.lower() == "no": # 从计算机启动项移除
if os.path.exists(shortcut_path):
os.remove(shortcut_path)
print("已从计算机启动项移除")
else:
print("boot值非法,无法处理")
# 关闭程序
exit()
全部代码如上,我也打包了一份exe的
【使用说明】
再程序根目录需要有一份set.ini文件
里面的内容是
[Settings]
path = D:\Pictures
boot = no
如下图
path为图片存储目录。不存在则会创建。图片存储的名称以日期为名称:如:20230708.jpg
boot是是否开机启动,选项是no和yes 如果想要开机启动,那么改成yes后,运行一次程序,那么就会把快捷方式添加到启动项里面。如果是no,运行则会删除启动项。详情可以看代码。
蓝奏地址如下:
https://wwem.lanzoum.com/ijGtC11nz0cd
密码:hfu9
|