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

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

 

Ветеран


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

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


У когото есть скрипт на кнопки музыки вместе с картинкой?

Отправлено: 21:52, 11-04-2011 | #1311



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

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


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


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

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


insombia, http://forum.ru-board.com/topic.cgi?...&limit=1&m=2#1 вот здесь самая первая библиотека bass.dll там же есть скрипт)))

-------
Если вам понравился мой совет, то нажмите "Полезное сообщение" :)

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

Отправлено: 09:06, 12-04-2011 | #1312


Аватара для Gnom_aka_Lexander

Ветеран


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

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


Подскадите, пожалуйста, как на одну кнопку повесить несколько кликов?
Код: Выделить весь код
procedure Click(Sender: TObject);
begin
if OnClick then
  TwoClick else OnClick;
end;
................
BackButton.OnClick := @Click;
процедура Click выбивает ошибку на then, мне нужно, чтоб по нажатию на кнопку заменялся ее OnClick
Интересный дефолтный
инсталл
Код: Выделить весь код
[Setup] 
AppName=My Application 
AppVersion=1.5 
DefaultDirName={pf}\My Application 

[_Code] 
procedure InitializeWizard(); 
begin 
      WizardForm.Color := clSilver; 
      WizardForm.AutoScroll := False; 
      WizardForm.ClientHeight := ScaleY(395); 
      WizardForm.ClientWidth := ScaleX(635); 

      WizardForm.WizardBitmapImage.Width := ScaleX(170); 
      WizardForm.WizardBitmapImage.Height := WizardForm.ClientHeight; 
      WizardForm.WizardBitmapImage.Parent := WizardForm; 

      WizardForm.OuterNotebook.Left := WizardForm.WizardBitmapImage.Width; 
      WizardForm.OuterNotebook.Width :=  WizardForm.ClientWidth-WizardForm.WizardBitmapImage.Width; 
      WizardForm.OuterNotebook.Height := ScaleY(345); 
      WizardForm.Bevel.Left := WizardForm.WizardBitmapImage.Width; 
      WizardForm.Bevel.Top := WizardForm.OuterNotebook.Height; 
      WizardForm.Bevel.Width := WizardForm.OuterNotebook.Width; 

      WizardForm.InnerNotebook.Left := ScaleX(8); 
      WizardForm.InnerNotebook.Width := WizardForm.OuterNotebook.Width-16; 
      WizardForm.InnerPage.Color := clSilver; 

      WizardForm.MainPanel.Left := WizardForm.WizardBitmapImage.Width; 
      WizardForm.MainPanel.Width := WizardForm.ClientWidth-WizardForm.WizardBitmapImage.Width; 
      WizardForm.MainPanel.Parent := WizardForm; 
      WizardForm.MainPanel.Color := clGray; 

      WizardForm.WizardSmallBitmapImage.Left := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width; 
      WizardForm.WizardSmallBitmapImage.Top := ScaleY(0); 

      WizardForm.PageDescriptionLabel.Left := ScaleX(32); 
      WizardForm.PageDescriptionLabel.Width := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width-WizardForm.PageDescriptionLabel.Left; 

      WizardForm.PageNameLabel.Width := WizardForm.MainPanel.Width-WizardForm.WizardSmallBitmapImage.Width-WizardForm.PageNameLabel.Left-10; 

      WizardForm.BeveledLabel.Left := WizardForm.WizardBitmapImage.Width; 
      WizardForm.BeveledLabel.Top := WizardForm.OuterNotebook.Height; 

      WizardForm.CancelButton.Left := ScaleX(535); 
      WizardForm.CancelButton.Top := ScaleY(360); 

      WizardForm.NextButton.Left := ScaleX(445); 
      WizardForm.NextButton.Top := ScaleY(360); 

      WizardForm.BackButton.Left := ScaleX(365); 
      WizardForm.BackButton.Top := ScaleY(360); 

      WizardForm.WelcomePage.Color := clSilver; 

      WizardForm.WelcomeLabel2.Left := ScaleX(16); 
      WizardForm.WelcomeLabel2.Top := ScaleY(167); 
      WizardForm.WelcomeLabel2.Width := ScaleX(437); 
      WizardForm.WelcomeLabel2.Height := ScaleY(135); 

      WizardForm.WelcomeLabel1.Parent := WizardForm.MainPanel; 
      WizardForm.WelcomeLabel1.Left := ScaleX(0); 
      WizardForm.WelcomeLabel1.Top := ScaleY(20); 
      WizardForm.WelcomeLabel1.Width := WizardForm.MainPanel.Width; 

      WizardForm.LicenseNotAcceptedRadio.Left := ScaleX(24); 

      WizardForm.LicenseAcceptedRadio.Left := ScaleX(24); 

      WizardForm.LicenseMemo.Width := WizardForm.InnerNotebook.Width; 

      WizardForm.DirBrowseButton.Left := ScaleX(366); 
      WizardForm.DirBrowseButton.Top := ScaleY(81); 
      WizardForm.DiskSpaceLabel.Top := ScaleY(112); 
      WizardForm.GroupBrowseButton.Left := ScaleX(366); 
      WizardForm.GroupBrowseButton.Top := ScaleY(214); 
      WizardForm.GroupBrowseButton.Parent := WizardForm.SelectDirPage; 

      WizardForm.DirEdit.Left := ScaleX(24); 
      WizardForm.GroupEdit.Left := ScaleX(24); 
      WizardForm.GroupEdit.Top := ScaleY(216); 
      WizardForm.GroupEdit.Parent := WizardForm.SelectDirPage; 

      WizardForm.SelectGroupBitmapImage.Top := ScaleY(136); 
      WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectDirPage; 

      WizardForm.NoIconsCheck.Top := ScaleY(220); 
      WizardForm.NoIconsCheck.Parent := WizardForm.SelectDirPage; 

      WizardForm.SelectStartMenuFolderBrowseLabel.Parent := WizardForm.SelectDirPage; 
      WizardForm.SelectStartMenuFolderBrowseLabel.Top := ScaleY(180); 

      WizardForm.SelectStartMenuFolderLabel.Parent := WizardForm.SelectDirPage; 
      WizardForm.SelectStartMenuFolderLabel.Top := ScaleY(145); 
end; 

procedure CurPageChanged(CurPageID: Integer); 
begin 
    if CurPageID = wpWelcome then WizardForm.WizardSmallBitmapImage.Hide else WizardForm.WizardSmallBitmapImage.Show; 
    if CurPageID = wpWelcome then WizardForm.WelcomeLabel1.Show else WizardForm.WelcomeLabel1.Hide; 
end;
может кому пригодится в качестве базы

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


Последний раз редактировалось Gnom_aka_Lexander, 12-04-2011 в 20:40.


Отправлено: 11:29, 12-04-2011 | #1313


Ветеран


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

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


Как разделить установку на 2 диска чтобы каждый занимал по 4 30 гб хотябы?

Отправлено: 21:31, 12-04-2011 | #1314


Ветеран


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

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


Цитата Лександер:
как на одну кнопку повесить несколько кликов? »
Один из вариантов, это задавать свойство Tag := 0, 1 и так далее, выполняешь какой-то код, затем меняешь значения при каждом клике:
Пример

Код: Выделить весь код
procedure Click(Sender: TObject);
begin
  case TButton(Sender).Tag of
    0:begin
        { выполняем какой-то код... }
        { присваиваем новое значение }
        TButton(Sender).Tag := 1;
      end;
    1:begin
        { выполняем какой-то код... }
        { присваиваем новое значение }
        TButton(Sender).Tag := 0;
      end;
  end;
  { для примера, отобразим в зоголовке }
  WizardForm.Caption := 'BackButton.Tag := ' + IntToStr(TButton(Sender).Tag);
end;

Цитата Лександер:
процедура Click выбивает ошибку на then, мне нужно, чтоб по нажатию на кнопку заменялся ее OnClick »
Ну допустим на then ошибки быть не может, компилятор вам просто говорит, что для проверки условия данных не достаточно и тем более не понятно, что такое if OnClick then.
Если меняете стандартные функции кнопок, то лучше использовать их родные, такие как function BackButtonClick(CurPageID: Integer): Boolean;, а уже в них разрешать выполнение, либо запрещать.

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

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

Отправлено: 09:09, 13-04-2011 | #1315


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


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

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


как сделать так чтобы установщик дополнения брал значение в реестре и если его нет писал бы сообщение что прога не установлена вот мой пример только как то его доработать бы надо не знаю как. да и кстати устанавлиивать он должен из внешней папки
[Files]
Source: {src}\Content - Installer Data\*; DestDir: "{code:getData}"; Flags: skipifsourcedoesntexist ignoreversion external
Код: Выделить весь код
 
function getData(S:String): String; 
var 
    InsPath: String;
    Reg: boolean;     
begin 
    Reg := RegQueryStringValue(HKLM, 'SOFTWARE\Mycompany\Myproga, 'InstallPath', InsPath); 
 Result := InsPath; 
end;

Отправлено: 14:21, 13-04-2011 | #1316


Аватара для Habetdin


Автор проектов


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

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


Arsi000, как-то так
Код: Выделить весь код
[Files]
Source: {src}\Content - Installer Data\*; DestDir: "{reg:HKLM\SOFTWARE\My Company\My Program,InstallPath|{pf}\My Program}"; Flags: skipifsourcedoesntexist ignoreversion external

[code]
function DetectInstallRegKey: Boolean;
var
  Path: string;
begin
  if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\My Company\My Program', 'InstallPath', Path) then
    if Path <> '' then
      Result:= True
    else
      Result:= False;
end;

function InitializeSetup(): Boolean;
begin
  Result:= DetectInstallRegKey;
  if Result = False then
  MsgBox('На вашем компьютере не найдена программа My Program.' + #13#10
         'Установка дополнения к My Program невозможна!', mbInformation, MB_OK);
end;

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

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

Отправлено: 15:01, 13-04-2011 | #1317


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


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

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


Ребят есть вопрос: Как в этом скрипте:

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:InnoSetupTest.

[CustomMessages]
ProgressBar_Caption=ProgressBar Caption
ProgressBar_Description=ProgressBar Description

[code]
var
DSProgressBar: TNewProgressBar;

{ ProgressBar_Activate }

procedure ProgressBar_Activate(Page: TWizardPage);
begin
// enter code here...
end;

{ ProgressBar_ShouldSkipPage }

function ProgressBar_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;

{ ProgressBar_BackButtonClick }

function ProgressBar_BackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;

{ ProgressBar_NextkButtonClick }

function ProgressBar_NextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;

{ ProgressBar_CancelButtonClick }

procedure ProgressBar_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
// enter code here...
end;

{ ProgressBar_CreatePage }

function ProgressBar_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:ProgressBar_Caption}'),
ExpandConstant('{cm:ProgressBar_Description}')
);

{ DSProgressBar }
DSProgressBar := TNewProgressBar.Create(Page);
with DSProgressBar do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(88);
Width := ScaleX(413);
Height := ScaleY(49);
Min := 0;
Max := 100;
end;

with Page do
begin
OnActivate := @ProgressBar_Activate;
OnShouldSkipPage := @ProgressBar_ShouldSkipPage;
OnBackButtonClick := @ProgressBar_BackButtonClick;
OnNextButtonClick := @ProgressBar_NextButtonClick;
OnCancelButtonClick := @ProgressBar_CancelButtonClick;
end;

Result := Page.ID;
end;

{ ProgressBar_InitializeWizard }

procedure InitializeWizard();
begin
ProgressBar_CreatePage(wpInstalling);
end;

Заменить стандартный прогресс-бар,тем что появляется в конце страницы,пробовал wpInstalling,не помогло,появляется,сразу после установки...Please Help!

Отправлено: 17:58, 14-04-2011 | #1318


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


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

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


Ребят есть вопрос: Как в этом скрипте:

[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=userdocs:InnoSetupTest.

[CustomMessages]
ProgressBar_Caption=ProgressBar Caption
ProgressBar_Description=ProgressBar Description

[code]
var
DSProgressBar: TNewProgressBar;

{ ProgressBar_Activate }

procedure ProgressBar_Activate(Page: TWizardPage);
begin
// enter code here...
end;

{ ProgressBar_ShouldSkipPage }

function ProgressBar_ShouldSkipPage(Page: TWizardPage): Boolean;
begin
Result := False;
end;

{ ProgressBar_BackButtonClick }

function ProgressBar_BackButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;

{ ProgressBar_NextkButtonClick }

function ProgressBar_NextButtonClick(Page: TWizardPage): Boolean;
begin
Result := True;
end;

{ ProgressBar_CancelButtonClick }

procedure ProgressBar_CancelButtonClick(Page: TWizardPage; var Cancel, Confirm: Boolean);
begin
// enter code here...
end;

{ ProgressBar_CreatePage }

function ProgressBar_CreatePage(PreviousPageId: Integer): Integer;
var
Page: TWizardPage;
begin
Page := CreateCustomPage(
PreviousPageId,
ExpandConstant('{cm:ProgressBar_Caption}'),
ExpandConstant('{cm:ProgressBar_Description}')
);

{ DSProgressBar }
DSProgressBar := TNewProgressBar.Create(Page);
with DSProgressBar do
begin
Parent := Page.Surface;
Left := ScaleX(0);
Top := ScaleY(88);
Width := ScaleX(413);
Height := ScaleY(49);
Min := 0;
Max := 100;
end;

with Page do
begin
OnActivate := @ProgressBar_Activate;
OnShouldSkipPage := @ProgressBar_ShouldSkipPage;
OnBackButtonClick := @ProgressBar_BackButtonClick;
OnNextButtonClick := @ProgressBar_NextButtonClick;
OnCancelButtonClick := @ProgressBar_CancelButtonClick;
end;

Result := Page.ID;
end;

{ ProgressBar_InitializeWizard }

procedure InitializeWizard();
begin
ProgressBar_CreatePage(wpInstalling);
end;

Заменить стандартный прогресс-бар,тем что появляется в конце страницы,пробовал wpInstalling,не помогло,появляется,сразу после установки...Please Help!

Отправлено: 18:17, 14-04-2011 | #1319


Старожил


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

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


как мне после установки была галка "посетить сайт" и выйти туда

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


Отправлено: 19:17, 14-04-2011 | #1320



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




 
Переход