sss
Продвинутый
- Сообщения
- 332
- Репутация
- 96
AutoIt: 3.3.6.1
Версия: у Punto Switcher'a - 3.1.1
Категория: Разное
Описание:
Давно хотел делать программы с "тихой" установкой, то есть установкой без вопросов. Раньше делал так - запускал установочник программы, ставил невидимость, нажимал на кнопки скриптом. Неудобно, некрасиво, много шансов на ошибку. Недавно изобрел *свой* метод, решил поделиться. Делал на примере беплатной программы Punto Switcher 3.1.1, скаченной с Yandex.
Необходимые инструменты: thinstall Virtualization Suite (DepositFiles), вроде бесплатна.
Шаг 1 - установка и скан реестра.
На этом этапе наша задача сводится к получению записей реестра, добавляемых программой, и самих файлов программы.
Скачиваем thinstall (вообще это инструмент для создания portable-программ, но я использую ее для получения измененных веток реестра). Запускаем Setup Capture.exe. Жмем "Start", потом "Pre-Install scan". Ждем. Если появится окно "Warnings" - не беда, это защищенная ветка реестра, это нормально, просто жмем дальше. Устанавливаем свою программу (в моем примере - Punto Switcher), не закрывая Setup Capture. Настраиваете ее (сделанные вами настройки, по идее, должны перенестись и в тихую установку.). Потом возвращаемся к окну thinstall, жмем "Post-Install Scan". Ждем. Опять может быть окно "Warnings", ну да ладно. Из списка выбираем установленную прогу, ставим галку напротив нее, жмем "Continue". Жмем "Save results", потом "Quit".
Шаг 2 - подготовка файлов.
Самый муторный этап - надо перевести полученные записи от thinstall в нормальный вид (в примере - reg-файл и zip-архив)
Переходим в папку Captures (в одной папке с setup capture.exe), дальше в папку с именем нашей проги. Там есть файлы HKEY_LOCAL_MACHINE.txt и HKEY_CURRENT_USER.txt, в них и есть интересующая нас информация. Открываем их. Там запись вида:
Я делал так - шел по ветке в Regedit, экспортировал их и потом объединял в один файл .reg. Далее с помощью проги ConvRegToAu3 (во вложении) конвертил reg в au3.
Далее, в папке с названием проги есть папка %ProgramFilesDir%. Заходим в нее. Это и есть файлы проги. Потом мы их будем копировать (я запихал их в архив zip и извлекал библиотекой zip.au3, во вложении). Насчет папки %SystemSystem% - это вроде файлы которые кидаются в WINDOWS-папку, но я не уверен, не смотрел.
Шаг 3 - создание скрипта-установщика.
Теперь объединяем все - пишем скрипт, который будет устанавливать файлы (FileInstall),копировать их в @ProgramFilesDir и заносить записи в реестр, а также делать ярлыки. Чтобы не мучаться, смотрите пример.
Все, компилируйте и тихая установка готова!
Проверял на виртуальной машине, Punto Switcher встал как родной, все работает и не "падает".
Код/Пример:
Снимок:
нету.
Файлы: Zip.au3, ConvRegToAu3. Пример, к сожалению, с хостинга удалили, и у меня не сохранился.
Источник: http://autoit-script.ru/index.php/topic,4306.0.html
Автор(ы): Sky-WaLkeR.
Версия: у Punto Switcher'a - 3.1.1
Категория: Разное
Описание:
Давно хотел делать программы с "тихой" установкой, то есть установкой без вопросов. Раньше делал так - запускал установочник программы, ставил невидимость, нажимал на кнопки скриптом. Неудобно, некрасиво, много шансов на ошибку. Недавно изобрел *свой* метод, решил поделиться. Делал на примере беплатной программы Punto Switcher 3.1.1, скаченной с Yandex.
Необходимые инструменты: thinstall Virtualization Suite (DepositFiles), вроде бесплатна.
Шаг 1 - установка и скан реестра.
На этом этапе наша задача сводится к получению записей реестра, добавляемых программой, и самих файлов программы.
Скачиваем thinstall (вообще это инструмент для создания portable-программ, но я использую ее для получения измененных веток реестра). Запускаем Setup Capture.exe. Жмем "Start", потом "Pre-Install scan". Ждем. Если появится окно "Warnings" - не беда, это защищенная ветка реестра, это нормально, просто жмем дальше. Устанавливаем свою программу (в моем примере - Punto Switcher), не закрывая Setup Capture. Настраиваете ее (сделанные вами настройки, по идее, должны перенестись и в тихую установку.). Потом возвращаемся к окну thinstall, жмем "Post-Install Scan". Ждем. Опять может быть окно "Warnings", ну да ладно. Из списка выбираем установленную прогу, ставим галку напротив нее, жмем "Continue". Жмем "Save results", потом "Quit".
Шаг 2 - подготовка файлов.
Самый муторный этап - надо перевести полученные записи от thinstall в нормальный вид (в примере - reg-файл и zip-архив)
Переходим в папку Captures (в одной папке с setup capture.exe), дальше в папку с именем нашей проги. Там есть файлы HKEY_LOCAL_MACHINE.txt и HKEY_CURRENT_USER.txt, в них и есть интересующая нас информация. Открываем их. Там запись вида:
Код:
isolation_full ветка реестра
Value=имя записи
тип записи~значение
Далее, в папке с названием проги есть папка %ProgramFilesDir%. Заходим в нее. Это и есть файлы проги. Потом мы их будем копировать (я запихал их в архив zip и извлекал библиотекой zip.au3, во вложении). Насчет папки %SystemSystem% - это вроде файлы которые кидаются в WINDOWS-папку, но я не уверен, не смотрел.
Шаг 3 - создание скрипта-установщика.
Теперь объединяем все - пишем скрипт, который будет устанавливать файлы (FileInstall),копировать их в @ProgramFilesDir и заносить записи в реестр, а также делать ярлыки. Чтобы не мучаться, смотрите пример.
Все, компилируйте и тихая установка готова!
Проверял на виртуальной машине, Punto Switcher встал как родной, все работает и не "падает".
Код/Пример:
Код:
#include <Zip.au3>
DirCreate('C:\temp(install)')
FileInstall('punto switcher.zip','C:\temp(install)\ps.zip')
DirCreate(@ProgramFilesDir & '\Punto Switcher')
_Zip_UnzipAll('C:\temp(install)\ps.zip',@ProgramFilesDir & '\Punto Switcher')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','DisplayName',"REG_SZ",'Punto Switcher 3.1')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','UninstallString',"REG_SZ",'C:\Program Files\Punto Switcher\uninstall.exe')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','DisplayIcon',"REG_SZ",'C:\Program Files\Punto Switcher\uninstall.exe')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','DisplayVersion',"REG_SZ",'3.1.1.72')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','Publisher',"REG_SZ",'Яндекс')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','URLInfoAbout',"REG_SZ",'http://www.yandex.ru')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','HelpLink',"REG_SZ",'http://punto.yandex.ru')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','NoModify',"REG_DWORD",0x00000001)
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Punto Switcher 3.1','NoRepair',"REG_DWORD",0x00000001)
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Yandex\Punto Switcher\3.1','Program Folder',"REG_SZ",'C:\Program Files\Punto Switcher')
RegWrite('HKEY_LOCAL_MACHINE\SOFTWARE\Yandex\Punto Switcher\3.1','Program Group Name',"REG_SZ",'Яндекс\Punto Switcher')
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','Remove',"REG_DWORD",0x00000000)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','Platform',"REG_SZ",'winnt')
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VersionUrl',"REG_SZ",'')
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VerMajor',"REG_DWORD",0x00000003)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VerMinor',"REG_DWORD",0x00000001)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VerSubver',"REG_DWORD",0x00000001)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VerBuild',"REG_DWORD",0x00000048)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','ReportUrl',"REG_SZ",'http://soft.export.yandex.ru/status.xml')
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','PingStatPeriod',"REG_DWORD",0x00015180)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','VersionStatus',"REG_DWORD",0x00000001)
RegWrite('HKEY_CURRENT_USER\Software\Yandex\Yupdate-BITS-CM\Applications\punto','WantUnstableToo',"REG_DWORD",0x00000000)
DirRemove('C:\temp(install)',1)
FileCreateShortcut(@ProgramFilesDir & '\Punto Switcher\punto.exe',@DesktopDir & '\Punto Switcher.lnk')
FileCreateShortcut(@ProgramFilesDir & '\Punto Switcher\punto.exe',@StartupDir & '\Punto Switcher.lnk')
DirCreate(@ProgramsDir & '\Punto Switcher')
FileCreateShortcut(@ProgramFilesDir & '\Punto Switcher\punto.exe',@ProgramsDir & '\Punto Switcher\Punto Switcher.lnk')
FileCreateShortcut(@ProgramFilesDir & '\Punto Switcher\uninstall.exe',@ProgramsDir & '\Punto Switcher\Удалить.lnk')
TrayTip('Установка','Punto Switcher установлен и добавлен в Автозагрузку!',10)
Sleep(10000)
Снимок:
нету.
Файлы: Zip.au3, ConvRegToAu3. Пример, к сожалению, с хостинга удалили, и у меня не сохранился.
Источник: http://autoit-script.ru/index.php/topic,4306.0.html
Автор(ы): Sky-WaLkeR.