Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для Johny777

Ветеран


Сообщения: 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 это мемо со списоком извлекаемых файлов на странице установки

Последний раз редактировалось Johny777, 07-05-2012 в 16:15.


Отправлено: 15:48, 07-05-2012 | #1849