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 break语句详解
Mar 11 Python
python通过BF算法实现关键词匹配的方法
Mar 13 Python
详细讲解Python中的文件I/O操作
May 24 Python
Python中return语句用法实例分析
Aug 04 Python
Python Sql数据库增删改查操作简单封装
Apr 18 Python
Python学习之Anaconda的使用与配置方法
Jan 04 Python
python距离测量的方法
Mar 06 Python
python3用PyPDF2解析pdf文件,用正则匹配数据方式
May 12 Python
Django def clean()函数对表单中的数据进行验证操作
Jul 09 Python
selenium判断元素是否存在的两种方法小结
Dec 07 Python
90行Python代码开发个人云盘应用
Apr 20 Python
anaconda python3.8安装后降级
Jun 11 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页面输出搜索后跳转下一页的处理方法
2016/09/30 PHP
详解php用curl调用接口方法,get和post两种方式
2017/01/13 PHP
jquery tools之tabs 选项卡/页签
2009/07/25 Javascript
使用js判断数组中是否包含某一元素(类似于php中的in_array())
2013/12/12 Javascript
JS+CSS实现带关闭按钮DIV弹出窗口的方法
2015/02/27 Javascript
jQuery实现简单二级下拉菜单
2015/04/12 Javascript
JS根据key值获取URL中的参数值及把URL的参数转换成json对象
2015/08/26 Javascript
JS作为值的函数用法示例
2016/06/20 Javascript
jQuery简单实现title提示效果示例
2016/08/01 Javascript
Javascript blur与click冲突解决办法
2017/01/09 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
用element的upload组件实现多图片上传和压缩的示例代码
2019/02/12 Javascript
微信小程序实现联动选择器
2019/02/15 Javascript
基于Python实现的扫雷游戏实例代码
2014/08/01 Python
django使用html模板减少代码代码解析
2017/12/12 Python
python的concat等多种用法详解
2018/11/28 Python
Python制作词云图代码实例
2019/09/09 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
2019/10/17 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
tensorflow保持每次训练结果一致的简单实现
2020/02/17 Python
基于Django signals 信号作用及用法详解
2020/03/28 Python
PyInstaller将Python文件打包为exe后如何反编译(破解源码)以及防止反编译
2020/04/15 Python
基于python纯函数实现井字棋游戏
2020/05/27 Python
canvas实现扭蛋机动画效果的示例代码
2018/10/17 HTML / CSS
iHerb台湾:维生素、保健品和健康产品
2018/01/31 全球购物
Weblogc domain问题
2014/01/27 面试题
历史教育专业个人求职信
2013/12/13 职场文书
校园活动策划书范文
2014/01/10 职场文书
实习生自我评价
2014/01/18 职场文书
主题酒店策划书
2014/01/28 职场文书
2014年小学植树节活动方案
2014/03/02 职场文书
我爱我家教学反思
2014/05/01 职场文书
2014乡镇班子个人对照检查材料思想汇报
2014/09/26 职场文书
2015年大学宣传部工作总结
2015/05/26 职场文书
婚庆答谢词大全
2015/09/29 职场文书
Pycharm连接远程服务器并远程调试的全过程
2021/06/24 Python