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

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

12.05.2018, 00:22. Показов 1440. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru