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 当前全局变量和入口参数的所有属性
Jul 01 Python
Python对两个有序列表进行合并和排序的例子
Jun 13 Python
python方向键控制上下左右代码
Jan 20 Python
完美解决在oj中Python的循环输入问题
Jun 25 Python
使用Python机器学习降低静态日志噪声
Sep 29 Python
解决Python内层for循环如何break出外层的循环的问题
Jun 24 Python
实例详解Python模块decimal
Jun 26 Python
关于pytorch中网络loss传播和参数更新的理解
Aug 20 Python
Linux下升级安装python3.8并配置pip及yum的教程
Jan 02 Python
pycharm安装及如何导入numpy
Apr 03 Python
python switch 实现多分支选择功能
Dec 21 Python
Opencv实现二维直方图的计算及绘制
Jul 21 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获取汉字的拼音(全部与首字母)
2013/06/27 PHP
浅谈php中include文件变量作用域
2015/06/18 PHP
zend framework重定向方法小结
2016/05/28 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
Yii2.0预定义的别名功能小结
2016/07/04 PHP
PHP检测接口Traversable用法详解
2017/12/29 PHP
php实现快速对二维数组某一列进行组装的方法小结
2019/12/04 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
重载toString实现JS HashMap分析
2011/03/13 Javascript
修复IE9&amp;safari 的sort方法
2011/10/21 Javascript
jQuery基本选择器选择元素使用介绍
2013/04/18 Javascript
jQuery页面加载初始化常用的三种方法
2014/06/04 Javascript
javascript引用赋值(地址传值)用法实例
2015/01/13 Javascript
JavaScript中如何使用cookie实现记住密码功能及cookie相关函数介绍
2016/11/10 Javascript
详谈jQuery中的一些正则匹配表达式
2017/03/08 Javascript
VUE中v-model和v-for指令详解
2017/06/23 Javascript
vue2.0开发入门笔记之.vue文件的生成和使用
2017/09/19 Javascript
记一次用vue做的活动页的方法步骤
2019/04/11 Javascript
详解实现一个通用的“划词高亮”在线笔记功能
2019/04/23 Javascript
Python使用QQ邮箱发送Email的方法实例
2017/02/09 Python
Python 常用的安装Module方式汇总
2017/05/06 Python
浅谈flask截获所有访问及before/after_request修饰器
2018/01/18 Python
详解用python实现基本的学生管理系统(文件存储版)(python3)
2019/04/25 Python
Django组件content-type使用方法详解
2019/07/19 Python
应用OpenCV和Python进行SIFT算法的实现详解
2019/08/21 Python
matplotlib运行时配置(Runtime Configuration,rc)参数rcParams解析
2021/01/05 Python
Chemist Warehouse官方海外旗舰店:澳洲第一连锁大药房
2017/08/25 全球购物
英国最大的笔记本电脑直销专家:Laptops Direct
2019/07/20 全球购物
学校端午节活动方案
2014/08/23 职场文书
运动会演讲稿50字
2014/08/25 职场文书
乡镇干部先进性教育活动个人整改措施
2014/09/16 职场文书
个人学习党的群众路线教育实践活动心得体会
2014/11/05 职场文书
解决ObjectMapper.convertValue() 遇到的一些问题
2021/06/30 Java/Android
node.js如何自定义实现一个EventEmitter
2021/07/16 Javascript
pandas中对文本类型数据的处理小结
2021/11/01 Python
python对文档中元素删除,替换操作
2022/04/02 Python