如何在python中设置桌面背景?(窗口)
以下是我的工作。我使用的是Windows10 64位和Python3。在
import os
import ctypes
from ctypes import wintypes
drive = "c:\\"
folder = "test"
image = "midi turmes.png"
image_path = os.path.join(drive, folder, image)
SPI_SETDESKWALLPAPER = 0x0014
SPIF_UPDATEINIFILE = 0x0001
SPIF_SENDWININICHANGE = 0x0002
user32 = ctypes.WinDLL('user32')
SystemParametersInfo = user32.SystemParametersInfoW
SystemParametersInfo.argtypes = ctypes.c_uint,ctypes.c_uint,ctypes.c_void_p,ctypes.c_uint
SystemParametersInfo.restype = wintypes.BOOL
print(SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, image_path, SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE))
重要的部分是,如果使用SystemParametersInfoW
,则确保对image_path
使用Unicode字符串,如果使用SystemParametersInfoA
,则使用字节字符串。请记住,在Python中,3个字符串是默认的Unicode。在
同时设置argtypes
和{}也是一个很好的实践。您甚至可以“lie”并将第三个argtypes参数设置为c_wchar_p
,用于SystemParametersInfoW
,然后ctypes将验证您传递的是Unicode字符串而不是字节字符串。在
评论