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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
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. Помощь и советы [часть 4]

Отправлено: 03:49, 21-05-2012

 

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


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

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


Как мне создать только скрипт для зтого фото
Так же нужен скрипт под Fenixx

Последний раз редактировалось neorom, 16-03-2013 в 21:41.


Отправлено: 17:10, 16-03-2013 | #1891



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

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


Аватара для Tco 03

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


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

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


Цитата neorom:
Как мне создать только скрипт для зтого »
Это чистый ISDone!
Цитата neorom:
Так же нужен скрипт под Fenixx »
Во истину, что дерьмовей, то людям нравится больше! Это вообще трудно назвать скрипт(ом(ами)). То что ты видишь - это всего лишь картинка (ну там FotoShop, или ещё что) подставь к картинке прогрессбар, кнопки и всё такое - вот тебе и скрипт, как его там.
Это сообщение посчитали полезным следующие участники:

Отправлено: 23:24, 16-03-2013 | #1892


Аватара для alert30

Ветеран


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

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


neorom, в конце концов прочитали бы справку какую-то, а не тупо сказать "мне нужен готовый скрипт, как вот это"...
Это сообщение посчитали полезным следующие участники:

Отправлено: 02:38, 17-03-2013 | #1893


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


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

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


Цитата Tco 03:
Это вообще трудно назвать скрипт(ом(ами)). То что ты видишь - это всего лишь картинка (ну там FotoShop, или ещё что) подставь к картинке прогрессбар, кнопки и всё такое - вот тебе и скрипт, как его там. »
Єсли всь так просто, то почеме не может никто єделать єтат скрип. Да, на славах у вас всех всьо очень легко, но на деле нечево не видно.
P.S. Да, я пересматрел форум и понял что скрипт от Fenixx всем очень нравиться, и я не нашол ни одного человека каторий зделать єтот скрипт, только на словах все хвастаются что он очень прост !!!
Цитата alert30:
в конце концов прочитали бы справку какую-то, а не тупо сказать "мне нужен готовый скрипт, как вот это"... »
Да я, не профи в созданию скриптов, я просто новочьок. Но и профи просто переводят стрелки заместь того чтоб просто навести пример или дасть злилку на похожий ответ .
Цитата Tco 03:
Это чистый ISDone! »
Но где найти єтот скрипт (чтоби процес бар отображался именно так, как на фото) ?

Последний раз редактировалось neorom, 17-03-2013 в 12:02.


Отправлено: 11:16, 17-03-2013 | #1894


Аватара для Tco 03

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


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

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


neorom
Цитата neorom:
Єсли всь так просто, то почеме не может никто єделать єтат скрип. Да, на славах у вас всех всьо очень легко, но на деле нечево не видно. »
Вам никто не хочет помогать потому, что Вы задаёте вопросы на уже давно очевидные вещи! И если провести денёк на этом форуме и почитать даже ту шапку, я уверен, половина вопросов сразу же отпадут.
И когда Вы изучите Inno и поймёте что к чему - Вы будете говорить точно так же, как сейчас отвечают Вам.
Чтобы развеять Ваше негативное отношение к людям находящихся на этом форуме, якобы всё только на словах, а на деле... Вот Вам пример.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=Example
AppVerName=Example
DefaultDirName={pf}\Example
OutputDir=.

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl";

[Messages]
SetupWindowTitle=FORUM OSZONE.NET EXAMPLE

[Files]
Source: "ISSkin.dll"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "Tiger.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "botva2.dll"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "1.jpg"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "2.jpg"; DestDir: "{tmp}"; Flags: dontcopy;

[ Code]
var
  WelcomeLabel1, WelcomeLabel2, SelectDirLabel, SelectDirBrowseLabel: TLabel;

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

function ImgLoad(Wnd :HWND; FileName :PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint; external 'ImgLoad@files:botva2.dll stdcall delayload';
procedure ImgApplyChanges(h:HWND); external 'ImgApplyChanges@files:botva2.dll stdcall delayload';
procedure gdipShutdown; external 'gdipShutdown@files:botva2.dll stdcall delayload';

function InitializeSetup(): Boolean;
begin
if not FileExists(ExpandConstant('{tmp}\ISSkin.dll')) then ExtractTemporaryFile('ISSkin.dll');
if not FileExists(ExpandConstant('{tmp}\Tiger.cjstyles')) then ExtractTemporaryFile('Tiger.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Tiger.cjstyles'), '');
  Result:= True;
end;

procedure InitializeWizard();
begin
if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
if not FileExists(ExpandConstant('{tmp}\1.jpg')) then ExtractTemporaryFile('1.jpg');
if not FileExists(ExpandConstant('{tmp}\2.jpg')) then ExtractTemporaryFile('2.jpg');

  WizardForm.ClientWidth:= ScaleX(1000);
  WizardForm.ClientHeight:= ScaleY(600);
  WizardForm.Width:= ScaleX(1000);
  WizardForm.Height:= ScaleY(600);
  WizardForm.Position:= poScreenCenter;

with WizardForm do
begin
  InnerNotebook.Left:= ScaleX(0);
  InnerNotebook.Top:= ScaleY(0);
  InnerNotebook.Width:= WizardForm.ClientWidth;
  InnerNotebook.Height:= WizardForm.ClientHeight;
  OuterNotebook.Left:= ScaleX(0);
  OuterNotebook.Top:= ScaleY(0);
  OuterNotebook.Width:= WizardForm.ClientWidth;
  OuterNotebook.Height:= WizardForm.ClientHeight;
  
  WizardBitmapImage.Hide;
  WelcomeLabel1.Hide;
  WelcomeLabel2.Hide;
  WizardSmallBitmapImage.Hide;
  MainPanel.Hide;
  SelectDirLabel.Hide;
  SelectDirBrowseLabel.Hide;
  SelectDirBitmapImage.Hide;
  DiskSpaceLabel.Hide;
end;

with WizardForm.BackButton do
begin
  Left:= ScaleX(700);
  Top:= ScaleY(540);
  BringToFront;
end;

with WizardForm.NextButton do
begin
  Left:= ScaleX(800);
  Top:= ScaleY(540);
  BringToFront;
end;

with WizardForm.CancelButton do
begin
  Left:= ScaleX(900);
  Top:= ScaleY(540);
  BringToFront;
end;

WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do
begin
  Left:= ScaleX(50);
  Top:= ScaleY(50);
  Transparent:= True;
  Font.Color:= $0006FF;
  Font.Name:= 'Arial';
  Font.Size:= 14;
  Font.Style:= [fsBold];
  Caption:= WizardForm.WelcomeLabel1.Caption;
  Parent:= WizardForm.WelcomePage;
end;

WelcomeLabel2:= TLabel.Create(WizardForm);
with WelcomeLabel2 do
begin
  Left:= ScaleX(50);
  Top:= ScaleY(400);
  Transparent:= True;
  Font.Color:= $00FFFF;
  Font.Name:= 'Arial';
  Font.Size:= 10;
  Font.Style:= [fsBold];
  Caption:= WizardForm.WelcomeLabel2.Caption;
  Parent:= WizardForm.WelcomePage;
end;

SelectDirLabel:= TLabel.Create(WizardForm);
with SelectDirLabel do
begin
  Left:= ScaleX(50);
  Top:= ScaleY(50);
  Transparent:= True;
  Font.Color:= $0006FF;
  Font.Name:= 'Arial';
  Font.Size:= 14;
  Font.Style:= [fsBold];
  Caption:= WizardForm.SelectDirLabel.Caption;
  Parent:= WizardForm.SelectDirPage;
end;

SelectDirBrowseLabel:= TLabel.Create(WizardForm);
with SelectDirBrowseLabel do
begin
  Left:= ScaleX(50);
  Top:= ScaleY(400);
  Transparent:= True;
  Font.Color:= $00FFFF;
  Font.Name:= 'Arial';
  Font.Size:= 10;
  Font.Style:= [fsBold];
  Caption:= WizardForm.SelectDirBrowseLabel.Caption;
  Parent:= WizardForm.SelectDirPage;
end;

with WizardForm.DirBrowseButton do
begin
  Left:= ScaleX(600);
  Top:= ScaleY(540);
end;

with WizardForm.DirEdit do
begin
  Left:= ScaleX(50);
  Top:= ScaleY(540);
  Width:= ScaleX(500);
end;

  ImgLoad(WizardForm.WelcomePage.Handle, ExpandConstant('{tmp}\1.jpg'), ScaleX(0), ScaleY(0), WizardForm.InnerNotebook.Width, WizardForm.InnerNotebook.Height, True, True);
  ImgApplyChanges(WizardForm.WelcomePage.Handle);
  
  ImgLoad(WizardForm.SelectDirPage.Handle, ExpandConstant('{tmp}\2.jpg'), ScaleX(0), ScaleY(0), WizardForm.InnerNotebook.Width, WizardForm.InnerNotebook.Height, True, True);
  ImgApplyChanges(WizardForm.SelectDirPage.Handle);
end;

procedure DeinitializeSetup();
begin
  ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
  UnloadSkin();
  gdipShutdown;
end;

Последний раз редактировалось Tco 03, 14-05-2020 в 19:49.


Отправлено: 13:23, 17-03-2013 | #1895


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


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

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


Tco 03 Как мне добавить до моєго скрипта вот єти финкции(установка значка и установка по)
И чтоби били коментарии как на фото ( чтоби било 5 рисунков )
Ссилка ==> http://us.ua/1066396/

Последний раз редактировалось neorom, 17-03-2013 в 15:19.


Отправлено: 13:56, 17-03-2013 | #1896


Аватара для Tco 03

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


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

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


Цитата neorom:
Как мне добавить до вошого скрипта вот єти финкции(установка значка и установка по) »
Создавать кустомные чекбоксы и лейблы к ним...
Создание кустомного чекбокса.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"

[ code]
var
QuickLaunchIcon: TCheckBox;

function MakeQuickLaunchIcon: Boolean;
begin
    Result:=QuickLaunchIcon.Checked;
end;

procedure InitializeWizard();
begin
QuickLaunchIcon := TCheckBox.Create(WizardForm);
with QuickLaunchIcon do
  begin
    Parent := WizardForm.SelectDirPage;
    Caption := 'Создать значок в Панели быстрого запуска';
    Left := ScaleX(0);
//    Left := WizardForm.DirEdit.Top + 100;
    Top := WizardForm.DirEdit.Top + 117;
    Width := ScaleX(300);
    Height := ScaleY(15);
    TabOrder := 0;
    Checked := False;
  end;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 14:15, 17-03-2013 | #1897


Аватара для Johny777

Ветеран


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

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


Tco 03, у тебя всё правильно, но рекомендую:
1. писать скобки в заголовке процедуры/функции function MakeQuickLaunchIcon(): Boolean; и при вызове MakeQuickLaunchIcon(); для наглядности
2. писать координаты через метод SetBounds(ScaleX(слева), ScaleY(сверху), ScaleX(ширина), ScaleY(высота)) для краткости кода, а все отдельные координаты с участием цифр через функции ScaleX(), ScaleY() для правильного расположения контролов
3. Checked := False; по дефолту, так что строка не нужна
4. Цитата: "TabOrder — указывает направление перемещения фокуса при нажатии клавиши Tab (от начала к концу или от конца к началу);" Думай нужен ли он тебе.
до кучи советую почитать о методе Create конструктора http://delphi.about.com/od/adptips2005/qt/aowner.htm со входным параметром (это указатель) принадлежности к другому компоненту
например у меня есть процедура создания формы, на ней панели, а панели кучи котролов. При разрушении формы родителем панели что лежала не ней становится WizardForm (тк геморно разрушать, сохранять а потом воссоздовать). Поэтому указатель у меня на пенели nil а указатели на контролах, что лежат на панели - ссылка на панель myPanel (var myPanel: TPanel)
5. Сейчас будет смешно, но у чекбокса нет возможности подстраиваться под размер собственного текста и чтоб не подгонять размер, а в лучае с несколькими языками это много работы используй забавную, но сверх рабочую, быструю и удобную функцию function GetFutureCtrlWidth(const uCaption: String): Integer; Есть правда вин апишная функция которая используется в Autosize лейбла но работать нормально она не хотела, использовал её в первой реализации кастомного чекбокса ( http://forum.oszone.net/post-2043384-1383.html )
короче вот так выглядел бы твой код у меня:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Files]
Source: {fonts}\*; DestDir: {app}; Flags: external; Check: MakeQuickLaunchIcon();

[code]
var
  QuickLaunchIcon: TCheckBox;

function GetFutureCtrlWidth(const uCaption: String): Integer;
begin
  with TLabel.Create(nil) do
  try
    Caption := uCaption;
    Result := Width + 16; // где 16 - размер картинки чекбокса/переключателя
  finally
    Free;
  end;
end;

function MakeQuickLaunchIcon(): Boolean;
begin
  Result:=QuickLaunchIcon.Checked;
end;

procedure InitializeWizard();
begin
  QuickLaunchIcon := TCheckBox.Create(WizardForm);
  with QuickLaunchIcon do
  begin
    Parent := WizardForm.SelectDirPage;
    Caption := 'Создать значок в Панели быстрого запуска';
    SetBounds(ScaleX(0), ScaleY(WizardForm.DirEdit.Top + 117), ScaleX(GetFutureCtrlWidth(Caption)), ScaleY(16));
  end;
end;

Последний раз редактировалось Johny777, 17-03-2013 в 16:28.

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

Отправлено: 15:54, 17-03-2013 | #1898


Аватара для Tco 03

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


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

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


Johny777
Ну, а говоришь времени нет, вон какую "поэму" написал
Это не мой код - это справка (Inno Faq) с соседнего форума (по крайне мере я её когда-то от туда качал).
А nil не nil спорить не буду, лично я сразу пишу конкретно, где именно и что создать.

Отправлено: 16:47, 17-03-2013 | #1899


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


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

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


Цитата Tco 03:
Создавать кустомные чекбоксы и лейблы к ним...
Создание кустомного чекбокса. »
Я мало розбераюсь в том. Я в последним сообчтени я дал силку на свой скрип которий надо отретактировать, так чтоби били те функции коториє я там опесал.

Отправлено: 16:47, 17-03-2013 | #1900



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
Inno Setup tradeukraine Вебмастеру 3 13-06-2006 20:39




 
Переход