Inno Setup (создание инсталяционных пакетов). Часть 3

Статус
В этой теме нельзя размещать новые ответы.

Mailchik

Старожил
Проверенный
sergey3695, хм, на скрине ведь windows 8. Так у тебя 8.1 или 8? Если 8, то Version.Minor = 2.
 

sergey3695

Ветеран
Модератор
Mailchik, 8.1 вроде только бета. Значит я дурачок. Спасибо.
Просто я никак не пойму,на 7 скрипт для отображения на таскбаре работал корректно,а на 8 фиг тебе. В библиотеке Win7tb 1.0.0.8 (ни один из примеров), в 1.0.07 (только TaskBarV10(как я понил у вашей рг это) и TaskBarV11) но мне это не подходит со скином. Не я уже придумал как сделать,но мне проверка на 8 нужна. А я в этом не разбираюсь (ну или влом искать и читать),так что извини что напряг.
 
Последнее редактирование:

andrey_167

Новичок
Здраствуйте помогите пожалуста мне нужно чтобы при выборе определенного компонента выскакивал запрос 2 диска
 

ilzok17

Новичок
Добрый день.Уважаемые специалисты подскажите в чём может быть дело:Создаю скрипт с помощью isgsg,потом его доделываю как нужно,и когда компилирую Inno Setup Compil 5.5.1 ANSI всё получается отлично.Но если пробую компилировать Inno Setup Compil 5.5.1 UNICODE,то выдаёт такую ошибку :
 

ilzok17

Новичок
ilzok17, добавь вот это
[SOURCE="inno"]
Код:
#ifdef UNICODE
type
  PChar = PAnsiChar;
#endif[/SOURCE][/QUOTE]
[B]Adil.[/B] Спасибо за помощь,с этим стало компилироваться,но только кусок (см.скрин) выпадает из компиляции,по этому не получается заставка,не работает steaem и ещё что то.Может я куда то не правильно это вставил(я поставил первым под code)? Ещё раз спасибо.
[IMG]http://i48.fastpic.ru/big/2013/0702/4d/8e8a0d9a852792547ea7fc2acb267c4d.png[/IMG]
 

ilzok17

Новичок
ilzok17, у тебя что несколько частей кода initializesetup ?
На том скрине да.Но я только что сделал,с помощью isgsg самый примитивный, и тоже самое - этот кусок выпадает.

Код:
;  

[Setup]
SourceDir=.
OutputDir=Setup
AppName=Test
AppVerName=Test
AppVersion=Test
DefaultDirName={pf}\Test
DefaultGroupName=Test
AllowNoIcons=yes
OutputBaseFilename=setup
SetupIconFile=D:\general games  ISDone 0.6final\0.ico
WindowVisible=no
WindowShowCaption=no
WindowResizable=no
Compression=lzma/ultra
DiskSpanning=yes
DiskSliceSize=2100000000
SlicesPerDisk=1

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

[Files]
Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\1.bmp"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (1).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (10).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (11).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (12).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (13).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (14).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (15).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (16).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (17).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (18).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (19).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (2).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (20).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (21).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (22).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (23).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (24).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (25).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (26).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (27).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (28).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (29).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (3).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (30).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (31).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (32).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (33).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (34).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (35).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (36).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (37).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (38).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (39).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (4).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (40).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (41).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (42).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (43).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (44).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (5).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (6).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (7).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (8).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\sh\1 (9).jpg"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\Заставка.gif"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "isgsg.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "bass.dll"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
Source: "D:\general games  ISDone 0.6final\Музыка.mp3"; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

Source: "D:\Новая папка\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension

[Icons]
Name: "{group}\{cm:UninstallProgram,Crysis}"; Filename: "{uninstallexe}"

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

CODE

#ifdef UNICODE
type
  PChar = PAnsiChar;
#endif

const
  Indent=25;

function GetWindowLong(hWnd: HWND; nIndex: Integer): Longint; external 'GetWindowLongA@user32.dll stdcall delayload';
function ssInitialize(hParent:HWND;ssTimeShow:integer;FadeOut:boolean;StretchMode:integer;BkgColor:DWORD):boolean; external 'ssInitialize@files:isgsg.dll stdcall delayload';
procedure ssDeInitialize; external 'ssDeInitialize@files:isgsg.dll stdcall delayload';
procedure ssSetBkgImage(FileName:PChar); external 'ssSetBkgImage@files:isgsg.dll stdcall delayload';
procedure ssAddImage(FileName:PChar); external 'ssAddImage@files:isgsg.dll stdcall delayload';
procedure ssStartShow; external 'ssStartShow@files:isgsg.dll stdcall delayload';
procedure ssStopShow; external 'ssStopShow@files:isgsg.dll stdcall delayload';
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';
function GetSystemMetrics(nIndex:Integer):integer; external 'GetSystemMetrics@user32.dll stdcall delayload';
procedure ShowMP3Panel(hMainFrm:HWND;StartVolume:integer;DefMP3Dir,BASSDir,MLabel:PChar;IsShowMP3Info,IsBkgFrmVisible:boolean;ShowTimeMP3Info:integer;dBottom:integer);external 'ShowMP3Panel@files:isgsg.dll stdcall';
procedure KillMP3Panel;external 'KillMP3Panel@files:isgsg.dll stdcall';
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskin.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskin.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external 'ShowWindow@user32.dll stdcall';

function InitializeSetup:boolean;
begin
  ExtractTemporaryFile('Музыка.mp3');
  ExtractTemporaryFile('bass.dll');
  ExtractTemporaryFile('steam.cjstyles');
  LoadSkin(ExpandConstant('{tmp}')+'\steam.cjstyles', '');
  Result:=True;
end;

procedure InitializeWizard;
begin
  ExtractTemporaryFile('Заставка.gif');
  ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Заставка.gif',1000,3000,1000,0,255,False,$FFFFFF,10);
  ShowMP3Panel(WizardForm.Handle,80,ExpandConstant('{tmp}'),ExpandConstant('{tmp}'),'www.csmania.ru',False,True,0,Indent);
  ssInitialize(GetWindowLong(MainForm.Handle,-8),10,True,2,$FF000000);
  ExtractTemporaryFile('1.bmp');
  ssSetBkgImage(ExpandConstant('{tmp}')+'\1.bmp');
  WizardForm.BeveledLabel.Enabled:=True;
end;

procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep=ssInstall then begin
    ExtractTemporaryFile('1 (1).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (1).jpg');
    ExtractTemporaryFile('1 (2).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (2).jpg');
    ExtractTemporaryFile('1 (3).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (3).jpg');
    ExtractTemporaryFile('1 (4).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (4).jpg');
    ExtractTemporaryFile('1 (5).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (5).jpg');
    ExtractTemporaryFile('1 (6).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (6).jpg');
    ExtractTemporaryFile('1 (7).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (7).jpg');
    ExtractTemporaryFile('1 (8).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (8).jpg');
    ExtractTemporaryFile('1 (9).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (9).jpg');
    ExtractTemporaryFile('1 (10).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (10).jpg');
    ExtractTemporaryFile('1 (11).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (11).jpg');
    ExtractTemporaryFile('1 (12).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (12).jpg');
    ExtractTemporaryFile('1 (13).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (13).jpg');
    ExtractTemporaryFile('1 (14).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (14).jpg');
    ExtractTemporaryFile('1 (15).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (15).jpg');
    ExtractTemporaryFile('1 (16).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (16).jpg');
    ExtractTemporaryFile('1 (17).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (17).jpg');
    ExtractTemporaryFile('1 (18).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (18).jpg');
    ExtractTemporaryFile('1 (19).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (19).jpg');
    ExtractTemporaryFile('1 (20).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (20).jpg');
    ExtractTemporaryFile('1 (21).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (21).jpg');
    ExtractTemporaryFile('1 (22).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (22).jpg');
    ExtractTemporaryFile('1 (23).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (23).jpg');
    ExtractTemporaryFile('1 (24).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (24).jpg');
    ExtractTemporaryFile('1 (25).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (25).jpg');
    ExtractTemporaryFile('1 (26).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (26).jpg');
    ExtractTemporaryFile('1 (27).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (27).jpg');
    ExtractTemporaryFile('1 (28).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (28).jpg');
    ExtractTemporaryFile('1 (29).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (29).jpg');
    ExtractTemporaryFile('1 (30).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (30).jpg');
    ExtractTemporaryFile('1 (31).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (31).jpg');
    ExtractTemporaryFile('1 (32).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (32).jpg');
    ExtractTemporaryFile('1 (33).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (33).jpg');
    ExtractTemporaryFile('1 (34).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (34).jpg');
    ExtractTemporaryFile('1 (35).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (35).jpg');
    ExtractTemporaryFile('1 (36).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (36).jpg');
    ExtractTemporaryFile('1 (37).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (37).jpg');
    ExtractTemporaryFile('1 (38).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (38).jpg');
    ExtractTemporaryFile('1 (39).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (39).jpg');
    ExtractTemporaryFile('1 (40).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (40).jpg');
    ExtractTemporaryFile('1 (41).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (41).jpg');
    ExtractTemporaryFile('1 (42).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (42).jpg');
    ExtractTemporaryFile('1 (43).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (43).jpg');
    ExtractTemporaryFile('1 (44).jpg');
    ssAddImage(ExpandConstant('{tmp}')+'\1 (44).jpg');
    ssStartShow;
  end;
  if CurStep=ssPostInstall then ssStopShow;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
  if CurPageID=wpInstalling then begin
    WizardForm.MainPanel.Visible:=False;
    WizardForm.Bevel1.Visible:=False;
    WizardForm.Width:=ScaleX(395);
    WizardForm.Height:=ScaleY(142);
    WizardForm.Left:=ScaleX(GetSystemMetrics(0)-WizardForm.Width-Indent);
    WizardForm.Top:=ScaleY(GetSystemMetrics(1)-WizardForm.Height-Indent);
    WizardForm.InnerNotebook.Left:=ScaleX(10);
    WizardForm.InnerNotebook.Top:=ScaleY(10);
    WizardForm.InnerNotebook.Width:=ScaleX(370);
    WizardForm.StatusLabel.Left:=ScaleX(0);
    WizardForm.StatusLabel.Top:=ScaleY(0);
    WizardForm.StatusLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.FileNameLabel.Left:=ScaleX(0);
    WizardForm.FileNameLabel.Top:=ScaleY(20);
    WizardForm.FileNameLabel.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.ProgressGauge.Top:=ScaleY(40);
    WizardForm.ProgressGauge.Width:=WizardForm.InnerNotebook.Width;
    WizardForm.CancelButton.Left:=ScaleX(154);
    WizardForm.CancelButton.Top:=ScaleY(80);
  end;
  if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then begin
    if WizardForm.Width<>502 then begin
      WizardForm.Visible:=False;
      WizardForm.Width:=ScaleX(502);
      WizardForm.Height:=ScaleY(392);
      WizardForm.Left:=(GetSystemMetrics(0)-WizardForm.Width) div 2;
      WizardForm.Top:=(GetSystemMetrics(1)-WizardForm.Height) div 2;
      WizardForm.MainPanel.Visible:=True;
      WizardForm.Bevel1.Visible:=True;
      WizardForm.InnerNotebook.Left:=ScaleX(40);
      WizardForm.InnerNotebook.Top:=ScaleY(72);
      WizardForm.InnerNotebook.Width:=ScaleX(417);
      WizardForm.Visible:=True;
    end;
  end;
end;

procedure DeinitializeSetup;
begin
  KillMP3Panel;
  ShowWindow(WizardForm.Handle,0);
  UnloadSkin();
  ssDeInitialize;
end;
 
Последнее редактирование:

ilzok17

Новичок
Mailchik,извиняюсь за более ранний пост.Всё по твоей ссылке получилось в полной мере как и должно быть,просто мне надо было не только то что указано поменять,а все строчки в блоке на ansistring.Теперрь всё :up:
 
Последнее редактирование:

RameR

Новичок
Можно ли сделать процесс установки (перемещения прогресс бара) плавным!?
При распаковке большого архива, более мене плавно, а вот при распаковке очень маленьких архивов (сделал для для быстрого выявления багов) идет скачками, вот и подумал, что если можно сделать плавную "распаковку", то и при распаковке бооьших архивов будет лучще! Что за это отвечает, на примере ISDone?
 

urban

Старожил
RameR пробуй играть с процентами при распаковке на каждый архив,может уловишь что-то
 

Mickey1s

Ветеран
Модератор
Кто подскажет как переименовать файл в конце установки при выборе определенного компонента?:)
 

vint56

Ветеран
Проверенный
Mickey1s
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application

[Components]
Name: Rename; Description: Переменовать файл;

Код:
procedure CurStepChanged(CurStep: TSetupStep);
begin
  if CurStep = ssPostInstall then begin
  if IsComponentSelected('Rename') then
  RenameFile(ExpandConstant('{app}\1.rar'), ExpandConstant('{app}\1.zip'))
end;
end;

procedure InitializeWizard();
begin
  WizardForm.ComponentsList.Checked[0]:=True
end;[/SPOILER]
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху