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

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

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

Ветеран


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


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

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


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


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

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • 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.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

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


Отправлено: 22:06, 23-08-2009

 

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


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

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


Я наверно совсем тугой. Но эти коды я не понимаю. Куда вставлять?
Если я вставляю после procedure вот так:
Код: Выделить весь код
procedure RePlaceTextinFile(ExpandConstant('C:\file.xml'), 'en', 'ru');
то выдает ошибку:
Код: Выделить весь код
colon (':') expected.
А если после var вот так:
Код: Выделить весь код
var
RePlaceTextinFile(ExpandConstant('C:\file.xml'), 'en', 'ru');
то выдает это:
Код: Выделить весь код
Duplicate identifier 'RePlaceTextinFile'
А если после begin то при компиляции ошибок не выдает, но с xml файлом ничего не происходит. Даже если его нет. Если я правильно понимаю эту строчку:
Код: Выделить весь код
if not FileExists(FilePath) then begin MsgBox('Файл не найден', mbError, mb_Ok); Exit;end;
То как минимум должно выдать ошибку об отсутствие файла при установке?
А какой инно сетап нужен? Я свой давно не обновлял, у меня - Inno Setup Compiler 5.2.4-dev (ISPP 5.2.4.0) (build 090319)

Отправлено: 18:35, 25-06-2010 | #1991



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

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


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


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

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


Вот еще что нашел:
Код: Выделить весь код
///////////////////////////////////////////////////////////////////////////////
// Find given text in given file, and replace
// complete textline with given text.
// Created: March 27, 2002 by S.T.I.Bracke
// Revised: May 22, 2002 by S.T.I.Bracke
function ReplaceLine(strFilename, strFind, strNewLine: String): Boolean;
var
  strTemp : String;
  iLineCounter : Integer;
  a_strTextfile : TArrayOfString;
 
begin
  { Load textfile into string array }
  LoadStringsFromFile(strFilename, a_strTextfile);
 
  { Search trough all textlines for given text }
  // old line
  // for iLineCounter := 1 to High(a_strTextfile) do
  // new line corrected by Nikolaus Moll
  for iLineCounter := 0 to GetArrayLength(a_strTextfile)-1 do
    begin
      { Overwrite textline when text searched for is part of it }
      if (Pos(strFind, a_strTextfile[iLineCounter]) > 0) then
        a_strTextfile[iLineCounter] := strNewLine;
    end;
 
  { Save string array to textfile (overwrite, no append!) }
  SaveStringsToFile(strFilename, a_strTextfile, False);
 
  Result := True;
 
end;
Результат тот же.

Отправлено: 19:47, 25-06-2010 | #1992


Старожил


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

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


Подскажите как заставить выполнятся следующее задание из секции Code, в обычном режиме все работает, а при тихой установке ни в какую, может прописать что надо..?!

Код: Выделить весь код
[Registry]
; .ext1
Root: HKCR; Subkey: .ext1; ValueType: string; ValueName: ; ValueData: MyProgramFile1; Flags: uninsdeletevalue; Tasks: MostVideo\DiracVideo; BeforeInstall: BackupData('ext1')
Root: HKCR; Subkey: MyProgramFile1; ValueType: string; ValueName: ; ValueData: "My Program File ¹1"; Flags: uninsdeletekey; Tasks: MostVideo\DiracVideo
Root: HKCR; Subkey: MyProgramFile1\DefaultIcon; ValueType: string; ValueName: ; ValueData: {sys}\notepad.exe,0; Tasks: MostVideo\DiracVideo
Root: HKCR; Subkey: MyProgramFile1\shell\open\command; ValueType: string; ValueName: ; ValueData: """{sys}\notepad.exe"" ""%1"""; Tasks: MostVideo\DiracVideo


procedure BackupData(FileExt: String);
var
  OldValueData: string;
begin
  if RegKeyExists(HKCR, '.' + FileExt) then
    begin
      RegQueryStringValue(HKCR, '.' + FileExt, '', OldValueData);
      RegWriteStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData);
    end;
end;

Отправлено: 01:23, 28-06-2010 | #1993


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

Ветеран


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

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


Цитата Schemer:
То как минимум должно выдать ошибку об отсутствие файла при установке »
А как Вы вызываете эту процедуру? Я из секции Files. Но можно еще через Event Function, почитайте в справке про CurStepChanged. Вашего кода я не вижу - кладу свой.

Код: Выделить весь код
[Files]
;После копирования файлов будет запущена MeGUIavs
Components: MeGUI; Source: CodeRim\CodeRim\x264\*; DestDir: {app}\x264\; BeforeInstall: ChangeCaption('Установка MeGUI'); AfterInstall: MeGUIavs; Flags: ignoreversion uninsrestartdelete setntfscompression

[_Code]
procedure ChangeCaption(str: string);
    begin
    WizardForm.StatusLabel.Caption:= str;
end;

procedure RePlaceTextinFile(FilePath:string; find:string; replace:string);
var
  S: TArrayOfString;
  //str : string;
  i : Integer;
begin
  if not FileExists(FilePath) then begin MsgBox('Файл не найден', 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;


procedure MeGUIavs;
var plugindir2_5 : String;

begin

  RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\AviSynth','plugindir2_5', plugindir2_5);

  RePlaceTextinFile(ExpandConstant('{app}\x264\Megui\allprofiles\AviSynth\AviSynth_dp_ DeBlock.xml'), 'import("', 'import("'+plugindir2_5+'\');

end;

end.
Цитата Schemer:
А какой инно сетап нужен »
В инно не нужны гонки за версией. У меня стоит Inno Setup Compiler 5.3.7 и ISPP 5.3.6, к примеру на 198 странице у камрада SeDmY не клеилось из-за юникод версии инно.

Цитата cleric1985_n:
Подскажите как заставить выполнятся следующее задание из секции Code »
Читаем про CurStepChanged
Код: Выделить весь код
Procedure CurStepChanged(CurStep: TSetupStep);
Begin
    if CurStep = ssInstall then BackupData(ваши параметры)
End;
А вообще странно, если в тихом режиме применяется Registry, то должна отработать и BeforeInstall: BackupData('ext1'). В коде подставьте MsgBox('???', mbError, mb_Ok) - будет видно что где происходит (или не происходит).

Реестр можно бэкапить вот так, кстати если данные в реестре заковыристые вы уверены что RegWriteStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData) правильно их выгрузит?

Код: Выделить весь код
procedure BackupReg();
var
  res, i, k: Integer;
  reg0, reg, RegEdit: string;
  Key: TArrayOfString;
begin
  RegEdit:= ExpandConstant('{sys}\reg.exe');
  reg0:= ExpandConstant('{app}\BackUp');
  Key:= ['HKLM\SOFTWARE\GNU',
         'HKEY_CURRENT_USER\SOFTWARE\GNU',
         ];
  for i:= 0 to GetArrayLength(Key)-1 do begin
    reg := reg0 + IntToStr(i) + '.reg';
    if not FileExists(reg) then begin Exec(RegEdit, ' export ' + AddQuotes(Key[i]) + ' ' + AddQuotes(reg), ExpandConstant('{sys}'), SW_HIDE, ewWaitUntilTerminated, res);
    end;
    end;

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


Последний раз редактировалось R.i.m.s.k.y., 28-06-2010 в 09:19.


Отправлено: 09:02, 28-06-2010 | #1994


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


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

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


Всем здрасти, Inno Setup использую относительно недавно, так что если вопрос нубский сильно не пинайте, при установки софта если он уже установлен то Inno Setup по умолчанию выдает сообщение мол такая папка уже есть, продолжить туда ставить или нет, можно ли как то изменить текст этого сообщения ?

Отправлено: 13:37, 28-06-2010 | #1995


Старожил


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

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


ecspertiza,

DirExistsWarning=no

Отправлено: 16:05, 28-06-2010 | #1996


Старожил


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

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


Цитата R.i.m.s.k.y.:
Читаем про CurStepChanged »
А зачем оно нужно, если процедура вызывается через BeforeInstall:

Цитата R.i.m.s.k.y.:
Реестр можно бэкапить вот так, кстати если данные в реестре заковыристые вы уверены что RegWriteStringValue(HKCR, '.' + FileExt + '(backup)', '', OldValueData) правильно их выгрузит »
В обычном режиме все корректно отрабатывает, это есть самое обычное сохранение ассоциаций..

Отправлено: 17:52, 28-06-2010 | #1997


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


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

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


Цитата cleric1985_n:
ecspertiza,
DirExistsWarning=no »
Это конечно хорошо, но насколько я понял этот флажок совсем выключит сообщение, а хотелось бы просто изменить его текст.

Отправлено: 09:32, 29-06-2010 | #1998


Аватара для Habetdin


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


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

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


Цитата ecspertiza:
хотелось бы просто изменить его текст. »
Код: Выделить весь код
[Messages]
DirExistsTitle=Папка существует
DirExists=Папка%n%n%1%n%nуже существует. Всё равно установить в эту папку?
Изменяйте

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


Отправлено: 12:08, 29-06-2010 | #1999


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


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

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


Здравствуйте. Помогите, пожалуйста, с 2 проблемами:
1) Как изменить цвет шрифта инсталлера на белый?
2) Как убрать белые полосы, которые образуются при загрузке своей картинки на все окно инсталлятора?

Отправлено: 21:46, 29-06-2010 | #2000



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход