¿Por qué este código de códigos no funcionará con Python 3.3 pero funcionará con Python 2.7?

Así que estoy tratando de hacer un progtwig Python 3.3 para cambiar el fondo del escritorio de Windows usando el módulo ctypes. Probé el siguiente código en Python 2.7 y funcionó perfectamente. ¡Pero no funcionará con Python 3.3! Estoy usando Windows 7. Aquí está el código:

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

SystemParametersInfoA requiere una cadena de entrada codificada ANSI de 8 bits como parámetro, que se conoce como encoding mbcs en Python .

Deberá usar SystemParametersInfoW en python3. Esto se debe a que SystemParametersInfoW toma una cadena ancha UTF-16 (que es wchar_t * en C) y la biblioteca ctypes convierte automáticamente este argumento unicode pasado en c_wchar_p .

Consulte la documentación para más detalles.