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

    技术2023-06-25  111

    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:当然,你也可以直接在设置中修改壁纸,这样就可以覆盖之前的注册表值。

     

     

     

     

     

     

     

     

     

     

     

     

    Processed: 0.013, SQL: 9