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

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

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

Сообщение Serega »

У меня в .arc запакован .pcf

Как сделать чтобы сначала в {tmp} из arc распаковался .pcf а потом запустить процесс распаковки .pcf в путь установки!



Думаю понятно написал)



Ну или както попроще можно осуществить этот процесс!
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

e2e44, Во вложении мой пример по твоему вопросу, если непонятно чтото - подскажу (сам полгода решал подобный вопрос Изображение ). Только ник вводится на второй странице, а на последней вводится куча данных о пользователе, если ник был введен, но это не принципиально, создаются *.ini все равно после установки.
Аватара пользователя
Imitri7

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

Сообщение Imitri7 »

как сделать свой заголовок во всплывающем MsgBox ?

типа как "информация"
здесь


Изображение
Аватара пользователя
Imitri7

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

Сообщение Imitri7 »

Serega, Лександер

спасибо большое за оказанную помощь



если не трудно подскажите алгоритм проверки установлено приложение или нет если установлено авто запуск эксешника



Sotonisto )))) L4d собираю первый
Аватара пользователя
Sotonisto

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

Сообщение Sotonisto »

Все решили помочь e2e44

Пример создания диалогового окна и создания *.ini файла (еще с Скрипты Inno Setup. Помощь и советы [часть 2]
)




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




Код:

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

[_Code]
var
Page: TInputQueryWizardPage;
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
SaveStringToFile(ExpandConstant('{app}\rev.ini'),
'[Emulator]' + #13#10
'CacheEnabled=False' + #13#10
'Language=Russian' + #13#10
'Logging=False' + #13#10
'SteamDll=bin\steam\Steam.dll' + #13#10
'SteamClient=True' + #13#10
'SteamUser=RG PKS USER' + #13#10
'' + #13#10
'[steamclient]' + #13#10
'PlayerName=' + '"' + Page.Values[0] + '"' + #13#10
'Logging=False' + #13#10
'ClientDll=bin\steam\steamclient.dll' + #13#10, False);
end;
Procedure InitializeWizard();
begin
Page := CreateInputQueryPage(wpWelcome, 'Настройка компонентов', 'Введите ник, под которым Вы будете играть в Left 4 Dead 2 (только англ. буквы, пробелы разрешены)', 'Введите желаемый ник');
Page.Add('', False);
end;





Если кому-то необходимо - вот сам
скрипт
.
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Цитата Imitri7:



"удалить сохранения игры?" и там две кнопки да и нет...

как реализовать это?
Скрипты Inno Setup. Помощь и советы [часть 3]




, Так както :





Код:

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

//================== Удаление сохранений ==================//
procedure DeleteSavedGames(CurUninstallStep: TUninstallStep);
begin
  if CurUninstallStep=usUninstall then
  if DirExists(ExpandConstant('{userdocs}')+'\NFS Undercover') then // Ищем сохранения по заданному пути, если путь существует, то:
  if MsgBox(ExpandConstant('{удалить сохранения игры?}'), mbInformation, MB_YESNO) = idYes then // создаем меседжбокс с запросом на удаление, если на запрос нажали Ок, то:
  DelTree(ExpandConstant('{userdocs}')+'\NFS Undercover', True, True, True) //Удаляем.
end;
//================== Удаление сохранений ==================//
........................
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
  DeleteSavedGames(CurUninstallStep);             
end;
Аватара пользователя
Serega

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

Сообщение Serega »

Здравствуйте все.

Может кто подскажет, какую нужно прописать комманду в инсталлятор, чтобы при инсталляции происходила выгрузка из памяти загруженной dll-ки и завершалась работа проги, сидящей в памяти. Собственно поясню. Есть прога, блокиратор папок, она грузит в память dll-ку и exe-шник монитор. Я сделал русификатор, но из-за того, что исполняемый файл и библиотека загружены, понятное дело, подменить их не получается.
Аватара пользователя
Imitri7

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

Сообщение Imitri7 »

находил похожие примеры, но они почему то не работали

Serega, спс



2all и еще подскажите плыз как решит проблему
такую


Изображение Изображение

если не заметно в чем разница, то тут косяк с кнопками с английским языком - они друг на друга налазят


скрипт






Код:

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

  const
  ButtonWidth = 80;    //Указываем размер кнопок
  ButtonHeight = 23;
  bidBack = 0;
  bidNext = 1;
  bidCancel = 2;
  bidDirBrowse = 3;
  bidGroupBrowse = 4;
var
  ButtonPanel: array [0..4] of TPanel;
  ButtonImage: array [0..4] of TBitmapImage;
  ButtonLabel: array [0..4] of TLabel;
procedure ButtonLabelClick(Sender: TObject);
var
  Button: TButton;
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
  case TLabel(Sender).Tag of
    bidBack: Button:=WizardForm.BackButton
    bidNext: Button:=WizardForm.NextButton
    bidCancel: Button:=WizardForm.CancelButton
    bidDirBrowse: Button:=WizardForm.DirBrowseButton
    bidGroupBrowse: Button:=WizardForm.GroupBrowseButton
  else
    Exit
  end
  Button.OnClick(Button)
end;
procedure ButtonLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if ButtonLabel[TLabel(Sender).Tag].Enabled then
     ButtonImage[TLabel(Sender).Tag].Left:=-ButtonWidth
end;
procedure ButtonLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  ButtonImage[TLabel(Sender).Tag].Left:=0
end;
procedure LoadButtonImage(AButton: TButton; AButtonIndex: integer);
var
  Image: TBitmapImage;
  Panel: TPanel;
  Labl: TLabel;
begin
  Panel:=TPanel.Create(WizardForm)
  Panel.Left:=AButton.Left
  Panel.Top:=AButton.Top
  Panel.Width:=AButton.Width
  Panel.Height:=AButton.Height
  Panel.Tag:=AButtonIndex
  Panel.Parent:=AButton.Parent
  ButtonPanel[AButtonIndex]:=Panel
  Image:=TBitmapImage.Create(WizardForm)    //Рисунок который ложится на кнопку
  Image.Width:=160                          //Обязательно прописать оригинальный размер рисунка
  Image.Height:=23
  Image.Enabled:=False
  Image.Bitmap.LoadFromFile(ExpandConstant('{tmp}\button.bmp'))
  Image.Parent:=Panel
  ButtonImage[AButtonIndex]:=Image
  with TLabel.Create(WizardForm) do begin
    Tag:=AButtonIndex
    Parent:=Panel
    Width:=Panel.Width
    Height:=Panel.Height
    Transparent:=True
    OnClick:=@ButtonLabelClick
    OnDblClick:=@ButtonLabelClick
    OnMouseDown:=@ButtonLabelMouseDown
    OnMouseUp:=@ButtonLabelMouseUp
  end
  Labl:=TLabel.Create(WizardForm)        //Текст кнопок
  Labl.Left:=23                          //Указываем положение текста
  Labl.Top:=5
  Labl.Autosize:=True
  Labl.Alignment:=taCenter
  Labl.Tag:=AButtonIndex
  Labl.Transparent:=True
  Labl.Font.Color:=clFont               //Цвет текста
  Labl.Caption:=AButton.Caption
  Labl.OnClick:=@ButtonLabelClick
  Labl.OnDblClick:=@ButtonLabelClick
  Labl.OnMouseDown:=@ButtonLabelMouseDown
  Labl.OnMouseUp:=@ButtonLabelMouseUp
  Labl.Parent:=Panel
  ButtonLabel[AButtonIndex]:=Labl
end;
procedure UpdateButton(AButton: TButton;AButtonIndex: integer);
begin
  ButtonLabel[AButtonIndex].Caption:=AButton.Caption
  ButtonPanel[AButtonIndex].Visible:=AButton.Visible
  ButtonLabel[AButtonIndex].Enabled:=Abutton.Enabled
end;
procedure LicenceAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=True
  ButtonPanel[bidNext].Enabled := True
end;
procedure LicenceNotAcceptedRadioOnClick(Sender: TObject);
begin
  ButtonLabel[bidNext].Enabled:=False
  ButtonPanel[bidNext].Enabled := False
end;
procedure CurPageChanged0(CurPageID: Integer);
begin
  UpdateButton(WizardForm.BackButton,bidBack)
  UpdateButton(WizardForm.NextButton,bidNext)
  UpdateButton(WizardForm.CancelButton,bidCancel)
  ButtonLabel[bidBack].Left := (ButtonPanel[bidBack].Width / 2 - ButtonLabel[bidBack].Width / 2);
  ButtonLabel[bidNext].Left := (ButtonPanel[bidNext].Width / 2 - ButtonLabel[bidNext].Width / 2);
  ButtonLabel[bidCancel].Left := (ButtonPanel[bidCancel].Width / 2 - ButtonLabel[bidCancel].Width / 2);
  ButtonLabel[bidDirBrowse].Left := (ButtonPanel[bidDirBrowse].Width / 2 - ButtonLabel[bidDirBrowse].Width / 2);
  ButtonLabel[bidGroupBrowse].Left := (ButtonPanel[bidGroupBrowse].Width / 2 - ButtonLabel[bidGroupBrowse].Width / 2);
end;
procedure InitializeWizard0();
begin
  WizardForm.BackButton.Width:=ButtonWidth
  WizardForm.BackButton.Height:=ButtonHeight
  WizardForm.NextButton.Width:=ButtonWidth
  WizardForm.NextButton.Height:=ButtonHeight
  WizardForm.CancelButton.Width:=ButtonWidth
  WizardForm.CancelButton.Height:=ButtonHeight
  WizardForm.DirBrowseButton.Left:=337
  WizardForm.DirBrowseButton.Width:=ButtonWidth
  WizardForm.DirBrowseButton.Height:=ButtonHeight
  WizardForm.GroupBrowseButton.Left:=337
  WizardForm.GroupBrowseButton.Width:=ButtonWidth
  WizardForm.GroupBrowseButton.Height:=ButtonHeight
  WizardForm.LicenseAcceptedRadio.OnClick:=@LicenceAcceptedRadioOnClick
  WizardForm.LicenseNotAcceptedRadio.OnClick:=@LicenceNotAcceptedRadioOnClick
  ExtractTemporaryFile('button.bmp')
  LoadButtonImage(WizardForm.BackButton,bidBack)
  LoadButtonImage(WizardForm.NextButton,bidNext)
  LoadButtonImage(WizardForm.CancelButton,bidCancel)
  LoadButtonImage(WizardForm.DirBrowseButton,bidDirBrowse)
  LoadButtonImage(WizardForm.GroupBrowseButton,bidGroupBrowse)
end;






+ как наложит текстуру с помошью этого скрипта на


такую кнопку




Код:

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

var
 SystemButton: TNewButton;
procedure InitializeWizard();
begin
SystemButton := TNewButton.Create(WizardForm);
    with SystemButton do begin
    Parent := WizardForm;
    Caption := '?';
    Left:= 190
    Top:=WizardForm.BackButton.Top
    Width:=WizardForm.DirBrowseButton.Height
    Height:=WizardForm.DirBrowseButton.Height
    OnClick:=@SystemButtonOnClick
    ShowHint := True;
    Hint:= 'Показать/Cкрыть "Системные требования"'
    end;
end;
Аватара пользователя
Gnom_aka_Lexander

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

Сообщение Gnom_aka_Lexander »

Imitri7, нужно скрипт смотреть, там чтото связаное с авторазмером кнопок или текста.

Попробуй добавить туда, где накладываеш текстуры, строчку



Код:

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

    AutoSize := True;

и поиграться со значениями True и False
Аватара пользователя
duxa

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

Сообщение duxa »

Дайте мне можалуйста пример командной строки Precomp 0.3.8
Ответить

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