ISDone

DLL ISDone 0.6 final

Нет прав для скачивания

Olim98

Новичок
Всем привет! Для чего в ISDone srep.exe если в скрипте он нигде не прикрепляется и нельзя ли вместо packZIP.exe и 7z.dll добавить один файл, если хотите я его дам
 

prolatao1993

Мимокрокодил
всем Привет!
что это такое ?
Код:
msc:raw=0:ddsraw=0:ddsDXT=0:tak=9
как он относится к CLS-msc.dll
// dont_allow_second_copy_of_binkpacker кажется, используют BinkUnpack
:)
 

Chopser

Новичок
Вопрос первый: почему при отмене распаковки, инсталлятор прекращает распаковку, НО продолжается создание ярлыков и прочего, и только потом срабатывает деинсталлятор и установка прекращается? Нельзя ли как то сделать чтоб все прекращалось сразу как в стандартном инсталляторе?

Вопрос второй: можно как то сделать чтобы при отмене установки/распаковки, не появлялось финишное окно с надписями типа - "Установка не была завершена и т.д.", а просто инсталлятор закрывался как стандартный?

Инсталлятор с обычным arc-архивом, без срепа и прекомпа.

Заранее спасибо.
 
Последнее редактирование:

sergey3695

Ветеран
Модератор
Chopser,
1. Если ярлыки создаются в секции [Icons],то проверь чтобы стояло Check: CheckError. В противном случае (если создаются в [code],то поставь под проверку if not ISDoneError then)
2.
Код:
if (CurPageID = wpFinished) and ISDoneError then
   begin
   // сами автоматом ставим нажатие на 'Завершить'
   WizardForm.NextButton.OnClick(nil);
 

Chopser

Новичок
В противном случае (если создаются в [code],то поставь под проверку if not ISDoneError then)
Спасибо, а поподробней можно насчет ярлыков из кода? Куда писать (как поставить проверку) - if not ISDoneError then)?

сами автоматом ставим нажатие на 'Завершить'
Сработало, только все равно проскакивает надпись - Запись информации в реестр и Создание ярлыков. Сразу не закрывается.
 

sergey3695

Ветеран
Модератор
Chopser, секции [Icons] и [Registry] в студию пожалуйста :)
Спасибо, а поподробней можно насчет ярлыков из кода? Куда писать (как поставить проверку) - if not ISDoneError then)?
У тебя этого нет,это тебе не нужно. Просто у меня в [code] прописано создание ярлыков. Мало ли,так для инфы написал.
Пример создания:
Код:
// Рабочий стол
// {#NameRusSD} - название ярлыка
// {#ExeName} - место расположения файла на который ссылается ярлык
CreateShellLink(ExpandConstant('{userdesktop}\{#NameRusSD}.lnk'),'',ExpandConstant('{app}')+'\{#ExeName}','','','',0,SW_SHOW)
// Меню Пуск
// 1. Сам ярлык для запуска
// 2. Ярлык ссылающийся на деинсталлятор
  ForceDirectories(ExpandConstant('{commonprograms}\{#NameRusSD}')); // Папка в меню
// Элементы в папке
  CreateShellLink(ExpandConstant('{commonprograms}\{#NameRusSD}\{#NameRusSD}.lnk'), '', ExpandConstant('{app}')+'\{#ExeName}','', '', '', 0, 0);
  CreateShellLink(ExpandConstant('{commonprograms}\{#NameRusSD}\Uninstall.lnk'), ExpandConstant('{cm:Uninstall}'), ExpandConstant('{app}\Uninstall\unins000.exe'),'', '', '', 0, 0);
Сработало, только все равно проскакивает надпись - Запись информации в реестр и Создание ярлыков. Сразу не закрывается.
Потому что распаковка стоит if CurStep = ssInstall (перед установкой) then begin,потом идет процесс создания ярлыков,записи в реестре и деинсталлятора. Из этого следует прочитать первое предложение сообщения. ;) (если сам не добавил Check: CheckError в эти секции). Потом можешь добавить WizardForm.StatusLabel.Hide; чтобы точно небыло надписи :)
 

Chopser

Новичок
В секции [Icons] и [Registry] Check: CheckError прописал, после твоей первой подсказки. Надписи при отмене - черт с ними, там доли секунды. Просто я ISDone недавно стал пользовать, думал может так и надо. Достает при отмене создание ярлыка на рабочем столе хотя он тут же удаляется, но все равно. Ярлык на рабочий стол прописан в коде, просто чтоб меньше было страниц при установке, я воткнул чекбокс ярлыка рабочего стола на страницу выбора папки ярлыков. Тем самым исключив секцию [Tasks] ну и естественно страницу задач. Ниже код этого чек бокса. Как сделать чтоб не создавался ярлык?

Код:
 var 
 box:TCheckBox; 
  
 function MakeBox: Boolean; 
 begin 
   Result:=box.Checked; 
 end; 
  
 procedure InitializeWizard(); 
 begin 
  box:=TCheckBox.Create(WizardForm); 
  with box do 
 begin 
     Parent:=WizardForm.WelcomePage; 
     Caption:='Название box'; 
     Left:=ScaleX(160); 
     Top:=ScaleY(160); 
     Width:=ScaleX(300); 
     Height:=ScaleY(15); 
     TabOrder:=0; 
     Checked:=False; 
   end; 
 end;
 

sergey3695

Ветеран
Модератор
Chopser,я впринцепи так и думал что для надписи используется WizardForm.StatusLabel который не скрыт. Я сам все сделал,посмори (прикрепил только скрипт в архиве (остальное есть в шапке (файлы))). Создал ещё один лейбл. Теперь при отмене или ошибке появляется сообщение об откате :)
P.S. про что написал выше,мне неохото писать,извини. Сегодня я отдамся лени :rofl:
----
В прочем отвечу, это код чекбокса,он отвечает за создание ярлыка (или чего-либо смотря за чем прикреплен) в отмеченном состоянии и при удачной установке (в нашем случае). Само создание объекта на рабочем столе прописано в секции [Icons], добавив Check: MakeBox (ставим проверку на отметку чекбокса) -> получается Check: MakeBox and CheckError (создается если отмечен и все хорошо) :) Если я написал что-то ни то,то я тогда незнаю что именно имелось (подразумевалось введу). Скрипт в архиве я проверил,ничего при отмене (ошибке,откате) не создается без моего ведома :)up:)
 

Вложения

XLASER

Новичок
Ребят подскажите как задействовать в скрипт чтобы можно было Фриарком распаковывать. Читал что та так и не понял. Заранее благодарю
 

vint56

Ветеран
Проверенный
XLASER ты имеешь в виду фриарк архив то так
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\data.bin'), ExpandConstant('{app}'), '', false, 'vint56', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
 

Лёха

Участник
товарищи, подскажите как сделать если инстал не нашёл какой то файл, то всё равно продолжил установку (установка по маске не то)
есть файлы A В С, если инстал не нашёл файл В, то продолжил установку С
 
Последнее редактирование:

nik1967

Old Men
Проверенный
Лёха, может добавить проверку присутствия файла?
[SOURCE="inno"]if ISDoneInit...
.......................................
if FileExists(ExpandConstant('{src}\B')) then
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\B'), ExpandConstant('{app}'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;[/SOURCE]
 
Последнее редактирование:

Лёха

Участник
nik1967,
Код:
ISDoneError:=true;
    if ISDoneInit(ExpandConstant('{src}\records.inf'), $7777, Comps1,Comps2,Comps3, MainForm.Handle, 0, @ProgressCallback) then begin
      repeat

       #ifdef English
        if BtnGetVisibility(RussianButton) then begin
          ChangeLanguage('English');
        end;;
       #endif

        if not SrepInit('',512,0) then break;
        if not PrecompInit('',128,PCFVer) then break;
        if not FileSearchInit(true) then break;

[COLOR="red"]if FileExists(ExpandConstant('{src}\Setup-1.rej') then[/COLOR]
 if not ISArcExtract    ( 0, 45, ExpandConstant('{src}\Setup-1.rej'), ExpandConstant('{app}'), '', false, '', ExpandConstant('{tmp}\arc.ini'), ExpandConstant('{app}'), notPCFonFLY{PCFonFLY}) then break;
inno пишет что ошибка, мол запятой не хватает.
 

Путя

Мимокрокодил
Добрый вечер. Подскажите пожалуйста, можно ли с помощью ISDone распаковать архив, уже упакованный в инсталлятор с помощью Inno Setup (т.е. например из файла setup.bin), не копируя этот архив на компьютер. Пробовал так, не получилось:
Source: 1.7z; DestDir: {src}; Flags: dontcopy

if not IS7ZipExtract(0,0,ExpandConstant('{src}\1.7z'),ExpandConstant('{app}'),false,'') then break;
 
Сверху