Python实现设置windows桌面壁纸代码分享
每天换一个壁纸,每天好心情。
#-*-coding:UTF-8-*- from__future__importunicode_literals importImage importdatetime importwin32gui,win32con,win32api importre fromHttpWrapperimportSendRequest StoreFolder="c:\\dayImage" defsetWallpaperFromBMP(imagepath): k=win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"ControlPanel\\Desktop",0,win32con.KEY_SET_VALUE) win32api.RegSetValueEx(k,"WallpaperStyle",0,win32con.REG_SZ,"2")#2拉伸适应桌面,0桌面居中 win32api.RegSetValueEx(k,"TileWallpaper",0,win32con.REG_SZ,"0") win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath,1+2) defsetWallPaper(imagePath): """ Givenapathtoanimage,convertittobmpandsetitaswallpaper """ bmpImage=Image.open(imagePath) newPath=StoreFolder+'\\mywallpaper.bmp' bmpImage.save(newPath,"BMP") setWallpaperFromBMP(newPath) defgetPicture(): url="http://photography.nationalgeographic.com/photography/photo-of-the-day/" h=SendRequest(url) ifh.GetSource(): r=re.findall('<divclass="download_link"><ahref="(.*?)">Download',h.GetSource()) ifr: returnSendRequest(r[0]).GetSource() else: print"解析图片地址出错,请检查正则表达式是否正确" returnNone defsetWallpaperOfToday(): img=getPicture() ifimg: path=StoreFolder+"\\%s.jpg"%datetime.date.today() f=open(path,"wb") f.write(img) f.close() setWallPaper(path) setWallpaperOfToday() print'Wallpapersetok!'
其中的httpwrapper是我写的一个http访问的封装:
#!/usr/bin/envpython #-*-coding:UTF-8-*- #------------------------------------------------------------------------------- #Name:对http访问的封装 # #Author:qianlifeng # #Created:10-02-2012 #------------------------------------------------------------------------------- importbase64 importurllib importurllib2 importtime importre importsys classSendRequest: """ 网页请求增强类 SendRequest('http://xxx.com',data=dict,type='POST',auth='base',user='xxx',password='xxx') """ def__init__(self,url,data=None,method='GET',auth=None,user=None,password=None,cookie=None,**header): """ url:请求的url,不能为空 date:需要post的内容,必须是字典 method:Get或者Post,默认为Get auth:'base'或者'cookie' user:用于base认证的用户名 password:用于base认证的密码 cookie:请求附带的cookie,一般用于登录后的认证 其他头信息: e.g.referer='www.sina.com.cn' """ self.url=url self.data=data self.method=method self.auth=auth self.user=user self.password=password self.cookie=cookie if'referer'inheader: self.referer=header[referer] else: self.referer=None if'user-agent'inheader: self.user_agent=header[user-agent] else: ##self.user_agent='Mozilla/5.0(WindowsNT5.1;rv:8.0)Gecko/20100101Firefox/8.0' self.user_agent='Mozilla/5.0(iPhone;U;CPUiPhoneOS3_0likeMacOSX;en-us)AppleWebKit/528.18(KHTML,likeGecko)Version/4.0Mobile/7A341Safari/528.16' self.__SetupRequest() self.__SendRequest() def__SetupRequest(self): ifself.urlisNoneorself.url=='': raise'url不能为空!' #访问方式设置 ifself.method.lower()=='post': self.Req=urllib2.Request(self.url,urllib.urlencode(self.data)) elifself.method.lower()=='get': ifself.data==None: self.Req=urllib2.Request(self.url) else: self.Req=urllib2.Request(self.url+'?'+urllib.urlencode(self.data)) #设置认证信息 ifself.auth=='base': ifself.user==Noneorself.password==None: raise'Theuserorpasswordwasnotgiven!' else: auth_info=base64.encodestring(self.user+':'+self.password).replace('\n','') auth_info='Basic'+auth_info self.Req.add_header("Authorization",auth_info) elifself.auth=='cookie': ifself.cookie==None: raise'Thecookiewasnotgiven!' else: self.Req.add_header("Cookie",self.cookie) ifself.referer: self.Req.add_header('referer',self.referer) ifself.user_agent: self.Req.add_header('user-agent',self.user_agent) def__SendRequest(self): try: self.Res=urllib2.urlopen(self.Req) self.source=self.Res.read() self.code=self.Res.getcode() self.head_dict=self.Res.info().dict self.Res.close() except: print"Error:HttpWrapper=>_SendRequest",sys.exc_info()[1] defGetResponseCode(self): """ 得到服务器返回的状态码(200表示成功,404网页不存在) """ returnself.code defGetSource(self): """ 得到网页源代码,需要解码后在使用 """ if"source"indir(self): returnself.source returnu'' defGetHeaderInfo(self): """ u'得到响应头信息' """ returnself.head_dict defGetCookie(self): """ 得到服务器返回的Cookie,一般用于登录后续操作 """ if'set-cookie'inself.head_dict: returnself.head_dict['set-cookie'] else: returnNone defGetContentType(self): """ 得到返回类型 """ if'content-type'inself.head_dict: returnself.head_dict['content-type'] else: returnNone defGetCharset(self): """ 尝试得到网页的编码 如果得不到返回None """ contentType=self.GetContentType() ifcontentTypeisnotNone: index=contentType.find("charset") ifindex>0: returncontentType[index+8:] returnNone defGetExpiresTime(self): """ 得到网页过期时间 """ if'expires'inself.head_dict: returnself.head_dict['expires'] else: returnNone defGetServerName(self): """ 得到服务器名字 """ if'server'inself.head_dict: returnself.head_dict['server'] else: returnNone __all__=[SendRequest,] if__name__=='__main__': b=SendRequest("http://www.baidu.com") printb.GetSource()