我发现以下命令可以使用Python设置Windows的桌面墙纸:
ctypes.windll.user32.SystemParametersInfoA(0x14, 0, 'C:\somepic.jpg', 0)
不幸的是,墙纸没有像我预期的那样改变。在
我错过什么了吗?或者有其他方法(永久性地)改变Windows墙纸吗?在
谢谢。在
编辑:
找到了这个解决方案:
^{pr2}$问题: 通过检查您看到的注册表项,Python用编码把事情搞乱了,因为它删除了\30并用一个小框(如[])替换它。在
(它通过在Windows运行对话框中插入这些命令来工作。)
如何解决编码问题?
首先让我说,我无法测试是否可以设置墙纸,因为我自己不使用Windows。在
如您所见,here
\30
是一个转义序列,其八进制值解析为\x18
,因此是不可打印的取消字符。在字符串中使用时,一定要随时转义反斜杠,如\\
。在对于问题的第一部分,尝试使用Unicode版本的函数,这样ctypes传递正确的数据类型,因为在python3中,字符串类型是changed。在
相关问题 更多 >
编程相关推荐