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/
|