吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8590|回复: 49
收起左侧

[原创工具] 开机获取bing每日图片并设为桌面壁纸【含源代码】

  [复制链接]
Megix 发表于 2021-2-26 20:49
本帖最后由 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)

屏幕截图 2021-02-26 204420.png

bing_wallpaper.zip

995 Bytes, 下载次数: 47, 下载积分: 吾爱币 -2 CB

免费评分

参与人数 9吾爱币 +13 热心值 +9 收起 理由
wangzhenuen + 1 + 1 热心回复!
dna1111 + 1 + 1 我很赞同!
Schroedinger + 1 + 1 这几天也在考虑,不过一直调用的api,看了您的代码终于知道不用api的方法了.
bzhjl + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
shannjie + 1 + 1 谢谢@Thanks!
kyant + 1 鼓励转贴优秀软件安全工具和文档!
光之月见草 + 1 我很赞同!
xdd233 + 1 + 1 我很赞同!
风之暇想 + 7 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

斯达康都胡 发表于 2021-2-28 16:26
立刻 发表于 2021-2-27 08:52
能在不关机的情况下,在后台每日更换壁纸吗?

https://www.microsoft.com/en-us/bing/bing-wallpaper?rtc=1这个,官方中文,可以开机自启

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
立刻 + 1 + 1 多谢!

查看全部评分

smile1341 发表于 2021-4-15 10:28
立刻 发表于 2021-2-27 08:52
能在不关机的情况下,在后台每日更换壁纸吗?

在microsoft store中有一个app叫每日壁纸精选,我用了2年了,每天更换壁纸和屏保,都是bing高清壁纸,你可以去试一下。
斯达康都胡 发表于 2021-2-26 22:22
nowwish 发表于 2021-2-26 22:00
bing的壁纸还是不错的
立刻 发表于 2021-2-27 08:51
斯达康都胡 发表于 2021-2-26 22:22
bing不是有个自动更换壁纸的软件吗

请问是什么软件?
立刻 发表于 2021-2-27 08:52
能在不关机的情况下,在后台每日更换壁纸吗?
zsg245821712 发表于 2021-2-27 08:55
感谢分享了
 楼主| Megix 发表于 2021-2-27 09:45
立刻 发表于 2021-2-27 08:52
能在不关机的情况下,在后台每日更换壁纸吗?

这个不可以,因为脚本只在开机后运行后就自动结束(这样节约内存)。如果想在已经开机的时候更换,可以直接双击脚本。
立刻 发表于 2021-2-28 08:14
不行啊,一运行就黑屏。
 楼主| Megix 发表于 2021-2-28 12:30
立刻 发表于 2021-2-28 08:14
不行啊,一运行就黑屏。

exe版本比较旧,所以开机后会出现黑色壁纸,但是在源代码中已经修复了,你可以下载源代码版本。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-28 13:43

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表