所以我正在尝试使用ctypes模块创建一个Python 3.3程序来更改Windows桌面背景。我在Python 2.7中测试了以下代码,它运行得很好。但它只适用于Python 3.3!我正在使用Windows 7.这是代码:
import ctypes
SPI_SETDESKTOPWALLPAPER=20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKTOPWALLPAPER, 0,"C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg", 3)
答案 0 :(得分:8)
SystemParametersInfoA
需要一个8位ANSI编码的输入字符串作为参数,在Python中称为mbcs
编码。
您必须在python3中使用SystemParametersInfoW
。这是因为SystemParametersInfoW
接收UTF-16宽字符串(C中为wchar_t *
),ctypes
库自动将此传递的unicode参数转换为c_wchar_p
。
有关详细信息,请参阅documentation。