Inno Setup. Прочие вопросы

Ответить
 • Просмотры: 29
Аватара пользователя
boss911

Re: Inno Setup. Прочие вопросы

Сообщение boss911 »

Цитата smile7:



C:\Users\...\Documents\My Games\... .ini
Inno Setup. Прочие вопросы




“{userdocs}\My Games\file.ini” - такой путь не подходит? Константа "{userdocs}" всегда ведет к папке документов пользователя, какой бы путь у нее не был, такая себе переменная.



Так, а что нужно редактировать/добавлять, какие секции, ключи и строки?
Аватара пользователя
by_gangster

Re: Inno Setup. Прочие вопросы

Сообщение by_gangster »

boss911, скрипт покажу, и ещё вопрос при компиляции выскакивает ошибка типа Default.isl не определяет версию inno setup
Аватара пользователя
boss911

Re: Inno Setup. Прочие вопросы

Сообщение boss911 »

by_gangster



Какая версия компилятора (анси/юникод), официал или рестулс? Поставьте 5.5.1 с официального сайта и проверьте на нем еще раз.
Аватара пользователя
by_gangster

Re: Inno Setup. Прочие вопросы

Сообщение by_gangster »

boss911, всё сорри моя ошибка насчёт Default.isl а вот проблема с расспаковкой осталась



Код:

Код: Выделить всё

;by Evgeniy Bytaikis
#include "botva2.iss"
#include "BASS_Module.iss"
[Setup]
AppName=Sigerous Mod для COP (fix 19.03)
AppVerName=Sigerous Mod v2.2
DefaultDirName={reg:HKLM\SOFTWARE\GSC Game World\STALKER-COP,InstallPath}
InfoBeforeFile=embedded\InfoBefore.rtf
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\logo.bmp
SetupIconFile=embedded\sgm.ico
Compression=lzma2/max
OutputDir=.
[Registry]
Root: HKLM; Subkey: "Software\GSC Game World\STALKER-COP"; ValueName: "SigerousVers"; ValueType: String; ValueData: "2.2";
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[CustomMessages]
rus.ArcCancel=Отменить распаковку
rus.ArcBreak=Установка прервана!
rus.ExtractedInfo=Распаковано %1 Мб из %2 Мб
rus.ArcInfo=Архив: %1 из %2
rus.ArcTitle=Распаковка архивов FreeArc
rus.ArcError=Распаковщик FreeArc вернул код ошибки: %1
rus.ArcFail=Распаковка не завершена!
rus.AllProgress=Общий прогресс распаковки: %1%%
rus.ArcBroken=Возможно, архив %1 повреждён%nили недостаточно места на диске назначения.
rus.Extracting=Распаковывается: %1
rus.taskbar=%1%%, жди %2
rus.remains=Осталось %1
rus.LongTime=вечно
rus.ending=завершение
rus.hour= часов
rus.min= мин
rus.sec= сек
[Files]
Source: *.arc; DestDir: {app}; Flags: dontcopy
Source: unarc.dll; DestDir: {tmp}; Flags: dontcopy deleteafterinstall
Source: compiler:InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy
Source: BASS_Files\*;  DestDir: {tmp}; Flags: dontcopy
Source: music.mp3;  DestDir: {tmp}; Flags: dontcopy
Source: ISSkin.dll; DestDir: {app}; Attribs: hidden system
Source: STALKER.cjstyles; DestDir: {app}; Attribs: hidden system
Source: splash.png; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: isgsg.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
[UninstallDelete]
Type: filesandordirs; Name: "{app}\gamedata"
Type: files; Name: "{app}\SGM_COP_history.rtf"
Type: files; Name: "{app}\SGM_COP_info.rtf"
Type: files; Name: "{app}\SGM_what_in_v2.2.txt"
[_Code]
{ RedesignWizardFormBegin } // Не удалять эту строку!
// Не изменять эту секцию. Она создана автоматически.
var
  Label2: TLabel;
  Label1: TLabel;
procedure PageNameLabelClick(Sender: TObject); forward;
procedure RedesignWizardForm;
begin
  with WizardForm do
  begin
    AutoScroll := False;
    ClientWidth := ScaleX(530);
  end;
  with WizardForm.CancelButton do
  begin
    Left := ScaleX(393);
  end;
  with WizardForm.NextButton do
  begin
    Left := ScaleX(293);
  end;
  with WizardForm.BackButton do
  begin
    Left := ScaleX(205);
  end;
  with WizardForm.OuterNotebook do
  begin
    Width := ScaleX(529);
  end;
  with WizardForm.WelcomeLabel2 do
  begin
    Left := ScaleX(200);
  end;
  with WizardForm.WelcomeLabel1 do
  begin
    Left := ScaleX(200);
  end;
  { Label2 }
  Label2 := TLabel.Create(WizardForm);
  with Label2 do
  begin
    Name := 'Label2';
    Parent := WizardForm.SelectDirPage;
    Caption := 'Если программа автоматически не найдет папку с игрой, то выберите вручную.';
    Font.Color := clWhite;
    Font.Height := -11;
    Font.Name := 'Tahoma';
    Font.Style := [];
    ParentFont := False;
    Transparent := False;
    Left := ScaleX(0);
    Top := ScaleY(120);
    Width := ScaleX(411);
    Height := ScaleY(13);
  end;
  with WizardForm.DiskSpaceLabel do
  begin
    Caption := 'Требуется как минимум 2.35 ГБ  свободного дискового пространства.';
  end;
  with WizardForm.MainPanel do
  begin
    Width := ScaleX(529);
    Color := clGray;
  end;
  with WizardForm.WizardSmallBitmapImage do
  begin
    Left := ScaleX(32);
    Width := ScaleX(495);
  end;
  { Label1 }
  Label1 := TLabel.Create(WizardForm);
  with Label1 do
  begin
    Name := 'Label1';
    Parent := WizardForm.MainPanel;
    Caption := 'Информация';
    Font.Color := clWindowText;
    Font.Height := -11;
    Font.Name := 'Tahoma';
    Font.Style := [fsBold];
    ParentFont := False;
    Transparent := False;
    Left := ScaleX(24);
    Top := ScaleY(11);
    Width := ScaleX(74);
    Height := ScaleY(13);
  end;
  with WizardForm.PageDescriptionLabel do
  begin
    Left := ScaleX(13);
    Top := ScaleY(58);
    Width := ScaleX(11);
  end;
  with WizardForm.PageNameLabel do
  begin
    Color := clSilver;
    ParentColor := False;
    OnClick := @PageNameLabelClick;
    Width := ScaleX(0);
  end;
{ ReservationBegin }
  // Вы можете добавить ваш код здесь.
{ ReservationEnd }
end;
// Не изменять эту секцию. Она создана автоматически.
{ RedesignWizardFormEnd } // Не удалять эту строку!
procedure PageNameLabelClick(Sender: TObject);
begin
end;
const
    Archives = '{src}\*.arc';    // укажите расположение архивов FreeArc; для внешних файлов строку в [Files] добавлять необязательно
    totalSize = 2393;             // total uncompressed size of archive data in mb, REQUIRED for correct progress displaying
    PM_REMOVE = 1;
    CP_ACP = 0; CP_UTF8 = 65001;
type
#ifdef UNICODE  ; если у вас ошибка на этой строке, то установите препроцессор или исправьте скрипт для вашей версии Inno Setup
    #define A "W"
#else
    #define A "A"  ; точка входа в SetWindowText, {#A} меняется на A или W в зависимости от версии
#endif
#if Ver < 84018176
    AnsiString = String; // There is no need for this line in Inno Setup 5.2.4 and below (для Inno Setup версий 5.2.4 и выше эта строка не нужна)
#endif
    TMyMsg = record
        hwnd: HWND;
        message: UINT;
        wParam: Longint;
        lParam: Longint;
        time: DWORD;
        pt: TPoint;
    end;
    TFreeArcCallback = function (what: PAnsiChar; int1, int2: Integer; str: PAnsiChar): Integer;
    TArc = record Path: string; Size: Extended; end;
var
    ExtractFile: TLabel;
    lblExtractFileName: TLabel;
    btnCancelUnpacking: TButton;
    CancelCode, n, UnPackError, StartInstall: Integer;
    Arcs: array of TArc;
    msgError: string;
    lastMb: Integer;
    baseMb: Integer;
    LastTimerEvent: DWORD;
    MouseLabel,SiteLabel: TLabel; // Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера //
Function MultiByteToWideChar(CodePage: UINT; dwFlags: DWORD; lpMultiByteStr: string; cbMultiByte: integer; lpWideCharStr: string; cchWideChar: integer): longint; external 'MultiByteToWideChar@kernel32.dll stdcall';
Function WideCharToMultiByte(CodePage: UINT; dwFlags: DWORD; lpWideCharStr: string; cchWideChar: integer; lpMultiByteStr: string; cbMultiByte: integer; lpDefaultChar: integer; lpUsedDefaultChar: integer): longint; external 'WideCharToMultiByte@kernel32.dll stdcall';
function PeekMessage(var lpMsg: TMyMsg; hWnd: HWND; wMsgFilterMin, wMsgFilterMax, wRemoveMsg: UINT): BOOL; external 'PeekMessageA@user32.dll stdcall';
function TranslateMessage(const lpMsg: TMyMsg): BOOL; external 'TranslateMessage@user32.dll stdcall';
function DispatchMessage(const lpMsg: TMyMsg): Longint; external 'DispatchMessageA@user32.dll stdcall';
Function OemToChar(lpszSrc, lpszDst: AnsiString): longint; external 'OemToCharA@user32.dll stdcall';
function GetWindowLong(hWnd, nIndex: Integer): Longint; external 'GetWindowLongA@user32 stdcall delayload';
function SetWindowText(hWnd: Longint; lpString: String): Longint; external 'SetWindowText{#A}@user32 stdcall delayload';
function GetTickCount: DWord; external 'GetTickCount@kernel32';
function WrapFreeArcCallback (callback: TFreeArcCallback; paramcount: integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function FreeArcExtract (callback: longword; cmd1,cmd2,cmd3,cmd4,cmd5,cmd6,cmd7,cmd8,cmd9,cmd10: PAnsiChar): integer; external 'FreeArcExtract@files:unarc.dll cdecl';
/////////////////Splash///////////////
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
/////////////////Splash////////////
/////////////////Скин////////////////////////////////////////////////////
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall delayload setuponly';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall delayload setuponly';
procedure LoadSkinU(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';
function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('STALKER.cjstyles');
LoadSkin(ExpandConstant('{tmp}\STALKER.cjstyles'), '');
Result:= true
end;
function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'),
ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\STALKER.cjstyles'),
ExpandConstant('{tmp}\STALKER.cjstyles'), False); LoadSkinU(ExpandConstant('{tmp}\STALKER.cjstyles'), '');
Result:=True;
end;
/////////////////Скин///////////////////////////////////////////////////
///////////////// Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера /////////////////
procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://vk.com/by_gangster', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode);
end;
procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed;
end;
procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clblue;
end;
procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen;
end;
procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clblue;
end;
///////////////// Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера /////////////////
procedure AppProcessMessage;
var
    Msg: TMyMsg;
begin
    while PeekMessage(Msg, 0, 0, 0, PM_REMOVE) do begin
        TranslateMessage(Msg);
        DispatchMessage(Msg);
    end;
end;
// Перевод числа в строку с точностью 3 знака (%.3n) с округлением дробной части, если она есть
Function NumToStr(Float: Extended): String;
Begin
    Result:= Format('%.3n', [Float]); StringChange(Result, ',', '.');
    while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Length(Result) > 1) do
        SetLength(Result, Length(Result)-1);
End;
function cm(Message: String): String; Begin Result:= ExpandConstant('{cm:'+ Message +'}') End;
Function Size64(Hi, Lo: Integer): Extended;
Begin
    Result:= Lo;
    if Lo<0 then Result:= Result + $7FFFFFFF + $7FFFFFFF + 2;
    for Hi:= Hi-1 Downto 0 do
        Result:= Result + $7FFFFFFF + $7FFFFFFF + 2;
End;
// OnClick event function for btnCancel
procedure btnCancelUnpackingOnClick(Sender: TObject);
begin
    if MsgBox( SetupMessage( msgExitSetupMessage ), mbInformation, MB_YESNO ) = IDYES then
        CancelCode:= -127;
end;
// Scans the specified folders for archives and add them to list
function FindArcs(dir: string): Extended;
var
    FSR: TFindRec;
Begin
    if FindFirst(ExpandConstant(dir), FSR) then
        try
            repeat
                // Skip everything but the folders
                if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY > 0 then CONTINUE;
                n:= GetArrayLength(Arcs);
                // Expand the folder list
                SetArrayLength(Arcs, n +1);
                Arcs[n].Path:= ExtractFilePath(ExpandConstant(Archives)) + FSR.Name;
                Arcs[n].Size:= Size64(FSR.SizeHigh, FSR.SizeLow);
                Result:= Result + Arcs[n].Size;
            until not FindNext(FSR);
        finally
            FindClose(FSR);
        end;
End;
// Converts OEM encoded string into ANSI
// Преобразует OEM строку в ANSI кодировку
function OemToAnsiStr( strSource: AnsiString): AnsiString;
var
    nRet : longint;
begin
    SetLength( Result, Length( strSource ) );
    nRet:= OemToChar( strSource, Result );
end;
// Converts ANSI encoded string into UTF-8
// Преобразует строку из ANSI в UTF-8 кодировку
function AnsiToUtf8( strSource: string ): string;
var
    nRet : integer;
    WideCharBuf: string;
    MultiByteBuf: string;
begin
    strSource:= strSource + chr(0);
    SetLength( WideCharBuf, Length( strSource ) * 2 );
    SetLength( MultiByteBuf, Length( strSource ) * 2 );
    nRet:= MultiByteToWideChar( CP_ACP, 0, strSource, -1, WideCharBuf, Length(WideCharBuf) );
    nRet:= WideCharToMultiByte( CP_UTF8, 0, WideCharBuf, -1, MultiByteBuf, Length(MultiByteBuf), 0, 0);
    Result:= MultiByteBuf;
end;
// Sets the TaskBar title
Procedure SetTaskBarTitle(Title: String); var h: Integer;
Begin
    h:= GetWindowLong(MainForm.Handle, -8); if h <> 0 then SetWindowText(h, Title);
End;
// Converts milliseconds to human-readable time
// Конвертирует милисекунды в человеко-читаемое изображение времени
Function TicksToTime(Ticks: DWord; h,m,s: String; detail: Boolean): String;
Begin
    if detail then                          {hh:mm:ss format}
        Result:= PADZ(IntToStr(Ticks/3600000), 2) +':'+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +':'+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2)
    else if Ticks/3600 >= 1000              {more than hour} then
        Result:= IntToStr(Ticks/3600000) +h+' '+ PADZ(IntToStr((Ticks/1000 - Ticks/1000/3600*3600)/60), 2) +m
    else if Ticks/60 >= 1000 then           {1..60 minutes}
        Result:= IntToStr(Ticks/60000) +m+' '+ PADZ(IntToStr(Ticks/1000 - Ticks/1000/60*60), 2) +s
   else Result:= IntToStr(Ticks/1000) +s    {less than one minute}
End;
// The main callback function for unpacking FreeArc archives
function FreeArcCallback (what: PAnsiChar; Mb, sizeArc: Integer; str: PAnsiChar): Integer;
var
    percents, Remaining: Integer;
    s: String;
begin
    if GetTickCount - LastTimerEvent > 1000 then begin
        // This code will be executed once each 1000 ms (этот код будет выполняться раз в 1000 миллисекунд)
        //  ....
        // End of code executed by timer
        LastTimerEvent := LastTimerEvent+1000;
    end;
    if string(what)='filename' then begin
        // Update FileName label
        lblExtractFileName.Caption:= FmtMessage( cm( 'Extracting' ), [OemToAnsiStr( str )] )
    end else if (string(what)='written') and (totalSize>0) and (Mb>lastMb) then begin
        // Assign to Mb *total* amount of data extracted to the moment from all archives
        lastMb := Mb;
        Mb := baseMb+Mb;
        // Update progress bar
        WizardForm.ProgressGauge.Position:= Mb;
        // Show how much megabytes/archives were processed up to the moment
        percents:= (Mb*1000) div totalSize;
        s := FmtMessage(cm('ExtractedInfo'), [IntToStr(Mb), IntToStr(totalSize)]);
        if GetArrayLength(Arcs)>1 then
            s := s + '. '+FmtMessage(cm('ArcInfo'), [IntToStr(n+1), IntToStr(GetArrayLength(Arcs))]);
        ExtractFile.Caption := s;
        // Calculate and show current percents
        percents:= (Mb*1000) div totalSize;
        s:= FmtMessage(cm('AllProgress'), [Format('%.1n', [Abs(percents/10)])]);
        if Mb > 0 then Remaining:= trunc((GetTickCount - StartInstall) * Abs((totalSize - Mb)/Mb)) else Remaining:= 0;
        if Remaining = 0 then SetTaskBarTitle(cm('ending')) else begin
            s:= s + '.  '+FmtMessage(cm('remains'), [TicksToTime(Remaining, cm('hour'), cm('min'), cm('sec'), false)])
            SetTaskBarTitle(FmtMessage(cm('taskbar'), [IntToStr(percents/10), TicksToTime(Remaining, 'h', 'm', 's', false)]))
        end;
        WizardForm.FileNameLabel.Caption := s
    end;
    AppProcessMessage;
    Result:= CancelCode;
end;
// Extracts all found archives
function UnPack(Archives: string): Integer;
var
    allSize: Extended;
    callback: longword;
    FreeMB, TotalMB: Cardinal;
begin
    // Display 'Extracting FreeArc archive'
    lblExtractFileName.Caption:= '';
    lblExtractFileName.Show;
    ExtractFile.caption:= cm('ArcTitle');
    ExtractFile.Show;
    // Show the 'Cancel unpacking' button and set it as default button
    btnCancelUnpacking.Show;
    WizardForm.ActiveControl:= btnCancelUnpacking;
    WizardForm.ProgressGauge.Position:= 0;
    WizardForm.ProgressGauge.Max:= totalSize;
    // Get the size of all archives
    allSize:= FindArcs(Archives);
    // Other initializations
    callback:= WrapFreeArcCallback(@FreeArcCallback,4);   //FreeArcCallback has 4 arguments
    StartInstall:= GetTickCount;    {время начала распаковки}
    LastTimerEvent:= GetTickCount;
    baseMb:= 0
    for n:= 0 to GetArrayLength(Arcs) -1 do
    begin
        lastMb := 0
        CancelCode:= 0;
        AppProcessMessage;
        try
            // Pass the specified arguments to 'unarc.dll'
            Result:= FreeArcExtract (callback, 'x', '-o+', '-dp' + AnsiToUtf8( ExpandConstant('{app}') ), '--', AnsiToUtf8(Arcs[n].Path), '', '', '', '', '');
            if CancelCode < 0 then Result:= CancelCode;
        except
            Result:= -63;  //    ArcFail
        end;
        baseMb:= baseMb+lastMb
        // Error occured
        if Result <> 0 then
        begin
            msgError:= FmtMessage(cm('ArcError'), [IntToStr(Result)]);
            GetSpaceOnDisk(ExtractFileDrive(ExpandConstant('{app}')), True, FreeMB, TotalMB);
            case Result of
                -1: if FreeMB < 32 {Мб на диске} then msgError:= SetupMessage(msgDiskSpaceWarningTitle)
                    else msgError:= msgError + #13#10 + FmtMessage(cm('ArcBroken'), [ExtractFileName(Arcs[n].Path)]);
                -127:   msgError:= cm('ArcBreak');    //Cancel button
                -63:    msgError:= cm('ArcFail');
            end;
//          MsgBox(msgError, mbInformation, MB_OK);    //сообщение показывается на странице завершения
            Log(msgError);
            Break;    //прервать цикл распаковки
        end;
    end;
    // Hide labels and button
    lblExtractFileName.Hide;
    ExtractFile.Hide;
    btnCancelUnpacking.Hide;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
    if CurStep = ssPostInstall then
    begin
        UnPackError:= UnPack(Archives)
        if UnPackError = 0 then
            SetTaskBarTitle(SetupMessage(msgSetupAppTitle))
        else
        begin
            // Error occured, uninstall it then
            Exec(ExpandConstant('{uninstallexe}'), '/SILENT','', sw_Hide, ewWaitUntilTerminated, n);    //откат установки из-за ошибки unarc.dll
            SetTaskBarTitle(SetupMessage(msgErrorTitle))
            WizardForm.Caption:= SetupMessage(msgErrorTitle) +' - '+ cm('ArcBreak')
        end;
    end;
end;
//    стандартный способ отката (не нужна CurPageChanged), но архивы распаковываются до извлечения файлов инсталлятора
//    if CurStep = ssInstall then
//      if UnPack(Archives) <> 0 then Abort;
Procedure CurPageChanged(CurPageID: Integer);
Begin
    if (CurPageID = wpFinished) and (UnPackError <> 0) then
    begin // Extraction was unsuccessful (распаковщик вернул ошибку)
        WizardForm.FinishedLabel.Font.Color:= $0000C0;    // red (красный)
        WizardForm.FinishedLabel.Height:= WizardForm.FinishedLabel.Height * 2;
        WizardForm.FinishedLabel.Caption:= SetupMessage(msgSetupAborted) + #13#10#13#10 + msgError;
    end;
end;
procedure InitializeWizard();
begin
  RedesignWizardForm;
    with WizardForm.ProgressGauge do
    begin
        // Create a label to show current FileName being extracted
        lblExtractFileName:= TLabel.Create(WizardForm);
        lblExtractFileName.parent:=WizardForm.InstallingPage;
        lblExtractFileName.autosize:=false;
        lblExtractFileName.Width:= Width;
        lblExtractFileName.top:=Top + ScaleY(35);
        lblExtractFileName.Caption:= '';
        lblExtractFileName.Hide;
        // Create a label to show percentage
        ExtractFile:= TLabel.Create(WizardForm);
        ExtractFile.parent:=WizardForm.InstallingPage;
        ExtractFile.autosize:=false;
        ExtractFile.Width:= Width;
        ExtractFile.top:=lblExtractFileName.Top + ScaleY(16);
        ExtractFile.caption:= '';
        ExtractFile.Hide;
         /////Музыка/////
        ExtractTemporaryFile('BASS.dll');
        ExtractTemporaryFile('Music.mp3');
        ExtractTemporaryFile('botva2.dll');
        ExtractTemporaryFile('MusicButton.png');
        BASS_Init(ExpandConstant('{tmp}\Music.mp3')) //Просто запускаем музыку
        BASS_CreateOnOffButton(ExpandConstant('{tmp}\MusicButton.png'), 478, 320, 50, 38, 4) //Создаем кнопку вкл/выкл
        //////Конец музыка/////
        /////Splash////////////
        ExtractTemporaryFile('splash.png');
        ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splash.png',1000,3000,1000,0,255,False,$FFFFFF,10);
        //////Splash///////////
        end;
    // Create a 'Cancel unpacking' button and hide it for now.
    btnCancelUnpacking:=TButton.create(WizardForm);
    btnCancelUnpacking.Parent:= WizardForm;
    btnCancelUnpacking.SetBounds(ScaleX(260), WizardForm.cancelbutton.top, ScaleX(140), WizardForm.cancelbutton.Height);
    btnCancelUnpacking.OnClick:= @btnCancelUnpackingOnClick;
    btnCancelUnpacking.Caption:= cm('ArcCancel');
    btnCancelUnpacking.Hide;
///////////////// Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера /////////////////
    MouseLabel:=TLabel.Create(WizardForm);
    MouseLabel.Width:=WizardForm.Width;
    MouseLabel.Height:=WizardForm.Height;
    MouseLabel.Autosize:=False;
    MouseLabel.Transparent:=True;
    MouseLabel.OnMouseMove:=@SiteLabelMouseMove2;
    MouseLabel.Parent:=WizardForm;
    SiteLabel:=TLabel.Create(WizardForm);
    SiteLabel.Left:=10;
    SiteLabel.Top:=330;
    SiteLabel.Cursor:=crHand;
    SiteLabel.Font.Color:=clblue;
    SiteLabel.Font.Name := 'Tahoma';
    SiteLabel.Caption:='Installer by Evgeniy Bytaikis';
    SiteLabel.OnClick:=@SiteLabelOnClick;
    SiteLabel.OnMouseDown:=@SiteLabelMouseDown;
    SiteLabel.OnMouseUp:=@SiteLabelMouseUp;
    SiteLabel.OnMouseMove:=@SiteLabelMouseMove;
    SiteLabel.Parent:=WizardForm;
///////////////// Кликабельная текстовая http-ссылка в левом нижнем углу инсталлера /////////////////
end;
//////Музыка/////////скин
procedure DeinitializeSetup();
begin
  BASS_DeInit;
  gdipShutdown
end;
/////Конец музыка//////скин
[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D003010F107000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E7457696474680312020C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680322020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F10A544E6577427574746F6E0C43616E63656C427574746F6E044C6566740389010C4578706C696369744C6566740389010000F10A544E6577427574746F6E0A4E657874427574746F6E044C6566740325010C4578706C696369744C6566740325010000F10A544E6577427574746F6E0A4261636B427574746F6E044C65667403CD000C4578706C696369744C65667403CD000000F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B0557696474680311020D4578706C69636974576964746803110200F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10E544E6577537461746963546578740D57656C636F6D654C6162656C32044C65667403C8000C4578706C696369744C65667403C8000000F10E544E6577537461746963546578740D57656C636F6D654C6162656C31044C65667403C8000C4578706C696369744C65667403C800000000F110544E65774E6F7465626F6F6B5061676509496E6E6572506167650D4578706C6963697457696474680311020E4578706C6963697448656967687403390100F10C544E65774E6F7465626F6F6B0D496E6E65724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B4C6963656E7365506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650D53656C656374446972506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED0000F2020106544C6162656C064C6162656C32044C656674020003546F700278055769647468039B0106486569676874020D0743617074696F6E1488000000D095D181D0BBD0B820D0BFD180D0BED0B3D180D0B0D0BCD0BCD0B020D0B0D0B2D182D0BED0BCD0B0D182D0B8D187D0B5D181D0BAD0B820D0BDD0B520D0BDD0B0D0B9D0B4D0B5D18220D0BFD0B0D0BFD0BAD18320D18120D0B8D0B3D180D0BED0B92C20D182D0BE20D0B2D18BD0B1D0B5D180D0B8D182D0B520D0B2D180D183D187D0BDD183D18E2E0C466F6E742E43686172736574070F44454641554C545F434841525345540A466F6E742E436F6C6F720707636C57686974650B466F6E742E48656967687402F509466F6E742E4E616D6506065461686F6D610A466F6E742E5374796C650B000A506172656E74466F6E74080B5472616E73706172656E74080000F10E544E6577537461746963546578740E4469736B53706163654C6162656C0743617074696F6E1475000000D0A2D180D0B5D0B1D183D0B5D182D181D18F20D0BAD0B0D0BA20D0BCD0B8D0BDD0B8D0BCD183D0BC20322E333520D093D0912020D181D0B2D0BED0B1D0BED0B4D0BDD0BED0B3D0BE20D0B4D0B8D181D0BAD0BED0B2D0BED0B3D0BE20D0BFD180D0BED181D182D180D0B0D0BDD181D182D0B2D0B02E000000F110544E65774E6F7465626F6F6B50616765095265616479506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED000000F110544E65774E6F7465626F6F6B506167650E496E7374616C6C696E67506167650D4578706C69636974576964746803A1010E4578706C6963697448656967687403ED00000000F1065450616E656C094D61696E50616E656C05576964746803110205436F6C6F720706636C477261790D4578706C69636974576964746803110200F10C544269746D6170496D6167651657697A617264536D616C6C4269746D6170496D616765044C656674022005576964746803EF010C4578706C696369744C65667402200D4578706C69636974576964746803EF010000F2020106544C6162656C064C6162656C31044C656674021803546F70020B055769647468024A06486569676874020D0743617074696F6E120A00000018043D0444043E0440043C043004460438044F040C466F6E742E43686172736574070F44454641554C545F434841525345540A466F6E742E436F6C6F72070C636C57696E646F77546578740B466F6E742E48656967687402F509466F6E742E4E616D6506065461686F6D610A466F6E742E5374796C650B066673426F6C64000A506172656E74466F6E74080B5472616E73706172656E74080000F10E544E65775374617469635465787414506167654465736372697074696F6E4C6162656C044C656674020D03546F70023A055769647468020B0C4578706C696369744C656674020D0B4578706C69636974546F70023A0D4578706C696369745769647468020B0000F10E544E6577537461746963546578740D506167654E616D654C6162656C055769647468020005436F6C6F720708636C53696C7665720B506172656E74436F6C6F7208074F6E436C69636B0712506167654E616D654C6162656C436C69636B0D4578706C696369745769647468020000000000F110544E65774E6F7465626F6F6B506167650C46696E6973686564506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100000000

boss911, ещёвыскакивает
такая
ошибка, я просто когдато работал с другой версией inno setup ultra тогда этого не было
Аватара пользователя
Gnom_aka_Lexander

Re: Inno Setup. Прочие вопросы

Сообщение Gnom_aka_Lexander »

Перезалил сборку
InnoUltra
. Исправлен косяк с Default.isl - английский был от версии 5.4.х
Аватара пользователя
by_gangster

Re: Inno Setup. Прочие вопросы

Сообщение by_gangster »

Gnom_aka_Lexander, спасибо конечно но у меня не обычный скрипт то есть при компиляции он упаковывает архивы .arc а потом уже инсталятор расспаковывает только файлы в указанную папку, а так он расспаковывает только сам архив
Аватара пользователя
Gnom_aka_Lexander

Re: Inno Setup. Прочие вопросы

Сообщение Gnom_aka_Lexander »

Inno Setup Compiler
(build 121002)

Inno ISCmplr Setup
(build 121002)



InnoUltra
обновлена.




Цитата El Sanchez:



Сборка плагинов и доп. dll для Inno Setup от Restools
Inno Setup. Прочие вопросы




Ссылки умерли.
Аватара пользователя
by_gangster

Re: Inno Setup. Прочие вопросы

Сообщение by_gangster »

Админы можно при нажатии на ссылку:



Сборка инсталлятора Inno Setup 5.5.1 Rus от astafev_roma



переход был на сайт сборки как у Gnom_aka_Lexander



http://dragon-page.ucoz.ru/load/inno...uspack/1-1-0-3
Аватара пользователя
by_gangster

Re: Inno Setup. Прочие вопросы

Сообщение by_gangster »

Gnom_aka_Lexander, чё ржош ? Изображение если честно я начал писать новый скрипт, и у меня архивы распаковывались прямо из инсталла... ладно забудь, но всё-равно спс Изображение
Ответить

Вернуться в «Автоматическая установка приложений»