Tools
首页
画图
音乐
采集
记事
博客
实验室
登录
lypeng
146
文章
11
分类
46
记事
分类
生活-[23]
Linux-[24]
前端-[9]
数据库-[16]
PHP-[31]
git-[7]
其他-[6]
python-[20]
算法-[4]
React-Native-[4]
中草药-[2]
广告位1
广告位2
首页
/ python
返回列表
python利用pywin32设置壁纸
阅读:648
发布:2019-12-06
作者:lypeng
## 设置壁纸 #### 前提 确保你有安装pywin32,我安装的是anaconda,默认就有~ 如果没有`pip install pywin32`,这个是Python操作Windows的窗口、桌面、图标、注册表等的一个模块 - win32con 常量模块 - win32gui UI界面 - win32api 一些接口 #### 代码如下: ``` #!/usr/bin/python3 import win32gui,win32con name = '20191206.jpg' bgFile = 'E:\\pic\\' + name win32gui.SystemParametersInfo(win32con.SPI_SETDESKWALLPAPER, bgFile, 1) ``` #### 解释 ##### 用到了SystemParametersInfo函数, 函数原型如下:官方解释地址(https://technet.microsoft.com/zh-cn/scriptcenter/ms724947(v=vs.95)?_blank) ``` BOOL WINAPI SystemParametersInfo( _In_ UINT uiAction, _In_ UINT uiParam, _Inout_ PVOID pvParam, _In_ UINT fWinIni ); ``` uint,pvoid等等是Windows系统的数据类型,uiAction需要执行的动作(查询或者设置可访问到的参数、桌面、图标、输入、菜单、屏幕保护程序、超时、UI效果、窗口界面),另外几个是根据不同的动作有不同参数 ##### win32con.SPI_SETDESKWALLPAPER 设置壁纸 `print(win32con.SPI_SETDESKWALLPAPER)` 常量值为20 ##### bgFile 图片地址 网上好多人说要bmp图片,但我用的jpg,依旧可以,官方也没什么说明,不管它了 ##### 第三个参数,写个1就好了 1 SPIF_UPDATEINIFILE 设置壁纸并更新注册表的值(注册表位置:HKEY_CURRENT_USER\Control Panel\Desktop\WallPaper) 2 SPIF_SENDCHANGE 发送更改通知到各个窗口(就设置个壁纸,不需要什么通知) ### 另外win32api可以修改注册表值 ``` key = win32api.RegOpenKeyEx(win32con.HKEY_CURRENT_USER,"Control Panel\\Desktop",0,win32con.KEY_SET_VALUE) win32api.RegSetValueEx(key, "WallpaperStyle", 0, win32con.REG_SZ, "2") #2拉伸适应桌面,0桌面居中 ``` ### 下一步写一个bat 文件image_bing.bat内容如下: ``` python E:\www\test\python\demo\image_bing.py ``` ### Windows新建任务计划 每次开机登录时,执行这个bat程序,即开机自动切换壁纸~
------本文结束
感谢阅读------
上一篇:
pygame 贪吃蛇
下一篇:
python数据类型