Python Windows Wallpap

2024-04-29 09:32:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我发现以下命令可以使用Python设置Windows的桌面墙纸:

ctypes.windll.user32.SystemParametersInfoA(0x14, 0, 'C:\somepic.jpg', 0)

不幸的是,墙纸没有像我预期的那样改变。在

我错过什么了吗?或者有其他方法(永久性地)改变Windows墙纸吗?在

谢谢。在

编辑:

找到了这个解决方案:

^{pr2}$

问题: 通过检查您看到的注册表项,Python用编码把事情搞乱了,因为它删除了\30并用一个小框(如[])替换它。在

(它通过在Windows运行对话框中插入这些命令来工作。)

如何解决编码问题?


Tags: 方法命令编辑编码墙纸windows解决方案ctypes
1条回答
网友
1楼 · 发布于 2024-04-29 09:32:55

首先让我说,我无法测试是否可以设置墙纸,因为我自己不使用Windows。在

如您所见,here\30是一个转义序列,其八进制值解析为\x18,因此是不可打印的取消字符。在字符串中使用时,一定要随时转义反斜杠,如\\。在

对于问题的第一部分,尝试使用Unicode版本的函数,这样ctypes传递正确的数据类型,因为在python3中,字符串类型是changed。在

ctypes.windll.user32.SystemParametersInfoW(0x14, 0, 'C:\\somepic.jpg', 0)

相关问题 更多 >