Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)

Модерирует : gyra, Maz

Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

NightW0lf



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Код:
 
[code]
function GetVideoCardName(): PChar;
  external 'hwc_GetVideoCardName@files:get_hw_caps.dll stdcall';
 
function GetSoundCardName(): PChar;
  external 'hwc_GetSoundCardName@files:get_hw_caps.dll stdcall';
 
function DetectHardware(): Integer;
  external 'hwc_DetectHardware@files:get_hw_caps.dll stdcall';
 
function GetHardDriveFreeSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveFreeSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDriveName(hdd: integer): PChar;
  external 'hwc_GetHardDriveName@files:get_hw_caps.dll stdcall';
 
function GetHardDriveTotalSpace(hdd: integer): Integer;
  external 'hwc_GetHardDriveTotalSpace@files:get_hw_caps.dll stdcall';
 
function GetHardDrivesCount(): Integer;
  external 'hwc_GetHardDrivesCount@files:get_hw_caps.dll stdcall';
 
function GetSoundCards(): Integer;
  external 'hwc_GetSoundCards@files:get_hw_caps.dll stdcall';
 
function GetSystemPage(): Integer;
  external 'hwc_GetSystemPage@files:get_hw_caps.dll stdcall';
 
function GetSystemPhys(): Integer;
  external 'hwc_GetSystemPhys@files:get_hw_caps.dll stdcall';
 
function GetVidMemLocal(): Integer;
  external 'hwc_GetVidMemLocal@files:get_hw_caps.dll stdcall';
 
function GetVidMemNonLocal(): Integer;
  external 'hwc_GetVidMemNonLocal@files:get_hw_caps.dll stdcall';
 
function GetVideoCardDev(): Integer;
  external 'hwc_GetVideoCardDev@files:get_hw_caps.dll stdcall';
 
function GetVideoCardVen(): Integer;
  external 'hwc_GetVideoCardVen@files:get_hw_caps.dll stdcall';
 
function DelSp(const s: string): string; // функция удаления пробелов в начале строки
var
  c, i: integer;
  stt, st, st1: string;
begin
  c := 0;
  st := s;
 
  for i := 1 to Length(st) do
  begin
 
    stt := copy(st, i, 1);
    if (stt = ' ') and (c >= 1) then
    begin
      st1 := st1;
      c := c + 1;
    end
    else if (stt = ' ') and (c = 0) then
    begin
      c := c + 1;
      st1 := st1 + stt;
    end
    else if (stt <> ' ') then
    begin
      c := 0;
      st1 := st1 + stt;
    end
  end;
 
  Result := st1;
end;
 
function CheckSystemPage(PreviousPageId: Integer): Integer;
var
  Page: TWizardPage;
  ProcessorName: string;
  Processor, VideoCardPanel, AudioCardPanel, RAMPanel, PageFilePanel: TPanel;
  ProcessorNamePanel, VideoCardNamePanel, AudioCardNamePanel, RAMTotalPanel, PageFileTotalPanel: TPanel;
  ProcessorMHZ: Cardinal;
  StaticText, StaticText2: TNewStaticText;
  VidRam: integer;
begin
  RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', 'ProcessorNameString', ProcessorName);
  RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0', '~MHz', ProcessorMHZ);
  GetVidMemLocal;
  GetSoundCards;
 
  Page := CreateCustomPage(PreviousPageId, 'Аппаратное Обеспечение', 'Программа установки обнаружила следующие необходимые компоненты');
 
  StaticText := TNewStaticText.Create(Page);
  with StaticText do
  begin
    Parent := Page.Surface;
    Caption := 'Все компоненты удовлетворяют требованиям игры.';
    Left := 0;
    Top := 5;
    AutoSize := True;
  end;
 
  StaticText2 := TNewStaticText.Create(Page);
  with StaticText2 do
  begin
    Parent := Page.Surface;
    Caption := 'Когда Вы будите готовы продолжить установку, нажмите «Далее».'
      Left := 0;
    Top := 220;
    AutoSize := True;
  end;
 
  Processor := TPanel.Create(Page);
  with Processor do
  begin
    Parent := Page.Surface;
    Caption := ' Процессор';
    Left := ScaleX(0);
    Top := ScaleY(32);
    alignment := taLeftJustify;
    Width := ScaleX(121);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 0;
  end;
 
  ProcessorNamePanel := TPanel.Create(Page);
  with ProcessorNamePanel do
  begin
    Parent := Page.Surface;
    Caption := DelSP(ProcessorName) + '  ' + IntToStr(ProcessorMHZ) + 'MHz'; //новое обработанное значение строки
//Caption :=ProcessorName+'  '+IntToStr(ProcessorMHZ)+'MHz' ;
    Left := ScaleX(128);
    Top := ScaleY(32);
    alignment := taLeftJustify;
    Width := ScaleX(281);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    Color := $ccffcc;
    TabOrder := 1;
  end;
 
  if ProcessorMHZ < 1800 then
  begin
    ProcessorNamePanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
  end;
 
  VideoCardPanel := TPanel.Create(Page);
  with VideoCardPanel do
  begin
    Parent := Page.Surface;
    Caption := ' Видеоадаптер';
    Left := ScaleX(0);
    alignment := taLeftJustify;
    Top := Processor.Top + 27;
    Width := ScaleX(121);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 0;
  end;
 
  VideoCardNamePanel := TPanel.Create(Page);
  with VideoCardNamePanel do
  begin
    Parent := Page.Surface;
    Caption := ' ' + GetVideoCardName; //+'    ОЗУ-'+inttostr(round(GetVidMemLocal/1000000))+' МБ';
//Caption:='    ОЗУ-'+inttostr(GetVidMemLocal)+' МБ';
    VidrAM := GetVidMemLocal / 1000000;
 
    if VidRam > 127 then
    begin
      if VidRam < 200 then Caption := Caption + ' ОЗУ - 128 МB'
      else if VidRam < 300 then Caption := Caption + ' ОЗУ - 256 МB'
      else if VidRam < 400 then Caption := Caption + ' ОЗУ - 384 МB'
      else if VidRam > 500 then Caption := Caption + ' ОЗУ - 512 МB';
    end;
 
    Left := ScaleX(128);
    Top := VideoCardPanel.Top;
    alignment := taLeftJustify;
    Width := ScaleX(281);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    Color := $ccffcc;
    TabOrder := 1;
  end;
 
  if GetVidMemLocal < 127000000 then //128 MB
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    VideoCardNamePanel.Color := $ccccff;
  end;
 
  AudioCardPanel := TPanel.Create(Page);
  with AudioCardPanel do
  begin
    Parent := Page.Surface;
    Caption := ' Звуковая карта';
    Left := ScaleX(0);
    Top := VideoCardPanel.Top + 27;
    alignment := taLeftJustify;
    Width := ScaleX(121);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 0;
  end;
 
  AudioCardNamePanel := TPanel.Create(Page);
  with AudioCardNamePanel do
  begin
    Parent := Page.Surface;
    Caption := ' ' + GetSoundCardName;
    Left := ScaleX(128);
    alignment := taLeftJustify;
    Top := AudioCardPanel.Top;
    Width := ScaleX(281);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 1;
    Color := $ccffcc;
  end;
 
  if
    GetSoundCards = 0 then
  begin
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
    AudioCardNamePanel.Color := $ccccff;
  end;
 
 
  RAMPanel := TPanel.Create(Page);
  with RAMPanel do
  begin
    Parent := Page.Surface;
    Caption := ' ОЗУ'
      Left := 0;
    Top := AudioCardPanel.Top + 27;
    alignment := taLeftJustify;
    Width := ScaleX(121);
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 0;
  end;
 
  RAMTotalPanel := TPanel.Create(Page);
  with RAMTotalPanel do
  begin
    Parent := Page.Surface;
    Caption := ' ' + IntToStr(GetSystemPhys + 1) + ' MB'
      Left := AudioCardNamePanel.Left;
    Top := RAMPanel.Top;
    alignment := taLeftJustify;
    Width := AudioCardNamePanel.Width;
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 1;
    Color := $ccffcc;
  end;
 
  if GetSystemPhys + 1 < 1024 then
  begin
    RAMTotalPanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
  end;
 
  PageFilePanel := TPanel.Create(Page);
  with PageFilePanel do
  begin
    Parent := Page.Surface;
    Caption := ' Файл подкачки';
    alignment := taLeftJustify;
    Left := 0;
    Top := RAMPanel.Top + 27;
    Width := RAMPanel.Width;
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 0;
  end;
 
  PageFileTotalPanel := TPanel.Create(Page);
  with PageFileTotalPanel do
  begin
    Parent := Page.Surface;
    Caption := ' ' + IntToStr(GetSystemPage) + ' MB';
    Left := RAMTotalPanel.Left;
    Top := PageFilePanel.Top;
    alignment := taLeftJustify;
    Width := RAMTotalPanel.Width;
    Height := ScaleY(25);
    BevelInner := bvSpace;
    BevelOuter := bvLowered;
    TabOrder := 1;
    Color := $ccffcc;
  end;
 
  if GetSystemPage < 1247 then
  begin
    PageFileTotalPanel.Color := $ccccff;
    StaticText.Caption := 'Не все компоненты удовлетворяют требованиям игры.';
  end;
 
  Result := Page.ID;
end;
 
procedure InitializeWizard();
begin
  CheckSystemPage(wpWelcome);
end;
 


Всего записей: 479 | Зарегистр. 08-11-2006 | Отправлено: 23:24 14-04-2007
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup (создание инсталяционных пакетов)
Widok (23-04-2007 18:02): лимит страниц. продолжаем здесь


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru