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

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

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

Аватара для El Sanchez

Ветеран


Contributor


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


Конфигурация

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


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Аватара для YURSHAT

Старожил


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

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


Цитата MrEugen:
в формате .ini »

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 23:26, 27-04-2012 | #1691



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Забанен


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

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


Цитата YURSHAT:
»
Полагаю это не скин, а картинки, а выглядит действительно как скин.
Код: Выделить весь код
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
Самому интересно узнать такую реализацию.

Отправлено: 06:22, 28-04-2012 | #1692


Аватара для YURSHAT

Старожил


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

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


Цитата Devils Night:
Самому интересно узнать такую реализацию. »
А чего там сложного то? Какая разница откуда инсталл будет брать картинки, из темпа или из рядом лежащей папочки к примеру, а адрес изображений будет прописан в инишке

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Отправлено: 07:20, 28-04-2012 | #1693


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


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

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


Цитата Devils Night:
is7zip по моему вообще библиотека для распаковки 7zip. Жми 7zip-ом, я ужимал им 4 гига и ничего, он не умер.
А вообще полезно справочку почитать
вот отрывок »
Да просто беда в том, что он не ужимается до 2.1 гигов. Уже насоздавал 10ок архивов с разными параметрами сжатия - максимум что удалось ужать - это на 200 метров.
Мне еще интересно - почему в нсисе можно до 4х гигов делать инсталлятор - а в инно нет? Тут же явно не а файловой системе проблема. Мб есть какая-нить отдельная тулза или дллка которая расширяет этот параметр для инно?

Отправлено: 08:29, 28-04-2012 | #1694


Аватара для Ivan_009

Ветеран


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

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


Почему при использовании Tiger.cjstyles + слайдшоу эффект 6 - Fuse неправильно отображается... как исправить данную ошибку.

Последний раз редактировалось Ivan_009, 28-04-2012 в 17:42.


Отправлено: 08:56, 28-04-2012 | #1695


Пользователь


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

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


Цитата Johny777:
Temyraz@fb
я ж тебе в скрипте так и сделал
если чекбокс А отмечен то в function NextButtonClick выполняется это на той ли иной странице при нажатии на кнопку "далее"
если чекбокс Б отмечен, то выполняется другое.
Ты хоть разбирал что к чему? Я старался не для того чтоб ты просто скомпилил и использовал, а чтоб ты посмотрел как оно сделано, понял, и смог при желании осмысленно воспроизвести »
но все равно делает проверку(((
может я не правильно выражаюсь, извините. но мне нужно чтоб место куда устанавливается приложение делалась проверка, при наличии папки выдавалась сообщение, это при чекбоксе В, а при чекбоксе А нет.
я думаю может этим как то можно похимичить?

читать дальше »
Предупреждения при установке в существующую папку
За появление сообщения «Папка … уже существует. Вы хотите продолжить установку в эту папку?»
отвечает директива DirExistsWarning. При DirExistsWarning=auto инсталятор выдаст это сообщение, если
UsePreviousAppDir=no или установка производится в папку впервые. При UsePreviousAppDir=yes
сообщение появится только при первой установке. Если DirExistsWarning=yes, сообщение будет
появляться всегда, а если DirExistsWarning=no, то не будет появляться никогда.


можно ли этим мне помочь?

Отправлено: 10:37, 28-04-2012 | #1696


Аватара для Johny777

Ветеран


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

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


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;


Исправил

Последний раз редактировалось Johny777, 28-04-2012 в 11:20.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:15, 28-04-2012 | #1697


Аватара для Gnom_aka_Lexander

Ветеран


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

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


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

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.

Это сообщение посчитали полезным следующие участники:

Отправлено: 11:20, 28-04-2012 | #1698


Пользователь


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

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


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

Отправлено: 11:28, 28-04-2012 | #1699


Аватара для Johny777

Ветеран


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

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


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
только писать "Папка ... существует" не разумно, тк пользователь может поменять её название
Решение
либо просто "Папка существует..." либо "Приложение установлено. Установить туда же?"

Последний раз редактировалось Johny777, 28-04-2012 в 13:33.

Это сообщение посчитали полезным следующие участники:

Отправлено: 12:01, 28-04-2012 | #1700



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход