为什么赢了';这个ctypes代码是否可以与Python3.3一起使用,但可以与Python2.7一起使用?

为什么赢了';这个ctypes代码是否可以与Python3.3一起使用,但可以与Python2.7一起使用?,python,python-3.x,windows-7,ctypes,Python,Python 3.x,Windows 7,Ctypes,因此,我试图制作一个Python3.3程序,使用ctypes模块更改Windows桌面背景。我已经在Python2.7中测试了以下代码,它工作得非常好。但是它不能与Python3.3一起工作!我正在使用Windows7。代码如下: import ctypes SPI_SETDESKTOPWALLPAPER=20 ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKTOPWALLPAPER, 0,"C:/Users/Public/Pictur

因此,我试图制作一个Python3.3程序,使用ctypes模块更改Windows桌面背景。我已经在Python2.7中测试了以下代码,它工作得非常好。但是它不能与Python3.3一起工作!我正在使用Windows7。代码如下:

import ctypes
SPI_SETDESKTOPWALLPAPER=20
ctypes.windll.user32.SystemParametersInfoA(SPI_SETDESKTOPWALLPAPER, 0,"C:/Users/Public/Pictures/Sample Pictures/Penguins.jpg", 3)

systemparameters sinfoa
需要8位ANSI编码的输入字符串作为参数,在中称为
mbcs
编码

您必须在python3中使用
系统参数sinfow
。这是因为
systemparameters sinfow
接受一个UTF-16宽字符串(在C中是
wchar\u t*
),而
ctypes
库会自动将传递的unicode参数转换为
C\u wchar\u p


有关详细信息,请参阅。

systemparameters sinfoa
需要一个8位ANSI编码的输入字符串作为参数,在中称为
mbcs
编码

您必须在python3中使用
系统参数sinfow
。这是因为
systemparameters sinfow
接受一个UTF-16宽字符串(在C中是
wchar\u t*
),而
ctypes
库会自动将传递的unicode参数转换为
C\u wchar\u p


有关更多详细信息,请参阅。

我正在试图找出我被否决的原因。我提供了代码,只是要求解释一下。这个问题没有什么不好的地方。忘记否决票吧,你试过
systemparameters吗!谢谢对不起!我在你开始评论之前就开始了我的评论。我会接受你的答案,如果它允许的话。“我正在试图弄清楚我为什么被否决”-->将非C类帖子标记为[C]吸引了否决票。我正在试图弄清楚我为什么被否决。我提供了代码,只是要求解释一下。这个问题没有什么不好的地方。忘记否决票吧,你试过
systemparameters吗!谢谢对不起!我在你开始评论之前就开始了我的评论。我会接受你的答案,如果它允许的话。“我正在试图弄清楚我为什么被否决”-->将非C类帖子标记为[C]吸引了否决票。我正在试图弄清楚我为什么被否决。我提供了代码,只是要求解释一下。这个问题没有什么不好的地方。忘记否决票吧,你试过
systemparameters吗!谢谢对不起!我在你开始评论之前就开始了我的评论。我会接受你的答案,当它允许我的时候。“我试图弄清楚我为什么被否决”-->将非C类帖子标记为[C]吸引了否决票。