使用Python脚本将Bing的每日图片作为桌面的教程


Posted in Python onMay 04, 2015

微软最近出了个 必应bing 缤纷桌面,使用下来还是不错,可以每天更换Bing首页的北京作为壁纸,但是该软件有个不好的地方是,安装后桌面上会有一个搜索框出现,很是烦人,而且不能关掉。于是出于技术考虑,想到了使用Python来实现这个功能。

正如很多介绍Python书中那样,Python是中胶水语言,用在哪里都是可行的。想要使用Python给桌面设置背景只需要下个模块安装即可:

http://sourceforge.net/projects/pywin32/

代码非常简单,参考了网上一些其他人写了代码,具体代码如下:
 

# -*- coding: utf-8 -*-
 
import urllib,time,os,Image,win32gui,win32con,win32api
 
class StealBing:
 
 def __init__(self):
  self.content = urllib.urlopen('http://cn.bing.com/').read()
  self.bgImageUrl = ''
  self.localFileName = ''
  self.localBMPFileName = ''
 
 def parserImageURL(self):
  tempStr = self.content[self.content.index('g_img={url:')+12:]
  self.bgImageUrl = tempStr[:tempStr.index('id:\'bgDiv\'')-2]
 
 def createLocalFileName(self):
  randomStr = time.strftime("%Y%m%d", time.localtime())
  self.localFileName = 'D:/Bing/' + randomStr + '.jpg'
  self.localBMPFileName = 'D:/Bing/' + randomStr + '.bmp'
 
 def downloadImage(self):
  if self.bgImageUrl == '':
   self.parserImageURL()
  if self.localFileName == '':
   self.createLocalFileName()
  urllib.urlretrieve(self.bgImageUrl, self.localFileName)
 
 def updateBGImage(self):
  img = Image.open(self.localFileName)
  img.save(self.localBMPFileName)
  os.remove(self.localFileName)
  k = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\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, self.localBMPFileName , 1+2)
 
if __name__ == '__main__':
 stealBing = StealBing()
 stealBing.downloadImage()
 stealBing.updateBGImage()
Python 相关文章推荐
Python实现屏幕截图的代码及函数详解
Oct 01 Python
python虚拟环境virualenv的安装与使用
Dec 18 Python
python用装饰器自动注册Tornado路由详解
Feb 14 Python
python实现读Excel写入.txt的方法
Apr 29 Python
python使用代理ip访问网站的实例
May 07 Python
python 读取视频,处理后,实时计算帧数fps的方法
Jul 10 Python
为什么Python中没有"a++"这种写法
Nov 27 Python
在python中,使用scatter绘制散点图的实例
Jul 03 Python
Python namedtuple命名元组实现过程解析
Jan 08 Python
python with (as)语句实例详解
Feb 04 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
Jul 01 Python
pandas将list数据拆分成行或列的实现
Dec 13 Python
详解Python的Django框架中的通用视图
May 04 #Python
在Python中使用matplotlib模块绘制数据图的示例
May 04 #Python
使用Python生成url短链接的方法
May 04 #Python
python实现bucket排序算法实例分析
May 04 #Python
python在指定目录下查找gif文件的方法
May 04 #Python
python创建关联数组(字典)的方法
May 04 #Python
python对html代码进行escape编码的方法
May 04 #Python
You might like
MySQL授权问题总结
2007/05/06 PHP
浅析php fwrite写入txt文件的时候用 \r\n不能换行的问题
2013/08/06 PHP
php mysql procedure实现获取多个结果集的方法【基于thinkPHP】
2016/11/09 PHP
关于setInterval、setTimeout在jQuery中的使用注意事项
2011/09/28 Javascript
js如何取消事件冒泡
2013/09/23 Javascript
IE下window.onresize 多次调用与死循环bug处理方法介绍
2013/11/12 Javascript
Js Jquery创建一个弹出层可加载一个页面
2014/05/08 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
14款经典网页图片和文字特效的jQuery插件-前端开发必备
2015/08/25 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
JS/HTML5游戏常用算法之路径搜索算法 随机迷宫算法详解【普里姆算法】
2018/12/13 Javascript
详解如何搭建mpvue框架搭配vant组件库的小程序项目
2019/05/16 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
扫微信小程序码实现网站登陆实现解析
2019/08/20 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
从零开始用webpack构建一个vue3.0项目工程的实现
2020/09/24 Javascript
DWR内存兼容及无法调用问题解决方案
2020/10/16 Javascript
python和shell变量互相传递的几种方法
2013/11/20 Python
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
windows下python安装paramiko模块和pycrypto模块(简单三步)
2017/07/06 Python
Python实现随机选择元素功能
2017/09/14 Python
Python中存取文件的4种不同操作
2018/07/02 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
2019/07/12 Python
解决Python二维数组赋值问题
2019/11/28 Python
opencv-python 提取sift特征并匹配的实例
2019/12/09 Python
python关闭占用端口方式
2019/12/17 Python
Python 利用OpenCV给照片换底色的示例代码
2020/08/03 Python
Python2及Python3如何实现兼容切换
2020/09/01 Python
Python中实现一行拆多行和多行并一行的示例代码
2020/09/06 Python
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
祖国在我心中的演讲稿
2014/05/04 职场文书
世界红十字日活动总结
2015/02/10 职场文书
煤矿施工安全协议书
2016/03/22 职场文书
vue ant design 封装弹窗表单的使用
2022/06/01 Vue.js
Nginx安装配置详解
2022/06/25 Servers