[архив] Inno Setup .:[все вопросы]:.

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

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение p3rf3ct1c »

Цитата Krekerpro:



нормально работало,но после переустановки винды
[архив] Inno Setup .:[все вопросы]:.




Это ошибка, не после переустановки, а просто вы стали пользоваться другой версией Inno Setup, а точнее 5.3...

Добавьте в начале секции кода:



Код:

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

type  
    PChar=PAnsiChar;

или заммеите все PChar на PAnsiChar.
Аватара пользователя
Serega

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Serega »

p3rf3ct1c, этот инсталлятор сделан самим автором программы в Microsoft Visual C++ 7.0, но он позаботился о ключах установки. Попробуйте, так:



Код:

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

Filename: {src}\PunkBuster\pbsvc.exe; Parameters: /i --no-display --i-accept-the-pb-eula; WorkingDir: {src}\PunkBuster; StatusMsg: Устанавливается PunkBuster...; Check: InstallDop
Аватара пользователя
p3rf3ct1c

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение p3rf3ct1c »

Serega, Спасибо огромное! Все работает!
Аватара пользователя
grinda

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение grinda »

подскажите как поставить разделение на 2 диска,чтоб в конце установки 1 диска появилось сообщение-вставьте 2 диск.
Аватара пользователя
Serega

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Serega »

Krekerpro, примерно вот так:


читать дальше »






Код:

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

[Setup]
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
DisableReadyPage=true
DisableProgramGroupPage=true
;Картинка сверху
WizardSmallImageFile=small.bmp
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
;Картинка на WelcomePage
Source: welcome.bmp; DestDir: {tmp}; Flags: dontcopy solidbreak
[сode]
var
  Image1: TBitmapImage;
  NeedSize:Integer;
  FreeMB, TotalMB: Cardinal;
  NeedSpaceLabel,FreeSpaceLabel,WLabel1,WLabel2: TLabel;
procedure GetFreeSpaceCaption(Sender: TObject);                   /////Вычисление свободного места на диске
var
  Path: String;
begin
  Path := ExtractFileDrive(WizardForm.DirEdit.Text);
  GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
  if FreeMB > 1024 then
  FreeSpaceLabel.Caption := 'Доступно места на диске: '+ FloatToStr(round(FreeMB/1024*100)/100) + ' GB' else
  FreeSpaceLabel.Caption := 'Доступно места на диске: '+ IntToStr(FreeMB)+ ' MB';
  if FreeMB < NeedSize then
  WizardForm.NextButton.Enabled := False else
  WizardForm.NextButton.Enabled := True; end;
procedure GetNeedSpaceCaption;                /////Вычисление требуемого места для установки
begin
  if NeedSize > 1024 then
  NeedSpaceLabel.Caption := 'Требуется места на диске: '+ FloatToStr(round(NeedSize/1024*100)/100) + ' GB' else
  NeedSpaceLabel.Caption := 'Требуется места на диске: '+ IntToStr(NeedSize)+ ' MB';end;
procedure InitializeWizard();
begin
  NeedSize := 6610;                  //Здесь указывается место для приложения
  WizardForm.DiskSpaceLabel.Hide;
  ExtractTemporaryFile('welcome.bmp')
  WizardForm.PageNameLabel.Hide;
  WizardForm.PageDescriptionLabel.Hide;
  WizardForm.WizardSmallBitmapImage.Left:= ScaleX(0);
  WizardForm.WizardSmallBitmapImage.Width:=WizardForm.ClientWidth;
  WizardForm.WelcomeLabel1.Hide;
  WizardForm.WelcomeLabel2.Hide;
  Image1:=TBitmapImage.Create(WizardForm)
with Image1 do begin
  Left:=0
  Top:=0
  Width:=497
  Height:=313
  Parent:=WizardForm.WelcomePage
  Bitmap.LoadFromFile(ExpandConstant('{tmp}')+'\welcome.bmp')
  end;
  NeedSpaceLabel := TLabel.Create(WizardForm);
  with NeedSpaceLabel do
  begin
  Parent := WizardForm.SelectDirPage;
  Left := ScaleX(0);
  Top := ScaleY(202);
  Width := ScaleX(209);
  Height := ScaleY(13);
  end;
  FreeSpaceLabel := TLabel.Create(WizardForm);
  with FreeSpaceLabel do
  begin
  Parent := WizardForm.SelectDirPage;
  Left := ScaleX(0);
  Top := ScaleY(220);
  Width := ScaleX(209);
  Height := ScaleY(13);
  end;
  WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
  WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
  WLabel1 := TLabel.Create(WizardForm);
  WLabel1.Left := ScaleX(170);
  WLabel1.Top := ScaleY(16);
  WLabel1.Width := ScaleX(320);
  WLabel1.Height := ScaleY(100);
  WLabel1.AutoSize := False;
  WLabel1.WordWrap := True;
  WLabel1.Font.Size := 12;
  WLabel1.Font.Style := [fsBold];
  WLabel1.Font.Color:= clWhite;
  WLabel1.Font.Name:= 'Tahoma';
  WLabel1.ShowAccelChar := False;
  WLabel1.Caption := WizardForm.WelcomeLabel1.Caption;
  WLabel1.Transparent := True;
  WLabel1.Parent := WizardForm.WelcomePage;
  WLabel2 :=TLabel.Create(WizardForm);
  WLabel2.Top := ScaleY(76);
  WLabel2.Left := ScaleX(170);
  WLabel2.Width := ScaleX(300);
  WLabel2.Height := ScaleY(234);
  WLabel2.AutoSize := False;
  WLabel2.WordWrap := True;
  WLabel2.Font.Color:= clWhite;
  WLabel2.ShowAccelChar := False;
  WLabel2.Caption := WizardForm.WelcomeLabel2.Caption;
  WLabel2.Transparent := True;
  WLabel2.Parent := WizardForm.WelcomePage;
  end;
procedure CurPageChanged(CurPageID: Integer);
begin
  begin
  if CurPageID=wpSelectDir then
  begin                                 //если Свободное место на диске < требуемого, то кнопка "Установить" на PageSelectDir неактивна
  GetNeedSpaceCaption;
  if FreeMB < NeedSize then
  WizardForm.NextButton.Enabled:=False
  WizardForm.NextButton.Caption:='Установить';   //Rename кнопки "Далее" на SelectDir
  end;
  end;
end;
Аватара пользователя
p3rf3ct1c

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение p3rf3ct1c »

Подскажите, как сделать если система х86, то создавался бы ярлык на рабочем столе "ya86", а если х64, то "ya64"?
Аватара пользователя
Serega

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение Serega »

BlackSelf, По-моему, ваш код не работает.

К слову: вы не могли бы написать код, чтоб в "Требуется как минимум Мб свободного дискового пространства." (на странице выбора папки) можно было указать собственное значение? И чтоб до тех пор пока не выбран винт с необходимым объемом, невозможно было нажать на кнопку "Далее".



P.S.

Деректива ExtraDiskSpaceRequired мне не подходит, ибо данные в ней, плюсуються с полученными на странице выбора компонентов. А мне нужно, чтоб просто отображались указанные мною данные о необходимом месте, на странице выбора компонентов. Но на данные, на странице выбора компонентов этот никак не влияло. Т.е. инсталлятор считал необходимые мегабайты как будто на странице выбора папки, он показывал истенное значение, а не то, которое я ему указал.
Аватара пользователя
DemonAk

Re: [архив] Inno Setup .:[все вопросы]:.

Сообщение DemonAk »

Как сделать чтобы сначала выполнялся code, а потом уже копировались файлы и выполнялась установка из run
Ответить

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