python实现windows壁纸定期更换功能


Posted in Python onJanuary 21, 2019

本文定期更换windows壁纸的python程序,很简单,属于自己写着玩的那种,不提供完美的壁纸切换解决方案。

安装pywin32 extensions

安装python2.7后,然后管理员的方式运行cmd,进入python的scripts目录,我的是

C:\Python27\Scripts
cd /d C:\Python27\Scripts

然后敲入:python pywin32_postinstall.py -install(先确保在环境变量PATH中设置好了python.exe的目录)

C:\Python27\Scripts>python pywin32_postinstall.py -install
Copied pythoncom27.dll to C:\Windows\SysWOW64\pythoncom27.dll
Copied pythoncomloader27.dll to C:\Windows\SysWOW64\pythoncomloader27.dll
Copied pywintypes27.dll to C:\Windows\SysWOW64\pywintypes27.dll
Registered: Python.Interpreter
Registered: Python.Dictionary
Registered: Python
-> Software\Python\PythonCore\2.7\Help[None]=None
-> Software\Python\PythonCore\2.7\Help\Pythonwin Reference[None]='C:\\Python27\\
Lib\\site-packages\\PyWin32.chm'
Pythonwin has been registered in context menu
Shortcut for Pythonwin created
Shortcut to documentation created
The pywin32 extensions were successfully installed.

这样,pywin32就完成了安装。

安装PIL

PIL即是Python Image Lib。
在网上下载PIL: http://www.pythonware.com/products/pil/。我下载的是PIL-1.1.7.win32-py2.7.exe,双击运行即可。
注:如果要使用pip安装,那么命令行中输入的不是pip,而是pip2.7,如下:

C:\Python27\Scripts>pip2.7 install
You must give at least one requirement to install (see "pip help install")

关键函数

下面的函数帮助信息都能在PyWin32.chm中看见。
win32gui.SystemParametersInfo

SystemParametersInfo(Action, Param, WinIni)
Queries or sets system-wide parameters. This function can also update the user profile while setting a parameter.
Parametersundefined
Action : int
 System parameter to query or set, one of the SPI_GET* or SPI_SET* constants
Param=None : object
 depends on action to be taken
WinIni=0 : int
 Flags specifying whether change should be permanent, and if all windows should be notified of change. Combination of SPIF_UPDATEINIFILE, SPIF_SENDCHANGE, SPIF_SENDWININICHANGE

win32api.RegOpenKeyEx

PyHKEY = RegOpenKeyEx(key, subKey, reserved , sam )
Opens the specified key.
Parametersundefined
key : PyHKEY/int
 An already open key, or any one of the following win32con constants:
HKEY_CLASSES_ROOT
HKEY_CURRENT_USER
HKEY_LOCAL_MACHINE
HKEY_USERS
subKey : string
 The name of a key that this method opens. This key must be a subkey of the key identified by the key parameter. If key is one of the predefined keys, subKey may be None. In that case, the handle returned is the same key handle passed in to the function.
reserved=0 : int
 Reserved. Must be zero.
sam=KEY_READ : int
 Specifies an access mask that describes the desired security access for the new key. This parameter can be a combination of the following win32con constants:
KEY_ALL_ACCESS
KEY_CREATE_LINK
KEY_CREATE_SUB_KEY
KEY_ENUMERATE_SUB_KEYS
KEY_EXECUTE
KEY_NOTIFY
KEY_QUERY_VALUE
KEY_READ
KEY_SET_VALUE
KEY_WRITE

程序

接下来就是coding:
set.py:

import Image
import win32api, win32gui, win32con

def setWallPaper(pic):
 # open register
 regKey = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
 win32api.RegSetValueEx(regKey,"WallpaperStyle", 0, win32con.REG_SZ, "2")
 win32api.RegSetValueEx(regKey, "TileWallpaper", 0, win32con.REG_SZ, "0")
 # refresh screen
 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,pic, win32con.SPIF_SENDWININICHANGE)

setWallPaper('E:\\backPics\\character5.jpg')

效果:

python实现windows壁纸定期更换功能

接下来,我们设定每隔一个小时换一次壁纸:

我的图库中只有5张图片,所以显示图片的标志只能在[1 - 5]中循环了。

python实现windows壁纸定期更换功能

import Image
import win32api, win32gui, win32con
import time

def setWallPaper(pic):
 # open register
 regKey = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE)
 win32api.RegSetValueEx(regKey,"WallpaperStyle", 0, win32con.REG_SZ, "2")
 win32api.RegSetValueEx(regKey, "TileWallpaper", 0, win32con.REG_SZ, "0")
 # refresh screen
 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,pic, win32con.SPIF_SENDWININICHANGE)

g_times = 0
while True:
 g_times = g_times+1
 g_times = g_times%5
 picDir = 'E:\\backPics\\character'
 picDir = picDir+str(g_times+1)+'.jpg'
 setWallPaper(picDir)
 time.sleep(60*60)

python实现windows壁纸定期更换功能

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python展示动态规则法用以解决重叠子问题的示例
Apr 02 Python
在阿里云服务器上配置CentOS+Nginx+Python+Flask环境
Jun 18 Python
python类的方法属性与方法属性的动态绑定代码详解
Dec 27 Python
matplotlib subplots 设置总图的标题方法
May 25 Python
python利用requests库进行接口测试的方法详解
Jul 06 Python
Python设计模式之命令模式原理与用法实例分析
Jan 11 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python将数组n等分的实例
Dec 02 Python
Pytorch之view及view_as使用详解
Dec 31 Python
python实现在内存中读写str和二进制数据代码
Apr 24 Python
python3环境搭建过程(利用Anaconda+pycharm)完整版
Aug 19 Python
Python存储读取HDF5文件代码解析
Nov 25 Python
PyQt5+requests实现车票查询工具
Jan 21 #Python
Python设计模式之策略模式实例详解
Jan 21 #Python
Python设计模式之装饰模式实例详解
Jan 21 #Python
python利用Tesseract识别验证码的方法示例
Jan 21 #Python
对python过滤器和lambda函数的用法详解
Jan 21 #Python
利用Python正则表达式过滤敏感词的方法
Jan 21 #Python
Python 实现王者荣耀中的敏感词过滤示例
Jan 21 #Python
You might like
探讨PHP JSON中文乱码的解决方法详解
2013/06/06 PHP
php多维数组去掉重复值示例分享
2014/03/02 PHP
PHP7扩展开发之hello word实现方法详解
2018/01/15 PHP
wordpress自定义标签云与随机获取标签的方法详解
2019/03/22 PHP
JS复制到剪贴板示例代码
2013/10/30 Javascript
javascript制作loading动画效果 loading效果
2014/01/14 Javascript
js使用cookie记录用户名的方法
2015/11/26 Javascript
jquery实现图片列表鼠标移入微动
2016/12/01 Javascript
原生js实现倒计时功能(多种格式调用)
2017/01/12 Javascript
jQuery实现的简单拖动层示例
2017/02/22 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
vue.js中实现登录控制的方法示例
2018/04/23 Javascript
jQuery常见的遍历DOM操作详解
2018/09/05 jQuery
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
nvm、nrm、npm 安装和使用详解(小结)
2019/01/17 Javascript
Ajax请求时无法重定向的问题解决代码详解
2019/06/21 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
vue实现配置全局访问路径头(axios)
2019/11/01 Javascript
python直接获取API传递回来的参数方法
2018/12/17 Python
详解python中__name__的意义以及作用
2019/08/07 Python
Pytorch技巧:DataLoader的collate_fn参数使用详解
2020/01/08 Python
详解Tensorflow不同版本要求与CUDA及CUDNN版本对应关系
2020/08/04 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
萨克斯第五大道的折扣店:Saks Fifth Avenue OFF 5TH
2016/08/25 全球购物
面料业务员岗位职责
2013/12/26 职场文书
出国留学介绍信
2014/01/13 职场文书
高中生期末评语大全
2014/01/28 职场文书
《母亲的恩情》教学反思
2014/02/13 职场文书
2014厂务公开实施方案
2014/02/17 职场文书
老师对学生的评语
2014/04/18 职场文书
验房委托书
2014/08/30 职场文书
英语教师个人工作总结
2015/02/09 职场文书
分析并发编程之LongAdder原理
2021/06/29 Java/Android
MySQL 聚合函数排序
2021/07/16 MySQL
gojs实现蚂蚁线动画效果
2022/02/18 Javascript
分布式Redis Cluster集群搭建与Redis基本用法
2022/02/24 Redis