关闭

python 更换windows壁纸(简单)

标签: pythonwindows
237人阅读 评论(0) 收藏 举报
分类:

本文定期更换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')

效果:
这里写图片描述

接下来,我们设定每隔一个小时换一次壁纸
我的图库中只有5张图片,所以显示图片的标志只能在[1 - 5]中循环了。
这里写图片描述

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)

这里写图片描述

2
1
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

用python设置windows系统桌面背景(壁纸)的代码

下面的代码已经实现了把一张图片设置为壁纸的功能,我也加了比较详细的注释, 稍微改造一下就可以实现播放文件夹中所有图片, 下载设置必应图片等一些功能咯 PIL官方下载地址(注:PIL貌似对python...
  • abxialiang
  • abxialiang
  • 2015-01-15 22:32
  • 2554

用python实现下载必应壁纸并自动更换壁纸的功能

用python实现下载必应壁纸并自动更换壁纸的功能 动机 Windows下的必应桌面(Bing Desktop)提供了质量非常高的壁纸,但是集成了太多无用的功能,同时还有一些让人恼火的bu...
  • huangbo10
  • huangbo10
  • 2014-09-21 00:52
  • 2881

Windows 10推送的锁屏壁纸保存方法

工作中使用的系统为Windows 10,锁屏时显示的壁纸很漂亮,并且每天都会更新,有几张特别喜欢,于是就想这些壁纸到底保存在哪里呢?经过一番摸索,终于搞明白了,简单记录一下。
  • u013085897
  • u013085897
  • 2017-01-17 20:13
  • 3361

怎样简单保存下载 Windows 10 随机聚焦锁屏壁纸?

首先,确保你的 Windows 10 已经开启了“聚焦”壁纸功能,桌面右键 > 个性化 > 锁屏界面 > “背景”选项下选择 “Windows 聚焦”即为开启,之后系统将会自动联网更换锁屏壁纸。不...
  • qq_26941173
  • qq_26941173
  • 2016-04-15 21:54
  • 815

python实现自动保存windows聚焦壁纸

我在设置里面将壁纸设置成了windows聚焦模式,发现每天更换的图片挺好看的,想保存下来,网上搜了一下壁纸在本地的地址:C:\Users\用户名\AppData\Local\Packages\Micr...
  • sinat_22659021
  • sinat_22659021
  • 2017-11-30 22:15
  • 42

python实现桌面壁纸自动更换(附源码)

  • 2017-07-25 17:00
  • 7.77MB
  • 下载

壁纸更换软件 for Windows 7 Starter Edition

  • 2010-07-18 21:56
  • 17KB
  • 下载

Python_必应每日壁纸更换(Python2.7)

Python_必应每日壁纸更换(Python2.7) 因为必应搜索每天会更换一张壁纸,于是决定每天下载一张壁纸来进行更换 现已完美更换壁纸 环境: 上次使用的python3 这次使用 p...
  • qq_34260368
  • qq_34260368
  • 2017-10-22 19:48
  • 47

Windows下libffm在python中的简单使用

  • 2017-05-17 10:18
  • 261KB
  • 下载

利用Powershell每天自动设置提取Win10的windows聚焦图片(Spotlight)作为桌面壁纸的方法

微软在 Windows 10 上新增了一项功能 Windows 聚焦 (Windows Spotlight),它会自动随机下载并更换锁屏界面的壁纸 (Lockscreen),让你每次打开电脑都有不一样...
  • Anymake_ren
  • Anymake_ren
  • 2016-04-11 21:39
  • 8843
    个人资料
    • 访问:327282次
    • 积分:8806
    • 等级:
    • 排名:第2521名
    • 原创:574篇
    • 转载:13篇
    • 译文:0篇
    • 评论:36条
    我的链接
    最新评论