效果
本案例程序运行后无弹窗,每5秒自动更换一次壁纸,手动换了也不管用,达到整人效果O(∩_∩)O,效果如图
实现
本案例使用python编写,调用win底层相关的api,最终使用pyinstaller打包成为exe,以后台进程的形式强行更换壁纸
源码
import requests
import ctypes
from urllib.request import urlretrieve
import threading
def fun_timer():
try:
IMAGE_URL = '网络图片地址'
LOCAL_URL = './02.jpg'
r = requests.get(IMAGE_URL)
with open(LOCAL_URL, 'wb') as f:
f.write(r.content)
ctypes.windll.user32.SystemParametersInfoW(20, 0, os.getcwd()+'/02.jpg', 0)
timer = threading.Timer(5, fun_timer)
timer.start()
except Exception as e :
timer = threading.Timer(5, fun_timer)
timer.start()
timer = threading.Timer(5, fun_timer)
timer.start()
源码解析
import requests
import ctypes
from urllib.request import urlretrieve
import threading
def fun_timer():
try:
# 网络图片的路径
IMAGE_URL = '网络图片地址'
# 把网络图片下载下来的存放路径
LOCAL_URL = './02.jpg'
# 通过get请求下载网络图片为02.jpg
r = requests.get(IMAGE_URL)
with open(LOCAL_URL, 'wb') as f:
f.write(r.content)
# 设置Windows壁纸
ctypes.windll.user32.SystemParametersInfoW(20, 0, os.getcwd()+'/02.jpg', 0)
# 每5秒循环执行一次
timer = threading.Timer(5, fun_timer)
timer.start()
# 如果遇到异常就重新尝试(例如断网、文件io冲突、壁纸更换冲突等)
except Exception as e :
timer = threading.Timer(5, fun_timer)
timer.start()
timer = threading.Timer(5, fun_timer)
# 开始执行程序
timer.start()