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

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

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

Ветеран


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


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

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


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

 

Аватара для No4noylis

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


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

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


Neutron,
читать дальше »

На самом деле можно не писать:
Код: Выделить весь код
WizardForm.InnerNotebook.Show;
WizardForm.OuterNotebook.Show;
А достаточно удалить:
Код: Выделить весь код
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
Просто по умалчиванию InnerNotebook и OuterNotebook УЖЕ включены и писать для них .Show не нужно, просто убери их скрытие .Hide
А вот небольшие примеры
у тебя создана панель:
Код: Выделить весь код
procedure CreateStatusPanel;
begin
  Welcome := TLabel.Create(WizardForm);
  with Welcome do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(100), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Welcome}');
    Parent := WizardForm;
  end;

  Catalogue := TLabel.Create(WizardForm);
  with Catalogue do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(130), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Catalogue}');
    Parent := WizardForm;
  end;

  StartMenu := TLabel.Create(WizardForm);
  with StartMenu do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(160), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:StartMenu}');
    Parent := WizardForm;
  end;

  Tasks := TLabel.Create(WizardForm);
  with Tasks do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(190), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Task}');
    Parent := WizardForm;
  end;

  Installing := TLabel.Create(WizardForm);
  with Installing do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(220), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Installing}');
    Parent := WizardForm;
  end;

  Finish := TLabel.Create(WizardForm);
  with Finish do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(250), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Finish}');
    Parent := WizardForm;
  end;
end;
Для нее указано расположение Parent := WizardForm, НО сверху WizardForm у тебя есть InnerNotebook и OuterNotebook со всеми стандартными надписями поэтому панели не видно. Чтобы панель была видно у тебя в скрипте добавлено
Код: Выделить весь код
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
Чтоб вернуть стандартные надписи можно:
1). InnerNotebook и OuterNotebook скрыты и стандартных надписей не видно. Тут можно сделать так:
удалить
Код: Выделить весь код
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
А потом чтоб была видна панель сделать нужно все ее лейбы перенести на каждую страницу (Parent := WizardForm.WelcomePage; Parent := WizardForm.SelectDirPage; и так далее)
Вот пример для первых двух страниц:
Код: Выделить весь код
////////////////// welcomepage ///////////////////////////////////
procedure CreateStatusPanel;
begin
  Welcome := TLabel.Create(WizardForm);
  with Welcome do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(100), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Welcome}');
    Parent := WizardForm.welcomepage;
  end;

  Catalogue := TLabel.Create(WizardForm);
  with Catalogue do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(130), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Catalogue}');
    Parent := WizardForm.welcomepage;
  end;

  StartMenu := TLabel.Create(WizardForm);
  with StartMenu do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(160), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:StartMenu}');
    Parent := WizardForm.welcomepage;
  end;

  Tasks := TLabel.Create(WizardForm);
  with Tasks do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(190), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Task}');
    Parent := WizardForm.welcomepage;
  end;

  Installing := TLabel.Create(WizardForm);
  with Installing do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(220), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Installing}');
    Parent := WizardForm.welcomepage;
  end;

  Finish := TLabel.Create(WizardForm);
  with Finish do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(250), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Finish}');
    Parent := WizardForm.welcomepage;
  end;

///////////////////// welcome page /////////////////////////////////

/////////////////// selectdirpage /////////////////////////////////////
  
   Welcome := TLabel.Create(WizardForm);
   with Welcome do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(100), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Welcome}');
    Parent := WizardForm.selectdirpage ;
  end;

  Catalogue := TLabel.Create(WizardForm);
  with Catalogue do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(130), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Catalogue}');
    Parent := WizardForm.selectdirpage ;
  end;

  StartMenu := TLabel.Create(WizardForm);
  with StartMenu do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(160), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:StartMenu}');
    Parent := WizardForm.selectdirpage ;
  end;

  Tasks := TLabel.Create(WizardForm);
  with Tasks do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(190), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Task}');
    Parent := WizardForm.selectdirpage ;
  end;

  Installing := TLabel.Create(WizardForm);
  with Installing do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(220), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Installing}');
    Parent := WizardForm.selectdirpage ;
  end;

  Finish := TLabel.Create(WizardForm);
  with Finish do begin
    AutoSize:=False;
    SetBounds(ScaleX(13), ScaleY(250), ScaleX(114), ScaleY(20));
    Transparent:=True;
    Font.Size:= 10;
    Font.Style:=[fsBold];
    Caption := ExpandConstant('{cm:Finish}');
    Parent := WizardForm.selectdirpage ;
  end;
end;
/////////////////// selectdiepage //////////////////////////////////
Как видишь сильно увеличиваеться размер кода, но так проще (Соответственно для каждой страници нужному лейбу делаешь нужный цвет).
2. А можно сделать по другому (Я так делаю):
оставляешь:
Код: Выделить весь код
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;
А потом для всех стандартных надписей пишешь
Код: Выделить весь код
with WizardForm do begin
WizardForm.WelcomeLabel1.Parent:=WizardForm;
WizardForm.WelcomeLabel2.Parent:=WizardForm;
WizardForm.SelectDirLabel.Parent:=WizardForm;
******
end;
ну и так дальше. Теперь они ВСЕ ВСМЕСТЕ будут у тебя на ВСЕХ страницах.
Чтоб это исправить мы сначала их скрываем:
Код: Выделить весь код
procedure HideCocmponents:
WizardForm.WelcomeLabel1:=Hide;
WizardForm.WelcomeLabel2:=Hide;
WizardForm.SelectDirLabel:=Hide;
********
а потом для КАЖДОЙ страници возобноволяем:
Код: Выделить весь код
procedure ShowComponents(CurPageID: Integer);
begin
 case CurPageID of
    wpWelcome:
    begin
      WizardForm.WelcomeLabel1:=Show;
      WizardForm.WelcomeLabel2:=Show;
    end;

    wpSelectDir:
    begin
    WizardForm.SelectDirLabel:=Show;
    end;
end;
end;
...ну и так далее, я думаю смысл понятен.
И наконец мы добавляем наши процедуры в CurPageChanged:
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
 HideComponents;
 ShowComponents(CurPageID);
end;

Последний раз редактировалось No4noylis, 01-08-2011 в 14:50.

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

Отправлено: 13:46, 01-08-2011 | #2551



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

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


Аватара для MrLOLs

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


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

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


Кто-нибудь знает как ярлыку или exe файлу в Windows 7 поставить атрибут "Выполнять эту программу от имени администратора".


Решение:
[Registry]
Root: HKCU; SubKey: Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers; ValueType: string; ValueName: {app}\Compil32Ex.exe; ValueData: RUNASADMIN; Flags: uninsdeletevalue uninsdeletekeyifempty

Последний раз редактировалось MrLOLs, 01-08-2011 в 14:22.


Отправлено: 14:11, 01-08-2011 | #2552


Аватара для No4noylis

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


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

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


Neutron,
читать дальше »

Да, для нужна InitializeWizard:
Код: Выделить весь код
procedure InitializeWizard:
begin
with WizardForm do begin
WizardForm.WelcomeLabel1.Parent:=WizardForm;
WizardForm.WelcomeLabel2.Parent:=WizardForm;
WizardForm.SelectDirLabel.Parent:=WizardForm;
******
end;
end;
А процедуры HideCocmponents и ShowComponents просто добавляются в код, и прописываются в процедуре CurPageChanged (на всякий случай поясняю, для них НЕ нужна InitializeWizard, они пишутся в коде добавляються в CurPageChanged)
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
 HideComponents;
 ShowComponents(CurPageID);
end;

-------
Нет ничего невозможного...

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

Отправлено: 17:08, 01-08-2011 | #2554


Аватара для Rikill

Старожил


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

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


Neutron,
ваще так надо:
Код: Выделить весь код
var
welcomelabel1, welcomelabel2: tlabel;
procedure InitializeWizard(); 
 WelcomeLabel1:= TLabel.Create(WizardForm);
  with WelcomeLabel1 do begin
    AutoSize:=False;
    SetBounds(ScaleX(100), ScaleY(85), ScaleX(350), ScaleY(45));
    WordWrap:=True;
    Alignment := taCenter;
    Transparent:=True;
    Font.Name:='arial';
    Font.Size:= 11;
    Font.Color:=$FFFFFF;
    Caption:='дарова васяня!!';
    Parent:=WizardForm;
  end;

  WelcomeLabel2:=TLabel.Create(WizardForm);
  with WelcomeLabel2 do begin
    AutoSize:=False;
    SetBounds(ScaleX(100), ScaleY(140), ScaleX(344), ScaleY(40));
    WordWrap:=True;
    Alignment := taCenter;
    Transparent:=True;
    Font.Name:=fontname;
    Font.Size:= 11;
    Font.Color:=$FFFFFF;
    Caption:= 'закрой все приложение не будь лохом!';
    Parent:=WizardForm;
  end;
procedure CurPageChanged(CurPageID: Integer); 
begin
welcomelabel1.hide;
welcomelabel2.hide;
  case CurPageID of
    wpWelcome: begin
      WelcomeLabel1.Show;
      WelcomeLabel2.Show;
end;
end;
end;

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

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

Отправлено: 17:09, 01-08-2011 | #2555


Аватара для No4noylis

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


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

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


Rikill, Можно впринцепе и так, но зачем эти лейбы заново создавать если они уже есть?Просто меняешь Parent как я написал и все

-------
Нет ничего невозможного...

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

Отправлено: 17:15, 01-08-2011 | #2556


Забанен


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

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


пожалста добавте к моему скрипту ботву и одно изображение для примера в скрипт http://inno.at.ua/12.7z

Отправлено: 17:15, 01-08-2011 | #2557


Ветеран


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

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


Как сделать чтобы возле создания значков и установки припустим дирекста были три линии просто забыл как оно называется правильно

Отправлено: 18:46, 01-08-2011 | #2558


Старожил


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

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


Если вот эти линии http://i26.fastpic.ru/big/2011/0801/...445d89b13f.jpg
то вот так


[Setup]
ShowTasksTreeLines=true

И у меня вопрос
Как мне добавить проверку памяти на винчестере

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


Последний раз редактировалось LinkOFF, 01-08-2011 в 19:51.

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

Отправлено: 19:45, 01-08-2011 | #2559


Аватара для Rikill

Старожил


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

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


VASYAKRN, флудить харэ

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


Отправлено: 21:00, 01-08-2011 | #2560



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




 
Переход