不知道大家是否对每日一成不变的壁纸感到厌倦呢?反正对于我个人来说,如果每天打开电脑映入眼帘的都是不同的画面,那么科研热情都会被充分激发,从而提高自己的劳动生产力。

原来使用的是Deepin系统,自己写了一个爬虫爬取每日必应图片,然后调用系统函数更换桌面,并利用crontab实现每日10点自动运行的功能。

可是linux和windows的word有区别,无法嵌入公式功能,最终还是让我滚回了windows阵营。因此有了将linux下的脚本移植到windows的想法。

1.说干就干,首先是爬取必应的每日图片,代码如下:

import urllib

import requests

import re

import time

def get_image():

url = 'http://cn.bing.com/HPImageArchive.aspx?format=js&idx=0&n=1&nc=1361089515117&FORM=HYLH1'

time = time.strftime("%Y.%m.%d")

content = urllib.urlopen(url).read().decode('utf-8')

reg = re.compile('"url":"(.*?)","urlbase"', re.S)

text = re.findall(reg, content)

img_url = 'http://cn.bing.com' + text[0]

image = requests.get(img_url).content

file_name = 'C:\Users\xxxx\Desktop\screen\%s.bmp'%local

f = open(file_name, 'wb')

f.write(image)

f.close()

return file_name

该函数实现了爬取每日必应图片的功能,然后将图片保存在本地桌面的screen文件夹内,命名格式是当天的年.月.日.bmp,最后将该文件名返回,这个主要是为了下一步设置壁纸用的。需要使用本代码的朋友可以把file_name改成你想保存的位置就行。

2.然后接下来是更换壁纸功能,代码如下:

import win32api,win32con,win32gui

def setWallPaper(pic_path):

key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)

win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2")

win32api.RegSetValueEx(key, "TileWallpaper", 0, win32con.REG_SZ, "0")

win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, pic_path, win32con.SPIF_SENDWININICHANGE)

其中,RegOpenKeyEx用于打开指定的注册表键

RegOpenKeyEx(

HKEY hKey, // 要打开的键值句柄

LPCTSTR lpSubKey, // 要打开的子键名

DWORD ulOptions, // 保留位置0

REGSAM samDesired, // 一个访问掩码,它指定对密钥的期望访问权限。

PHKEY phkResult //指向变量的指针,该变量接收打开的键的句柄。

);

RegSetValueEx函数在注册表项下设置指定值的数据和类型。

LONG RegSetValueEx(

HKEY hKey, // 要设定的键值句柄

LPCTSTR lpValueName, // 要设定的键值名称

DWORD Reserved, // 保留位置0

DWORD dwType, //要设定的键值类型,REG_SZ为普通文本类型

CONST BYTE *lpData, // 要设定的键值数据

DWORD cbData // 要设定的键值数据大小

);

WallpaperStyle是设置用于填充壁纸周围剩余空间的Active Desktop样式,共有三个可以定义的值:0=居中、1=平铺、2=拉伸。

TileWallpaper是设置壁纸的显示方式,共有三个可以定义的值:0=居中、1=平铺、2=拉伸。

实际上,WallpaperStyle和TileWallpaper的键值不需要更换,维持原值即可,如可以把WallpaperStyle的值保持为“2”,TileWallpaper的值保持为“0”。

SystemParametersInfo为设置系统级参数,可以获取和设置数量众多的windows系统参数。这一步将桌面壁纸更换为本地图片,然后通知系统应用该更改。

3.最后是主程序,也就是将两个函数进行组合,代码如下:

if __name__=='__main__':

file_name= get_image ()

setWallPaper(file_name)

上述代码已经可以完成我们想要的效果,但是每次都需要自己手动修改,这肯定是难以忍受的,所以接下来进行window定时任务的设置

1.右键我的电脑,选择管理

2.任务计划程序,创建任务

3.常规界面

4.触发器界面,新建,然后设置如下,点击确认

5.操作界面,点击新建,设置如下,点击确认

解释一下为什么用pythonw.exe而不是python.exe,因为测试时发现python.exe启动时会弹出黑框,执行完毕后自动关闭,而我们只想让其在后台工作,而不是弹出碍眼的黑框,所以利用pythonw.exe。

6.条件界面,将所有的勾都取消

7.设置界面,勾选如果过了计划开始时间,立即启动任务

8.点击确定,然后可以从活动任务中找到刚才我们设置的任务

9.双击之后,会出现下图框

10.点击运行,看看壁纸是否更换

本文实现了一个win10下的自定义美化功能,每日10点定时爬取必应每日图片,然后将其设置为桌面壁纸。涉及到了python网络爬虫知识、re正则知识、win32api知识、windows定时任务知识等。

python修改桌面壁纸_Python设置每日更新windows壁纸相关推荐

  1. python修改桌面壁纸_python定时更换桌面壁纸

    介绍 python基于selenium2中的webdriver以及pywin32模块,定时从指定网站随机下载壁纸,然后更新桌面壁纸的实现. 代码 首先定义一个基于selenium的webdriver的 ...

  2. python修改桌面壁纸_python实现桌面壁纸切换功能

    本文实例为大家分享了python实现桌面壁纸切换功能的具体实现方法,供大家参考,具体内容如下 大体分为两个部分 一.利用爬虫爬取壁纸 第一部分爬取图片url地址并且下载至本地 爬虫针对http://i ...

  3. python修改屏幕分辨率_Python学习第150课——虚拟机切换鼠标状态以及调整桌面分辨率...

    [每天几分钟,从零入门python编程的世界!] 之前我们介绍过虚拟机和真实机之间鼠标的切换,这里再稍重复一次. ●切换虚拟机和真实机的鼠标和键盘捕捉状态 对于不同的电脑,切换的按键可能会有所区别,一 ...

  4. python修改json文件_python修改json文件的value实例方法

    利用python修改json文件的value方法 做工程时遇到需要监听json文件,根据json文件中的key-value值作出相应处理的情形.为此写了修改json文件的python脚本供工程后续调用 ...

  5. 计算机桌面锁定,如何设置电脑锁屏壁纸详细方法

    电脑桌面壁纸自动更换如何设置,电脑桌面壁纸,也成为日常办公更换心情的一种方式,而自动更换壁纸的个性化设置,很多人都不知道该怎么操作.那么下面由学习啦小编为你整理了如何设置电脑锁屏壁纸的详细方法,希望对 ...

  6. python修改字体无效_python修改字体的方法

    python修改字体的方法 发布时间:2020-09-23 09:55:51 来源:亿速云 阅读:95 作者:小新 这篇文章主要介绍python修改字体的方法,文中介绍的非常详细,具有一定的参考价值, ...

  7. python修改密码业务_Python: 修改LDAP密码

    一个简单的用Python修改LDAP密码的程序,测试通过 1. 首先要安装Python的LDAP包,在Ubuntu下面是: apt-get install python-ldap 2. 例子代码: i ...

  8. python 修改文件创建时间_python 两种方法修改文件的创建时间、修改时间、访问时间...

    突如其来想知道一下 python 如何修改文件的属性(创建.修改.访问时间),于是就去网上搜集了可行方案,也就有了这篇博客 方案一 from win32file import CreateFile, ...

  9. python修改电脑桌面壁纸_python设置windows桌面壁纸的方法

    #!/usr/bin/env python # -*- coding: UTF-8 -*- #----------------------------------------------------- ...

最新文章

  1. 【WP8】ResourceDictionary
  2. 环境测试明日最后一天 16万次公交车确保市民出行
  3. python数组切片效率_python – 对numpy数组切片进行采样的最快方法是什么?
  4. apache 目录网站显示indexs
  5. 复习Python DB-API
  6. c语言程序设计基础广西师范大学漓江学院,广西师范大学漓江学院试卷-计算机基础A方案.doc...
  7. 把一个数组的值赋给另一个数组(VB.NET)
  8. MySQL学习十四创建和操纵表
  9. 模板引擎-1-基础概念和是使用小案例
  10. cocostudio
  11. java毫秒_JAVA中怎么获取毫秒和微秒数
  12. 企业如何推动组织变革?
  13. 网络维护汇总经典问题集
  14. java编写平行四边形的代码_Java代码编写四边形
  15. win7计算机摄像头怎么打开,Win7笔记本摄像头怎么打开?Win7笔记本打开摄像头的方法...
  16. 【软考笔记】1. 计算机原理与体系结构
  17. 三星S5终于降临 4月上市开卖的新机盘点
  18. Android设置app显示指定国家语言
  19. 图片的放大ZommJS
  20. 单片机开发框架——TMF任务管理框架(一)

热门文章

  1. 高赞 GitHub 项目盘点:美观的中文排版样式
  2. mybatis注解判断字符串不为空
  3. 发现学校的某系网站被人放了木马,跟踪!
  4. 什么软件可以做职业测试,如何应用MBTI职业性格测试来做职业规划
  5. 聚名:购买in域名有什么优势呢?
  6. 【新星计划-2023】ARP“攻击”与“欺骗”的原理讲解
  7. 思博伦设备修改接口速率的三种方式
  8. 神经元模型简单制作方法,神经元的简单模型图解
  9. IIS开启web目录浏览
  10. 通达OA系统11.2漏洞