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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-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]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

SHVtYW4=


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

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


Цитата OldGamer:
Как сделать чтобы деинсталлятор удалял папку с файлами »
Код: Выделить весь код
[UninstallDelete]
Name: {userappdata}\MyProg; Type: filesandordirs
Это сообщение посчитали полезным следующие участники:

Отправлено: 07:36, 05-03-2016 | #1411



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

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


Забанен


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

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


Парни привет!
скрин
помогите есть скрипт вот он
скрипт
[code]
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
OutputDir=.
Uninstallable=IsChecked
CreateUninstallRegKey=IsChecked

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

[Tasks]
; Дополнительно
; Ярлык(и) на «Рабочем столе»
Name: "desktopicon"; Description: "Ярлык(и) на «Рабочем столе»"; GroupDescription: "Дополнительно:"; Check: IsChecked
; Ярлыки в меню «Пуск»
Name: "starticon"; Description: "Ярлыки в меню «Пуск»"; GroupDescription: "Дополнительно:"; Check: IsChecked

[Icons]
Name: "{group}\My Program"; Filename: "{uninstallexe}"; Tasks: starticon; Check: not IsChecked
Name: "{commondesktop}\My Program"; Filename: "{uninstallexe}"; Tasks: desktopicon; Check: IsChecked

[Files]
//папка портабл
Source: "C:\Users\WW-W\Desktop\ShareDownloader*"; DestDir: "{app}"; Check: "not IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "C:\Users\WW-W\Desktop\ShareDownloader\*"; DestDir: "{app}"; Check: "IsChecked"; Flags: ignoreversion createallsubdirs recursesubdirs



[CustomMessages]
HeaderLabelPage=Выбор типа установки
LabelPage=Выберите нужный тип установки
MyRadioCaption_1=Распаковка
MyRadioCaption_2=Обычная установка
PageTextHeader=На этой странице Вы можете выбрать тип установки, который для Вас наиболее удобен.
MyText_1=Будет произведена распаковка в паку,%nуказанную на следующей странице
MyText_2=Будет произведена стандартная установка
Extracted=Распаковка — %1
ExtractedFolder=Выбор папки распаковки
ExtractedFolder2=В какую папку вы хотите распаковать %1?
ExtractedFolder3=Программа распакует %1 в следующую папку.
ExtractedFolder4=Программа установит %1 в следующую папку.
Installing=Распаковка...
InstallingLabel=Пожалуйста, подождите, пока %1 распакуется на ваш компьютер.
FinishedHeadingLabel=Завершение распаковки%n%1
FinishedLabelNoIcons=Программа %1 распакована на Ваш компьютер.%n%nНажмите «Завершить», чтобы выйти из программы распаковки.

[UninstallDelete]
Type: filesandordirs; Name: {app}

Код: Выделить весь код
const
  DI_NORMAL = 3;

var
  MyNewPage: TWizardPage;
  Rect: TRect;
  HIcon: LongInt;
  AIconFileName: String;
  MyRadioBtn_1, MyRadioBtn_2: TNewRadioButton;

function GetModuleHandle(lpModuleName: LongInt): LongInt; external 'GetModuleHandleA@kernel32.dll stdcall';
function ExtractIcon(hInst: LongInt; lpszExeFileName: AnsiString; nIconIndex: LongInt): LongInt; external 'ExtractIconA@shell32.dll stdcall';
function DrawIconEx(hdc: LongInt; xLeft, yTop: Integer; hIcon: LongInt; cxWidth, cyWidth: Integer; istepIfAniCur: LongInt; hbrFlickerFreeDraw, diFlags: LongInt): LongInt;external 'DrawIconEx@user32.dll stdcall';
function DestroyIcon(hIcon: LongInt): LongInt; external 'DestroyIcon@user32.dll stdcall';

function IsChecked: Boolean;
begin
  Result:= MyRadioBtn_2.checked;
end;

procedure RadBtnOnClick(Sender: TObject);
begin
  case Sender of
    MyRadioBtn_1: begin
      WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
      WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
    end;
    MyRadioBtn_2: begin
      WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
      WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder4}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
    end;
  end;
end;

procedure GetInstTypePage();
begin
  MyNewPage:= CreateCustomPage(wpWelcome, ExpandConstant('{cm:HeaderLabelPage}'), ExpandConstant('{cm:LabelPage}'));

  try
    // в конкретном примере из этого файла (C:\Windows\System32\shell32.dll) берём иконки, для пробного показа.
    // Можно использовать обычные .ico
    AIconFileName:= ExpandConstant('{sys}\shell32.dll');
    //

    Rect.Left:= 0;
    Rect.Top:= 0;
    Rect.Right:= 32;
    Rect.Bottom:= 32;

    hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 26);
    try
      with TBitmapImage.Create(WizardForm) do begin
        Left:= ScaleX(15);
        Top:= ScaleY(68);
        Width:= 32;
        Height:= 32;
        with Bitmap do begin
          Width:= 32;
          Height:= 32;
          Canvas.Brush.Color:= clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent:= MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;

    hIcon:= ExtractIcon(GetModuleHandle(0), AIconFileName, 19);
    try
      with TBitmapImage.Create(WizardForm) do begin
        Left:= ScaleX(15);
        Top:= ScaleY(138);
        Width:= 32;
        Height:= 32;
        with Bitmap do begin
          Width:= 32;
          Height:= 32;
          Canvas.Brush.Color:= clBtnFace;
          Canvas.FillRect(Rect);
          DrawIconEx(Canvas.Handle, 0, 0, HIcon, 32, 32, 0, 0, DI_NORMAL);
        end;
        Parent:= MyNewPage.Surface;
      end;
     finally
     DestroyIcon(hIcon);
    end;
   except
  end;

  with TNewStaticText.Create(WizardForm) do begin
    Width:= WizardForm.InnerNotebook.Width;
    Height:= ScaleY(26);
    WordWrap:= True;
    Caption:= ExpandConstant('{cm:PageTextHeader}');
    Parent:= MyNewPage.Surface;
  end;

  MyRadioBtn_1:= TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_1 do begin
    Top:= ScaleY(50);
    Width:= ScaleX(150);
    Caption:= ExpandConstant('{cm:MyRadioCaption_1}');
    OnClick:= @RadBtnOnClick;
    Parent:= MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do begin
    Left:= ScaleX(60);
    Top:= ScaleY(68);
    Width:= WizardForm.InnerNotebook.Width - ScaleX(60);
    Height:= ScaleY(26);
    WordWrap:= True;
    Caption:= ExpandConstant('{cm:MyText_1}');
    Parent:= MyNewPage.Surface;
  end;

  MyRadioBtn_2:= TNewRadioButton.Create(WizardForm);
  with MyRadioBtn_2 do begin
    Top:= ScaleY(120);
    Width:= ScaleX(150);
    Caption:= ExpandConstant('{cm:MyRadioCaption_2}');
    Checked:= True;
    OnClick:= @RadBtnOnClick;
    Parent:= MyNewPage.Surface;
  end;

  with TNewStaticText.Create(WizardForm) do begin
    Left:= ScaleX(60);
    Top:= ScaleY(138);
    Width:= WizardForm.InnerNotebook.Width - ScaleX(60);
    Height:= ScaleY(26);
    WordWrap:= True;
    Caption:= ExpandConstant('{cm:MyText_2}');
    Parent:= MyNewPage.Surface;
  end;
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if (PageID > wpSelectDir) and (PageID < wpInstalling) and (MyRadioBtn_1.Checked) then
     Result:= True;
end;

procedure InitializeWizard();
begin
  GetInstTypePage();
  WizardForm.DiskSpaceLabel.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if not IsChecked then begin
    case CurPageID of
      wpSelectDir: begin
	WizardForm.Caption:= FmtMessage(ExpandConstant('{cm:Extracted}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
	WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:ExtractedFolder}');
	WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder2}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
	WizardForm.SelectDirLabel.Caption:= FmtMessage(ExpandConstant('{cm:ExtractedFolder3}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
  if IsChecked then
    WizardForm.DirEdit.Text := ExpandConstant( '{pf}\{#SetupSetting("AppName")}' ) else
    WizardForm.DirEdit.Text := ExpandConstant( '{src}\{#SetupSetting("AppName")}' );
      end;
      wpInstalling: begin
	WizardForm.PageNameLabel.Caption:= ExpandConstant('{cm:Installing}');
	WizardForm.PageDescriptionLabel.Caption:= FmtMessage(ExpandConstant('{cm:InstallingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
      end;
      wpFinished: begin
	WizardForm.FinishedHeadingLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedHeadingLabel}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
	WizardForm.FinishedLabel.Caption:= FmtMessage(ExpandConstant('{cm:FinishedLabelNoIcons}'), [ExpandConstant('{#SetupSetting("AppName")}')]);
      end;
    end;
  end;
end;

хочу сделать так
может кто поможет исправить скрипт
или скрипт на подобие такого

Последний раз редактировалось vadjliss, 06-03-2016 в 12:30.


Отправлено: 12:13, 06-03-2016 | #1412


Аватара для ZVSRus

Старожил


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

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


Цитата vadjliss:
хочу сделать так
Посмотри по данному адресу, может подойдет.
http://krinkels.org/threads/kak-zada...ioknopok.2129/

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 16:19, 06-03-2016 | #1413


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


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

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


Доброго времени суток, подскажите как сделать создание символьных ссылок на файлы находящиеся в определенной папке при установке:

Исходная папка с файлами: {app} \ plugins
Конечная с символьными ссылками: {app} \ tools \ project \ plugins

Код: Выделить весь код
procedure CreateHardLink();
begin
  If BtnGetChecked(plugins_CheckBox) then
  begin
    ... код для создания ссылок ...
  end;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  If CurStep = ssPostInstall then
  begin
    CreateHardLink()
  end;
end;

Отправлено: 17:10, 06-03-2016 | #1414


Аватара для kotyarko@fb

Старожил


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

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


astafev_roma,
Код: Выделить весь код
Procedure CreateHardLink();
var
 ResultCode: Integer;
begin
 if BtnGetChecked(plugins_CheckBox) then
  Exec(ExpandConstant('{cmd}'), '/C MKLINK "Имя_создаваемой_ссылки" "Назначение_ссылки"', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp

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

Отправлено: 17:24, 06-03-2016 | #1415


Забанен


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

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


парни помогите вот скрипт
ни как не могу понять
как сделать что бы программа установилась как положено
и так же распаковалась портабле на рабочий стол
уже голову сломал.
ну если кому не трудно исправьте скрипт
скрипт
[code]
#include "botva2.iss"

#define AppName "Ashampoo Photo Commander 14"
#define AppVersion "14.0.4"
#define AppPublisher "Ashampoo"
#define AppURL "http://dilan.at.ua/"
#define AppExeName "apc.exe"

[Setup]
AppName=Ashampoo Photo Commander 14
AppVersion=14.0.4
AppPublisher={#AppPublisher}
AppPublisherURL={#AppURL}
AppSupportURL={#AppURL}
AppUpdatesURL={#AppURL}
DefaultDirName={pf}\Ashampoo Photo Commander 14
OutputDir=.
PrivilegesRequired=admin
Compression=lzma/ultra64
SolidCompression=true
InternalCompressLevel=ultra64

[Files]
DestName: "WizardForm.BitmapImage1.bmp"; Source: "stac.bmp"; Flags: dontcopy solidbreak
DestName: "WizardForm.BitmapImage2.bmp"; Source: "port neaktiv.bmp"; Flags: dontcopy solidbreak

Source: "C:\Users\WW-W\Desktop\Ashampoo Photo Commander 14 14_0_4\app\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs
Source: "C:\Users\WW-W\Desktop\Ashampoo Photo Commander 14 14_0_4\app\*"; DestDir: "{app}"; Flags: ignoreversion createallsubdirs recursesubdirs

Source: port neaktiv.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 1.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: 2.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: stac.bmp; DestDir: {tmp}; Flags: dontcopy nocompression
Source: eng.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: Portable.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: rus.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: Installer net.png; DestDir: {tmp}; Flags: dontcopy nocompression
Source: b2p.dll; DestDir: {tmp}; Flags: dontcopy nocompression
Source: botva2.dll; Flags: dontcopy

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked


[Icons]
Name: {commondesktop}\Skype; Filename: {app}\apc.exe; Tasks: desktopicon

Код: Выделить весь код
var
PortablePanel,InstallerPanel,RusFlag,EngFlag, PortableFlagPanel, InstallerFlagPanel: TPanel;
sLang, Slang2: string;
Portable,Installer, RusLang, EngLang: TNewRadioButton;
NewBox,NewGroupBox3: TNewGroupBox;
Bevel3: TBevel;
BitmapImage1,BitmapImage2: TBitmapImage;

function InitializeSetup(): Boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\rus.png')) then ExtractTemporaryFile('rus.png');
  if not FileExists(ExpandConstant('{tmp}\eng.png')) then ExtractTemporaryFile('eng.png');

  if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');

  if not FileExists(ExpandConstant('{tmp}\Installer net.png')) then ExtractTemporaryFile('Installer net.png');
  if not FileExists(ExpandConstant('{tmp}\Portable.png')) then ExtractTemporaryFile('Portable.png');

  if not FileExists(ExpandConstant('{tmp}\port neaktiv.bmp')) then ExtractTemporaryFile('port neaktiv.bmp');
  if not FileExists(ExpandConstant('{tmp}\stac.bmp')) then ExtractTemporaryFile('stac.bmp');
 Result := True;
  end;

procedure CopmpClick(Sender: TObject);
begin
   case TNewRadioButton(Sender) of
      RusLang:
      begin
         sLang := 'rus';
         sLang2 := 'eng';
         if Portable.Checked then
            Portable.OnClick(Portable);
         if Installer.Checked then
            Installer.OnClick(Installer);
      end;
      EngLang:
      begin
         sLang := 'eng';
         sLang2 := 'rus';
         if Portable.Checked then
            Portable.OnClick(Portable);
         if Installer.Checked then
            Installer.OnClick(Installer);
      end;
      Portable:
      begin
         PortablePanel.Show;
         PortableFlagPanel.Show;
         InstallerPanel.Show;
         ImgLoad(PortableFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
                  ScaleX(40), ScaleY(20), True, True);
         ImgApplyChanges(PortableFlagPanel.Handle);
         InstallerFlagPanel.Hide;
      end;
      Installer:
      begin
         InstallerPanel.Hide;   
         PortablePanel.Hide;
         InstallerFlagPanel.Show;
         ImgLoad(InstallerFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
                  ScaleX(40), ScaleY(20), True, True);
         ImgApplyChanges(InstallerFlagPanel.Handle);
         PortableFlagPanel.Hide;
      end;
   end;
end;

procedure InitializeWizard();
begin
  WizardForm.DiskSpaceLabel.Hide;
  WizardForm.SelectDirBitmapImage.Hide;
  sLang := 'rus';
  sLang2 := 'eng';

  NewGroupBox3 := TNewGroupBox.Create(WizardForm);
  with NewGroupBox3 do
  begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(0);
    Top := ScaleY(0);
    Width := ScaleX(417);
    Height := ScaleY(183);
    Caption := 'Пожалуйста, выберите версию:';
  end;

  Bevel3 := TBevel.Create(WizardForm);
  with Bevel3 do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(208);
    Top := ScaleY(22);
    Width := ScaleX(2);
    Height := ScaleY(148);
  end;

  PortablePanel := TPanel.Create(WizardForm);
  with PortablePanel do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(248);
    Top := ScaleY(56);
    Width := ScaleX(122);
    Height := ScaleY(112);
    BevelOuter := bvNone;
    ParentBackground := True;
    end;

  InstallerPanel := TPanel.Create(WizardForm);
  with InstallerPanel do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(32);
    Top := ScaleY(56);
    Width := ScaleX(122);
    Height := ScaleY(112);
    BevelOuter := bvNone;
    ParentBackground := True;
    end;

   InstallerFlagPanel := TPanel.Create(WizardForm);
    with InstallerFlagPanel do
    begin
    Parent := NewGroupBox3;
    Left := ScaleX(106);
    Top := ScaleY(145);
    Width := ScaleX(40);
    Height := ScaleY(20);
    BevelOuter := bvNone;
    ParentBackground := True;
    end;

    PortableFlagPanel := TPanel.Create(WizardForm);
    with PortableFlagPanel do
    begin
    Parent := NewGroupBox3;
    Left := ScaleX(326);
    Top := ScaleY(145);
    Width := ScaleX(40);
    Height := ScaleY(20);
    BevelOuter := bvNone;
    ParentBackground := True;
    end;

    BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(32);
    Top := ScaleY(56);
    Width := ScaleX(122);
    Height := ScaleY(112);
    ExtractTemporaryFile('WizardForm.BitmapImage1.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage1.bmp'));
  end;

 
  BitmapImage2 := TBitmapImage.Create(WizardForm);
  with BitmapImage2 do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(248);
    Top := ScaleY(56);
    Width := ScaleX(122);
    Height := ScaleY(112);
    ExtractTemporaryFile('WizardForm.BitmapImage2.bmp');
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\WizardForm.BitmapImage2.bmp'));
  end;

  Portable := TNewRadioButton.Create(WizardForm);
  with Portable do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(264);
    Top := ScaleY(16);
    Width := ScaleX(200);
    Height := ScaleY(17);
    Caption := 'Портативная';
    OnClick:=@CopmpClick;
    Checked := True;
    end;

  Installer := TNewRadioButton.Create(WizardForm);
  with Installer do
  begin
    Parent := NewGroupBox3;
    Left := ScaleX(32);
    Top := ScaleY(16);
    Width := ScaleX(200);
    Height := ScaleY(17);
    Caption := 'Стационарная';
    OnClick:=@CopmpClick;
    Checked := True;
    end;

  NewBox := TNewGroupBox.Create(WizardForm);
    with NewBox do
    begin
    Parent := WizardForm.SelectDirPage;
    Left := ScaleX(210);
    Top := ScaleY(185);
    Width := ScaleX(207);
    Height := ScaleY(50);
    Caption := 'Язык интерфейса:';
    end;

  EngLang := TNewRadioButton.Create(WizardForm);
  with EngLang do
  begin
    Parent := NewBox;
    Left := ScaleX(100);
    Top := ScaleY(23);
    Width := ScaleX(80);
    Height := ScaleY(17);
    Caption := 'Английский';
    Checked := True;
    OnClick:=@CopmpClick;
    end;

  RusLang := TNewRadioButton.Create(WizardForm);
  with RusLang do
  begin
    Parent := NewBox;
    Left := ScaleX(25);
    Top := ScaleY(23);
    Width := ScaleX(60);
    Height := ScaleY(17);
    Caption := 'Русский';
    OnClick:=@CopmpClick;
    Checked :=True;
    end;

    ImgLoad(PortablePanel.Handle,ExpandConstant('{tmp}\Portable.png'),ScaleX(0),ScaleY(0),ScaleX(122),ScaleY(112),True,True);
    ImgApplyChanges(PortablePanel.Handle);

    ImgLoad(InstallerPanel.Handle,ExpandConstant('{tmp}\Installer net.png'),ScaleX(0),ScaleY(0),ScaleX(122),ScaleY(112),True,True);
    ImgApplyChanges(InstallerPanel.Handle);

    ImgLoad(InstallerFlagPanel.Handle,ExpandConstant('{tmp}\rus.png'),ScaleX(0),ScaleY(0),ScaleX(40),ScaleY(20),True,True);
    ImgApplyChanges(InstallerFlagPanel.Handle);

    ImgLoad(PortableFlagPanel.Handle,ExpandConstant('{tmp}\eng.png'),ScaleX(0),ScaleY(0),ScaleX(40),ScaleY(20),True,True);
    ImgApplyChanges(PortableFlagPanel.Handle);
    end;

procedure DeinitializeSetup();
begin
  gdipShutdown;
end;

Отправлено: 22:19, 06-03-2016 | #1416


Забанен


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

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


парни посмотрите скрипт музыка играет а кнопки на выключение музыки нет
скрин
ссылка на скрипт скрипт

Отправлено: 08:07, 07-03-2016 | #1417


Аватара для ZVSRus

Старожил


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

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


Цитата vadjliss:
как сделать что бы программа установилась как положено
Скрытый текст

Код: Выделить весь код
[Files]
 //   Строки после картинок
 Source: "D:\Files\*"; DestDir: "{app}"; Flags: ignoreversion; Check: InstallerCheck;
 Source: "D:\dll\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs; Check: PortableCheck;

[Code*]
function InitializeSetup(): Boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\rus.png')) then ExtractTemporaryFile('rus.png');
  if not FileExists(ExpandConstant('{tmp}\eng.png')) then ExtractTemporaryFile('eng.png');

  if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
  if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');

  if not FileExists(ExpandConstant('{tmp}\Installer net.png')) then ExtractTemporaryFile('Installer net.png');
  if not FileExists(ExpandConstant('{tmp}\Portable.png')) then ExtractTemporaryFile('Portable.png');

  if not FileExists(ExpandConstant('{tmp}\port neaktiv.bmp')) then ExtractTemporaryFile('port neaktiv.bmp');
  if not FileExists(ExpandConstant('{tmp}\stac.bmp')) then ExtractTemporaryFile('stac.bmp');
 Result := True;
  end;

function InstallerCheck: Boolean;    
 begin                                
   Result := Installer.Checked;       
 end;                                 

 function PortableCheck: Boolean;     
 begin                                
   Result := Portable.Checked;        
 end;

procedure CopmpClick(Sender: TObject);
begin
   case TNewRadioButton(Sender) of
      RusLang:
      begin
         sLang := 'rus';
         sLang2 := 'eng';
         if Portable.Checked then
            Portable.OnClick(Portable);
         if Installer.Checked then
            Installer.OnClick(Installer);
      end;
      EngLang:
      begin
         sLang := 'eng';
         sLang2 := 'rus';
         if Portable.Checked then
            Portable.OnClick(Portable);
         if Installer.Checked then
            Installer.OnClick(Installer);
      end;
      Portable:
      begin
         PortablePanel.Show;
         PortableFlagPanel.Show;
         InstallerPanel.Show;
         ImgLoad(PortableFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
                  ScaleX(40), ScaleY(20), True, True);
         ImgApplyChanges(PortableFlagPanel.Handle);
         InstallerFlagPanel.Hide;

         WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{src}')) + 'AshampooPhotoCommanderPortable';
         WizardForm.Caption:= FmtMessage(ExpandConstant('Распаковка — %1'), [ExpandConstant('{#SetupSetting("AppName")}')]);
      end;
      Installer:
      begin
         InstallerPanel.Hide;
         PortablePanel.Hide;
         InstallerFlagPanel.Show;
         ImgLoad(InstallerFlagPanel.Handle, ExpandConstant('{tmp}\' + sLang + '.png'), ScaleX(0), ScaleY(0),
                  ScaleX(40), ScaleY(20), True, True);
         ImgApplyChanges(InstallerFlagPanel.Handle);
         PortableFlagPanel.Hide;

         WizardForm.DirEdit.Text := AddBackslash(ExpandConstant('{pf}')) + 'Ashampoo Photo Commander 14';
         WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
      end;
   end;
end;

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode

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

Отправлено: 10:29, 07-03-2016 | #1418


Забанен


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

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


спасибо но зараза ошибку выдаёт может что то не так?

всё разобрался
а, как на счёт 1 вопроса про кнопку выключения музыки
может кто то разобрался с скриптом
музыка играет а кнопки на выключение музыки нет

Последний раз редактировалось vadjliss, 07-03-2016 в 12:32.


Отправлено: 11:47, 07-03-2016 | #1419


Аватара для kotyarko@fb

Старожил


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

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


Цитата vadjliss:
парни посмотрите скрипт музыка играет а кнопки на выключение музыки нет
ссылка на скрипт»
Это ссылка не на скрипт, а на собранную программу.

-------
http://forum.worldoftanks.ru/topic/1429925-/
Исходник моего установщика: https://bitbucket.org/Kotyarko_O/kmp


Отправлено: 13:02, 07-03-2016 | #1420



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

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

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




 
Переход