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

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

Аватара для S.E.K.T.O.R.

Новый участник


Сообщения: 14
Благодарности: 1

Профиль | Отправить PM | Цитировать


Цитата Serega:
Я не совсем понял, вы просите добавить проверку ОС, но в первом и во втором скрипте она есть. »
Serega Вы снова меня не правильно поняли (Вы наверное сам код не посмотрели). В 1-ом скрипте проверка действительно есть, а во 2-ом лишь кусок (посмотрите внимательно код) т.е. надо добавить из первого еще вот
это
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
var
  Page: TWizardPage;
  Text: TNewStaticText;
  Memo,Windows,SP,Version,Build,registered,WindowsName,SP_Num,Version_Num,Build_num,registered_name: TMemo;
  Os,OS1: string; // строка с названием необходимой ОС
  // state: boolean;

  OS:=' Microsoft Windows XP Service Pack 2'; //строка является суммой из записей в реестре о Наименовании ОС и сервис-паке
  OS1:=' Microsoft Windows 2000 Service Pack 4'; //строка является суммой из записей в реестре о Наименовании ОС и сервис-паке

 // Проверка Windows 9x
   if ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,ProductName|}')<>'' then
  begin
   WindowsName := TMemo.Create(WizardForm);
   with WindowsName do begin
    Text := ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,ProductName|}')+ExpandConstant(' {reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion,CSDVersion|}');
    Parent := WizardForm.UserInfoPage;
    Color := $CCFFCC;
    Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
    Top := ScaleY(20);
    Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
    Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.

    ReadOnly := True;

  end

  end;


  if OS=(WindowsName.Text) then state:=true else
  if OS1=(WindowsName.Text) then state:=true else state:=false;

  Text := TNewStaticText.Create(WizardForm);
    with Text do begin
    Left := 0;
    Top := 0;
    Width := 417;
    Height := 14;
    if state then
     begin
      Font.Color:=clGreen;
      WindowsName.color:=$CCFFCC;
     // SP_Num.color:=$CCFFCC;
      Caption := 'Операционная система соответствует требованиям игры.';
     end
    else
     begin
      Font.Color:=clREd;
      WindowsName.color:=clRed;

      WindowsName.Left := ScaleX(110); //оригинал S.T.A.L.K.E.R.
      WindowsName.Top := ScaleY(20);
      WindowsName.Width := ScaleX(304); //оригинал S.T.A.L.K.E.R.
      WindowsName.Height := ScaleY(22); //оригинал S.T.A.L.K.E.R.
      WindowsName.ReadOnly := True;



      Caption := 'Операционная система не соответствует требованиям игры.';
     end


P.S. Вы говорили, что навернное нельзя отключить сообщение "Недостаточно места на диске". А может тогда можно его изменить, т.е. сделать таким
либо дать команду инсталлятору выводить вместо него
такое
Код: Выделить весь код
function NextButtonClick(CurPageID: Integer): Boolean;
var
  Path,s: String;
  FreeMB, TotalMB: Cardinal;
begin
  Result:= True;
  if CurPageID = wpSelectDir then
    begin
      Path:= ExtractFileDrive(WizardForm.DirEdit.Text);
      GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
       if FreeMB < (NeedSize*1024) then
    begin
      if FreeMB>1024 then
      begin
       s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ floatToStr(round(FreeMB/1024*100)/100) + ' GB!'
      end
        else s:='Для установки приложения необходимо '+ IntTostr(NeedSize)+ ' GB,'#13+'а на выбранном Вами диске доступно только '+ + IntToStr(FreeMB)+' MB';
      MsgBox(s, mbCriticalError, MB_OK)
        Result := False;
    end;
    end;
end;

Ведь в инсталке Сталкера как-то сделали

Последний раз редактировалось S.E.K.T.O.R., 01-10-2009 в 02:34.


Отправлено: 01:27, 01-10-2009 | #189