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

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

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

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

Ветеран


Contributor


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


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

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


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Отправлено: 19:06, 28-03-2013

 

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


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

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


saurn, Спасибо, все работает!

Отправлено: 17:40, 16-02-2014 | #2291



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

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


Аватара для Ivan_009

Ветеран


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

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


У кого имеется скрипт для создания авторуна. Зарание спасибо...

Отправлено: 23:14, 16-02-2014 | #2292


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


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

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


Ivan_009,
autorun
http://rghost.ru/52478541
Это сообщение посчитали полезным следующие участники:

Отправлено: 05:30, 17-02-2014 | #2293


SHVtYW4=


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

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


Цитата Ivan_009:
У кого имеется скрипт для создания авторуна. »
В справке есть пример:
читать дальше »
Код: Выделить весь код
// Где Image - Название изображения
#define Img "Image"

[Setup]
AppName=AutoRUN
VersionInfoDescription=AutoRUN
VersionInfoProductName=AutoRUN
AppVerName=AutoRUN
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoCompany=john
VersionInfoCopyright=Copyright © John
CreateAppDir=no
OutputDir=.
OutputBaseFilename=Autorun
SetupIconFile=Icon.ico

[Languages]
Name: Russian; MessagesFile: compiler:Default.isl

[Files]
Source: {#Img}.bmp; Flags: dontcopy

[Messages]
SetupAppTitle=AutoRUN

[Code]
const
  BM_CLICK    = $00F5;

var
  AutoRun: TSetupForm;
  img1: TBitmapImage;
  PlayButton, InstallButton, SupportButton, ReadmeButton, WebButton, ExitButton, UninstallButton: TButton;
  AppPath,UninsPath: string;
  ResultCode: Integer;
procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageID=wpWelcome then
  SendMessage(WizardForm.NextButton.Handle, BM_CLICK, 0, 0);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False
Cancel:=True
end;

procedure PlayButtonClick(Sender: TObject);
var
  exe: string;
begin
  exe:='shift.exe';
  if RegQueryStringValue(HKLM, 'SOFTWARE\Electronic Arts\Game','Install Dir', AppPath) then
  begin
    Exec(AddBackslash(AppPath) + Exe, '', ExtractFilePath(AddBackslash(AppPath) + Exe), SW_SHOWNORMAL,ewNoWait,ResultCode)
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
  end
end;

procedure InstallButtonClick(Sender: TObject);
var
  CurPageID: Integer;
begin
  Exec(ExpandConstant('{src}\Setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
end;

procedure SupportButtonClick(Sender: TObject);
begin
  shellexec('open', ExpandConstant('{src}\Game.exe'), '', '',SW_SHOWNORMAL, ewnowait, ResultCode)
end;

procedure ReadmeButtonClick(Sender: TObject);
begin
  ShellExec('open', ExpandConstant('{src}\readme.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;

procedure WebButtonClick(Sender: TObject);
begin
  shellexec('open', 'http://localhost', '', '',SW_SHOWNORMAL, ewnowait, ResultCode)
end;

procedure ExitButtonClick(Sender: TObject);
var
  CurPageID: Integer;
begin
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
end;

procedure UninstallButtonClick(Sender: TObject);
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    UninsPath:=RemoveQuotes(UninsPath)
    Exec(UninsPath,'','',SW_SHOWNORMAL,ewNoWait,ResultCode)
    AutoRun.Close;
    PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
  end
end;

procedure CreateAutoRun;
begin
  //AutoRun
  AutoRun := CreateCustomForm;
  with AutoRun do begin
    Left := 498;
    Top := 75;
    Width := 495;
    Height := 340;
    BorderIcons := [];
    BorderStyle:=bsToolWindow //(bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin)
    Color := clBtnFace;
    Font.Color := clWindowText;
    Font.Height := -11;
    Font.Name := 'MS Sans Serif';
    Font.Style := [];
    Position := poScreenCenter;
    Caption:='AutoRUN'
  end;
  //img1
  img1 := TBitmapImage.Create(AutoRun);
  ExtractTemporaryFile('{#Img}.bmp');
  with img1 do begin
    Parent := AutoRun;
    Left := 0;
    Stretch:= true;
    Top := 0;
    Width := Autorun.Width;
    Height := Autorun.Height;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\{#Img}.bmp'));
  end;
  //PlayButton
  PlayButton:= TButton.Create(AutoRun);
  with PlayButton do begin
    Parent := AutoRun;
    Left := 300;
    Top := 110;
    Width := 150;
    Height := 22;
    Caption:= 'Начать игру';
    Cursor:= crHand;
  // ModalResult:= mrOk;
    OnClick := @PlayButtonClick;
    if not RegQueryStringValue(HKLM, 'SOFTWARE\Game','Install Dir', AppPath) then
  begin
    PlayButton.Enabled := False;
  end
  end;
  //InstallButton
  InstallButton:= TButton.Create(AutoRun);
  with InstallButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 80;
    Width := 150;
    Height := 22;
    Caption:= 'Install Game';
    Cursor:= crHand;
    OnClick := @InstallButtonClick;
  end;
  //SupportButton
  SupportButton:= TButton.Create(AutoRun);
  with SupportButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 140;
    Width := 150;
    Height := 22;
    Caption:= 'Инфо';
    Cursor:= crHand;
    OnClick := @SupportButtonClick;
  end;
  //ReadmeButton
  ReadmeButton:= TButton.Create(AutoRun);
  with ReadmeButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 170;
    Width := 150;
    Height := 22;
    Caption:= 'Readme';
    Cursor:= crHand;
    OnClick := @ReadmeButtonClick;
  end;
  //WebButton
  WebButton:= TButton.Create(AutoRun);
  with WebButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 200;
    Width := 150;
    Height := 22;
    Caption:= 'Веб-сайт';
    Cursor:= crHand;
    OnClick := @WebButtonClick;
  end;
  //ExitButton
  ExitButton:= TButton.Create(AutoRun);
  with ExitButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 260;
    Width := 150;
    Height := 22;
    Caption:= 'Выход';
    Cursor:= crHand;
    OnClick := @ExitButtonClick;
//    ModalResult:= mrCancel;
  end;
  //UninstallButton
  UninstallButton:= TButton.Create(AutoRun);
  with UninstallButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 230;
    Width := 150;
    Height := 22;
    Caption:= 'Удалить игру';
    Cursor:= crHand;
    OnClick := @UninstallButtonClick;
  end;

  if not RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    InstallButton.Enabled:=true;
    UninstallButton.Enabled:=false;
  end;
  if RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    InstallButton.Enabled:=false;
    UninstallButton.Enabled:=true;
  end;

  AutoRun.ShowModal;
end;

procedure InitializeWizard;
begin
  CreateAutoRun;
end;
Код: Выделить весь код
[Setup]
AppName=AutoRUN
VersionInfoDescription=AutoRUN
VersionInfoProductName=AutoRUN
AppVerName=AutoRUN
VersionInfoProductVersion=1.0.0.0
VersionInfoVersion=1.0.0.0
VersionInfoCompany=john
VersionInfoCopyright=Copyright © John
CreateAppDir=no
OutputDir=.
OutputBaseFilename=Autorun

[Languages]
Name: Russian; MessagesFile: compiler:Default.isl


[Messages]
SetupAppTitle=AutoRUN

[Code]
const
  BM_CLICK    = $00F5;

var
  AutoRun: TSetupForm;
  PlayButton, InstallButton, SupportButton, ReadmeButton, WebButton, ExitButton, UninstallButton: TButton;
  AppPath,UninsPath: string;
  ResultCode: Integer;
procedure CurPageChanged(CurPageID: Integer);
begin
  If CurPageID=wpWelcome then
  SendMessage(WizardForm.NextButton.Handle, BM_CLICK, 0, 0);
end;

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False
Cancel:=True
end;

procedure PlayButtonClick(Sender: TObject);
var
  exe: string;
begin
  exe:='shift.exe';
  if RegQueryStringValue(HKLM, 'SOFTWARE\Electronic Arts\Game','Install Dir', AppPath) then
  begin
    Exec(AddBackslash(AppPath) + Exe, '', ExtractFilePath(AddBackslash(AppPath) + Exe), SW_SHOWNORMAL,ewNoWait,ResultCode)
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
  end
end;

procedure InstallButtonClick(Sender: TObject);
var
  CurPageID: Integer;
begin
  Exec(ExpandConstant('{src}\Setup.exe'),'','',SW_SHOW,ewNoWait,ResultCode)
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
end;

procedure SupportButtonClick(Sender: TObject);
begin
  shellexec('open', ExpandConstant('{src}\Game.exe'), '', '',SW_SHOWNORMAL, ewnowait, ResultCode)
end;

procedure ReadmeButtonClick(Sender: TObject);
begin
  ShellExec('open', ExpandConstant('{src}\readme.txt'),'','', SW_SHOW, ewNoWait, ResultCode)
end;

procedure WebButtonClick(Sender: TObject);
begin
  shellexec('open', 'http://localhost', '', '',SW_SHOWNORMAL, ewnowait, ResultCode)
end;

procedure ExitButtonClick(Sender: TObject);
var
  CurPageID: Integer;
begin
  AutoRun.Close;
  PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
end;

procedure UninstallButtonClick(Sender: TObject);
begin
if RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    UninsPath:=RemoveQuotes(UninsPath)
    Exec(UninsPath,'','',SW_SHOWNORMAL,ewNoWait,ResultCode)
    AutoRun.Close;
    PostMessage(WizardForm.CancelButton.Handle, BM_CLICK, 0, 0);
  end
end;

procedure CreateAutoRun;
begin
  //AutoRun
  AutoRun := CreateCustomForm;
  with AutoRun do begin
    Left := 498;
    Top := 75;
    Width := 495;
    Height := 340;
    BorderIcons := [];
    BorderStyle:=bsToolWindow //(bsNone, bsSingle, bsSizeable, bsDialog, bsToolWindow, bsSizeToolWin)
    Color := clBtnFace;
    Font.Color := clWindowText;
    Font.Height := -11;
    Font.Name := 'MS Sans Serif';
    Font.Style := [];
    Position := poScreenCenter;
    Caption:='AutoRUN'
  end;
  //PlayButton
  PlayButton:= TButton.Create(AutoRun);
  with PlayButton do begin
    Parent := AutoRun;
    Left := 300;
    Top := 110;
    Width := 150;
    Height := 22;
    Caption:= 'Начать игру';
    Cursor:= crHand;
  // ModalResult:= mrOk;
    OnClick := @PlayButtonClick;
    if not RegQueryStringValue(HKLM, 'SOFTWARE\Game','Install Dir', AppPath) then
  begin
    PlayButton.Enabled := False;
  end
  end;
  //InstallButton
  InstallButton:= TButton.Create(AutoRun);
  with InstallButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 80;
    Width := 150;
    Height := 22;
    Caption:= 'Install Game';
    Cursor:= crHand;
    OnClick := @InstallButtonClick;
  end;
  //SupportButton
  SupportButton:= TButton.Create(AutoRun);
  with SupportButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 140;
    Width := 150;
    Height := 22;
    Caption:= 'Инфо';
    Cursor:= crHand;
    OnClick := @SupportButtonClick;
  end;
  //ReadmeButton
  ReadmeButton:= TButton.Create(AutoRun);
  with ReadmeButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 170;
    Width := 150;
    Height := 22;
    Caption:= 'Readme';
    Cursor:= crHand;
    OnClick := @ReadmeButtonClick;
  end;
  //WebButton
  WebButton:= TButton.Create(AutoRun);
  with WebButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 200;
    Width := 150;
    Height := 22;
    Caption:= 'Веб-сайт';
    Cursor:= crHand;
    OnClick := @WebButtonClick;
  end;
  //ExitButton
  ExitButton:= TButton.Create(AutoRun);
  with ExitButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 260;
    Width := 150;
    Height := 22;
    Caption:= 'Выход';
    Cursor:= crHand;
    OnClick := @ExitButtonClick;
//    ModalResult:= mrCancel;
  end;
  //UninstallButton
  UninstallButton:= TButton.Create(AutoRun);
  with UninstallButton do begin
    Parent:= AutoRun;
    Left := 300;
    Top := 230;
    Width := 150;
    Height := 22;
    Caption:= 'Удалить игру';
    Cursor:= crHand;
    OnClick := @UninstallButtonClick;
  end;

  if not RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    InstallButton.Enabled:=true;
    UninstallButton.Enabled:=false;
  end;
  if RegQueryStringValue(HKLM, 'SOFTWARE\Game','UninstallString', UninsPath) then
  begin
    InstallButton.Enabled:=false;
    UninstallButton.Enabled:=true;
  end;

  AutoRun.ShowModal;
end;

procedure InitializeWizard;
begin
  CreateAutoRun;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 09:07, 17-02-2014 | #2294


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


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

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


Доброго времени суток!
Подскажите плиз, какой компонент отвечает за дропбокс с типами установки?

Отправлено: 14:53, 17-02-2014 | #2295


Ветеран


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

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


Shkutu,
Код: Выделить весь код
TWizardForm = class(TSetupForm)
    property TypesCombo: TNewComboBox; read;
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:19, 17-02-2014 | #2296


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


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

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


saurn, да, спасибо.
И еще такая проблема. Повесила обработку выбора компонентов (на ComponentsList.OnClickCheck) - сломалось автоопределение типа. Подскажите плиз, куда можно повесить определение типа в зависимости от выбранных компонентов? Вешать на тот же OnClickCheck не получается, потому что тогда ломается выбор компонентов( Думала использовать что-то вроде на ComponentsList.OnChange, но ничего похожего пока не нашла

Отправлено: 15:27, 17-02-2014 | #2297


Ветеран


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

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


Shkutu, да вроде не ломается.
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program


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


[Components]
Name: a; Description: Моя программа; ExtraDiskSpaceRequired: 15000000; Types: full custom;
Name: aa; Description: Руководство пользователя; ExtraDiskSpaceRequired: 2655285235; Types: custom
Name: aaa; Description: Русский; ExtraDiskSpaceRequired: 5587282385; Types: custom


[Code]
var
    OldCompListOnClickCheckProc: TNotifyEvent;
    SpaceComponentsLabel: TLabel;


procedure ComponentsListOnClickCheck(Sender: TObject);
begin
    OldCompListOnClickCheckProc(TNewCheckListBox(Sender));
    SpaceComponentsLabel.Caption := WizardForm.ComponentsDiskSpaceLabel.Caption;
end;


procedure InitializeWizard();
begin
    WizardForm.ComponentsDiskSpaceLabel.Hide;
    OldCompListOnClickCheckProc := WizardForm.ComponentsList.OnClickCheck;
    WizardForm.ComponentsList.OnClickCheck := @ComponentsListOnClickCheck;

    SpaceComponentsLabel:= TLabel.Create(nil);
    with SpaceComponentsLabel do
    begin
        Parent := WizardForm.SelectComponentsPage;
        SetBounds(ScaleX(WizardForm.ComponentsDiskSpaceLabel.Left), ScaleY(WizardForm.ComponentsDiskSpaceLabel.Top), ScaleX(WizardForm.ComponentsDiskSpaceLabel.Width), ScaleY(WizardForm.ComponentsDiskSpaceLabel.Height));
        AutoSize := False;
        Font.Style := [fsBold];
        Font.Color := $0000FF;
    end;
end;


procedure CurPageChanged(CurPageID: Integer);
begin
    case CurPageID of
        wpSelectComponents: ComponentsListOnClickCheck(WizardForm.ComponentsList);
    end;
end;

У компонент листа, насколько мне известно, нет свойства OnChange

Последний раз редактировалось saurn, 17-02-2014 в 15:42.

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

Отправлено: 15:32, 17-02-2014 | #2298


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


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

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


saurn, обработчик был кривоватый
Спасибо, поправила как в Вашем примере, теперь ничего не ломается

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


Отправлено: 16:07, 17-02-2014 | #2299


Аватара для Ivan_009

Ветеран


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

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


Как прицепить дополнительную форму к инсталлятору и чтобы она была вверху инсталлятора.
Зарание спасибо...

Отправлено: 17:24, 17-02-2014 | #2300



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты 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




 
Переход