Задать вопрос
JawsIk
@JawsIk
Python Django, Lua, ЧПУ-станки(ArtCam, Aspire)

Как установить разные обои на разные мониторы в Windows?

Всем привет!
Вопрос не совсем про 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, или может быть таковая уже есть и подскажете где скачать?
  • Вопрос задан
  • 209 просмотров
Подписаться 1 Средний Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы