本帖最后由 Megix 于 2021-3-14 10:17 编辑
没有图形界面,电脑上装有python并且有requests、parsel库的,可以直接把源码放到开机启动C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp下,没有安装python和requests、parsel库的,如果是
64位windows系统可以点击链接下载https://wws.lanzouj.com/ifo98ma0h4d,密码:7u40。把其中的bing_wallpaper.exe文件的快捷方式添加到开机启动就可以了。
运行后,会生成图片中的Wallpapers文件夹,里面有使用过的壁纸;每次设置壁纸后,脚本将自动结束。
更新源代码(2020 12 28 12:57):
开机时发现,刚开始的一段时间电脑的壁纸会消失,变成黑色,然后过几秒种才会变正常,这可能时ctypes更换壁纸的方法不好。所以我在后面又加上了一句,使用cmd命令再更换一次壁纸,这样在下次刚开机时壁纸就不会消失。
============================温馨提示=============================
由于这个脚本功能太单一,所以我把更换bing壁纸的作为一个辅助功能加入了我的一个新作品,链接在此:https://www.52pojie.cn/thread-1388490-1-1.html
源代码如下:
[Python] 纯文本查看 复制代码 import requests, os, parsel, time, sys, ctypes, subprocess
def changePaper(img_path):
# 设置壁纸
ctypes.windll.user32.SystemParametersInfoW(20, 0, img_path, 0)
command = 'reg add \"hkcu\\control panel\\desktop\" /v \"wallpaper\" /d \"' + img_path + '\" /f'
subprocess.run(command, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
'''
刷新
'RunDll32.exe USER32.DLL,UpdatePerUserSystemParameters'
'''
def isConnected():
# 测试是否有网
try:
requests.get("https://cn.bing.com", timeout=2)
except:
return False
return True
Date = time.strftime("%Y-%m-%d", time.localtime())
MainPath = os.path.dirname(os.path.realpath(sys.argv[0])) + '\\Wallpapers'
paperPath = MainPath + '\\' + Date + '必应壁纸.jpg'
def getPaper():
# 下载壁纸
try:
link = 'https://cn.bing.com'
headers = {'User-Agent':'Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; rv:11.0) like Gecko'}
response_str = requests.get(link, headers).text
html = parsel.Selector(response_str)
li = html.xpath('//link[@id="bgLink"]/@href').get()
url = link + li
img_data = requests.get(url, headers=headers).content
with open(paperPath, 'wb') as f:
f.write(img_data)
except :
pass
if os.path.exists(paperPath):
changePaper(paperPath)
else:
if not os.path.exists(MainPath):
os.makedirs(MainPath)
for i in range(100):
if isConnected():
getPaper()
changePaper(paperPath)
break
time.sleep(3)
|