«Живые» кликабельные обои на Python'е?

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.

"Костыли и велосипеды программируем как умеем".

История появление "гениальных" идей

Гуляя по обширным мусорным завалам на моём рабочем слоте, я понял что ему чего-то не хватает. Так и пришла "гениальная" мысль украсить задний фон рабочего стола хоть каким либо образом. И конечно же я решил использовать питон - легко, сердито.

Используемые библиотеки

  • Pillow - генерировать саму картинку на обои.

  • Ctypes - понадобиться чтобы получать разрешение экрана, позиции и действий мыши.

  • Win32gui - отслеживание текущего окна.

Для начала хотелось просто сделать вывод дня недели и времени на центр экрана. Так я и поступил, но этого стало мало и я решил выводить нагрузку на ЦП и ОЗУ. Но приходилось часто обновлять рабочий стол (каждую секунду), а это оказалось не лучшая идея из-за нагрузки на ЦП, да и с моим то i3.

По итогу пришлось вернуться назад к ежеминутному обновлению. Но при этом я решил добавить курсы валют и погоду. И получилось что-то вроде этого.

Погода парсится напрямую с сайта https://www.gismeteo.ru/ немного хитро и лениво, но всё же - не плохо. Курс валют - https://www.cbr-xml-daily.ru

Но и этого мне стало мало, разобравшись как отслеживать положение и статус мыши я решил сделать "функционирующие" обои, которые будут реагировать на нажатия??? Звучит глупо и странно, но почему бы и нет.

Добавив во время ожидание проверки на нажатие мыши и нажатие по определённым частям экрана (Кнопкам), мне удалось сделать это:

При нажатии на название города, в этом же месте появляется это:

И здесь нажатием на нужный город можно выбрать его и погода будет отображаться именно с этого города.

Как позже выяснилось я не учёл того момента, что реакция на нажатия будет происходить всегда, при любом открытом окне.

Порыв интернет пол часика - нашёл библиотеку win32gui позволяющую получить сфокусированное приложение тем самым теперь мы реагируем только когда фокусировка на рабочем столе.

А почему бы не сделать кнопку "сменить тему"?

Через некоторое время имеем кнопку сменить тему в нижнем правом углу.

Свои темы добавить достаточно легко и просто.

Так же на скорую руку добавил сохранение настроек и конфигурация которые вы можете редактировать сами, открыв файл "\resources\cashe\settings.json" как текст.

Можно изменить как и города с погодой так и валюты. Функционал маленький, но реализовать можно огромное количество идей, нужна лишь фантазия.

Для автозагрузки вместе с виндовс достаточно засунуть один .bat файл в автозагрузку.

Заходим в автозагрузку: Win + R -> "shell:startup".

Создаём .bat файл в папке "Автозагрузка" и прописываем туда.

Версия питона может отличаться. pythonw.exe - запускает питон файлы без консоли (в фоне) Пример батника будет в исходнике.

Исходник

Источник: https://habr.com/ru/post/656521/


Интересные статьи

Интересные статьи

Выгрузка пользователей из 1C ЗУП в Битрикс24 или правдивая история о том как настроить интеграцию 1С-Битрикс24 с ЗУП без 1С-ника.В жизни так бывает, причём бывает чаще чем хотелось бы, хоть в целом и ...
Мне было необходимо делать 2 раза в сутки бэкап сайта на «1С-Битрикс: Управление сайтом» (файлов и базы mysql) и хранить историю изменений за 90 дней. Сайт расположен на VDS под уп...
Много всякого сыпется в мой ящик, в том числе и от Битрикса (справедливости ради стоит отметить, что я когда-то регистрировался на их сайте). Но вот мне надоели эти письма и я решил отписатьс...
Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row si...
С версии 12.0 в Bitrix Framework доступно создание резервных копий в автоматическом режиме. Задание параметров автоматического резервного копирования производится в Административной части на странице ...