Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
1 / 1 / 0
Регистрация: 26.07.2015
Сообщений: 197

Смена фонового изображения, нужны комментарии к коду

12.05.2018, 00:22. Показов 1466. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго времени суток!Я хотел бы узнать подетально как работает каждая строчка в данном коде.Я новичок,так что не судите строго

Python
1
2
3
4
5
6
7
8
9
10
11
12
from ctypes import windll
 
def set_Wallpaper(path):
    SPI_SETDESKWALLPAPER = 20
    SPIF_UPDATEINIFILE = 1
     
    SystemParametersInfo = windll.user32.SystemParametersInfoW
     
    image = path
     
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, image, SPIF_UPDATEINIFILE)
set_Wallpaper("D:\python3.6.5\projects\Wallpapers\car.jpg");
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.05.2018, 00:22
Ответы с готовыми решениями:

Смена Фонового Изображения
Подскажите пожалуйста Как можно реализовать смену фона, изображения в теле <body> по нажатии (кнопки) Желально если можете скиньте...

Смена фонового изображения по клику
Подскажите, пожалуйста, что можно сделать, я еще, честно говоря, очень плохо разбираюсь в этом вопросе((( Необходимо реализовать смену...

Смена фонового изображения формы
Доброе время суток..) Буду очень признателен, если подскажете... У меня в ресурсах проекта есть картинка. Как сделать, что бы при...

9
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
12.05.2018, 00:50
О функции SystemParametersInfo можно почитать здесь https://msdn.microsoft.com/en-... s.85).aspx

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#из библиотеки для работы с сишными функциями импортируется объект для работы с winapi
from ctypes import windll
 
#создается функция
def set_Wallpaper(path):
    #создаются 2 переменных для удобства
    # можно было бы вызвать функцию  SystemParametersInfo(20, 0, path, 1)
    SPI_SETDESKWALLPAPER = 20
    SPIF_UPDATEINIFILE = 1
     
     # из библиотеки user32.dll импортируем функцию SystemParametersInfoW, это юникодный вариант SystemParametersInfo
     # потому что python3
     # можно было бы просто вызвать windll.user32.SystemParametersInfoW(SPI_SETDESKWALLPAPER, 0, image, SPIF_UPDATEINIFILE), но автора что то понесло
     SystemParametersInfo = windll.user32.SystemParametersInfoW
    #бессмысленное действие
    image = path
    #вызов функции winapi для смены обоев
    SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, image, SPIF_UPDATEINIFILE)
 
#вызов функции
set_Wallpaper("D:\python3.6.5\projects\Wallpapers\car.jpg");
1
1 / 1 / 0
Регистрация: 26.07.2015
Сообщений: 197
12.05.2018, 02:17  [ТС]
Спасибо за такой подробный ответ!Но у меня остается еще несколько вопросов:
1) Почему SPI_SETDESKWALLPAPER = 20
2) Почему SPIF_UPDATEINIFILE = 1
3) И что это за аргументы SystemParametersInfo(SPI_SETDESKWALLPAPE R, 0, image, SPIF_UPDATEINIFILE)
Буду очень вам признателен за предоставленные ответы!
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
12.05.2018, 04:09
Ответы на вопросы находятся по ссылке в моем посте выше, это функция winapi и все параметры такие какие есть потому, что в микрософт так решили, остается только читать и запоминать что какой значит
1
1 / 1 / 0
Регистрация: 26.07.2015
Сообщений: 197
13.05.2018, 00:21  [ТС]
Я прочитал инфу на сайте.Но я по прежнему не понял,почему:
1) Почему SPI_SETDESKWALLPAPER = 20
2) Почему SPIF_UPDATEINIFILE = 1
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
13.05.2018, 00:38
Читаем на сайте

SPI_SETDESKWALLPAPER
0x0014

14 в шестнадцатиричной системе это 20 в десятичной

SPIF_UPDATEINIFILE если нужен, то 1 если не нужен, то 0, в данном случае нужен
1
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
13.05.2018, 02:03
Цитата Сообщение от StanSmith Посмотреть сообщение
Но я по прежнему не понял,почему
А зачем вам нужно знать почему x=20, а y =1?
ТабуретY, вам уже пояснил, что это просто константы, которые использует функция. Их конкретные значения определяет разработчик функции. И вот тут мы уже выходим из области программирования и вступаем на тропу нумерологии... и что-то мне подсказывает, что тема эта не совсем для этого форума :-)
2
1 / 1 / 0
Регистрация: 26.07.2015
Сообщений: 197
13.05.2018, 16:14  [ТС]
Спасибо за ответ!Я хотел бы у вас еще кое-что спросить.Как подобрать правильное расширения для рисунка,чтобы он полностью отображался на раб.столе?
0
1741 / 913 / 480
Регистрация: 05.12.2013
Сообщений: 3,074
13.05.2018, 16:21
Разрешение экрана можно получить так

Python
1
2
3
import ctypes
user32 = ctypes.windll.user32
screensize = user32.GetSystemMetrics(0), user32.GetSystemMetrics(1)
1
1 / 1 / 0
Регистрация: 26.07.2015
Сообщений: 197
14.05.2018, 14:22  [ТС]
Я долго думал,но не смог решить проблему,связанную с интегрированием данного кода в основнойНе поможете мне?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
14.05.2018, 14:22
Помогаю со студенческими работами здесь

Смена фонового изображения и теста по таймеру
Есть блок div с фонового изображения и в нем текстовая гиперссылка <div style="background-image: url(img/showBG1.png); .... "> ...

Смена фонового изображения при наведении на label
Всем привет! Можете подсказать, как сделать, чтобы при наведении курсора на label изменялось фоновое изображение формы? private void...

Смена фонового изображения рабочего стола программно
Для этого я использую API-функцию SystemParametersInfo: Option Explicit Const SPI_SETDESKWALLPAPER = 20 Const...

Нужны комментарии к коду
Обьясните вот этот код кому не лень: void __fastcall TForm1::Button1Click(TObject *Sender) { String s = RichEdit1->Text; int...

Нужны комментарии к коду
static void Main(string args) { //Создаем квадратный массив Console.Write("Введите n : "); ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru