Разработать монитор запуска приложения

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
21 марта 2014, 18:43 • 3 отклика • 46 просмотров
Пример
аналога:


Apache монитор,
который висит в трее и позволяет управлять
сервисом апачаРазница только
в том что будет только один уровень
выпадающего меню.
Требования:

  • OS Windows XP и
    старше

  • программ
    должна быть портативной(работать с
    флашки)

  • это должен
    быть скомпелированный exe-шник

Что
нужно на выходе:


  • исходники
    программы. Они будут выложены в открытый
    доступ на GitHub. Можно сразу разрабатывать
    ПО там https://github.com/anime-db/monitor

  • скомпилированная
    версия программы (exe файл)

Конфигурирование:

Нужно иметь
возможность менять параметры запуска
приложения без перекомпиляции, поэтому
рядом с файлом exe должен лежать файл
config.ini.

Конфиг:
# IP-address of the
server with application

addr = 0.0.0.0
# Port on the
application server

port = 56780
# Path to php.exe
php = php

addr — адрес
на котором будет запущен сервер.
port — порт
который будет слушаться
php — путь
к php интерпретатору. Тут стоит
пояснить, если интерпретатор установлен
на компьютере пользователя, то в консоли
он доступен напрямую:
> php -i

Но в большинстве
случаев установлен не будет. Для решения
этой проблемы в конечной сборке приложения
присутствует портативная версия
интерпретатора. То есть параметр php
имеет вид:
# Path to php.exe
php =
./bin/php/php.exe

Описание
задачи:

Валидация
пути:


Если в пути
расположения программы присутствуют
символы не входящие в таблицу ASCII, то
приложение не запустится. Соответственно
первым делом, программа после запуска
должна проверить путь на котором она
запущена. Если путь не корректен выдать
пользователю окно вида:

Текст сообщения
об ошибке:
The application can
not run in the current folder. Move it to another folder, for example
in the folder: C:\


Заголовок
сообщения: AnimeDB

После выдачи
сообщения закрыть программу.

Проверка
перемещения:


Далее, если
все хорошо, то нужно проверить перемещалась
ли программа с последнего раза и если
да, то выполнить команду:
php ./app/console
cache:clear --env=prod -no-debug


Эта команда
чистит кэш, он к сожалению привязан к
пути расположения программу

Путь последнего
расположения программы можно хранить
в файле: ./bin/.pwd

Есть пример
реализации в Bash и VBScript
php
это переменная, значение которой берем
из конфига

Дожидаемся
окончания чистки кэша и переходим к
следующему этапу.

Запуск
процессов:


запускаем в
фоне 2 процесса
php -S 0.0.0.0:56780
-t ./web ./app/router.php >nul 2>&1

php -f ./app/console
animedb:task-scheduler >nul 2>&1


соответственно
также часть параметров берем из конфига

Интерфейс:

После выполнения
всех задач в трее появляется иконка с
программой как и в случае апача.

Щелкая на ней
левой кнопкой, появляется выпадающее
меню с пунктами:

  • Start

  • Stop


  • Restart

Щелчек на них
выполняет соответствующие действия

При щелчке
правой кнопкой мыши появляется выпадающее
меню с пунктами:

  • About

  • Exit

Щелчек на About
открывает браузер по умолчанию на
адресе:
http://anime-db.org/

Щелчек на Exit
стопает запущенные процессы и выключает
программу

При наведении
на иконку в трее, вылезает подсказка:
AnimeDB
Желательно:

  • желательно
    что бы при запуске exe-шника открывался
    браузер по умолчанию с адресом:
    http://localhost:56780

  • желательна
    поддержка мультиязычности


(перевод пунктов
меню и сообщений об ошибках)
Переводы:

Сейчас нужно
только две локали ru и en (это если
будет делаться мультиязычность).

Start - Старт

Stop - Стоп

Restart - Перезапуск

About - О программе

Exit - Выход

The application can not
run in the current folder. Move it to another folder, for example in
the folder: C:\ - Приложение нельзя
запустить из текущей папки. Переместите
его в другую папку, например в папку:
C:\

Язык:

к языку
требований нет, главное чтоб прога была
портативная и не требовала от ОС что-то
особенное

Примечание:

Отдельно
примеры реализации на Bash и VBScript
Во вложении иконка
16x16. Скорей всего нужна будет иконкак
большего размера для exe-шника. Поэтому
отдельно, во вложении png или cdr иконки.

Последний
релиз программы которая будет запускаться
можно скачать здесь:
http://anime-db.org/download/anime-db_0.3.5.19_Win32.exe

Может понадобится
для отладки
Файлы