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

Компьютерный форум 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 | Цитировать


Цитата Serega:
Тогда вам проще использовать в процедуре RePlaceTextinFile не TArrayOfString, а TStringList и уже в нём удалять нужную строку. »
А это Ваша процедура, Вы же мне ее давно и написали

Цитата ChVL:
Вторая процедура не работает, изобразил её в классическом виде - всё заработало. »
странно, у меня она работает (правда у меня идет вызов удаления папки а не замена текста, так что я думал все рабочее)
Наверное потому что у меня препроцессор стоит.

Цитата serg aka lain:
дал для тестирования, т.к. задача вроде простая, но раньше я с этой идеей не сталкивался.(вдруг облажался с реализацией) »
[скандирует] СКРИПТ! СКРИПТ В СТУДИЮ!

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


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


Отправлено: 19:57, 23-12-2010 | #211



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

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


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


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

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


Цитата ksunechkin:
хех, только если там самому выбрать PF и подписать дальще название папки куда устанавливать - то оно разрешает установку))) »
Да, я это заметил и вроде пофиксил.
Вот пример

Код: Выделить весь код
[Setup]
AppName=My Program  
AppVerName=My Program
DefaultDirName={sd}\My Program
OutputDir=.
OutputBaseFilename=test

[code]
procedure MyFunction(Sender: TObject);
var
  S: String;
begin
  S := Copy(WizardForm.DirEdit.Text, 0, Length(WizardForm.DirEdit.Text)
                   - Length(ExtractFileName(WizardForm.DirEdit.Text)) - 1);

  if IsWin64 then
  begin
    if (S = ExpandConstant('{pf32}')) or (S = ExpandConstant('{pf64}')) then
    begin
      MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
      WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
    end;
  end else
  if S = ExpandConstant('{pf}') then
  begin
    MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
    WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
  end;
end;

procedure InitializeWizard();
begin
  WizardForm.DirEdit.OnChange := @MyFunction;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:24, 23-12-2010 | #212


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


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

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


serg aka lain, спасибо! работает отлично)) очень хорошо

Отправлено: 20:30, 23-12-2010 | #213


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

Ветеран


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

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


serg aka lain,
я бы сделал поиском {pf} в пути установки:
if (Pos(ExpandConstant('{pf}'), S > 0) then begin
MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
end;

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

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

Отправлено: 20:31, 23-12-2010 | #214


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


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

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


Цитата R.i.m.s.k.y.:
я бы сделал поиском {pf} в пути установки:
if (Pos(ExpandConstant('{pf}'), S > 0) then begin
MsgBox('Программу нельзя устанавливать в' + #13#10 + S, mbInformation, MB_OK);
WizardForm.DirEdit.Text := ExpandConstant('{sd}\My Program');
end; »
в чем преимущество?

Отправлено: 20:34, 23-12-2010 | #215


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

Ветеран


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

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


Цитата ksunechkin:
в чем преимущество »
вообще в програм филесы поставить нельзя с дописко или без

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


Отправлено: 20:38, 23-12-2010 | #216


Ветеран


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

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


Цитата ChVL:
Да и файл этот малюсенький - пусть просматривает весь... »
Всё в этом мире относительно...

Цитата R.i.m.s.k.y.:
А это Ваша процедура, Вы же мне ее давно и написали »
Может быть, видимо было давно...
Просто в Inno удалить строку из массива нельзя, по крайней мере пока, а вот TStringList поддерживает удаление строки.

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


Отправлено: 20:50, 23-12-2010 | #217


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


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

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


Цитата R.i.m.s.k.y.:
я бы сделал поиском {pf} в пути установки: »
Принципиального отличия нет, всё равно код по объёму не уменьшится (pf, pf32, pf64 проверять нужно)
Код: Выделить весь код
if (Pos(ExpandConstant('{pf32}'), S) > 0) or (Pos(ExpandConstant('{pf64}'), S) > 0) then
А дописка обрабатывается тут
Код: Выделить весь код
  S := Copy(WizardForm.DirEdit.Text, 0, Length(WizardForm.DirEdit.Text)
                   - Length(ExtractFileName(WizardForm.DirEdit.Text)) - 1);
з.ы. Ну это ИМХО. Модифицировать никто не запрещает.
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:58, 23-12-2010 | #218


Ветеран


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

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


serg aka lain, строка начинается с 1, а массивы по умолчанию с 0, т.е. при использовании Copy, копировать можно начиная с 1.
И может проще сделать так:
S := ExtractFilePath(WizardForm.DirEdit.Text);
SetLength(S, Length(S)-1);

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

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

Отправлено: 21:00, 23-12-2010 | #219


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


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

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


все хорошо, но вот если у disk:\program files\ убрать последний слэш, т.е. disk:\program files - все равно дает установить(

Отправлено: 21:10, 23-12-2010 | #220



Компьютерный форум 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




 
Переход