一、前言
免费的壁纸软件竟有许多广告,影响自己体验?
那就使用python自己制作一个小软件满足自己的需求!
- 在IDE中运行效果
- 软件实现的效果
网络异常,图片无法展示
|
效果是一样的,只是exe文件更适合小白。
会在文末放软件的下载地址。
二、原理
用到的库有:win32api、win32con、win32gui、pathlib、time、random
其基本原理就是利用电脑注册表、调用 windows 有关API。
具体作用在代码中体现,附注释
- 代码如下:
# -*- coding: UTF-8 -*- ''' # @Time: 2021/8/4 13:14 # @Author: 远方的星 # @CSDN: https://blog.csdn.net/qq_44921056 ''' import time import random import win32api import win32con import win32gui from pathlib import Path def Windows_initialization(paper_path): # 打开注册表 key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER, "Control panel\\Desktop", 0, win32con.KEY_SET_VALUE) # 在注册表中写入属性值 win32api.RegSetValueEx(key, "wapaperStyle", 0, win32con.REG_SZ, "2") # 经过多次调试,发现参数“2”和“0”这样搭配效果最好 win32api.RegSetValueEx(key, "Tilewallpaper", 0, win32con.REG_SZ, "0") # 刷新桌面 win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, paper_path, win32con.SPIF_SENDWININICHANGE) def paper_switch(): time_switch = float(input("请输入壁纸更换时间的间隔(单位:min ):")) time_switch = time_switch * 60 path = input("请输入你保存壁纸的路径(如:D:\图片):") choice = input("请选择壁纸切换规律(O代表固定切换,R代表随机切换):") key = input("输入Y即可运行,关闭控制台即可停止壁纸切换,你准备好了吗?") p = Path(r'{}'.format(path)) img_s = list(p.glob('**/*.jpg')) wallpaper = list() # 定义一个空列表放壁纸 if choice == 'O': # 固定切换 for img in img_s: wallpaper.append(str(img)) elif choice == 'R': # 随机切换 for img in img_s: wallpaper.append(str(img)) random.shuffle(wallpaper) num = 0 # 用于控制壁纸更换 while key == 'Y': Windows_initialization(wallpaper[num]) time.sleep(time_switch) # 控制壁纸切换时间 num += 1 if num == len(wallpaper): # 用于循环,即壁纸到了最后一张,则切换到第1张 num = 0 def main(): paper_switch() if __name__ == '__main__': main()
三、软件下载地址
下载的文件里面,还附带了一个简单的软件用户指南
下载地址传送门: 传送门