主要實現:從bing下載圖片並保存到本地;然後稍加處理將該圖片設置爲桌面壁紙。
# -*- coding: cp936 -*-
import urllib
import os
import time
import Image
import win32api,win32con,win32gui
import re
def getPicFromBing():
url='http://cn.bing.com'
urlFile=urllib.urlopen(url)
data=urlFile.read()
urlFile.close()
data=data.decode('utf-8')
#找出下載地址imgURL
pre = 'g_img={url:\''
index1 = data.find(pre) + len(pre)
index2 = data.find('\'', index1)
imgUrl = data[index1 : index2]
print imgUrl
#聲明下載存儲路徑imgName
imgName=time.strftime('%Y-%m-%d',time.localtime(time.time()))+u'.jpg'
urllib.urlretrieve(imgUrl,imgName)
print 'Download complete'
return imgName
def set_wallpaper_from_bmp(bmp_path):
#打開指定註冊表路徑
reg_key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
#最後的參數:2拉伸,0居中,6適應,10填充,0平鋪
win32api.RegSetValueEx(reg_key, "WallpaperStyle", 0, win32con.REG_SZ, "2")
#最後的參數:1表示平鋪,拉伸居中等都是0
win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")
#刷新桌面
win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,bmp_path, win32con.SPIF_SENDWININICHANGE)
def set_wallpaper(img_path):
#把圖片格式統一轉換成bmp格式,並放在源圖片的同一目錄
img_dir = os.path.dirname(img_path)
bmpImage = Image.open(img_path)
new_bmp_path = os.path.join(img_dir,'wallpaper.bmp')
bmpImage.save(new_bmp_path, "BMP")
set_wallpaper_from_bmp(new_bmp_path)
if __name__ == '__main__':
img_path=getPicFromBing();
set_wallpaper(img_path);