溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python3實現(xiàn)Win10桌面自動切換的方法

發(fā)布時間:2020-08-12 11:58:08 來源:億速云 閱讀:270 作者:小新 欄目:開發(fā)技術

這篇文章主要介紹Python3實現(xiàn)Win10桌面自動切換的方法,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!

得空寫了個自動切換桌面背景圖片的小程序。再不寫python就要扔鍵盤了,對vue還有那么一點好感,天天php真是有夠煩。

準備工作

準備個文件夾放在桌面上,平時看到什么高清好圖就拽進去。

Python3實現(xiàn)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')

函數(shù)scheduler接受4個以上參數(shù):

1. 定時執(zhí)行的job函數(shù)對象

2. 執(zhí)行時間間隔,單位:秒

3. 函數(shù)job需要幾個參數(shù)

4~*. 函數(shù)job的參數(shù)們

還可以進一步擴充,比如在get_pictures函數(shù)里面再加一些rules,低于多少mb的照片就不能作為桌面背景圖之類的,接著加or就ok了。

以上是Python3實現(xiàn)Win10桌面自動切換的方法的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關知識,歡迎關注億速云行業(yè)資訊頻道!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI