前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >使用Python做一个切换电脑桌面壁纸的小程序

使用Python做一个切换电脑桌面壁纸的小程序

原创
作者头像
远方的星
修改2021-08-09 10:55:28
1K0
修改2021-08-09 10:55:28
举报
文章被收录于专栏:学习笔记(宝藏)

一、前言

免费的壁纸软件竟有许多广告,影响自己体验?

那就使用python自己制作一个小软件满足自己的需求!

  • 在IDE中运行效果
在这里插入图片描述
在这里插入图片描述
  • 软件实现的效果
在这里插入图片描述
在这里插入图片描述

效果是一样的,只是exe文件更适合小白。

会在文末放软件的下载地址。

二、原理

用到的库有:win32api、win32con、win32gui、pathlib、time、random

其基本原理就是利用电脑注册表、调用 windows 有关API。

==具体作用在代码中体现,附注释==

  • 代码如下:
代码语言:txt
复制
# -*- 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()

三、软件下载地址

下载的文件里面,还附带了一个简单的==软件用户指南==

下载地址传送门: 传送门

如果对你有帮助,还请点个赞赞呀~~~

作者:远方的星 CSDN:https://blog.csdn.net/qq_44921056

本文仅用于交流学习,未经作者允许,禁止转载,更勿做其他用途,违者必究。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、原理
  • 三、软件下载地址
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档