Всем привет!
Вопрос не совсем про python, а скорее про win32 api.
Всё это на Windows 10 64 bit. Вот есть код, который устанавливает случайную обоину на рабочий стол (всё сокращено, но даже в таком варианте оно работает):
import ctypes
import random
import os
start_path = "D:/_Картинки клиппарды обои"
list_images = os.listdir(start_path)
img_path = os.path.join(start_path, random.choice(list_images))
ctypes.windll.user32.SystemParametersInfoW(20, 0, img_path, 0)
Всё работает. Но монитора у меня два и на эти два монитора ставиться одна и та же картинка. Если же делать вручную, то я могу на разных мониторах поставить разную картинку. Как это сделать программно через python?
куда-то пропал мой комментарий, надеюсь, что здесь он опять не пропадёт:
Я нашёл страницу майкрософт руководства, где вызывается IDesktopWallpaper::SetWallpaper . Но я так и не понял, в какой DLL-ке это всё лежит, чтобы можно было подключиться через python.
руководство находиться здесь.
Может быть кто-нибудь подскажет, какой код нужно использовать вместо ctypes.windll.user32.
SystemParametersInfoW(20, 0, img_path, 0)
Чтобы прописать что-то вроде:
ctypes.windll.???.IDesktopWallpaper.SetWallpaper(1, img_path)
ctypes.windll.???.IDesktopWallpaper.SetWallpaper(2, img_path2)
дополнено. Может быть кто-либо поможет скомпилировать DLL с функционалом IDesktopWallpaper, или может быть таковая уже есть и подскажете где скачать?