Python3如何实现Win10桌面自动切换


Posted in Python onAugust 11, 2020

得空写了个自动切换桌面背景图片的小程序。再不写python就要扔键盘了,对vue还有那么一点好感,天天php真是有够烦。

准备工作

准备个文件夹放在桌面上,平时看到什么高清好图就拽进去。

Python3如何实现Win10桌面自动切换

运行脚本

脚本如下:

#!/usr/bin/python
import ctypes
import osimport random
import functools

import schedule

index = 0


def change_background(picture_path: str) -> None:
  ctypes.windll.user32.SystemParametersInfoW(20, 0, picture_path, 3)


def get_pictures(dir_path: str) -> list:
  return [os.path.join(root, name)
      for root, dirs, files in os.walk(dir_path, topdown=False)
      for name in files
      if name.endswith('jpg') or name.endswith('png')]


def log(text):
  def decorator(f):
    @functools.wraps(f)
    def wrap(*args, **kwargs):
      p = f(*args, **kwargs)
      print(f'{text}: {p}')
      return p

    return wrap

  return decorator


@log(f'DESKTOP_BG_IMG switch to')
def change_background_job(dir_path) -> None:
  if dir_path.__class__.__name__ == 'list':
    dir_path = dir_path[0]
  pictures = get_pictures(dir_path)
  index = random.randint(0, len(pictures) - 1)
  change_background(pictures[index])
  return pictures[index]


def scheduler(job: staticmethod, interval, arg_num, *args) -> None:
  if arg_num <= 0:
    schedule.every(interval).seconds.do(job)
  else:
    schedule.every(interval).seconds.do(job, [args[i] for i in range(arg_num)])
  while True:
    schedule.run_pending()


if __name__ == '__main__':
  scheduler(change_background_job, 10, 1, r'C:\Users\zenkilan\Desktop\test_pictures', 'hello', 'world')

函数scheduler接受4个以上参数:

1. 定时执行的job函数对象

2. 执行时间间隔,单位:秒

3. 函数job需要几个参数

4~*. 函数job的参数们

还可以进一步扩充,比如在get_pictures函数里面再加一些rules,低于多少mb的照片就不能作为桌面背景图之类的,接着加or就ok了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
零基础写python爬虫之抓取百度贴吧并存储到本地txt文件改进版
Nov 06 Python
Python中使用第三方库xlrd来写入Excel文件示例
Apr 05 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
解读Python编程中的命名空间与作用域
Oct 16 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
Puppeteer使用示例详解
Jun 20 Python
浅谈Python中os模块及shutil模块的常规操作
Apr 03 Python
Python Switch Case三种实现方法代码实例
Jun 18 Python
简单了解python关键字global nonlocal区别
Sep 21 Python
Python爬虫之Selenium鼠标事件的实现
Dec 04 Python
基于PyInstaller各参数的含义说明
Mar 04 Python
看看如何用Python绘制小米新版天价logo
Apr 20 Python
Python3如何使用多线程升程序运行速度
Aug 11 #Python
使用Python pip怎么升级pip
Aug 11 #Python
python中通过pip安装库文件时出现“EnvironmentError: [WinError 5] 拒绝访问”的问题及解决方案
Aug 11 #Python
Python 代码调试技巧示例代码
Aug 11 #Python
python+pygame实现坦克大战小游戏的示例代码(可以自定义子弹速度)
Aug 11 #Python
Python函数递归调用实现原理实例解析
Aug 11 #Python
零基础学python应该从哪里入手
Aug 11 #Python
You might like
PHP正则的Unknown Modifier错误解决方法
2010/03/02 PHP
给WordPress的编辑后台添加提示框的代码实例分享
2015/12/25 PHP
php实现支付宝当面付(扫码支付)功能
2018/05/30 PHP
在 IE 中调用 javascript 打开 Excel 表
2006/12/21 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
JS高级笔记
2011/07/13 Javascript
javascript跨域原因以及解决方案分享
2015/04/08 Javascript
javascript实现动态改变层大小的方法
2015/05/14 Javascript
jQuery DateTimePicker 日期和时间插件示例
2017/01/22 Javascript
使用JS 插件qrcode.js生成二维码功能
2017/02/20 Javascript
使用JS模拟锚点跳转的实例
2018/02/01 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
微信小程序代码上传、审核发布小程序
2019/05/18 Javascript
前端路由&amp;webpack基础配置详解
2019/06/10 Javascript
vue中的v-if和v-show的区别详解
2019/09/01 Javascript
JS将指定的某个字符全部转换为其他字符实例代码
2020/10/13 Javascript
JavaScript实现10秒后再次获取验证码
2020/12/02 Javascript
Python对象与引用的介绍
2019/01/24 Python
Python pip安装第三方库实现过程解析
2020/07/09 Python
简单整理HTML5的基本特性和语法
2016/02/18 HTML / CSS
Auchan Direct波兰:欧尚在线杂货店
2016/10/19 全球购物
TripAdvisor西班牙官方网站:全球领先的旅游网站
2018/01/10 全球购物
巴西购物网站:Estrela10
2018/12/13 全球购物
C#面试问题
2016/07/29 面试题
业务主管岗位职责
2013/11/20 职场文书
超市5.1促销活动
2014/01/15 职场文书
简历中的自我评价范文
2014/02/05 职场文书
北体毕业生求职信
2014/02/28 职场文书
药学职务聘任书
2014/03/29 职场文书
入党积极分子学习优秀共产党员先进事迹思想汇报
2014/09/13 职场文书
网络营销计划书
2015/01/17 职场文书
商务英语求职信范文
2015/03/19 职场文书
2015年新农合工作总结
2015/03/30 职场文书
运动会开幕式通讯稿
2015/07/18 职场文书
大学生十八大感想
2015/08/11 职场文书
springmvc直接不经过controller访问WEB-INF中的页面问题
2022/02/24 Java/Android