掃二維碼與項目經(jīng)理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流
今天我們繼續(xù)用Python寫一個小工具,一方面實現(xiàn)壁紙自由,另一方面實現(xiàn)桌面更換自由!

成都創(chuàng)新互聯(lián)公司專注于水磨溝網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供水磨溝營銷型網(wǎng)站建設(shè),水磨溝網(wǎng)站制作、水磨溝網(wǎng)頁設(shè)計、水磨溝網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造水磨溝網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供水磨溝網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
我們這里使用一個開源在 GitHub 上的必應(yīng)壁紙 API 作為壁紙的來源
https://github.com/zenghongtu/bing-wallpaper
圖片
從 readme 當(dāng)中我們可以知道,在 web 應(yīng)用中我只需要使用如下引用即可

實在是太方便了
下面我們來看下該 API 的具體調(diào)用規(guī)則
UHD
1920x1200
1920x1080
1366x768
1280x768
1024x768
800x600
800x480
768x1280
720x1280
640x480
480x800
400x240
320x240
240x320UHD 就是高清,圖片比較大。
我們直接在瀏覽器輸入如下地址
http://bingw.jasonzeng.dev?resolutinotallow=UHD&index=random&w=1000&format=jsonOutput:
{
"startdate": "20220105",
"copyright": "Plate-billed mountain toucan in Bellavista Cloud Forest Reserve, Ecuador (? Tui De Roy/Minden Pictures)",
"urlbase": "/th?id=OHR.MountainToucan_EN-US7120632569",
"title": "A plate-billed mountain toucan",
"url": "https://www.bing.com/th?id=OHR.MountainToucan_EN-US7120632569_UHD.jpg&w=1000"
}可以說是相當(dāng)方便了
也可以直接在 css 當(dāng)中使用
background-image: url(https://bingw.jasonzeng.dev/?index=random);
height: 100%;
background-position: center;
background-repeat: no-repeat;
background-size: cover;下面我們看一下如何通過 Python 進行調(diào)用,也很簡單
import requests
def get_wallpaper():
for i in range(30):
url = "https://bingw.jasonzeng.dev?resolutinotallow=UHD&index=%s" % str(i)
print(url)
res = requests.get(url)
with open("wallpaper/" + "%s.jpg" % str(i),"wb") as w:
w.write(res.content)
if __name__ == "__main__":
get_wallpaper()上面代碼就是獲取前30張壁紙,我們可以修改range的參數(shù),來獲取不同數(shù)量的壁紙
抓取效果如下
圖片
壁紙有了,下面我們就來進行自動切換桌面壁紙,這里使用win32con和win32gui操作桌面壁紙
def windows_img(paper_path):
k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control panel\\Desktop", 0, win32con.KEY_SET_VALUE) # 在注冊表中寫入屬性值
win32api.RegSetValueEx(k, "wapaperStyle", 0, win32con.REG_SZ,"2") # 0 代表桌面居中 2 代表拉伸桌面
win32api.RegSetValueEx(k, "Tilewallpaper", 0, win32con.REG_SZ,"0")
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, paper_path, win32con.SPIF_SENDWININICHANGE) # 刷新桌面然后就是從已經(jīng)下載的壁紙當(dāng)中選擇圖片
def change_wallpaper():
pic_list = os.listdir("wallpaper") # 得到文件路徑下的圖片,列表類型
i=0
print(pic_list)
while True:
pic = "wallpaper"+'\{}'.format(pic_list[i])
abspath_pic = os.path.abspath(pic)
windows_img(abspath_pic)
print(abspath_pic)
time.sleep(1000) # 設(shè)置壁紙更換間隔
i += 1
if i==len(pic_list): # 如果是最后一張圖片,則重新到第一張
i=0
if __name__ == '__main__':
change_wallpaper()這樣一個簡單的自動切換桌面壁紙的工具就完成了,快來嘗試一下吧!

我們在微信上24小時期待你的聲音
解答本文疑問/技術(shù)咨詢/運營咨詢/技術(shù)建議/互聯(lián)網(wǎng)交流