Скрипты Inno Setup. Помощь и советы [часть 3]
-
Serega
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
У меня в .arc запакован .pcf
Как сделать чтобы сначала в {tmp} из arc распаковался .pcf а потом запустить процесс распаковки .pcf в путь установки!
Думаю понятно написал)
Ну или както попроще можно осуществить этот процесс!
Как сделать чтобы сначала в {tmp} из arc распаковался .pcf а потом запустить процесс распаковки .pcf в путь установки!
Думаю понятно написал)
Ну или както попроще можно осуществить этот процесс!
-
Gnom_aka_Lexander
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
e2e44, Во вложении мой пример по твоему вопросу, если непонятно чтото - подскажу (сам полгода решал подобный вопрос
). Только ник вводится на второй странице, а на последней вводится куча данных о пользователе, если ник был введен, но это не принципиально, создаются *.ini все равно после установки.
). Только ник вводится на второй странице, а на последней вводится куча данных о пользователе, если ник был введен, но это не принципиально, создаются *.ini все равно после установки.-
Imitri7
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Serega, Лександер
спасибо большое за оказанную помощь
если не трудно подскажите алгоритм проверки установлено приложение или нет если установлено авто запуск эксешника
Sotonisto )))) L4d собираю первый
спасибо большое за оказанную помощь
если не трудно подскажите алгоритм проверки установлено приложение или нет если установлено авто запуск эксешника
Sotonisto )))) L4d собираю первый
-
Sotonisto
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Все решили помочь e2e44'у
Пример создания диалогового окна и создания *.ini файла (еще с Скрипты Inno Setup. Помощь и советы [часть 2])
Код:
Если кому-то необходимо - вот сам
Пример создания диалогового окна и создания *.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]
Цитата 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]
Здравствуйте все.
Может кто подскажет, какую нужно прописать комманду в инсталлятор, чтобы при инсталляции происходила выгрузка из памяти загруженной dll-ки и завершалась работа проги, сидящей в памяти. Собственно поясню. Есть прога, блокиратор папок, она грузит в память dll-ку и exe-шник монитор. Я сделал русификатор, но из-за того, что исполняемый файл и библиотека загружены, понятное дело, подменить их не получается.
Может кто подскажет, какую нужно прописать комманду в инсталлятор, чтобы при инсталляции происходила выгрузка из памяти загруженной dll-ки и завершалась работа проги, сидящей в памяти. Собственно поясню. Есть прога, блокиратор папок, она грузит в память dll-ку и exe-шник монитор. Я сделал русификатор, но из-за того, что исполняемый файл и библиотека загружены, понятное дело, подменить их не получается.
-
Imitri7
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
находил похожие примеры, но они почему то не работали
Serega, спс
2all и еще подскажите плыз как решит проблему

если не заметно в чем разница, то тут косяк с кнопками с английским языком - они друг на друга налазят
Код:
+ как наложит текстуру с помошью этого скрипта на
Код:
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]
Imitri7, нужно скрипт смотреть, там чтото связаное с авторазмером кнопок или текста.
Попробуй добавить туда, где накладываеш текстуры, строчку
Код:
и поиграться со значениями True и False
Попробуй добавить туда, где накладываеш текстуры, строчку
Код:
Код: Выделить всё
AutoSize := True;и поиграться со значениями True и False
-
duxa
Re: Скрипты Inno Setup. Помощь и советы [часть 3]
Дайте мне можалуйста пример командной строки Precomp 0.3.8
