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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Забанен


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

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


Цитата El Sanchez:
ну и правильно, родителем эдита ведь страница SelectTasksPage назначена, без секции [Tasks] ее не будет, значит не будет и контролов, ей принадлежащих. »
Ну а как это добро типа IPAddressEdit1: TIPAddressEdit; теперь впихивать, и чтоб без всяких Тасков?
А то хорошо говорить
Цитата Serega:
В расширенной версии есть редактор форм "WizardForm Designer", добавляете свои страницы и кидаете на форму нужные контролы. »
, звучит так просто, а на деле!
Тогда я вообще ни болта не рублю, что там вообще нужно.

Отправлено: 18:54, 28-12-2011 | #511



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

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


Ветеран


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

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


Цитата Devils Night:
звучит так просто, а на деле! »
На деле, ещё проще... Нажимаете вкладку WizardForm Designer, затем в меню Designer выбираете пункт Import a WizardPage, появляется новая страница. Затем нажимаете мышкой в панели компонент на IPAddressEdit и нажимаете мышкой на любое место новой страницы... ну и т.д. и т.п.

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


Последний раз редактировалось Serega, 29-12-2011 в 00:03. Причина: орфография

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

Отправлено: 20:53, 28-12-2011 | #512


Забанен


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

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


Цитата Serega:
На деле, ещё проще... »
Круто. Вот долго бы я гадал. Спасибо большое!

Ребят, а как вы привязываете кнопку к чему либо?
Ну вот скажем на примере этого:
читать дальше »
Код: Выделить весь код
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030108602000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C69636974576964746803F9010E4578706C696369744865696768740383010D506978656C73506572496E636802600A54657874486569676874020D00F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C696369744865696768740339010000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650F53656C6563745461736B73506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED00000E54495041646472657373456469740E4950416464726573734564697431044C656674020803546F7003D000055769647468039600064865696768740215085461624F72646572020200000A544E6577427574746F6E0A4E6577427574746F6E31044C65667403B00003546F7003CC00055769647468024B0648656967687402190743617074696F6E060A4E6577427574746F6E31085461624F72646572020300000000000000

[ Code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  IPAddressEdit1: TIPAddressEdit;
  NewButton1: TNewButton;

procedure RedesignWizardForm;
begin
  { IPAddressEdit1 }
  IPAddressEdit1 := TIPAddressEdit.Create(WizardForm);
  with IPAddressEdit1 do
  begin
    Name := 'IPAddressEdit1';
    Parent := WizardForm.SelectTasksPage;
    Left := ScaleX(8);
    Top := ScaleY(208);
    Width := ScaleX(150);
    Height := ScaleY(21);
  end;

  { NewButton1 }
  NewButton1 := TNewButton.Create(WizardForm);
  with NewButton1 do
  begin
    Name := 'NewButton1';
    Parent := WizardForm.SelectTasksPage;
    Left := ScaleX(176);
    Top := ScaleY(204);
    Width := ScaleX(75);
    Height := ScaleY(25);
  end;

  IPAddressEdit1.TabOrder := 2;
  NewButton1.TabOrder := 3;

{ ReservationBegin }
  // Вы можете добавить ваш код здесь.

{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!

procedure InitializeWizard();
begin
  RedesignWizardForm;
end;

Отправлено: 23:42, 28-12-2011 | #513


Ветеран


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

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


Цитата Devils Night:
Ребят, а как вы привязываете кнопку к чему либо? »
Тоже всё просто, т.е. после того как вы установили кнопку на новой странице, достаточно нажать на новой кнопке два раза, либо выбрать в инспекторе объектов (с правой стороны) вкладку Events, там будут все поддерживаемые процедуры для этой кнопки. Выбираете нужную и также нажимаете мышкой два раза на комбобоксе справа от названия необходимой процедуры. В результате в вашем скрипте появится нужная процедура, в которой вы будете обрабатывать выбранное действие.
В вкладке Properties, вы можете настроить свойства вашей кнопки.

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

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

Отправлено: 00:01, 29-12-2011 | #514


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

Ветеран


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

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


Помогите с кодом, пожалуйста.
При установке проги в папке назначения нужно удалить все кроме двух папок и трех файлов.
Как получить список папок и файлов? рекурсия во вложенные папки не нужна.

Заранее спасибо!

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

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

Отправлено: 09:19, 29-12-2011 | #515


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


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

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


Цитата R.i.m.s.k.y.:
Gugle, думаю да, алгоритмически глобальной переменной присваиваем TRUE и через CurPageChanged отслеживаем примерно так, но могут быть подводные камни: »
Не прокатило. У меня есть несколько страниц, на которых надо обязательно сделать выбор, для того что бы перейти к следующей странице, но даже если их убрать (или сделать там выбор поумолчанию), то установка все равно происходит. А установки хотелось бы избежать.

Возможно лучше использовать не переход на страницу финиш (ну т.к. это геморно ), по выполнению условия, а "искусственно" нажать на кнопку "Отмена"?
Тут правда хотелось бы нажать так, что бы пользователю не выводилось сообщение "Вы уверены что хотите выйти?". Или согласиться с выходом без участия пользователя.

Откуда числа 513 и 514?
Цитата R.i.m.s.k.y.:
SendMessage(WizardForm.NEXTBUTTON.Handle, 513, 0, 0)
SendMessage(WizardForm.NEXTBUTTON.Handle, 514, 0, 0) »

Отправлено: 09:32, 29-12-2011 | #516


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

Ветеран


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

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


Цитата Gugle:
Возможно лучше использовать не переход на страницу финиш (ну т.к. это геморно ), по выполнению условия, а "искусственно" нажать на кнопку "Отмена"? »
помоему код Serega это и делает

числа 513 и 514 из шапочного примера "Нажать кнопку Далее"

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

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

Отправлено: 09:41, 29-12-2011 | #517


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


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

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


Цитата R.i.m.s.k.y.:
помоему код Serega это и делает »
Прошу прощения, а ссылку на код можно?

Отправлено: 12:00, 29-12-2011 | #518


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

Ветеран


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

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


Цитата Gugle:
Прошу прощения, а ссылку на код можно? »
да вот же на прошлой странице он тебе ответил

Цитата R.i.m.s.k.y.:
Помогите с кодом, пожалуйста.
При установке проги в папке назначения нужно удалить все кроме двух папок и трех файлов.
Как получить список папок и файлов? рекурсия во вложенные папки не нужна. »
спасибо всем прочитавшим, вопрос снят

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

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

Отправлено: 12:07, 29-12-2011 | #519


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Цитата R.i.m.s.k.y.:
Как получить список папок и файлов? »
Цитата R.i.m.s.k.y.:
спасибо всем прочитавшим, вопрос снят »
Для личных целей сделал, но думаю, что будет многим интересно :
получение всех файлов в папке, с полными путями:

читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[*code]
var
  fIleCount: TLabel;
  ISCustomPage1: TWizardPage;
  FileList: TNewListBox;

procedure GetAllFiles( Path: string; Lb: TNewListBox );
var
sRec: TFindRec;
isFound: boolean;
begin
  isFound := FindFirst(Path +'\*.*',sRec);
  while isFound do
  begin
    if (sRec.Name <> '.') and (sRec.Name <> '..') then
    begin
      if (sRec.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY then
      GetAllFiles(Path + '\' + sRec.Name, Lb);
      Lb.Items.Add(Path + '\' + sRec.Name);
      fIleCount.Caption:= 'Количество файлов:'+ IntToStr(FileList.Items.Count);
    end;
    Application.ProcessMessages;
    isFound := FindNext(sRec);
  end;
  FindClose(sRec);
end;

procedure FlistClick(Sender: TObject);
begin
  GetAllFiles(ExpandConstant('{pf}\Inno Setup 5'), FileList );
end;

procedure InitializeWizard();
begin
  { Creates custom wizard page }
  ISCustomPage1 := CreateCustomPage(wpWelcome, 'Список Файлов', 'Нажмите конпку Ок, чтобы получить список файлов');

  { FileList }
  FileList := TNewListBox.Create(WizardForm);
  with FileList do
  begin
    Parent := ISCustomPage1.Surface;
    SetBounds(ScaleX(0),ScaleY(0),ISCustomPage1.SurfaceWidth,ISCustomPage1.SurfaceHeight - ScaleY(30));
    ItemHeight := 13;
    ItemIndex := -1;
  end;

  with TNewButton.Create(WizardForm) do
  begin
    Caption := 'Ок';
    Parent := ISCustomPage1.Surface;
    SetBounds(ScaleX(0),ISCustomPage1.SurfaceHeight - ScaleY(28),ScaleX(75),ScaleY(25));
    OnClick:=@FlistClick;
  end;
  { fIleCount }
  fIleCount := TLabel.Create(WizardForm);
  with fIleCount do
  begin
    Parent := ISCustomPage1.Surface;
    Caption := 'Количество файлов:';
    SetBounds(ScaleX(80),ISCustomPage1.SurfaceHeight - ScaleY(25),ScaleX(300),ScaleY(25));
  end;
end;

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

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

Отправлено: 18:41, 29-12-2011 | #520



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




 
Переход