Ветеран
Сообщения: 649
Благодарности: 444
|
Профиль
|
Отправить PM
| Цитировать
El Sanchez,
Спасибо за исправления!
Стало ещё проще и удобнее.
Цитата El Sanchez:
поэтому CurPageChanged не годится »
|
И не думал использовать. Только для демонстрации, чтоб инсталл не перезапускать
В скрипте халфы всё это выполняется на шаге ssPostInstall
вот так (пока ещё поиск директа и прочего не добавлял)
читать дальше »
Код:
procedure CurStepChanged(CurStep: TSetupStep);
var
res: integer;
begin
/// проценты установки /// часть 2 из 4 /// начало
if CurStep = ssInstall then
begin
PercentsTimer:= SetTimer(0, 0, 100, WrapTimerProc(@PercentsProc, 4));
end;
/// конец
if CurStep = ssPostInstall then
begin
s2_hl2:= hl2_Launch_Edit.Text;
s1_hl2:= ExpandConstant('-steam -game hl2 -appid 220');
if CurStep = ssPostInstall then
begin
if hl2_icon_Checkbox.Checked then
CreateShellLink(ExpandConstant('{commondesktop}\Half-Life 2.lnk'), '',
ExpandConstant('{app}\common\half-life 2\hl2.exe'),s1_hl2 + s2_hl2, ExpandConstant('{app}\common\half-life 2'), ExpandConstant('{app}\common\half-life 2\hl2.ico'), 0, SW_SHOWNORMAL);
end;
s2_ep1:= ep1_Launch_Edit.Text;
s1_ep1:= ExpandConstant('-steam -game episodic -appid 380');
begin
if hl2_ep1_icon_Checkbox.Checked then
CreateShellLink(ExpandConstant('{commondesktop}\Half-Life 2 Episode One.lnk'), '',
ExpandConstant('{app}\common\half-life 2 episode one\hl2.exe'),s1_ep1 + s2_ep1, ExpandConstant('{app}\common\half-life 2 episode one'), ExpandConstant('{app}\common\half-life 2 episode one\hl2.ico'), 0, SW_SHOWNORMAL);
end;
s2_ep2:= ep2_Launch_Edit.Text;
s1_ep2:= ExpandConstant('-steam -game ep2 -appid 420');
begin
if hl2_ep2_Icon_CheckBox.Checked then
CreateShellLink(ExpandConstant('{commondesktop}\Half-Life 2 Episode Two.lnk'), '',
ExpandConstant('{app}\common\half-life 2 episode two\hl2.exe'),s1_ep2 + s2_ep2, ExpandConstant('{app}\common\half-life 2 episode two'), ExpandConstant('{app}\common\half-life 2 episode two\hl2.ico'), 0, SW_SHOWNORMAL);
end;
s2_portal:= portal_Launch_Edit.Text;
s1_portal:= ExpandConstant('-steam -game portal -appid 400');
begin
if portal_Icon_CheckBox.Checked then
CreateShellLink(ExpandConstant('{commondesktop}\Portal.lnk'), '',
ExpandConstant('{app}\common\portal\hl2.exe'),s1_portal + s2_portal, ExpandConstant('{app}\common\portal'), ExpandConstant('{app}\common\portal\portal.ico'), 0, SW_SHOWNORMAL);
end;
/// задачи
If hl2_borealis_CheckBox.Checked then /// Aurora Borealis
begin
ExtractTemporaryFile('Aurora_Borealis.exe');
Exec(ExpandConstant('{tmp}\Aurora_Borealis.exe'), '', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
/// обновления
If hl2_update_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Half-Life 2 ///');
Exec(ExpandConstant('{src}\outer\update\hl2_update.exe'), '', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
If ep1_update_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Half-Life 2 Episode One ///');
Exec(ExpandConstant('{src}\outer\update\hl2_ep1_update.exe'), '', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
If ep2_update_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Half-Life 2 Episode Two ///');
Exec(ExpandConstant('{src}\outer\update\hl2_ep2_update.exe'), '', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
If portal_update_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Portal ///');
Exec(ExpandConstant('{src}\outer\update\portal_update.exe'), '', ExpandConstant('{app}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
/// директ и прочее
If DirectX_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Устанавливается DirectX ///');
Exec(ExpandConstant('{src}\outer\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\outer\DirectX'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
If VisualC_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Устанавливается VisualC++ ///');
Exec(ExpandConstant('{src}\outer\VCRedist\vcredist_x86.exe'), '/q', ExpandConstant('{src}\outer\VCRedist'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
If Font_Checkbox.Checked then
begin
FilesMemo.Lines.Add('/// Извлекаются шрифты ///');
ExtractTemporaryFile('BOXROCKET.ttf');
ExtractTemporaryFile('fontinst.exe');
ExtractTemporaryFile('fontinst.inf');
ExtractTemporaryFile('HALFLIFE2.ttf');
ExtractTemporaryFile('HL2crosshairs.ttf');
ExtractTemporaryFile('HL2EP2.ttf');
ExtractTemporaryFile('marlett.ttf');
FilesMemo.Lines.Add('/// Устанавливаются шрифты ///');
Exec(ExpandConstant('{tmp}\fontinst.exe'), '/q', ExpandConstant('{tmp}'), SW_SHOW, ewWaitUntilTerminated, Res);
end;
end;
end;
где FilesMemo это мемо со списоком извлекаемых файлов на странице установки
|