ребят как поменять обои через python

есть такая проблема, есть папка с программой нужно сделать, что бы по кнопки менялся фон, если пишу

ctypes.windll.user32.SystemParametersInfoW(20, 0, "C:/Users/Dmitriy/Desktop/fon/win.jpg" , 0)

то все работает, но нужно сделать так ctypes.windll.user32.SystemParametersInfoW(20, 0, "fon/win.jpg" , 0) не работает. нужно именно так сделать, или как то по-другому, что бы работал на разных компах


Ответы (1 шт):

Автор решения: Namerek

А Вы уверены, что папка Desktop на всех компах находится в домашней папке пользователя?
Если да, то попробуйте так:

import ctypes
from pathlib import Path

desktop = Path().home().joinpath('Desktop')

ctypes.windll.user32.SystemParametersInfoW(20, 0, desktop.joinpath('fon/win.jpg').as_posix(), 0)
                                                                                # ^^^^^^^^^^^

UPD

Послето того, как выяснилось, что файл с изображением находится в папке со скриптом

# Если файл изображения в той же папке что и скрипт то `.joinpath('fon')` не нужно
img_dir = Path(__file__).parent.joinpath('fon')

ctypes.windll.user32.SystemParametersInfoW(20, 0, img_dir.joinpath('win.jpg').as_posix(), 0)
→ Ссылка