小朋友们好,大朋友们好!

我是猫妹!

要说最近什么电视剧最火?

非《狂飙》莫属。

《狂飙》剧名来自毛主席诗词“国际悲歌歌一曲,狂飙为我从天落”。

导演借用“狂飙”二字来比喻剧中的扫黑除恶大风暴。

据了解,《狂飙》是央视8套近九年以来的收视第一电视剧,全剧平均收视率1.54%,单日全端播放量首次突破3亿。

猫妹没有看这部电视剧,主要是没时间,估计也看不懂,好像很烧脑。

但看着猫爸偷偷把电脑桌面改成了《狂飙》壁纸,就知道他有多么喜欢这部电视剧了。

咱们今天聊聊,如何用Python自动切换电脑桌面。

先看效果

效果就是设置一个文件夹,里面保存的是好看的电脑壁纸图片。

运行程序,桌面会被修改,按照程序中的逻辑来更换电脑背景。

修改桌面

我们一般是怎么修改壁纸的呢?

都是通过鼠标点击桌面属性修改。

还有其他方法吗?

还可以通过修改注册表来实现,我们今天的Python修改桌面就是在这个基础上扩展实现的。

在运行中输入regedit,弹出的注册表中的WallPaper就是桌面的壁纸哦!

咱们如果可以动态修改这个值,不就是实现了动态切换壁纸吗?

代码实现

这里需要用到几个库:win32api、win32con、win32gui、PIL等。

其中的pywin32和PIL需要通过pip指令安装。

Python 没有自带访问 windows 系统 API 的库的,需要下载 pywin32,pywin32 是一个第三方模块库,方便开发者快速调用 windows API 的一个模块库。

它直接包装了几乎所有的 Windows API,可以方便地从 Python 直接调用,该模块另一大主要功能是通过 Python 进行 COM 编程。

win32api :模块内定义了常用的一些 API函数,例如:MessageBox

win32gui :模块内定义了一些有关 图形操作的API,例如:FindWindow

win32con :模块内定义了 windows API 内的宏,即 宏常量。例如 MessageBox 内的 MB_OK。

要实现壁纸切换,可以调用如下函数:

defsetWallpaperFromBMP(imagepath):# imagepath 作为壁纸图片的路径                   key = win32api.RegOpenKey(win32con.HKEY_CURRENT_USER,'Control panel\\Desktop',0,win32con.KEY_SET_VALUE)# 打开注册表,并指定对子项的操作,在更改注册表内容时,一定要先打开注册表    win32api.RegSetValueEx(key,'wapaperStyle',0,win32con.REG_SZ,'2')# key 表示对哪一个子项修改值,'wapaperStyle'是指壁纸类型,0表示桌面居中,win32con.REG_SZ是数据的类型,2代表拉伸    win32api.RegSetValueEx(key, "Tilewallpaper", 0, win32con.REG_SZ, "0")# 设置背景风格,0 为平铺    win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER,imagepath,win32con.SPIF_SENDWININICHANGE)# 刷新屏幕

PyWin32 地址:

https://github.com/mhammond/pywin32

PyWin32 文档:

http://timgolden.me.uk/pywin32-docs/contents.html

猫妹在测试过程中遇到如下错误:

pywintypes.error: (0, ‘SystemParametersInfo’, ‘No error message is available’)

猫妹和猫爸在网上了解到,这是因为使用win32gui.SystemParametersInfo() 时,图片格式一定是.bmp格式,所以需要使用Image模块将其转换。

该函数如下:

defsetWallPaper(imagePath):# convert jpg to bmp    bmpImage = Image.open(imagePath)    newPath = imagePath.replace('.jpg', '.bmp')    bmpImage.save(newPath, "BMP")    setWallpaperFromBMP(newPath)

有了这两个关键的函数,在电脑上建立一个目录,存放图片,分别遍历其中的图片,就可以自动切换电脑中的图片啦!

defchange_wapaer2(path):# 存放图片文件的文件夹路径        img_lst = os.listdir(path=path)  # 获取文件夹下的所有图片,并存放在列表for i in range(len(img_lst)):#通过下标            print(img_lst[i])            img_path = os.path.join(path,img_lst[i])            setWallPaper(img_path)            time.sleep(1)

好了,今天的分享就到这里,谢谢朋友们的阅读。

我是猫妹,咱们下次见!

《狂飙》壁纸太帅,Python自动切换太酷(8)相关推荐

  1. Python自动切换wifi

    前言 最近在打游戏的时候经常会遇到断网的情况,每次都需要切出去切换wifi,很烦人,所以就写了个用Python自动切换可用的wifi来减少困扰. 几个系统命令 这次我们是使用python中的os模块来 ...

  2. python 爬取图片 壁纸开机自启自动切换

    1.爬取图片,作为壁纸,用来接下来的壁纸自动切换 python代码里的库如果报错,记得下库 pip install 加库名 代码 import requests import parsel# 10,1 ...

  3. Windows上利用Python自动切换代理IP的终极方案!

    转载:http://www.jianshu.com/p/49c444d9a435 文/solomonxie(简书作者) 原文链接:http://www.jianshu.com/p/49c444d9a4 ...

  4. python自动切换链接_windown 使用python 自动切换网络

    由于工作环境的特殊性,有时需要切换到内网工作,有时需要通过手机连接外网,想自动运行一个脚本就做完这事 首先在PC机上安装一个无线网卡,例如360wifi就可以. 除了python,还用到了DOS命令, ...

  5. win10商店壁纸应用:backiee 自动切换壁纸保存

    win10商店壁纸应用:backiee backiee 一款很不错的壁纸软件,壁纸质量和数量都很不错,就是免费版广告有点多,其他都可以接受 最近是用win10商店的backiee软件,设置了定时更换壁 ...

  6. python自动切换链接_python+selenium自动化(四)之selenium切换窗口

    当我们点击某个链接时,切换换到另一个窗口,这时就需要跟随切换到新打开的页面,去定位元素. 1.获取当前页面句柄  current_window_handle importtimefrom seleni ...

  7. Windows环境使用Python自动切换代理IP

    一般来说代理IP断开重连就能就会为你重新分配IP了 1.在网络设置中手动创建一个vpn连接 比如我创建的名称为conname 地址为 gaosama.5464.org 账号为 aaa1 密码为 aaa ...

  8. python自制linux桌面,自己动手写Python实现Ubuntu自动切换壁纸

    使用Windows 7一段时间,觉得它的自动换壁纸也挺好用的,换到Ubuntu 11.04上,本想装个软件让它自动换,后来发现Drapes运行不了,又懒得装其他软件了. 于是想按照别人说的写个shel ...

  9. 某程序员炫耀:因长得太帅被女领导追求,三年就提拔到总监!程序员搞技术没用,健身护肤才是王道!...

    在一个看脸的社会里颜值即王道,就算在以技术为考核标准的程序员群体里也不例外. 一个程序猿小哥哥发帖炫耀:长得太帅,被部门女领导追求,三年时间从一名普通攻城狮提拔到总监.什么技术,什么管理,健身护肤才是 ...

最新文章

  1. Tensorflow杂记
  2. 【.NET Core项目实战-统一认证平台】第十五章 网关篇-使用二级缓存提升性能
  3. CSS实现垂直居中的方法
  4. GitLab 安装配置指南
  5. android商城开源框架,Android商城开源项目--轻松购
  6. Sql Server2008中自定义函数调用存储过程解决方案
  7. java后台接收参数_java 后台如何 接收 uploader UploadFileOptions 参数
  8. jdk帮助文档的获取
  9. EOS与金格iWebOffice集成应用实例
  10. 字体大宝库:15款漂亮的艺术字体免费下载
  11. 微软拼音输入法不显示选字栏怎么办?
  12. 20年前的网文:我彷徨在唯物主义和唯心主义之间
  13. Java-设计模式之调停者模式
  14. 实现一个对Django Models数据进行模拟的Mock方案
  15. 干货!常见的SQL面试题:经典50例!
  16. puzzle(0722)逻辑电路、蜂巢迷阵
  17. 怎么把图片转换成PDF文件?
  18. 【Python】不同目录下的.py文件调用问题
  19. 为什么short类型取值范围为-32768~32767
  20. 用Microsoft Office Visio for Enterprise Architects生成数据库时出现“无法打开登录所请求的数据库masterDATABASE=master。登录失败”

热门文章

  1. Qt PDF编辑器笔记
  2. CS188 Proj 1
  3. 利用集电极负反馈到基极,以及添加电阻的方法增加中间级放大器的稳定性方法
  4. AD软件——把原理图库 和 PCB元件库封装模型 关联起来
  5. Android Protobuf应用及原理
  6. 汉高任命荣杰博士为大中华区总裁;沃尔玛中国2021届校招正式启动 | 美通企业日报...
  7. 这些有趣的Python库一定会亮到你
  8. C++--struct的用法
  9. 红外线人体感应灯arduino_Arduino红外人体感应模块-电子芯吧客
  10. c盘清理缓存垃圾路径