Имя пользователя:
Пароль:
 | Правила  

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

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

Аватара для 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] - Скачать;

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



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

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

Отправлено: 11:48, 10-03-2014

 

Аватара для audiofeel

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


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

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


привет всем !!
не отображается StatusPanel.png и StatusPanel2.png
подскажите что и где не так
читать дальше »
#include "iss\b2p.iss"
#include "iss\STS_module.iss"

[Setup]
AppName=MyApp
AppVerName=MyApp
DefaultDirName={pf}\MyApp

[Files]
Source: Dll\*; Flags: dontcopy
Source: Files\*; Flags: dontcopy;

[_code]
var
MyFont: TFont;
Form: LongInt;

procedure CreateForm;
begin
Form := ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\Form.png'), ScaleX(0), ScaleY(0), WizardForm.ClientWidth, WizardForm.ClientHeight, False, True);
end;

procedure InitializeWizard();
begin
ExtractTemporaryFile('botva2.dll')
ExtractTemporaryFile('b2p.dll')
ExtractTemporaryFile('CallbackCtrl.dll')
ExtractTemporaryFile('StatusPanel.png');
ExtractTemporaryFile('StatusPanel2.png');

WizardForm.Width:= 790;
WizardForm.InnerNotebook.Hide;
WizardForm.OuterNotebook.Hide;

MyFont:= TFont.Create
MyFont.Size:=8;
// | отключаем функцию сортировки страниц
STS_Init(ExpandConstant('{tmp}\StatusPanel.png'), ExpandConstant('{tmp}\StatusPanel.png'), 0, 20, WizardForm.Width, 20, MyFont, False)
//Если вы отключили функцию сортировки страниц, то должны добавлять страницы
//которые будут использоваться в панели, строго по порядку их показывания
//Иначе панель будет неправильно отображать текущий статус
//Pagename PageID
STS_AddStage(CustomMessage('STSWelcomePage'), wpWelcome); //добавляет строку с названием страницы в панель
STS_AddStage(CustomMessage('STSDirEditPage'), wpSelectDir);
STS_AddStage(CustomMessage('STSReadyPage'), wpReady);
STS_AddStage(CustomMessage('STSInstallingPage'), wpInstalling);
STS_AddStage(CustomMessage('STSFinishedPage'), wpFinished);
STS_SetColor(clGray, clWhite)
STS_CreatePanel();
CreateForm;
ImgApplyChanges(WizardForm.Handle);
end;

procedure CurPageChanged(CurPageID: Integer);
begin
STS_UpdateStages(CurPageID)
end;

procedure DeinitializeSetup();
begin
gdipShutdown
end;

Отправлено: 19:08, 15-05-2014 | #661



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

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


Аватара для Shift85

Старожил


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

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


audiofeel, Юзай.http://rghost.ru/55188772
Это сообщение посчитали полезным следующие участники:

Отправлено: 20:07, 15-05-2014 | #662


Аватара для audiofeel

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


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

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


Shift85,

этот пример я и взял, только там "старая" ботва" а как быть с "новой", то есть b2p.dll и тд
вот = http://file.sampo.ru/w8nrsk/

Отправлено: 20:17, 15-05-2014 | #663


Аватара для Shift85

Старожил


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

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


Цитата audiofeel:
а как быть с "новой", то есть b2p.dll »
audiofeel, Бес понятия. Придеться походу остаться на botva2.dll.

Отправлено: 20:30, 15-05-2014 | #664


Аватара для Dodakaedr

Ветеран


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

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


Цитата Kashtan007:
Ставил изображения через Редактор форм в расширенном Инно. Добавлял BitmapImage.
Возможно ли как-то сделать на этих страницах разные шапки. Если да, то как? Заранее спасибо! »
Приблизительно так:
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

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


[Files]

DestName: "WizardForm.BitmapImage1.bmp"; Source: "1.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage2.bmp"; Source: "2.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage3.bmp"; Source: "3.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage4.bmp"; Source: "4.bmp"; Flags: dontcopy solidbreak


Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "TextRussian.isl"; Check: IsComponent(1)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "TextEnglish.isl"; Check: IsComponent(2)
Source: "compiler:Languages\Russian.isl"; DestDir: "{app}"; DestName: "VoiceRussian.isl"; Check: IsComponent(4)
Source: "compiler:Default.isl"; DestDir: "{app}"; DestName: "VoiceEnglish.isl"; Check: IsComponent(5)

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: text; Description: Дополнительное по; Types: full;
Name: text\DirectX; Description: DirectX 9;
Name: text\Visual; Description: Microsoft Visual C++;

[CustomMessages]
RU.CompSubtitlesLng=Язык субтитров
RU.CompVoiceLng=Язык озвучки
RU.CompRussian=Русский
RU.CompEnglish=Английский


[ code]
var
Flag: Boolean;
SettingButton: TButton;
ComponentsPage: TWizardPage;
ComponentsList: TNewCheckListBox;
BitmapImage1, BitmapImage2, BitmapImage3, BitmapImage4: TBitmapImage;

procedure HideShowOnClick(Sender: TObject);
begin
if Flag = False then begin
WizardForm.ClientWidth:= ScaleX(497);
WizardForm.ClientHeight:= ScaleY(360);
Flag:= True;
SettingButton.Caption:= '[]';
end else begin
WizardForm.ClientWidth:= ScaleX(497);
WizardForm.ClientHeight:= ScaleY(500);
Flag:= False;
SettingButton.Caption:= '[]';
end;
end;

function IsComponent(CompIndex: Integer): Boolean;
var
  i: Integer;
begin
  Result := False;
  for i := 0 to ComponentsList.ItemCount - 1 do
  begin
    if CompIndex <= (ComponentsList.ItemCount - 1) then
      Result := ComponentsList.Checked[CompIndex];
  end;
end;

procedure InitializeWizard();
begin
WizardForm.WizardSmallBitmapImage.Hide;
SettingButton:= TButton.Create(WizardForm);
SettingButton.SetBounds(ScaleX(10),ScaleY(325), ScaleX(30), ScaleY(30))
SettingButton.Caption:= '[]';
SettingButton.OnClick:= @HideShowOnClick;
SettingButton.Parent:= WizardForm;
Flag:=True;

ComponentsList := TNewCheckListBox.Create(WizardForm);
  with ComponentsList do
  begin
    Parent := WizardForm;
    SetBounds(ScaleX(40), ScaleY(370), ScaleX(417), ScaleY(100));
    AddCheckBox(CustomMessage('CompSubtitlesLng'), '', 0, True, False, False, True, nil);
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);
    AddCheckBox(CustomMessage('CompVoiceLng'), '', 0, True, False, False, True, nil);
      AddRadioButton(CustomMessage('CompRussian'), '', 1, True, True, nil);
      AddRadioButton(CustomMessage('CompEnglish'), '', 1, False, True, nil);
  end;
  BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Parent := WizardForm.MainPanel;
    Left := ScaleX(440);
    Top := ScaleY(1);
    Width := ScaleX(55);
    Height := ScaleY(55);
    ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
  end;


  BitmapImage2 := TBitmapImage.Create(WizardForm);
  with BitmapImage2 do
  begin
    Parent := WizardForm.MainPanel;
    Left := ScaleX(440);
    Top := ScaleY(1);
    Width := ScaleX(55);
    Height := ScaleY(55);
    ExtractTemporaryFile('WizardForm.BitmapImage2.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage2.bmp'));
  end;


  BitmapImage3 := TBitmapImage.Create(WizardForm);
  with BitmapImage3 do
  begin
    Parent := WizardForm.MainPanel;
    Left := ScaleX(440);
    Top := ScaleY(1);
    Width := ScaleX(55);
    Height := ScaleY(55);
    ExtractTemporaryFile('WizardForm.BitmapImage3.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage3.bmp'));
  end;


  BitmapImage4 := TBitmapImage.Create(WizardForm);
  with BitmapImage4 do
  begin
    Parent := WizardForm.MainPanel;
    Left := ScaleX(440);
    Top := ScaleY(1);
    Width := ScaleX(55);
    Height := ScaleY(55);
    ExtractTemporaryFile('WizardForm.BitmapImage4.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage4.bmp'));
  end;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
 case CurPageID of
 wpSelectDir:
begin
  BitmapImage1.Show;
  BitmapImage2.Hide;
  BitmapImage3.Hide;
  BitmapImage4.Hide;
end;
wpSelectComponents:
begin
  BitmapImage2.Show;
  BitmapImage1.Hide;
  BitmapImage3.Hide;
  BitmapImage4.Hide;
end;
wpReady:
begin
  BitmapImage3.Show;
  BitmapImage2.Hide;
  BitmapImage1.Hide;
  BitmapImage4.Hide;
end;
wpInstalling:
begin
  BitmapImage4.Show;
  BitmapImage2.Hide;
  BitmapImage3.Hide;
  BitmapImage1.Hide;
end;
end;
end;

-------
Inno Setup 5 Ultra Unicode

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

Отправлено: 20:59, 15-05-2014 | #665


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


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

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


Dodakaedr, спасибо большое. Все получилось!)

Отправлено: 22:20, 15-05-2014 | #666


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


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

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


Всем привет. А можно на текст наложить тень или эфект двойной контур или чего нибудь подобное? Заранее благодарю.

Последний раз редактировалось Антон_Мураткин@vk, 16-05-2014 в 00:13.


Отправлено: 00:00, 16-05-2014 | #667


Ветеран


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

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


Цитата Dodakaedr:
а как больше путей добавить без понятия. »
Аналогичным способом вызвать Exec для второго ключа или раздела.

Отправлено: 06:30, 16-05-2014 | #668


Аватара для Shift85

Старожил


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

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


Цитата Антон_Мураткин@vk:
А можно на текст наложить тень или эфект двойной контур »
Антон_Мураткин@vk, Можно создать два лейбла. (То есть второй для тени.) Как то так.

Код: Выделить весь код
  WelcomeLabel1:= TLabel.Create(WizardForm);
  with WelcomeLabel1 do begin
    AutoSize:=False;
    SetBounds(ScaleX(-26), ScaleY(31), ScaleX(550), ScaleY(70));
    WordWrap:=True;
    Alignment := taCenter;
    Transparent:=True;
    Font.Name:='Georgia';
    Font.Size:= 14;
    Font.Color:=$000000;
    Font.Style:=[fsBold];
    Caption:= ExpandConstant('{cm:Welcome1}');
    Parent:=WizardForm.WelcomePage;
  end;
  WelcomeLabel2:= TLabel.Create(WizardForm);
  with WelcomeLabel2 do begin
    AutoSize:=False;
    SetBounds(ScaleX(-27), ScaleY(30), ScaleX(550), ScaleY(70));
    WordWrap:=True;
    Alignment := taCenter;
    Transparent:=True;
    Font.Name:='Georgia';
    Font.Size:= 14;
    Font.Color:=$FFFFFF;
    Font.Style:=[fsBold];
    Caption:= ExpandConstant('{cm:Welcome1}');
    Parent:=WizardForm.WelcomePage;
  end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:33, 16-05-2014 | #669


Аватара для Dodakaedr

Ветеран


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

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


saurn,
Цитата Dodakaedr:
С восстановлением разобрался »
Нет не разобрался((( код не восстанавливает экспортированный ключ...

читать дальше »
Код: Выделить весь код
[Registry]
Root: HKCR; SubKey: .mp3; BeforeInstall: IsRegExport(); Check: AudioCheck;

[ Code]
procedure IsRegExport();
var
    i: Integer;
    RegKey: String;
begin
    RegKey := 'HKEY_CLASSES_ROOT\.mp3';
    Exec( ExpandConstant( '{win}\regedit.exe' ), '-ea mp3.reg ' + AddQuotes( RegKey ), ExpandConstant( '{app}' ), SW_HIDE, ewWaitUntilTerminated, i );
end;

procedure IsRegImport();
var
    i: Integer;
    RegFile: String;
begin
    RegFile:= ExpandConstant('{app}\mp3.reg');

    if FileExists(RegFile) <> False then
      Exec( 'regedit.exe', ' /s ' + AddQuotes( RegFile ), ExpandConstant( '{win}' ), SW_HIDE, ewWaitUntilTerminated, i );
end;


procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
    case CurUninstallStep of
        usUninstall: IsRegImport();
    end;
end;

-------
Inno Setup 5 Ultra Unicode


Последний раз редактировалось Dodakaedr, 16-05-2014 в 12:40.


Отправлено: 12:33, 16-05-2014 | #670



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

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

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




 
Переход