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

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

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

Ветеран


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


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

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


Изменения
Автор: Serega
Дата: 13-08-2011
Вложения
Тип файла: 7z Inno Setup [все вопросы] часть 1.7z
(1.34 Mb, 900 просмотров)
Тип файла: 7z Inno Setup [все вопросы] часть 2.7z
(3.12 Mb, 798 просмотров)
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

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


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

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 00:28, 04-11-2010

 

Аватара для R.i.m.s.k.y.

Ветеран


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

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


вообще-то в инишниках [...] - секции, а ";" - комментарии
придется "руками" через код писать файл раз надо, смотри в сторону SaveStringsToFile, в InnoSetupFAQ_ru-board.chm и шапке есть примеры,
в InnoSetupFAQ_ru-board.chm помоему вообще что тебе нужно один-в-один
Как сделать, чтобы дополнительно создать новую страницу и туда перенести задачи раздела [Tasks], чтобы при их выборе происходило копирование в ini-файл, в зависимости от того, что выбрано (из чекбоксов)?

Цитата Gugle:
После инсталяции приложения, мне необходимо размножить (или скопировать) одну из папок. Скачав InnoSetupFAQ_ru-board.chm я нашел там решение этой проблемы с помощью скрипта "SHFileOperation.iss". Однако при удалении приложения эти размноженные папки не удаляются, а хотелось бы, что бы удалялись.
Что для этого нужно сделать? »
Код: Выделить весь код
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep); 
begin 
if CurUninstallStep=usDone then 
begin 
if DirExists(ExpandConstant('{app}\')) then 
DelTree(ExpandConstant('{app}'), True, True, True); 
end; 
end;
может пригодится функция замены текста в текстовом файле
Код: Выделить весь код
procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
  S: TArrayOfString;
  //str : string;
  i : Integer;
begin
  if not FileExists(FilePath) then begin MsgBox('Файл не найден ' + FilePath, mbError, mb_Ok); Exit;end; // если файла нет, выходим
  LoadStringsFromFile(FilePath, S); // загружаем файл
  for i:= 0 to GetArrayLength(S)-1 do begin
    if (Pos(AnsiUpperCase(find), AnsiUpperCase(S[i])) > 0) then begin
      StringChangeEx(S[i], find, replace, True);
    end;
  end;
  SaveStringsToFile(FilePath, S, False); // сохраняем файл
end;

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Последний раз редактировалось R.i.m.s.k.y., 26-07-2011 в 16:02.

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

Отправлено: 15:39, 26-07-2011 | #2411



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

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


Аватара для Habetdin


Автор проектов


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

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


Цитата R.i.m.s.k.y.:
procedure CurUninstallStepChanged »
Еще можно без секции [code]:
Код: Выделить весь код
[UninstallDelete]
Name: {app}; Type: filesandordirs

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 15:55, 26-07-2011 | #2412


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата Habetdin:
Еще можно без секции [code]: »
знаю но не всегда срабатывает

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 15:59, 26-07-2011 | #2413


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


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

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


R.i.m.s.k.y., возможно Вы имели ввиду пример, описанный в InnoSetupFAQ_ru-board.chm, однако...
1. При использовании процедуры CurStepChanged(CurStep: TSetupStep); для копирования данных папки создаются, а вот данные туда не копируются. В связи с этим сделал свою процедуру, которая стартует сразу после установки необходимой папки:
Код: Выделить весь код
Source: "C:\test\Folder0\*"; DestDir: "{app}\Folder0\"; AfterInstall: CopyFolder(); Flags: ignoreversion recursesubdirs createallsubdirs
2. Я не могу понять как удалить созданные папки, если они у меня создаются в зависимости от указанного пользователем значения при установке приложения. Т.е. Я не могу сделать в процедуре CurUninstallStepChanged(CurUninstallStep: TUninstallStep); следующее:
Код: Выделить весь код
CopyDir(ExpandConstant('{app}\Folder1\'),ExpandConstant('{app}'));
CopyDir(ExpandConstant('{app}\Folder2\'),ExpandConstant('{app}'));
т.к. количество вводится только во время установки.

Кстати, почему в примере CopyDir()? Это описался человек или так и должно быть?

R.i.m.s.k.y., Ваша процедура удаления CurUninstallStepChanged(CurUninstallStep: TUninstallStep); работет более корректно. Все вопросы по удалению отпали.

Большое спасибо за подсказку.

Отправлено: 16:16, 26-07-2011 | #2414


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата Gugle:
В связи с этим сделал свою процедуру, которая стартует сразу после установки необходимой папки: »
и она отрабатывает над каждым файлом в папке
советую копировать папку куда надо без AfterInstall, а потом второй строчкой один мелкий файлик уже с AfterInstall
Код: Выделить весь код
Source: "C:\test\Folder0\*"; DestDir: "{app}\Folder0\"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: "C:\test\Folder0\ww.txt"; DestDir: "{app}\Folder0\"; AfterInstall: CopyFolder(); Flags: ignoreversion recursesubdirs createallsubdirs
Цитата Gugle:
Ваша процедура удаления CurUninstallStepChanged »
она не моя, она системная

и можно на ты, меня не покоробит

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 17:06, 26-07-2011 | #2415


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


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

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


Цитата:
и она отрабатывает над каждым файлом в папке
Спасибо за пояснения.

В Examples при установке inno setup лежит прекрасный пример (Components.iss) по построению установщика с выбором разных "уровней сложности":
Код: Выделить весь код
[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom
Вопрос. Как после выбора "Full installation" попасть сразу в последнее окно, а, например, при выборе "Compact installation" поставить сначало дно из своих окон?
Например вот такое:
Код: Выделить весь код
var
  UserPage: TInputQueryWizardPage;

procedure InitializeWizard;
begin
  UserPage := CreateInputQueryPage(wpWelcome,
    'Дополнительная информация', 'ВНИМАНИЕ! Все поля должны быть заполнены',
    'Пожалуйста введите количество wrlr, которые необходимо установить '+
    'на рабочую станцию и нажмите клавишу next');
  UserPage.Add('Количество  wrlr:', False);
  UserPage.Add('ни о чем:', True); // Скрытый текст
end;
З.Ы.
Текст из Components.iss
читать дальше »
Код: Выделить весь код
; -- Components.iss --
; Demonstrates a components-based installation.

; SEE THE DOCUMENTATION FOR DETAILS ON CREATING .ISS SCRIPT FILES!

[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
UninstallDisplayIcon={app}\MyProg.exe
OutputDir=userdocs:Inno Setup Examples Output

[Types]
Name: "full"; Description: "Full installation"
Name: "compact"; Description: "Compact installation"
Name: "custom"; Description: "Custom installation"; Flags: iscustom

[Components]
Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help File"; Types: full
Name: "readme"; Description: "Readme File"; Types: full
Name: "readme\en"; Description: "English"; Flags: exclusive
Name: "readme\de"; Description: "German"; Flags: exclusive

[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Components: program
Source: "MyProg.chm"; DestDir: "{app}"; Components: help
Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme
Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"

Отправлено: 17:12, 26-07-2011 | #2416


Ветеран


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

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


Всем привет,как сделать чтобы прогресс бар со временем перемещался на середину и так далее типа как у механиков?

Отправлено: 17:20, 26-07-2011 | #2417


Старожил


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

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


insombia, я сам хочу узнать

-------
Стремись не к тому, чтобы добиться успеха, а к тому, чтобы твоя жизнь имела смысл.(Альберт Эйнштейн)


Отправлено: 21:12, 26-07-2011 | #2418


Аватара для Rikill

Старожил


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

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


insombia, LinkOFF, всмысле в середину?? так штоле?
p.s. надо было так и спросить: "как уменьшить страницу установки и переместить?"

-------
"Око за око приведёт к слепоте мира"- Ганди


Последний раз редактировалось Rikill, 26-07-2011 в 22:25.


Отправлено: 21:25, 26-07-2011 | #2419


Ветеран


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

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


Rikill не так а когда идет установка то через определённое время прогресс бар с начала перескакивал на середину у каталистов тоже такое было

Отправлено: 14:35, 27-07-2011 | #2420



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Утилиты - [addon] Inno Setup CrOsP Наборы обновлений для Windows XP/2003/Windows 7 33 11-05-2011 16:03
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Inno Setup 5.3.6 OSZone Software Новости программного обеспечения 0 15-11-2009 17:30
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход