Данный раздел содержит программу для управления проектором по PJLINK протоколу. Программа умеет: включать/выключать проектор, узнавать его статус питания, сохранять настройки, автоматически добавляться в автозагрузку при запуске компьютера, а также удаляться из нее. Интерфейс реализован с использованием библиотеки pysimplegui. Компиляция произведна при помощи pyinstaller в связке с upx.
1. Epson.py - исходник.
2. Epson.exe - исполняемый файл для win64.
3. Epson.spec - конфигурационный файл для компиляции приложения.
-
Изначально собранный exe-файл был очень тяжелым для столь простой программы и весил 31 Мб. Понятно, что питон это интерпретируемый язык и при его компиляции через pyinstaller в один exe-файл собирается не только сам скрипт, но еще и интерпетатор, и все используемые библиотеки. Но есть способ значительно уменьшить размер файла. Для этого в чистой системе (виртуалке) создаем папку проекта и виртуальное окружение "python -m venv venv" в этой же директории. Затем активируем venv: "venv\Scripts\activate.bat". Устанавливаем все необходимые библиотеки для проекта, в том числе, pyinstaller и pypiwin32. Теперь скачиваем upx и размещаем его в папке с проектом. Теперь выполняем компиляцию проекта при помощи следующей команды: "pyinstall --noconsole --onefile --upx-dit=Fullpath\upx --icon=icon.ico Epson.py". Готово, получили минимально возможный по размеру exe-файл.
-
Некорректная работа exe-файла с иконками приложения. После компиляции иконка сбивается на дефолтную на панели задач и в окне программы. Для того, чтобы это исправить, добавлена функция resource_path, при помощи которой указывается путь в объекте window к иконке приложения. Также необходимо внести изменения в Epson.spec. В исходный файл добавляется строчка: "a.datas += [('icon.ico', 'C:\Users\igor\Desktop\Epson\icon.ico', 'DATA')]", а также указывается абсолютный путь к иконке в exe. Повторяем компляцию, но теперь для этого используем следующую команду: "pyinstaller Epsom.spec".
-
Добавление в автозагрузку и работа с внешними файлами. Добавление в автозагрзку реализовано при помощи bat-файла, который помещается в папку с автозагрузкой. Данный батник просто запускает exe-файл. Но при запуске через батник возникает проблема, что рабочая директорией становится не расположение exe-файла, а расположение cmd, то есть в корне windows. Это, в свою очередь, приводит к тому, что нельзя создавать файлы рядом с программой. Необходимо указывать абсолютные пути в коде при работе с файлом конфигурации. Например, в папку данного пользователя C:\Users\Random_User.