每日设置Bing首页图片为壁纸
看腻了每日一成不变的壁纸,希望每天都能有个未知的壁纸可以期待。
所以我打算做一个小工具来实现此目的。
于是乎便有了本文。
本文大代码是从几个地方搜索,然后组合的。
我所做的工作就是:
1. 将网上的Python3的代码修改成Python2的;
2. 改变下载的Bing首页图片的命名规则,防止图片大量重复和日后查找;
3. 将下载壁纸和设置壁纸的代码组合在一起
4. 用Py2exe打包成可执行文件
5. 将可执行文件的快捷方式设置为开机启动
结果:每一次开机,程序都会自动将Bing首页的图片下载下来并设置为壁纸。
推广:可以自己建立一个图片文件夹存放收藏的图片,定时更换图片文件夹中的图片为壁纸。
其中设置开机自动运行是将程序的快捷键方式放到 “开始” 目录下的 ”启动“文件夹内。
一台windows往往不止有一个这也的 “启动文件夹”,因很多电脑不止有一个用户。
...\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\
或者
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp\
在设置壁纸部分,用到了Image模块。这是它的下载地址,
http://www.pythonware.com/products/pil/
下载好后只需要点击exe即可安装Image。
完整代码:
# -*- coding: utf-8 -*- import urllib
import os
import time url = 'http://cn.bing.com'
urlFile = urllib.urlopen(url)
data = urlFile.read()
urlFile.close()
data = data.decode('utf-8',errors='ignore') pre = u'g_img={url: \"'
urlstart = data.find(pre) + len(pre)
urlend = data.find(u'\",id:', urlstart)
imgUrl = data[urlstart : urlend] preImg = u'<a id=\"sh_cp\" class=\"sc_light\" title=\"'
imgnameStart = data.find(preImg) + len(preImg)
imgnameend = data.find('\" alt=\"', imgnameStart)
#print("start:"+str(imgnameStart))
#print("end:"+str(imgnameend))
imgName = data[imgnameStart : imgnameend]
#imgName=imgName.replace("©".encode("utf-8"),"")
imgName=imgName.replace("/"," ") now_time = [ i for i in time.localtime()] # 获取时间
# 以下载时间为文件名
tmp_name = str(now_time[0]) + str(now_time[1]) + str(now_time[2])
imgName="F:\\BingImageForWallpaper\\" + tmp_name +u'.jpg' print("imgUrl: " + imgUrl)
print("imgName: " + imgName ) print('Download image......')
urllib.urlretrieve(imgUrl, imgName)
print('Download complete')
#os.startfile(imgName) ################################################################
## 以上为下载Bing首页图片部分,以下为设置壁纸部分 ##
################################################################ import Image
import win32api,win32con,win32gui
import re,os 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__':
set_wallpaper(imgName)
import sys
sys.exit()
2016-11-30
每日设置Bing首页图片为壁纸的更多相关文章
- 编写C#程序,自动将bing首页图片设为壁纸
任务目标: 1,获取图片 2,设为壁纸 3,自动化 环境需求: .NET Framework 4.0+, Visual Studio 2017 ==================== 1,获取图片 ...
- 用c#每日更换“必应背景图片”为“桌面壁纸”
必应每天都会更换背景图片,都非常漂亮,有的时候还十分惊艳,同时还会根据每个地区的特色不同应用不同的图片. 下面用c#抓取必应每天的背景图片,并实现桌面壁纸的每天自动切换 实现思路 1.通过获取&quo ...
- 获取bing首页的每日一图
从必应(bing)首页抓取他的每日一图 以前上学时,曾经用python写过一个每天抓取bing每日一图的小工具. 现在想用java来重构一下. 抓取图片的思路 首先获取网页源码 从网页源码中,我们可以 ...
- 在GNU/Linux下设置与定时更换桌面壁纸
1 简介 在电脑桌面设置一组可以定时更换的壁纸已经不是什么新奇的功能了.比如,Windows 7.KDE桌面环境都可以实现这样的效果.可是,自己目前使用的Debian系统并未安装KDE.GNOME这样 ...
- js实现淘宝首页图片轮播效果
原文:http://ce.sysu.edu.cn/hope2008/Education/ShowArticle.asp?ArticleID=10585 <!DOCTYPE html> &l ...
- Win10家庭版设置桌面右键更换桌面壁纸
Win10家庭版设置桌面右键更换桌面壁纸.. ------------------------- 这是设置之前的右键快捷菜单.. ------------------------- 开始设置:右键桌面 ...
- JS兼容所有浏览器的一段加入收藏代码,设置为首页
<script language="javascript" type="text/javascript"> function addfavorite ...
- 记录一下bing的图片 - 升级版冰糖葫芦
记录一下bing的图片 - 升级版冰糖葫芦
- 设置按钮背景图片(HTML-CSS)
很多人提交表单时都喜欢用一个图片来作为提交按钮,大多数人可能用JS去操作表单的提交,即当用户点击这个图片时响应一个JS来提交表单.其实还有一种方法,就是直接设置SUBMIT按钮的图片背景.设置它的图片 ...
随机推荐
- 【AR实验室】mulberryAR : ORBSLAM2+VVSION
本文转载请注明出处 —— polobymulberry-博客园 0x00 - 前言 mulberryAR是我业余时间弄的一个AR引擎,目前主要支持单目视觉SLAM+3D渲染,并且支持iOS端,但是该引 ...
- react组件的生命周期
写在前面: 阅读了多遍文章之后,自己总结了一个.一遍加强记忆,和日后回顾. 一.实例化(初始化) var Button = React.createClass({ getInitialState: f ...
- 理解CSS视觉格式化
前面的话 CSS视觉格式化这个词可能比较陌生,但说起盒模型可能就恍然大悟了.实际上,盒模型只是CSS视觉格式化的一部分.视觉格式化分为块级和行内两种处理方式.理解视觉格式化,可以确定得到的效果是应 ...
- 几个比较”有意思“的JS脚本
1.获取内网和公网真实IP地址(引用地址) <!DOCTYPE html> <html> <head> <meta http-equiv="Cont ...
- 【微框架】之一:从零开始,轻松搞定SpringCloud微框架系列--开山篇(spring boot 小demo)
Spring顶级框架有众多,那么接下的篇幅,我将重点讲解SpringCloud微框架的实现 Spring 顶级项目,包含众多,我们重点学习一下,SpringCloud项目以及SpringBoot项目 ...
- javaScript之BOM操作1
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 常用 meta 整理
<!-- 针对手持设备优化,主要是针对一些老的不识别viewport的浏览器,比如黑莓 --> <meta name="HandheldFriendly" con ...
- Spark的StandAlone模式原理和安装、Spark-on-YARN的理解
Spark是一个内存迭代式运算框架,通过RDD来描述数据从哪里来,数据用那个算子计算,计算完的数据保存到哪里,RDD之间的依赖关系.他只是一个运算框架,和storm一样只做运算,不做存储. Spark ...
- DB2重启数据库实例
DB2重启数据库实例时,有时停止实例会失败,此时需要先确认没有应用链接数据库,然后再关闭数据库实例,并重新启动. 1.查看是否有活动的链接 命令:db2 list applications for d ...
- CentOS:ECDSA host key "ip地址" for has changed and you have requested strict checking(转)
原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...