Категории каталога

Форма входа

Поиск

Друзья сайта

Статистика


Онлайн всего: 1
Гостей: 1
Пользователей: 0

Наш опрос

Оцените мой сайт
Всего ответов: 58
Главная » Статьи » Portable How 2 » Портейблстроение

Portable – сделай сам vol.2
Portable – сделай сам vol.2


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

В качестве подопытного кролика я выбрал чудную программу для подсчета трафика DU Meter. Выбрал ее, потому как нуждался в хорошей программе подсчета трафика, к тому же уже имел опыт общения с этой программой и решил не заморачиваться поиском альтернатив. В комментариях можете тыкать меня носом в оные, невзирая на личности.

Итак, начнем. Для проведения этой операции нам понадобятся:
1. Universal Extractor - оффсайт, но активное обсуждение ведется здесь, качать можно вот отсюда
2. Сам DU Meter
3. Знание английского языка – но можно и без него.
4. Самый главный пункт – стремление и желание.


После того, как закачаете и установите Universal Extractor (можно выкачать как зип-версию, так и инсталлятор – зависит от ваших предпочтений). Одно отмечу от себя: забирайте версию 1.5, потому как она более стабильна, но в этом случае необходимо будет еще закачать обновление для программы The Inno Setup Unpacker. Она входит в состав инсталляционного пакета Universal Extractor, но та, что была в пакете версии 1.5, не справилась с распаковкой. Об этом ниже. Еще одно отступление – испытуемую программу можно распаковать и Inno Setup Unpacker-ом, но мы же с вами уважаемые люди и не будем ковыряться в командной строке :) (по крайней мере, не на этом этапе).
Продолжаем разговор, как говаривал один из мультипликационных персонажей. Немного об алгоритме наших действий. Во–первых мы должны постараться распаковать необходимый инсталляционный пакет, а потом уже чесать затылок и думать, что делать дальше – тыкать по научному или читать литературу.
Таким образом, для начала необходимо установить, чем упакован наш инсталлятор. Я делаю это просто – Нажимаю F3 в Total Commander–е, благо Lister-плагин Fileinfo установлен и настроен. По нажатии выскакивает такое вот окошко (рис.1)


Рис.1

Если же у вас нет установленного Тотал Коммандера, то вы сможете выделить ехе-файл и нажав правую кнопку мыши (райт-клик) выбрать меню Properties (Свойства). Теперь вы должны увидеть следующее (рис2.)



Рис.2
И в первом, и во втором случае нас интересует одна и та же строчка: Comments : This installation was built with Inno Setup. В переводе это означает, что инсталляционный пакет был создан с помощью Inno Setup

Inno Setup — бесплатный инсталлятор для Windows программ. Впервые выпущенный в 1997 году, Inno Setup сегодня конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.



А значит нам нужен распаковщик для Inno Setup. Вот теперь выбор за вами, либо распаковать все это хозяйство с помощью Universal Extractor – райт-клик на файле инсталляции и выбираем UniExtract to Subdir (рис.3)


Рис.3

Ну или с помощью другой The Inno Setup Unpacker – а как это делать, я не скажу, потому как не разбирался с этой программой, можете занятся этим на досуге. Другие возможные варианты распаковки не рассматривал, так как хватило того, что было под рукой. Едем дальше – после распаковки получаем папку следующего содержания:

{app}\
{pf}\
embedded\
install_script.iss

Из всего этого нас интересуют папка {app} вместе со всем содержимым и файл install_script.iss – файл, содержащий скрипты, необходимые для инсталляции. Подробно рассматривать весь синтаксис скриптового файла инсталляции мы не будем, для более глубокого изучения проследуйте сюда или скачайте архив с приложениями к этой статье. Вернемся к нашим баранам, как говорят французы. Открываем файл install_script.iss любым текстовым редактором (я же опять нажимаю кнопку F3) и видим следующие секции:
1. [Setup] – нас она не интересует, это общая информация о пакете.
2. [Files] – самая интересная часть, тут описывается пути установки файлов при распаковке.
3. [Registry] – еще одна интересующая нас секция. Тут прописаны все измения, которые будут внесены в реестр при установке.
4. [Run] – тоже должна нас заинтересовать, команды после установки.
5. [UninstallRun] – аналогична предыдущей секции, только тут команды, запускаемые при удалении программы.
6. [Icons],[CustomMessages], [Languages] – нам не важны. Все это вспомогательные команды для инсталлятора.

Бросив беглый взгляд в секцию [Files], мы с вами видим, что практически все, что нам нужно, находится в папке {app}. Такой вывод я сделал на основании того, что большинство команд инсталлятора выглядит следующим образом:

Source: "{app}\DUMeter.exe"; DestDir: "{app}";



Что буквально означает – из Источника (папки {app} в инсталляторе) скопировать файлы в папку назначения на жестком диске. Папку назначения выбирает пользователь при установке.

Source: "{pf}\Windows Sidebar\Shared Gadgets\DUMeter.gadget\htlogo66x58.png"; DestDir: "{pf}\Windows Sidebar\Shared Gadgets\DUMeter.gadget";


Эта и ей подобные строчки означают, что файлы из инсталляционного пакета {pf} копируются в Program Files на компьютер пользователя. Отмечу, что данная секция интересна пользователям Висты, так как тут упоминаются файлы для Windows Sidebar-а.. У меня установлен ХР, поэтому эта папка меня не заинтересовала. Из всего вышеописанного следует, что ДУМетр спокойно запустится из любой директории любого носителя. Но советую вам не торопиться и обратить внимание на всякий случай на секцию [Registry] :

Root: HKLM; Subkey: "Software\Hagel\DU Meter"; ValueName: "InstDir"; ValueType: String; ValueData: "{app}"; MinVersion: 0.0,5.0; Flags: createvalueifdoesntexist uninsdeletekey
Root: HKCU; Subkey: "Software\Hagel\DU Meter"; MinVersion: 0.0,5.0; Flags: uninsdeletekey


Тут, как мы видим, в реестр добавляется информация о папке, куда установлено приложение и информация для деинсталляции. Оно нам не нужно, поэтому смело игнорируем эти команды. Остались последние секции куда нам следует глянуть – это [Run] – тут, как мы выше выяснили, находятся команды, которые запустятся при удачной инсталляции. И секция [UninstallRun] – соответственно необходимые для деинсталляции (в нашем случае - закрытия) программы.

Filename: "{app}\DUMeterSvc.exe"; Parameters: "/reinstall"; StatusMsg: "Installing DU Meter service"; MinVersion: 0.0,5.0;
Filename: "{app}\DUMeter.exe"; Parameters: "/regserver"; StatusMsg: "Registering DU Meter components"; MinVersion: 0.0,5.0;
Filename: "{app}\DUMeter.exe"; Parameters: "--firstrun"; Description: "Run DU Meter"; MinVersion: 0.0,5.0;



В первой строчке говорится, что для успешного запуска приложения необходимо для начала запустить DUMeterSvc.exe с параметром "/reinstall" и зарегистрировать данный сервис командой DUMeter.exe /regserver (Как выяснилось в дальнейших испытаниях, эта строчка добавляет программу в автозапуск – поэтому ее использовать я не стал). Далее запускаем сам DUMeter.exe и не забываем параметр –firstrun (хотя можно про этот параметр и забыть).

Filename: "{app}\DUMeterSvc.exe"; Parameters: "/uninstall"; RunOnceId: "duserviceuninstall"; MinVersion: 0.0,5.0;
Filename: "{app}\DUMeter.exe"; Parameters: "/unregserver"; RunOnceId: "dumeteruninstall"; MinVersion: 0.0,5.0;



Здесь описаны ключи запуска при удалении программы, в нашем случае - закрытии. Вот в принципе и все – осталось только вышеопределенные команды запустить из командной строки и гордиться собой. Вы только что своими руками создали переносную программу. Но согласитесь, что каждый раз набивать эти команды вручную дело конечно нехитрое, но хлопотное. Да и к тому же если вы захотите распространять ваше детище, то в таком виде оно не будет иметь успеха. Самый быстрый способ – это написать бат-файл, где и перечислить все необходимые команды. Но или если вы обладаете знаниями одного из языков программирования, то можете скомпилировать лоадер (загрузчик) со сплаш-скрином (окошко которое вы видите перед тем как загрузиться основная форма приложения, например при запуске Excel и т.д.)
Лоадер я писать не стал, потому как ленив и иду по пути наименьшего сопротивления, а вот бат-файлик состряпать вам помогу. Необходимые справочные материалы - в приложении, ну или, если хотите, вот вам ссылки и еще - для начала этого хватит . А пока повторяйте за мной.

Листинг бат-файла.

@Echo Off
cls
color 1f
:Entrance
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO +========================================================================+
ECHO + Portable DUMetr Controler by WarmSnow (Baku Azerbaijan 29-01-2008) +
ECHO +========================================================================+
ECHO + Press I to Instal , S - Start , C - Close , U - Uninstal +
ECHO +========================================================================+
ECHO.
SET CHOICE=
SET /P CHOICE="* Enter Choice: "
IF /I '%CHOICE%'=='I' GOTO Install
IF /I '%CHOICE%'=='S' GOTO Start
IF /I '%CHOICE%'=='C' GOTO Close
If /I '%CHOICE%'=='U' GOTO Uninstall

CALL :inputerror

:Install
ECHO Now we'll installing and registering service
ECHO And Applying first run commands
DUMeterSvc.exe /reinstall
DUMeter.exe --firstrun

GOTO EOF

:Start
ECHO Now Starting application
DUMeterSvc.exe
DUMeter.exe
ECHO All Done

GOTO EOF

:Close
ECHO Now Closing application
TASKKILL /F /IM DUMeter.exe /T
TASKKILL /F /IM DUMeterSvc.exe /T

GOTO EOF

:NOw Uninstalling application
ECHO Uninstall
DUMeterSvc.exe /uninstall
DUMeter.exe /unregserver

GOTO EOF

:inputerror
CLS
color 4f
ECHO.
Echo !! - ERROR - !!
ECHO !- Invalid input specified. Please choose an available option by
Echo typing the letter specified in the option you want to choose.
Echo.
pause
GOTO :EOF

:EOF
color 1f
ECHO.
ECHO.
ECHO.
ECHO.
ECHO.
ECHO +========================================================================+
ECHO + Again :) ?: +
ECHO +========================================================================+
ECHO + [Y]es / [N]o and Exit +
ECHO +========================================================================+
ECHO.
SET CHOICE=
SET /P CHOICE="* Enter Choice: "
IF /I '%CHOICE%'=='Y' GOTO Entrance
If /I '%CHOICE%'=='N' GOTO EOF2
CALL :inputerror

:EOF2
Endlocal



И если вы все сделали правильно, то должны увидеть вот такое окошко (рис.4)


Рис.4

Вот теперь все. Надеюсь, не утомил вас своими буквами. Хороших переносных программ вам. Все перечисленные программы и справочные материалы приложены в архиве к этой статье. Вопросы направляйте по адресу zaurbb@gmail.com


Zaur Baghirov aka Теплый Снег Baku Azerbaijan 29-01-2008


Полезные ссылки, не вошедшие во вложение к статье.

1. - Обзор команд и драйверов MS-DOS 6.2
2. - Command-line reference A-Z (Английский язык)
3. - Portable programs & Apps (Английский язык)
4. - Готовые Программы (Английский язык)

Остальные ссылки в первой части, она имеется в архиве.


File: how_to_portable_#2.rar
DownloadLink:
File-Size: 9.94 MB
Uploaded: 29/01/2008, 17:18:17
3% на восстановление и пароль по стандарту.



Ваш ТС
Источник: http://wsnow2.blogspot.com/
Категория: Портейблстроение | Добавил: wsnow2 (29.01.2008)
Просмотров: 12887 | Комментарии: 9 | Рейтинг: 4.0/1 |
Всего комментариев: 6
6 paytightihos  
0
hi

5 Victor_Man  
0
how_to_portable_#2.rar - пароль стандартный...чего только не пробовал :) от Руборд с модификациями до кпнемо, снов... укоз ... что за стандарт такой

4 wsnow2  
0
Quote

Д_Б
Возможно в название сайта - ЛаборОтория Тёплого Снега вкралась ошибка ?

Вот спасибо :)) А я все смотрю и думаю что мне там не нравиться.


3 Д_Б  
0
Возможно в название сайта - ЛаборОтория Тёплого Снега вкралась ошибка ?

2 wsnow2  
0
Quote
для начинающего сойдет, упоминается и Universal Extractor и некоторые моменты работы с инсталляторами
в общем не плохо, если придираться то не люблю я *.mht :)

Спасибо за комментарий , а насчет *.mht , скажу следующее - устал я от глюков *.chm smile


1 sanb  
0
для начинающего сойдет, упоминается и Universal Extractor и некоторые моменты работы с инсталляторами
в общем не плохо, если придираться то не люблю я *.mht :)

Имя *:
Email *:
Код *: