使用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 相关文章推荐
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
Apr 16 Python
python读取oracle函数返回值
Jul 18 Python
浅谈django开发者模式中的autoreload是如何实现的
Aug 18 Python
Python建立Map写Excel表实例解析
Jan 17 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
python爬虫实现中英翻译词典
Jun 25 Python
python实现微信自动回复及批量添加好友功能
Jul 03 Python
PYTHON实现SIGN签名的过程解析
Oct 28 Python
浅谈Python 参数与变量
Jun 20 Python
Ubuntu20.04环境安装tensorflow2的方法步骤
Jan 29 Python
python实现的web监控系统
Apr 27 Python
人工智能深度学习OpenAI baselines的使用方法
May 20 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
两个强悍的php 图像处理类1
2009/06/15 PHP
PHPMailer的主要功能特点和简单使用说明
2014/02/17 PHP
PHP中isset()和unset()函数的用法小结
2014/03/11 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
ThinkPHP控制器详解
2015/07/27 PHP
php求数组全排列,元素所有组合的方法总结
2017/03/14 PHP
Javascript学习笔记9 prototype封装继承
2010/01/11 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
2011/12/12 Javascript
JS实现悬浮移动窗口(悬浮广告)的特效
2013/03/12 Javascript
Nodejs+express+html5 实现拖拽上传
2014/08/08 NodeJs
JavaScript动态添加css样式和script标签
2016/07/19 Javascript
JS版微信6.0分享接口用法分析
2016/10/13 Javascript
Bootstrap的class样式小结
2016/12/01 Javascript
Vue结合原生js实现自定义组件自动生成示例
2017/01/21 Javascript
Bootstrap Table使用整理(二)
2017/06/09 Javascript
详谈for循环里面的break和continue语句
2017/07/20 Javascript
使用vue制作FullPage页面滚动效果
2017/08/21 Javascript
使用Angular自定义字段校验指令的方法示例
2019/02/01 Javascript
Flutter部件内部状态管理小结之实现Vue的v-model功能
2019/06/11 Javascript
微信小程序官方动态自定义底部tabBar的例子
2019/09/04 Javascript
Vue 中使用 typescript的方法详解
2020/02/17 Javascript
VSCode Vue开发推荐插件和VSCode快捷键(小结)
2020/08/08 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
js实现验证码干扰(动态)
2021/02/23 Javascript
详解Python3中setuptools、Pip安装教程
2019/06/18 Python
简单介绍一下pyinstaller打包以及安全性的实现
2020/06/02 Python
用HTML5中的Canvas结合公式绘制粒子运动的教程
2015/05/08 HTML / CSS
澳大利亚手表品牌:Time IV Change
2018/10/06 全球购物
会计求职自荐信
2014/06/20 职场文书
电子商务专业毕业生自荐书
2014/06/22 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
论文答谢词
2015/01/20 职场文书
公司副总经理岗位职责
2015/04/08 职场文书
开会迟到检讨书范文
2015/05/06 职场文书
2015年司机年终工作总结
2015/05/14 职场文书
小学语文的各类谚语(70首)
2019/08/15 职场文书