Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 [2] 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

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;

Photon9
14-11-2010, 16:37
Такое дело возникла необходимость пересобрать игрушку (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,

Спасибо работает прекрасно.

У меня ещё вопросик. Как можно дать пользователю выбрать только один компонент из списка
то есть выбрал один компонент значит, на другие поставить галку не возможно.

Photon9
14-11-2010, 19:38
kotkovets, спасибо, собрал и всё работает

nik1967
14-11-2010, 19:40
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;

Shmel
16-11-2010, 07:14
Плиз помогите. Скачал 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
Например мне нада чтобы после установки программы запустилось приложения ЕХЕ без запроса о запуске

И как сделать чтобы был не один пароль а целая комбинация

Pleo
20-11-2010, 14:19
Кто может залить на обменник Inno Script Generator ??? Зарание,спасибо!

RapMan
20-11-2010, 16:34
Здравствуйте, у меня следующий вопрос:
Я создал дополнительную форму с одним edit-ом

[Run]
FileName: {app}\install.exe; Parameters: Edit.Text; Flags: waituntilterminated

[Code]
var
Edit: TNewEdit;

почему в install.exe в параметр приходит текст "Edit.Text", а не текст с поля edit?

Заранее спасибо!

Duality
21-11-2010, 22:09
Добрый день, помогите добавить опцию в скрипт 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