我一直在尝试通过python脚本找到更改windows10桌面墙纸的最佳方法。当我尝试运行此脚本时,桌面背景将变为纯黑色。在
import ctypes
path = 'C:\\Users\\Patrick\\Desktop\\0200200220.jpg'
def changeBG(path):
SPI_SETDESKWALLPAPER = 20
ctypes.windll.user32.SystemParametersInfoA(20, 0, path, 3)
return;
changeBG(path)
我能做些什么来解决这个问题?我用的是Python3
SystemParametersInfoA
采用ANSI字符串(Python3中的bytes
类型)。在SystemParametersInfoW
采用Unicode字符串(python3中的str
类型)。在所以使用:
或者:
^{pr2}$您可以设置argtypes来执行参数检查。第三个参数被记录为
LPVOID
,但您可以更具体地进行类型检查:对于64位windows,请使用:
对于32位窗口,请使用:
^{pr2}$如果你用错了,就会出现黑屏。您可以在控制面板->系统和安全->系统中找到您使用的版本。在
您还可以让脚本选择正确的脚本:
更新:
我犯了一个以上的疏忽。正如注释中的@Mark Tolonen所示,它依赖于ANSI和UNICODE路径字符串,而不是OS类型。在
如果使用字节字符串路径,例如
^{pr2}$b'C:\\Users\\Patrick\\Desktop\\0200200220.jpg'
,请使用:否则,您可以将其用于普通unicode路径:
使用@Mark Tolonen's应答中的argtypes,以及另一个answer中的argtypes,也可以更好地突出显示这一点。在
相关问题 更多 >
编程相关推荐