用python更换桌面壁纸

windows自带幻灯片壁纸功能,但我发现它有时会导致一个叫"Shell Infrastructure Host"的进程占用大量CPU资源。为了平衡一个阿宅对CPU和二次元的需求,敲点代码代替它。

功能:选择文件夹,定时随机切换壁纸。可以通过托盘图标修改参数或即时切换。

原理是很简单的,只用到一个api,只不过为了方便和美观做了些改进。

用到的第三方库有 easygui, pystray, APScheduler和configparser, 分别是用来提供对话框、托盘图标(算作提供一个操作入口,不过像windows那样在桌面右键菜单里加选项似乎更方便一点)、定时任务调度和参数解析。

不想打包的话可以把py文件后缀改成pyw,这样就没有控制台窗口了。

from easygui import diropenbox,integerbox,boolbox # 简单对话框
from random import randint # 随机数
from os import listdir # 读取文件名
from os.path import join # 合并路径
from PIL.Image import open as openImage # 读取图片
from pystray import MenuItem,Icon # 托盘图标
from ctypes import windll # 设置壁纸的api
from apscheduler.schedulers.background import BackgroundScheduler # 定时任务
from datetime import datetime # 提供now()函数以即时触发任务
from configparser import ConfigParser # 读取参数

class WallpaperChanger:
    def __init__(self):
        self.initConfig() # 初始化参数
        self.setScheduler() # 设置调度器
        self.setIcon() # 设置托盘

    def initConfig(self):
        self.index = 0
        try:
            self.readConfig()
        except:
            self.config = None
            self.path = ''
            self.timeSep = 360
            self.random = False
            self.setConfig(setRandom=False) 
            # 为了方便,默认不开启随机

    def readConfig(self):
        # 读取参数
        print('读取参数...')

        self.config = ConfigParser()
        self.config.read('config.ini')

        self.path = self.config['DEFAULT']['path']
        print('图片路径: %s' 
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值