Python有什么方法可以给多显示器设置不同的壁纸?

python有什么方法可以给多显示器设置不同的壁纸?

这玩意太完整太大了。。。我就自己写个爬虫,换一下壁纸,只想知道多显示器设置不同壁纸的细节是怎么实现的

这有个十年前的,看起来是把每个屏幕的背景拼接起来实现的:

这种方案也考虑过写,不过比较麻烦。一直以为这个应该系统会有api来解决,但是一直没找到

def resizeWallpaper(imagefile):
    w = win32api.GetSystemMetrics(win32con.SM_CXSCREEN)
    h = win32api.GetSystemMetrics(win32con.SM_CYSCREEN)
    Image.open(imagefile).resize((w, h), Image.Resampling.LANCZOS).save(imagefile)

官方文档 SystemParametersInfoW 函数 (winuser.h) - Win32 apps | Microsoft Learn
接口是里面的那个 SPI_SETDESKWALLPAPER
用ctypes调用就行了

为什么要用 python?

设置壁纸这个需要调用系统API.

他还要搞个爬虫

试试我汉化的dmt,可以设置多显示器壁纸或者直接拼图

获取每个显示器的参数都不是问题,压缩裁剪图片也不是问题。问题是每个显示器设置不同的壁纸

你可以看看,实际上是调用 IDesktopWallpaperWrapper 这个微软的dll实现,我在c#下实现的比较理想,可以实现不同窗口不同壁纸,非拼合