当前位置: 首页 > news >正文

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

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

我是猫妹!

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

非《狂飙》莫属。

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

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

据了解,《狂飙》是央视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)

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

我是猫妹,咱们下次见!

http://www.lryc.cn/news/10669.html

相关文章:

  • 博客排名的影响是什么? 说明优点、注册方法和推荐网站
  • 全流程GMS地下水数值模拟技能培养及溶质运移反应问题深度解析实践技术
  • 【软件架构设计】SOA/软件架构设计---面向服务的架构(SOA详细解释)
  • erupt框架Ueditor富文本编辑器图片上传出现405异常
  • FILE文件操作
  • SAP PP工单确认完成(CNF)状态取消方法
  • Python 采集 筷 实现视频批量保存
  • 关于linux下环境配置遇到的坑
  • 【Azure 架构师学习笔记】-Azure Logic Apps(7)- 自定义Logic Apps 调度
  • ubuntu20.04配置UR机械臂的仿真环境
  • 雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万?
  • Windows 系统上查询 GPU / CPU 对 Vulkan 的支持信息
  • python3 字节与数字、字符等互转的方法。int、struct库等方法
  • 人脸检测的5种方式
  • 华为OD机试 - 乘积最大值(Python)
  • 【CMU15-445数据库】bustub Project #2:B+ Tree(上)
  • 功率放大器在lamb波方向算法的损伤定位中的应用
  • 时的科技迎1亿融资,这辆“空中的士”能否实现真正飞行?
  • idea 折叠代码块技巧 关于<editor-fold>
  • python|第五章考试题及练习题
  • DIY生日蛋糕笔记
  • MybatisPlus------常用注解和逻辑删除以及设置统一前缀以及主键生成策略(六)
  • JQuery工具框架
  • 同一个整型常量怎样在不同进制间之间转换?
  • UVa 225 Golygons 黄金图形 暴力搜索 剪枝 状态判断
  • PowerShell中的对象是神马?
  • Proxy lab
  • 【机器学习】Sklearn 集成学习-投票分类器(VoteClassifier)
  • Day892.MySql读写分离过期读问题 -MySQL实战
  • 无线蓝牙耳机哪个品牌音质好?性价比高音质好的蓝牙耳机排行榜