当前位置: 首页 > 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)

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

我是猫妹,咱们下次见!

相关文章:

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

小朋友们好,大朋友们好!我是猫妹!要说最近什么电视剧最火?非《狂飙》莫属。《狂飙》剧名来自毛主席诗词“国际悲歌歌一曲,狂飙为我从天落”。导演借用“狂飙”二字来比喻剧中的扫黑除恶大风暴。据了解,《狂…...

博客排名的影响是什么? 说明优点、注册方法和推荐网站

如果您经营博客,您是否在博客排名网站上注册?博客排名网站是以排名格式介绍各种注册博客的网站。如果您注册博客,您将有更多机会被人们看到,并且可以期望增加访问权限。对于那些刚刚打开博客并担心访问量不会轻易增加的人来说&…...

全流程GMS地下水数值模拟技能培养及溶质运移反应问题深度解析实践技术

本次综合前期多次学习的效果及重点关注环节,系统性呈现地下水数值模拟软件GMS建模方法同时,建立与实践项目过程中的重点问题相融合,在教学中不仅强调学习三维地质结构建模、水文地质模型概化、边界条件设定、参数反演和模型校核等关键环节&am…...

【软件架构设计】SOA/软件架构设计---面向服务的架构(SOA详细解释)

文章目录面向服务的架构SOA 概述1. 服务的基本结构2.SOA 设计原则3. 服务构件与传统构件SOA 的关键技术1. UDDI2.WSDL3.SOAP4.RESTSOA 的实现方法1.Web Service2. 服务注册表3. 企业服务总线微服务1.微服务的优势2. 微服务面临的挑战3.微服务与 SOA面向服务的架构 迄今为止&am…...

erupt框架Ueditor富文本编辑器图片上传出现405异常

最近在研究erupt框架(v1.11.2),当字段使用Ueditor富文本编辑器,在图片上传的时候出现405异常,接口不支持POST请求方式: 根据错误提示找到对应的源码,发现Handler方法只支持GET请求,而图片上传的时候是以POST方式发起请求的; 此时需要修改源码,用自定义的类覆盖jar包中同名的…...

FILE文件操作

文件指针 每个被使用的文件都在内存中开辟了一个相应的文件信息区,用来存放文件的相关信息(如文件的名 字,文件状态及文件当前的位置等)。这些信息是保存在一个结构体变量中的。该结构体类型是有系统 声明的,取名FILE…...

SAP PP工单确认完成(CNF)状态取消方法

这SAP PP工单确认完成(CNF)状态取消方法SAP PP工单确认完成(CNF)状态取消方法SAP PP工单确认完成(CNF)状态取消方法 工单完工后取消了其中的一个报工,然后无法再报工 此时再报工,系…...

Python 采集 筷 实现视频批量保存

前言 嗨喽~大家好呀,这里是魔王呐 ❤ ~! 刷到的视频怕它下架?我们来采集保存一下它 知识点: 动态数据抓包 requests发送请求 json数据解析 开发环境: python 3.8 运行代码 pycharm 2022.3 辅助敲代码 requests pip install requests 代码展示 需…...

关于linux下环境配置遇到的坑

1、输入终端命令和vi时,一定要确认是英文输入法! 比如中英文输入下的短杠号“-”是不同的,虽然看起来一样。如果是中文输入法下输入含有短杠号的命令,会导致很多意料之外的错误。比如在用sudo ln -s 创建软连接时,会提…...

【Azure 架构师学习笔记】-Azure Logic Apps(7)- 自定义Logic Apps 调度

本文属于【Azure 架构师学习笔记】系列。 本文属于【Azure Logic Apps】系列。 接上文【Azure 架构师学习笔记】-Azure Logic Apps(6)- Logic Apps调用ADF 前言 在稍微了解Logic Apps的使用之后,需要开始考虑如何调度起来。在Logic Apps里面…...

ubuntu20.04配置UR机械臂的仿真环境

ubuntu20.04配置UR机械臂的仿真环境 参考链接 1. 首先安装好ROS ubuntu20.04安装Noetic版本的ros,具体安装可见之前写的博客 2. 配置UR机械臂仿真工具包 找一个你喜欢的地方创建ros工作空间(也就是找个文件夹放ros的包,然后编译运行&…...

雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万?

转自:雅利安人覆灭了世界三大文明,为何单单在商朝被斩首两万? (baidu.com)在公元前3000年至1000年的广大时间内,是世界四大文明古国大放光彩的时候,古印度文明、古巴比伦文明、古埃及文明以及我们的古华夏,…...

Windows 系统上查询 GPU / CPU 对 Vulkan 的支持信息

Windows 系统上查询 GPU / CPU 对 Vulkan 的支持信息1. TechPowerUp GPU-Z https://www.techpowerup.com/gpuz/ GPU-Z is a lightweight system utility designed to provide vital information about your video card and graphics processor. GPU-Z 是一款显卡识别工具&…...

python3 字节与数字、字符等互转的方法。int、struct库等方法

文章目录int 与 bytes转换int 转 bytesbytes 转 intstr 与 bytes互转其他格式转字节格式说明转字节字节转其他字节在存储的时候根据存储的格式不同,可能会有大端小端之分,如果是数字,还有有符号无符号的区分,所以在自己处理的时候…...

人脸检测的5种方式

文章内容: 1)人脸检测的5种方法 1. Haar cascade opencv 2. HOG Dlib 3. CNN Dlib 4. SSD 5. MTCNN 一。人脸检测的5种方法实现 1. Haar cascade opencv Haar是专门用来检测边缘特征的。基本流程如下: 第1步,读取图片 img …...

华为OD机试 - 乘积最大值(Python)

乘积最大值 题目 给定一个元素类型为小写字符串的数组 请计算两个没有相同字符的元素长度乘积的最大值 如果没有符合条件的两个元素返回0 输入 输入为一个半角逗号分割的小写字符串数组 2 <= 数组长度 <= 100 0 < 字符串长度 <= 50 输出 两个没有相同字符的元…...

【CMU15-445数据库】bustub Project #2:B+ Tree(上)

&#xff08;最近两个月学校项目有亿点忙&#xff0c;鸽得有点久&#xff0c;先来把 Project 2 补上&#xff09; 本节实验文档地址&#xff1a;Project #2 - BTree Project 2 要实现的是数据结构课上都会讲的一个经典结构 B 树&#xff0c;但是相信大多数的同学&#xff08;…...

功率放大器在lamb波方向算法的损伤定位中的应用

实验名称&#xff1a;基于PZT结Lamb波方向算法的损伤定位方法研究方向&#xff1a;损伤定位测试目的&#xff1a;Lamb波是在具有自由边界的固体板或层状结构中传输的一种弹性导波&#xff0c;由于其本身的传播特性&#xff0c;如沿传播路径衰减小&#xff0c;能量损失小&#x…...

时的科技迎1亿融资,这辆“空中的士”能否实现真正飞行?

近期&#xff0c;进行载人eVTOL的研发、生产和销售的时的科技宣布完成1亿元Pre-A轮融资&#xff0c;成立不到两年&#xff0c;这已是时的科技的第三轮融资&#xff0c;此前&#xff0c;时的科技已获得蓝驰创投和德迅投资千万美元种子轮投资。在不少人看来&#xff0c;时的科技所…...

idea 折叠代码块技巧 关于<editor-fold>

最近在使用delombok插件的时候&#xff0c;发现了一个有意思的小技巧 以前用VSstudio写代码的时候。经常使用代码块折叠的方法。但是在写java的时候&#xff0c;没怎么使用过 VSStudio中的写法 即 #region xxx ... your great coding #endregion这样在浏览的时候&#xff0c…...

HUE Hive编辑器10个隐藏技巧:从拖拽表名到变量查询的高效玩法

HUE Hive编辑器10个隐藏技巧&#xff1a;从拖拽表名到变量查询的高效玩法 1. 拖拽表名生成查询模板的进阶用法 许多HUE用户都知道可以通过拖拽左侧表名到编辑区生成基础查询模板&#xff0c;但很少有人挖掘这个功能的完整潜力。实际上&#xff0c;拖拽操作支持多种智能交互方式…...

别再只用M法了!手把手教你用Arduino和旋转编码器实现M/T法测速(附代码)

别再只用M法了&#xff01;手把手教你用Arduino和旋转编码器实现M/T法测速&#xff08;附代码&#xff09; 在电机控制项目中&#xff0c;精确的速度测量往往是实现闭环控制的第一步。许多初学者会直接采用简单的M法&#xff08;频率测量法&#xff09;&#xff0c;但在实际测试…...

CVXPY多目标优化终极指南:如何在复杂决策中找到最佳平衡点

CVXPY多目标优化终极指南&#xff1a;如何在复杂决策中找到最佳平衡点 【免费下载链接】cvxpy A Python-embedded modeling language for convex optimization problems. 项目地址: https://gitcode.com/gh_mirrors/cv/cvxpy CVXPY是一个嵌入Python的凸优化建模语言&…...

别光重启!Ping域名失败但nslookup能通?一个注册表键值引发的血案(附排查脚本)

当Ping域名失败但nslookup正常&#xff1a;深入解析Windows注册表键值缺失的连锁反应 那天凌晨三点&#xff0c;运维工程师李明在机房盯着屏幕&#xff0c;额头渗出细密的汗珠。客户的核心业务系统刚刚完成迁移&#xff0c;却在最后验收阶段出现诡异现象——所有服务器都能通过…...

暴力检测新思路:如何用HL-Net和弱监督技术提升多模态识别准确率?

多模态暴力检测技术革新&#xff1a;HL-Net与弱监督学习的实战解析 暴力行为检测一直是计算机视觉和音频分析领域的重要挑战。传统的暴力检测方法往往受限于单一模态输入、高昂的标注成本以及有限的场景适应性。本文将深入探讨如何通过HL-Net架构和弱监督学习技术&#xff0c;构…...

毕业季、返修季、投稿季:SCI论文润色,到底能不能提高接收率?

“SCI论文如果先润色&#xff0c;再投稿&#xff0c;是不是更容易被接收&#xff1f;”这个问题&#xff0c;真的每年到了这个时间点都会高频出现。尤其是3月底到4月初&#xff0c;很多同学刚从基金申请、毕业论文、返修修改的高压节奏里缓过来&#xff0c;马上又进入下一轮“赶…...

SleeperX:Mac电源管理的智能守护者,让每一次工作都不被打断

SleeperX&#xff1a;Mac电源管理的智能守护者&#xff0c;让每一次工作都不被打断 【免费下载链接】SleeperX MacBook prevent idle/lid sleep! Hackintosh sleep on low battery capacity. 项目地址: https://gitcode.com/gh_mirrors/sl/SleeperX 您是否经历过这样的时…...

Python邮件自动化实战:基于imaplib和email库的高效邮件处理方案

1. Python邮件自动化处理的核心价值 每天早晨打开邮箱&#xff0c;看到堆积如山的未读邮件时&#xff0c;你是否感到头皮发麻&#xff1f;作为曾经每天要处理200封邮件的市场分析师&#xff0c;我完全理解这种痛苦。直到发现Python的imaplib和email这对黄金组合&#xff0c;我的…...

三步掌握MidScene:AI浏览器自动化的零代码实战指南

三步掌握MidScene&#xff1a;AI浏览器自动化的零代码实战指南 【免费下载链接】midscene Let AI be your browser operator. 项目地址: https://gitcode.com/GitHub_Trending/mid/midscene MidScene是一款革命性的AI驱动浏览器自动化工具&#xff0c;让您能够通过自然语…...

告别龟速下载!手把手教你用Aspera ascp命令高效获取SRA数据(附常见错误排查)

告别龟速下载&#xff01;手把手教你用Aspera ascp命令高效获取SRA数据&#xff08;附常见错误排查&#xff09; 在生物信息学研究中&#xff0c;获取公共数据库中的测序数据是许多分析的第一步。然而&#xff0c;传统的FTP下载方式往往速度缓慢&#xff0c;尤其是当需要下载大…...