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