Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
david141
14-11-2010, 12:08
Привет.
Как сюда всунуть StatusMsg над прогресс баром?
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
ExecAndWait(ExpandConstant('{tmp}\unpacker.exe'), '', '', SW_SHOW, True);
end;
serg aka lain
14-11-2010, 13:56
Как сюда всунуть StatusMsg над прогресс баром? »
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
WizardForm.StatusLabel.Caption := 'Распаковка ...';
ExecAndWait(ExpandConstant('{tmp}\unpacker.exe'), '', '', SW_SHOW, True);
end;
end;
Такое дело возникла необходимость пересобрать игрушку (Fallout New Vegas Steam версия) вобщем разобрал, создал скрипт, пересобрал но в процессе сборки видимо где-то что-то упустил и при установке лаунчер не находит инишник с конфигом, как выяснилось проблема в реестре, при записи ветки с путём к установленой игре путь должен заканчиватся / но его нет, провожу слияние реестра слеш появляется но вот через скрипт добавить никак не получается.
kotkovets
14-11-2010, 17:24
при записи ветки с путём к установленой игре путь должен заканчиватся / »
Root: HKLM; Subkey: SOFTWARE\Bethesda Softworks\FalloutNV; ValueType: string; ValueName: Installed Path; ValueData: {app}\;
david141
14-11-2010, 18:21
serg aka lain,
Спасибо работает прекрасно.
У меня ещё вопросик. Как можно дать пользователю выбрать только один компонент из списка
то есть выбрал один компонент значит, на другие поставить галку не возможно.
kotkovets, спасибо, собрал и всё работает
david141,
Пример из 3 чекбоксов[Setup]
AppName=My Program
AppVerName=My Program v 1.7
DefaultDirName={pf}\My Program
OutputDir=.
[_Code]
var
Check: array [0..2] of TCheckBox;
procedure Check0(Sender: TObject);
begin
if Check[0].Checked then
begin
Check[1].Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[0].Checked := True;
end;
procedure Check1(Sender: TObject);
begin
if Check[1].Checked then
begin
Check[0].Checked := False;
Check[2].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[1].Checked := True;
end;
procedure Check2(Sender: TObject);
begin
if Check[2].Checked then
begin
Check[0].Checked := False;
Check[1].Checked := False;
end;
if (Check[0].Checked = False) and (Check[1].Checked = False)
and (Check[2].Checked = False) then Check[2].Checked := True;
end;
procedure InitializeWizard();
begin
Check[0] := TCheckBox.Create(WizardForm);
with Check[0] do
begin
Parent := WizardForm.SelectDirPage;
Checked := True;
Top := ScaleY(100);
OnClick := @Check0;
Caption := 'Чекбокс №1';
end;
Check[1] := TCheckBox.Create(WizardForm);
with Check[1] do
begin
Parent := WizardForm.SelectDirPage;
Top := ScaleY(120);
OnClick := @Check1;
Caption := 'Чекбокс №2';
end;
Check[2] := TCheckBox.Create(WizardForm);
with Check[2] do
begin
Parent := WizardForm.SelectDirPage;
Top := ScaleY(140);
OnClick := @Check2;
Caption := 'Чекбокс №3';
end;
end;
Плиз помогите. Скачал NFC Undecover скрипт, но после компиляции, при запуске пишет, что ошибка в выборе файла в ISArcExtract. Что делать?
STRAYKER
16-11-2010, 18:40
serg aka lain,
Здраствуйте
У меня просьба Как сделат ькартинку только на первой странице инсталятора но на весь екран ???
serg aka lain
16-11-2010, 19:38
Как сделат ькартинку только на первой странице инсталятора но на весь екран ??? »
Если имеется в виду в первом окне, то
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
[Code]
var
MyPanel: TPanel;
procedure InitializeWizard();
begin
MyPanel := TPanel.Create(WizardForm);
with MyPanel do
begin
Align := alClient;
Parent := WizardForm;
end;
with WizardForm.WizardBitmapImage do
begin
Align := alClient;
Parent := MyPanel;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.WelcomeLabel1.AutoSize;
WordWrap := WizardForm.WelcomeLabel1.WordWrap;
Left := WizardForm.WelcomeLabel1.Left;
Top := WizardForm.WelcomeLabel1.Top;
Width := WizardForm.WelcomeLabel1.Width;
Height := WizardForm.WelcomeLabel1.Height;
Caption := WizardForm.WelcomeLabel1.Caption;
Font.Size := WizardForm.WelcomeLabel1.Font.Size;
Font.Style := WizardForm.WelcomeLabel1.Font.Style;
Font.Color := clWhite;
TransParent := True;
Parent := MyPanel;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.WelcomeLabel2.AutoSize;
WordWrap := WizardForm.WelcomeLabel2.WordWrap;
Left := WizardForm.WelcomeLabel2.Left;
Top := WizardForm.WelcomeLabel2.Top;
Width := WizardForm.WelcomeLabel2.Width;
Height := WizardForm.WelcomeLabel2.Height;
Caption := WizardForm.WelcomeLabel2.Caption;
Font.Size := WizardForm.WelcomeLabel2.Font.Size;
Font.Style := WizardForm.WelcomeLabel2.Font.Style;
Font.Color := clWhite;
TransParent := True;
Parent := MyPanel;
end;
WizardForm.NextButton.BringToFront;
WizardForm.CancelButton.BringToFront;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
MyPanel.Hide;
if CurPageID = wpWelcome then
MyPanel.Show;
end;
STRAYKER
16-11-2010, 20:30
serg aka lain,
Спасиба незнаю что говорить я очень признателен
STRAYKER
16-11-2010, 21:51
serg aka lain,
А как зделать в первом и втором окнах ?
serg aka lain
17-11-2010, 01:05
А как зделать в первом и втором окнах ? »
Можно попробовать
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
WizardImageFile=compiler:WizModernImage-IS.bmp
[code]
const
Text_color = clYellow;
var
MyPanel1, MyPanel2: TPanel;
procedure InitializeWizard();
begin
MyPanel1 := TPanel.Create(WizardForm);
with MyPanel1 do
begin
Align := alClient;
Parent := WizardForm;
end;
with WizardForm.WizardBitmapImage do
begin
Align := alClient;
Parent := MyPanel1;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.WelcomeLabel1.AutoSize;
WordWrap := WizardForm.WelcomeLabel1.WordWrap;
Left := WizardForm.WelcomeLabel1.Left;
Top := WizardForm.WelcomeLabel1.Top;
Width := WizardForm.WelcomeLabel1.Width;
Height := WizardForm.WelcomeLabel1.Height;
Caption := WizardForm.WelcomeLabel1.Caption;
Font.Size := WizardForm.WelcomeLabel1.Font.Size;
Font.Style := WizardForm.WelcomeLabel1.Font.Style;
Font.Color := Text_color;
TransParent := True;
Parent := MyPanel1;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.WelcomeLabel2.AutoSize;
WordWrap := WizardForm.WelcomeLabel2.WordWrap;
Left := WizardForm.WelcomeLabel2.Left;
Top := WizardForm.WelcomeLabel2.Top;
Width := WizardForm.WelcomeLabel2.Width;
Height := WizardForm.WelcomeLabel2.Height;
Caption := WizardForm.WelcomeLabel2.Caption;
Font.Size := WizardForm.WelcomeLabel2.Font.Size;
Font.Style := WizardForm.WelcomeLabel2.Font.Style;
Font.Color := Text_color;
TransParent := True;
Parent := MyPanel1;
end;
MyPanel2 := TPanel.Create(WizardForm);
with MyPanel2 do
begin
Align := alClient;
Parent := WizardForm;
end;
with WizardForm do
begin
with DirEdit do
begin
Left := ScaleX(40);
Top := ScaleY(137);
Parent := MyPanel2;
end;
with DirBrowseButton do
begin
Left := WizardForm.DirEdit.Left + WizardForm.DirEdit.Width + ScaleX(10);
Top := WizardForm.DirEdit.Top - ScaleY(1);
Parent := MyPanel2;
end;
end;
WizardForm.BackButton.BringToFront;
WizardForm.NextButton.BringToFront;
WizardForm.CancelButton.BringToFront;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
MyPanel1.Hide;
MyPanel2.Hide;
if CurPageID = wpWelcome then
MyPanel1.Show;
if CurPageID = wpSelectDir then
begin
with TBitmapImage.Create(MyPanel2) do
begin
Align := alClient;
Bitmap := WizardForm.WizardBitmapImage.Bitmap;
Stretch := True;
Parent := MyPanel2;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.SelectDirBrowseLabel.AutoSize;
Left := WizardForm.DirEdit.Left;
Top := WizardForm.DirEdit.Top - ScaleY(30);
Width := WizardForm.SelectDirBrowseLabel.Width;
Height := WizardForm.SelectDirBrowseLabel.Height;
WordWrap := WizardForm.SelectDirBrowseLabel.WordWrap;
Caption := WizardForm.SelectDirBrowseLabel.Caption;
Font.Color := Text_color;
Font.Style := WizardForm.SelectDirBrowseLabel.Font.Style;
Font.Size := WizardForm.SelectDirBrowseLabel.Font.Size;
Transparent := True;
Parent := MyPanel2;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.SelectDirLabel.AutoSize;
Left := WizardForm.DirEdit.Left + ScaleX(45);
Top := WizardForm.DirEdit.Top - ScaleY(55);
Width := WizardForm.SelectDirLabel.Width;
Height := WizardForm.SelectDirLabel.Height;
WordWrap := WizardForm.SelectDirLabel.WordWrap;
Caption := WizardForm.SelectDirLabel.Caption;
Font.Color := Text_color;
Font.Style := WizardForm.SelectDirLabel.Font.Style;
Font.Size := WizardForm.SelectDirLabel.Font.Size;
Transparent := True;
Parent := MyPanel2;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.DiskSpaceLabel.AutoSize;
Left := WizardForm.DirEdit.Left;
Top := WizardForm.Bevel.Top - ScaleY(25);
Width := WizardForm.DiskSpaceLabel.Width;
Height := WizardForm.DiskSpaceLabel.Height;
WordWrap:= WizardForm.DiskSpaceLabel.WordWrap;
Caption := WizardForm.DiskSpaceLabel.Caption;
Font.Color := Text_color;
Font.Style := WizardForm.DiskSpaceLabel.Font.Style;
Font.Size := WizardForm.DiskSpaceLabel.Font.Size;
Transparent := True;
Parent := MyPanel2;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.PageNameLabel.AutoSize;
Left := WizardForm.PageNameLabel.Left;
Top := WizardForm.PageNameLabel.Top;
Width := WizardForm.PageNameLabel.Width;
Height := WizardForm.PageNameLabel.Height;
Caption := WizardForm.PageNameLabel.Caption;
Font.Color := Text_color;
Font.Style := WizardForm.PageNameLabel.Font.Style;
Font.Size := WizardForm.PageNameLabel.Font.Size;
Transparent := True;
Parent := MyPanel2;
end;
with TLabel.Create(WizardForm) do
begin
AutoSize := WizardForm.PageDescriptionLabel.AutoSize;
Left := WizardForm.PageDescriptionLabel.Left;
Top := WizardForm.PageDescriptionLabel.Top;
Width := WizardForm.PageDescriptionLabel.Width;
Height := WizardForm.PageDescriptionLabel.Height;
Caption := WizardForm.PageDescriptionLabel.Caption;
Font.Color := Text_color;
Font.Style := WizardForm.PageDescriptionLabel.Font.Style;
Font.Size := WizardForm.PageDescriptionLabel.Font.Size;
Transparent := True;
Parent := MyPanel2;
end;
with WizardForm.SelectDirBitmapImage do
begin
Left := WizardForm.DirEdit.Left;
Top := WizardForm.DirEdit.Top - ScaleY(62);
Stretch := True;
Parent := MyPanel2;
BringToFront;
end;
MyPanel2.Show;
end;
end;
Vovochka_s2
17-11-2010, 01:46
Прошу сильно не пинать, но я никак не могу въехать как работает скрипт для распаковки .arc
Сделал инсталлятор для программки, она впринципе небольшая и арк там не нужен, но ради интереса хотел попробовать ужать им.
Для использования скрипта откомпилируйте его и поместите архивы *.arc в один каталог с инсталятором перед тем как запустить его.
Ужал папку с программой FreeArc'ом, помещаю архив file.arc в каталог где лежат файлы программы, собираю инсталлер и получается тупо инсталлятор размер которого больше на объём этого архива и архив arc просто распаковывается вместе с файлами.
Что я не так делаю?
jameszero
18-11-2010, 09:57
STRAYKER, Спасиба незнаю что говорить я очень признателен »
Как я могу отметить сообщение полезным? (http://forum.oszone.net/faq.php?faq=vb_board_usage#faq_thanks)
STRAYKER
18-11-2010, 13:31
Например мне нада чтобы после установки программы запустилось приложения ЕХЕ без запроса о запуске
И как сделать чтобы был не один пароль а целая комбинация
Кто может залить на обменник Inno Script Generator ??? Зарание,спасибо!
Здравствуйте, у меня следующий вопрос:
Я создал дополнительную форму с одним edit-ом
[Run]
FileName: {app}\install.exe; Parameters: Edit.Text; Flags: waituntilterminated
[Code]
var
Edit: TNewEdit;
почему в install.exe в параметр приходит текст "Edit.Text", а не текст с поля edit?
Заранее спасибо!
Добрый день, помогите добавить опцию в скрипт Inno. Есть скрипт, в нем есть выбор компонентов (1,2,3,4 - все их можно выбрать как вместе так и отдельно, так же можно отключить все), так вот - нужно чтобы при условии если НЕ выбран НИ один компонент - установщик не давал продолжить установку. т.е. обязательно должно что то быть выбрано....
serg aka lain
21-11-2010, 23:03
нужно чтобы при условии если НЕ выбран НИ один компонент - установщик не давал продолжить установку. т.е. обязательно должно что то быть выбрано.... »
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
[Components]
Name: "main"; Description: "Main Files"; Types: full compact custom;
Name: "help"; Description: "Help Files"; Types: full
Name: "help\english"; Description: "English"; Types: full
Name: "help\dutch"; Description: "Dutch"; Types: full
[Code]
function NextButtonClick(CurPageID: Integer): Boolean;
begin
Result := True;
if WizardSelectedComponents(False) = '' then
begin
MsgBox('Ни один из компонентов не выбран!', mbInformation, MB_OK);
Result := False;
end;
end;
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.