Скрипты Inno Setup. Помощь и советы [часть 4]

Ответить
 • Просмотры: 21
Аватара пользователя
Ivan_009

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Ivan_009 »

Цитата YURSHAT:



Изображение
Скрипты Inno Setup. Помощь и советы [часть 4]




Полагаю это не скин, а картинки, а выглядит действительно как скин.



Код:

Код: Выделить всё

SetupPic1 = pic-1.bmp
SetupPic2 = pic-2.bmp
SetupPic3 = pic-3.bmp
SetupPic4 = pic-4.bmp
SetupPic5 = pic-4.bmp
SetupPic6 = pic-4.bmp
SetupPic7 = pic-4.bmp
SetupPic8 = pic-4.bmp

Самому интересно узнать такую реализацию.
Аватара пользователя
ivsatel

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение ivsatel »

Цитата Devils Night:



Самому интересно узнать такую реализацию.
Скрипты Inno Setup. Помощь и советы [часть 4]




А чего там сложного то? Изображение Какая разница откуда инсталл будет брать картинки, из темпа или из рядом лежащей папочки к примеру, а адрес изображений будет прописан в инишке Изображение
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Цитата Devils Night:



is7zip по моему вообще библиотека для распаковки 7zip. Жми 7zip-ом, я ужимал им 4 гига и ничего, он не умер.

А вообще полезно справочку почитать

вот отрывок
Скрипты Inno Setup. Помощь и советы [часть 4]




Да просто беда в том, что он не ужимается до 2.1 гигов. Уже насоздавал 10ок архивов с разными параметрами сжатия - максимум что удалось ужать - это на 200 метров.

Мне еще интересно - почему в нсисе можно до 4х гигов делать инсталлятор - а в инно нет? Тут же явно не а файловой системе проблема. Мб есть какая-нить отдельная тулза или дллка которая расширяет этот параметр для инно?
Аватара пользователя
ivsatel

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение ivsatel »

Тогда InstShellExec почему то "unknown identifier")

Вот так работает:

ShellExec('open', '
http://download.microsoft.com/download/ ... ,ErrorCode
);
Аватара пользователя
ivsatel

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение ivsatel »

Цитата Johny777:



Temyraz@fb

я ж тебе в скрипте так и сделал

если чекбокс А отмечен то в function NextButtonClick выполняется это на той ли иной странице при нажатии на кнопку "далее"

если чекбокс Б отмечен, то выполняется другое.

Ты хоть разбирал что к чему? Я старался не для того чтоб ты просто скомпилил и использовал, а чтоб ты посмотрел как оно сделано, понял, и смог при желании осмысленно воспроизвести
Скрипты Inno Setup. Помощь и советы [часть 4]




но все равно делает проверку(((

может я не правильно выражаюсь, извините. но мне нужно чтоб место куда устанавливается приложение делалась проверка, при наличии папки выдавалась сообщение, это при чекбоксе В, а при чекбоксе А нет.

я думаю может этим как то можно похимичить?




читать дальше »


Предупреждения при установке в существующую папку

За появление сообщения «Папка … уже существует. Вы хотите продолжить установку в эту папку?»

отвечает директива DirExistsWarning. При DirExistsWarning=auto инсталятор выдаст это сообщение, если

UsePreviousAppDir=no или установка производится в папку впервые. При UsePreviousAppDir=yes

сообщение появится только при первой установке. Если DirExistsWarning=yes, сообщение будет

появляться всегда, а если DirExistsWarning=no, то не будет появляться никогда.





можно ли этим мне помочь?
Аватара пользователя
Johny777

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Johny777 »

Temyraz@fb,

плохо улавливаю мысль. Ты хочешь при отмеченном Б ставить в ту же папку, если установлено?

Если да то проверка идёт через реестр. Если ключ есть, то можно выводить сообщение и не только


читать дальше »




Код:

Код: Выделить всё

Setup
AppId=TheBestAppIdEver
procedure CurPageChanged(CurPageID: Integer); 
begin
  if CurPageID=wpSelectDir then
  begin
    if CheckBoxA.Checked = true then
    begin
      WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_A');
    end;
    if CheckBoxB.Checked = true then
    begin
      WizardForm.DirEdit.Text:=ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|{pf}\Setup_B');
    end;
  end;
end;







Исправил
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение R.i.m.s.k.y. »

Ivan_009, потому, что тема тигр сама по себе криво отражается на работе с Layered-окнами, чем и является эффект Fuse в слайдшоу - два Layered-окна друг на друге. Используй другой скин, или лучше не используй его вообще.
Аватара пользователя
Lancher

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение Lancher »

Здравствуйте, поиск не помог.

Как сделать размер собранного инстяллятора больше 2,100,000,000 не используя diskspanning? Нужен один цельный файл.
Аватара пользователя
El Sanchez

Re: Скрипты Inno Setup. Помощь и советы [часть 4]

Сообщение El Sanchez »

Temyraz@fb,

вот самодостаточный пример




читать дальше »




Код:

Код: Выделить всё

[Setup]
AppName=Test Mouse Event
AppVersion=1.5
OutputDir=.
AppId=TheBestAppIdEver
DefaultDirName={reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1,InstallLocation|{pf}\Setup_B}
[  Code]
var
  CheckBoxA: TNewCheckBox;
  CheckBoxB: TNewCheckBox;
function Run_A: Boolean; begin Result:=CheckBoxA.Checked; end;
function Run_B: Boolean; begin Result:=CheckBoxB.Checked; end;
procedure InitializeWizard;
begin
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  { CheckBoxA }
  CheckBoxA := TNewCheckBox.Create(WizardForm);
  with CheckBoxA do
  begin
    Name := 'CheckBoxA';
    Parent := WizardForm.WelcomePage;
    Left := ScaleX(216);
    Top := ScaleY(176);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Caption := 'вариант 1';
  end;
  { CheckBoxB }
  CheckBoxB := TNewCheckBox.Create(WizardForm);
  with CheckBoxB do
  begin
    Name := 'CheckBoxB';
    Parent := WizardForm.WelcomePage;
    Left := ScaleX(216);
    Top := ScaleY(208);
    Width := ScaleX(97);
    Height := ScaleY(17);
    Caption := 'Вариант 2';
  end;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpSelectDir then
  begin
//////  если отмечен чекбокс А
    if CheckBoxA.Checked = true then
    begin
      WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_A');  //// то путь установки такой
    end;
//////  если отмечен чекбокс Б
    if CheckBoxB.Checked = true then
    begin 
      if RegKeyExists(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#SetupSetting("AppID")}_is1') then  ///  если есть ключ
      begin
        if MsgBox('Папка … уже существует. Вы хотите продолжить установку в эту папку?', mbError, MB_YESNO) = idYes /// выводим сообщение /// если ответ ДА
        then
          begin
            WizardForm.DirEdit.Text:=ExpandConstant('{#SetupSetting("DefaultDirName")}');  /// путь через реестр (в скрипте, здесь, через препроцессор берётся строка из секции Setup сверху)
          end
        else
          begin
            WizardForm.DirEdit.Text:=ExpandConstant('{pf}\Setup_B');  //// в противном случа *(ответ "нет") - обычный путь для Б
          end;
      end;
    end;
  end;
end;







2 чекбокса на странице приветствия

если отмечен первый, то установка в {pf}\Setup_A

если второй {pf}\Setup_B



при повторном запуске инсталла и отмеченном втором чекбоксе при переходе на страницу выбора директории установки

проверяется ключ реестра, который вносится при первой установке

при наличии ключа появится месседж бокс с вопросм "да" "нет"



ответ "да" - путь папке приложения где бы она не находилась (куда установили)

ответ "нет" - стандартный путь {pf}\Setup_B



PS

только писать "Папка ... существует" не разумно, тк пользователь может поменять её название

Решение

либо просто "Папка существует..." либо "Приложение установлено. Установить туда же?"
Ответить

Вернуться в «Автоматическая установка приложений»