Python随笔:用Python进行切换Windows10桌面壁纸及其取消问题

1.切换代码

import os,win32gui,win32con,win32api

def set_wallpaper(img_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, "10")
    # 最后的参数:1表示平铺,拉伸居中等都是0
    win32api.RegSetValueEx(reg_key, "TileWallpaper", 0, win32con.REG_SZ, "0")
    # 刷新桌面与设置壁纸
    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, img_path, win32con.SPIF_SENDWININICHANGE)
    
#注意路径书写问题
img_path = "D:/aatest/4de3f211e91dda5e1de482e2b14835bd.jpg"

#切换时要检查一下图片是否存在
if os.path.exists(img_path):
    set_wallpaper(img_path)
else:
    print('图片不存在,切换失败')

说明一下我的测试运行环境:windows10

                                             python37

                                             需要的python库:os, pywin32

代码说明:用Python切换桌面壁纸有几种方法,我采用的的最常用,最稳定的方法。用pywin32的API修改注册表来切换壁纸。

想了解更多,可以看一下这篇博文:https://blog.csdn.net/aricover/article/details/78684894

 

2.python取消切换壁纸的问题

在网上很少有谈及,在用python进行了切换壁纸后,如果不想切换了怎么办(对应与我上面的切换方法,其他方法没有研究)。我在这说一下我的经历,供学习之用。

首先我们先了解一下用上面代码切换壁纸前后,系统注册表和Windows壁纸的缓存文件夹 的变化

打开注册表,win+R快捷键打开注册表,按如下图的路径找到我们的壁纸注册表位置

2.1 切换前注册表:

在 Desktop目录下的WallPaper是壁纸的注册表关键字,请注意他右边的壁纸路径,待会和切换后的比较。

切换后注册表:

可以看出上面代码运行后并没有改变注册表。下面我们再看看壁纸缓存文件夹。

2.2 切换前壁纸缓存文件夹

注:要把下图的隐藏的项目打钩才可以找的

在上图可以看出在文件夹里有我们当前壁纸的备份缓存。

切换后文件夹:

由上图可以看出,文件夹的图片已经变成切换后的壁纸文件了。

 

2.3 结论和取消问题:

用上面代码进行切换壁纸并没有直接改变壁纸注册表的值,所以可以说不用进行取消操作。

方式1:在你关机再开电脑时会变回切换前的状态,也就是根据壁纸注册表的值来设置壁纸。

方式2:当然,你也可以直接在设置中修改壁纸,这样就可以覆盖之前的注册表值。

 

 

 

 

 

 

 

 

 

 

 

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值