Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Новый участник


Сообщения: 12
Благодарности: 0

Профиль | Отправить PM | Цитировать


Здравствуйте! Очень нужна помощь в реализации казалось бы простой фишки, от которой зависит выход релиза.

Принцип: пользователь качает базовый пакет программы, во время установки на определенной странице (допустим, на стандартной странице выбора компонентов установки) он выбирает дополнительные пакеты для этой программы, который инсталлятор сам вытянет из нужного сервера и распакует во время установки.

На первый взгляд, всё просто - скачал плагин ISDownloader для IS, нашел уже чеё-то готовый скрипт который проверяет, выбран ли компонент и качает. Вот этот скрипт:

Код: Выделить весь код
 [Components]
Name: Component1; Description: Антивирус касперского; Flags: checkablealone; Types: full
Name: Component2; Description: Commfort Chat; Flags: checkablealone; Types: full
Name: Component3; Description: IpTv Player; Flags: checkablealone; Types: full
Name: Component4; Description: VideoLan (VLC); Flags: checkablealone; Types: full
Name: Component5; Description: Opera Browser; Flags: checkablealone; Types: full 

[Для Code (бб-код форума не парсится)]

procedure InitializeWizard();
begin
 itd_init; 

if ISComponentSelected('Component1') then itd_addfile('http://192.168.1.153/mhhl/install/KAV6WKS_2011-09-18_x600_05E5A9CD.key',expandconstant('{tmp}\KAV6WKS_2011-09-18_x600_05E5A9CD.key'));
if ISComponentSelected('Component1') then itd_addfile('http://192.168.1.153/mhhl/install/kav.msi',expandconstant('{tmp}\kav.msi'));
if ISComponentSelected('Component2') then itd_addfile('http://192.168.1.153/mhhl/install/Chat.exe',expandconstant('{tmp}\Chat.exe'));
if ISComponentSelected('Component3') then itd_addfile('http://192.168.1.153/mhhl/install/iptvLan.exe',expandconstant('{tmp}\iptvLan.exe'));
if ISComponentSelected('Component4') then itd_addfile('http://192.168.1.153/mhhl/install/vlc.exe',expandconstant('{tmp}\vlc.exe'));
if ISComponentSelected('Component5') then itd_addfile('http://192.168.1.153/mhhl/install/Opera11.exe',expandconstant('{tmp}\Opera11.exe'));


 itd_downloadafter(wpReady);
end;
Но вот беда - файлы качаются ВСЕ, независимо от того что выбрано на странице компонентов

Затем наткнулся на скрипт, в котором реализовано то что я хочу, но через костыли (вот он - http://freetexthost.com/osq0sfyeav) - тут перед появлением приветствия вылетают поочередно окошки для каждого компонента (типа: Ставить Это... Да/Нет), потом появляются нормальные окна установщика, окно с выбором компонентов (которое, естественно ни на что не влияет), но качает то что надо.

Прошу у вас помощи, т.к. срывается важный релиз. Гляньте кто-нибудь 1й код, мб там ошибка? Если там всё норм и это баг плагина, возможно ли действовать по принципу 2го кода, но создать новую страницу, которая будет иммитировать обычную страницу с компонентами(с чекбоксами)?

Заранее огромное спасибо за помощь.

Отправлено: 21:12, 22-04-2011 | #1412