вставил, неработает
» Inno Setup (создание инсталяционных пакетов)
Вот с выбором дисков
const
NeedSize = 20; //Прописать, сколько мегабайт необходимо
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVEABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
var
ListBox: TListBox;
procedure ListBoxOnClick(Sender: TObject);
var
NewLetter, OldString: String;
i: Integer;
begin
for i:= 0 to ListBox.Items.Count-1 do
begin
if ListBox.Selected[i] then
begin
NewLetter:= Copy(ListBox.Items[i], 0, 1);
OldString:= Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
WizardForm.DirEdit.Text:= NewLetter + OldString;
end;
end;
end;
function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
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 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;
oneGhz,oneMB,Rest:Integer;
begin
RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
oneGhz:=1000;
Rest:=ProcessorMHZ - oneGhz;
oneMB:=1024*1024;
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);
Width := ScaleX(121);
Height := ScaleY(25);
BevelInner := bvLowered;
TabOrder := 0;
Alignment:=taLeftJustify;
end;
ProcessorNamePanel := TPanel.Create(Page);
with ProcessorNamePanel do
begin
Parent := Page.Surface;
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ/oneGhz)+','+IntToStr(Rest)+'GHz'+' '+'@'+IntToStr(ProcessorMHZ)+'MHz';
Left := ScaleX(128);
Top := ScaleY(32);
Width := ScaleX(281);
Height := ScaleY(25);
BevelInner := bvLowered;
Color := 12639424;
TabOrder := 1;
Alignment:=taLeftJustify;
end;
if ProcessorMHZ<1800then
begin
ProcessorNamePanel.Color:=$ccccff;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
VideoCardPanel:=TPanel.Create(Page);
with VideoCardPanel do
begin
Parent:=Page.Surface;
Caption:='Видеоадаптер';
Left:=ScaleX(0);
Top:=Processor.Top+27;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
VideoCardNamePanel:=TPanel.Create(Page);
with VideoCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=GetVideoCardName+' '+IntToStr(GetVidMemLocal/oneMB+6)+'MB';
Left:=ScaleX(128);
Top:=VideoCardPanel.Top;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
Color:=12639424;
TabOrder:=1;
Alignment:=taLeftJustify;
end;
if GetVidMemLocal<127000000 then //128MB
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;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
AudioCardNamePanel:=TPanel.Create(Page);
with AudioCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=GetSoundCardName;
Left:=ScaleX(128);
Top:=AudioCardPanel.Top;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
end;
if
GetSoundCards=0 then
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
AudioCardNamePanel.Color:=$ccccff;
AudioCardNamePanel.Caption:='Не обнаружено';
end;
RAMPanel:=TPanel.Create(Page);
with RAMPanel do
begin
Parent:=Page.Surface;
Caption:='ОЗУ'
Left:=0;
Top:=AudioCardPanel.Top+27;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
RAMTotalPanel:=TPanel.Create(Page);
with RAMTotalPanel do
begin
Parent:=Page.Surface;
Caption:=IntToStr(GetSystemPhys+1) +'Mb'
Left:=AudioCardNamePanel.Left;
Top:=RAMPanel.Top;
Width:=AudioCardNamePanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
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:='Файл подкачки';
Left:=0;
Top:=RAMPanel.Top+27;
Width:=RAMPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
PageFileTotalPanel:=TPanel.Create(Page);
with PageFileTotalPanel do
begin
Parent:=Page.Surface;
Caption:=IntToStr(GetSystemPage)+' MB';
Left:=RAMTotalPanel.Left;
Top:=PageFilePanel.Top;
Width:=RAMTotalPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
end;
if GetSystemPage<1247 then
begin
PageFileTotalPanel.Color:=$ccccff;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
Result := Page.ID;
end;
procedure InitializeWizard();
var
Path: String;
FreeMB, TotalMB: Cardinal;
drives: DWORD;
i: integer;
begin
CheckSystemPage(wpWelcome);
ListBox:= TListBox.Create(WizardForm);
ListBox.Top:= 120;
ListBox.Width:= 300;
ListBox.Height:= ScaleY(90);
ListBox.Parent:= WizardForm.SelectDirPage;
ListBox.OnClick:= @ListBoxOnClick;
drives:= GetLogicalDrives();
for i:= 0 to 31 do
begin
if (drives and (1 shl i)) > 0 then
begin
Path:= chr(ord('A')+i)+':';
if GetDriveType(Path) = DRIVE_FIXED then
begin
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
ListBox.Items.Add(Path + ' Свободно: ' + IntToStr(FreeMB) + 'Мб');
end;
end;
end;
end;
РЕСПЕКТ Sero
const
NeedSize = 20; //Прописать, сколько мегабайт необходимо
DRIVE_UNKNOWN = 0;
DRIVE_NO_ROOT_DIR = 1;
DRIVE_REMOVEABLE = 2;
DRIVE_FIXED = 3;
DRIVE_REMOTE = 4;
DRIVE_CDROM = 5;
DRIVE_RAMDISK = 6;
var
ListBox: TListBox;
procedure ListBoxOnClick(Sender: TObject);
var
NewLetter, OldString: String;
i: Integer;
begin
for i:= 0 to ListBox.Items.Count-1 do
begin
if ListBox.Selected[i] then
begin
NewLetter:= Copy(ListBox.Items[i], 0, 1);
OldString:= Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text));
WizardForm.DirEdit.Text:= NewLetter + OldString;
end;
end;
end;
function GetLogicalDrives: DWORD;
external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint;
external 'GetDriveTypeA@kernel32.dll stdcall';
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 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;
oneGhz,oneMB,Rest:Integer;
begin
RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
oneGhz:=1000;
Rest:=ProcessorMHZ - oneGhz;
oneMB:=1024*1024;
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);
Width := ScaleX(121);
Height := ScaleY(25);
BevelInner := bvLowered;
TabOrder := 0;
Alignment:=taLeftJustify;
end;
ProcessorNamePanel := TPanel.Create(Page);
with ProcessorNamePanel do
begin
Parent := Page.Surface;
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ/oneGhz)+','+IntToStr(Rest)+'GHz'+' '+'@'+IntToStr(ProcessorMHZ)+'MHz';
Left := ScaleX(128);
Top := ScaleY(32);
Width := ScaleX(281);
Height := ScaleY(25);
BevelInner := bvLowered;
Color := 12639424;
TabOrder := 1;
Alignment:=taLeftJustify;
end;
if ProcessorMHZ<1800then
begin
ProcessorNamePanel.Color:=$ccccff;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
VideoCardPanel:=TPanel.Create(Page);
with VideoCardPanel do
begin
Parent:=Page.Surface;
Caption:='Видеоадаптер';
Left:=ScaleX(0);
Top:=Processor.Top+27;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
VideoCardNamePanel:=TPanel.Create(Page);
with VideoCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=GetVideoCardName+' '+IntToStr(GetVidMemLocal/oneMB+6)+'MB';
Left:=ScaleX(128);
Top:=VideoCardPanel.Top;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
Color:=12639424;
TabOrder:=1;
Alignment:=taLeftJustify;
end;
if GetVidMemLocal<127000000 then //128MB
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;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
AudioCardNamePanel:=TPanel.Create(Page);
with AudioCardNamePanel do
begin
Parent:=Page.Surface;
Caption:=GetSoundCardName;
Left:=ScaleX(128);
Top:=AudioCardPanel.Top;
Width:=ScaleX(281);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
end;
if
GetSoundCards=0 then
begin
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
AudioCardNamePanel.Color:=$ccccff;
AudioCardNamePanel.Caption:='Не обнаружено';
end;
RAMPanel:=TPanel.Create(Page);
with RAMPanel do
begin
Parent:=Page.Surface;
Caption:='ОЗУ'
Left:=0;
Top:=AudioCardPanel.Top+27;
Width:=ScaleX(121);
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
RAMTotalPanel:=TPanel.Create(Page);
with RAMTotalPanel do
begin
Parent:=Page.Surface;
Caption:=IntToStr(GetSystemPhys+1) +'Mb'
Left:=AudioCardNamePanel.Left;
Top:=RAMPanel.Top;
Width:=AudioCardNamePanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
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:='Файл подкачки';
Left:=0;
Top:=RAMPanel.Top+27;
Width:=RAMPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=0;
Alignment:=taLeftJustify;
end;
PageFileTotalPanel:=TPanel.Create(Page);
with PageFileTotalPanel do
begin
Parent:=Page.Surface;
Caption:=IntToStr(GetSystemPage)+' MB';
Left:=RAMTotalPanel.Left;
Top:=PageFilePanel.Top;
Width:=RAMTotalPanel.Width;
Height:=ScaleY(25);
BevelInner:=bvLowered;
TabOrder:=1;
Color:=12639424;
Alignment:=taLeftJustify;
end;
if GetSystemPage<1247 then
begin
PageFileTotalPanel.Color:=$ccccff;
StaticText.Caption:='Не все компоненты удовлетворяют требованиям игры.';
end;
Result := Page.ID;
end;
procedure InitializeWizard();
var
Path: String;
FreeMB, TotalMB: Cardinal;
drives: DWORD;
i: integer;
begin
CheckSystemPage(wpWelcome);
ListBox:= TListBox.Create(WizardForm);
ListBox.Top:= 120;
ListBox.Width:= 300;
ListBox.Height:= ScaleY(90);
ListBox.Parent:= WizardForm.SelectDirPage;
ListBox.OnClick:= @ListBoxOnClick;
drives:= GetLogicalDrives();
for i:= 0 to 31 do
begin
if (drives and (1 shl i)) > 0 then
begin
Path:= chr(ord('A')+i)+':';
if GetDriveType(Path) = DRIVE_FIXED then
begin
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
ListBox.Items.Add(Path + ' Свободно: ' + IntToStr(FreeMB) + 'Мб');
end;
end;
end;
end;
РЕСПЕКТ Sero
Chuvakstepan
Цитата:
Ты замени строку:
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ)+'MHz' ;
на:
Caption :=DelSP(ProcessorName)+' '+IntToStr(ProcessorMHZ)+'MHz' ;
И все будет нормально...
Цитата:
вставил, неработает
Ты замени строку:
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ)+'MHz' ;
на:
Caption :=DelSP(ProcessorName)+' '+IntToStr(ProcessorMHZ)+'MHz' ;
И все будет нормально...
GloThin
респект!
респект!
А вот в листбокс показывет и процент свободного места(S.T.A.L.K.E.R.),как сделать это?
Цитата:
А вот в листбокс показывет и процент свободного места(S.T.A.L.K.E.R.),как сделать это?
Да тоже это хочется но лучше чтоб вообще полностью скопировать как у оригинала.
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?
Добавлено:
Всё, нашёл
Да понял я, понял
Добавлено:
Всё, нашёл
Да понял я, понял
Chuvakstepan
Цитата:
Код:
[code]
procedure InitializeWizard();
begin
CheckSystemPage(wpWelcome);
//укажи нужную [например wpLicense, wpPassword, wpInfoBefore, wpInstalling, wpInfoAfter, wpFinished и т.д.]
end;
Цитата:
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?
Код:
[code]
procedure InitializeWizard();
begin
CheckSystemPage(wpWelcome);
//укажи нужную [например wpLicense, wpPassword, wpInfoBefore, wpInstalling, wpInfoAfter, wpFinished и т.д.]
end;
Chuvakstepan
Замени
CheckSystemPage(wpWelcome);
на
CheckSystemPage(wpLicense);
Замени
CheckSystemPage(wpWelcome);
на
CheckSystemPage(wpLicense);
Цитата:
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?
Page := CreateCustomPage(wpLicense,'Аппаратное обесп...','и.т.д.....');
Вот:
http://rapidshare.com/files/24905416/S.T.A.L.K.E.R..rar.html
На 90 прoцентов как в S.T.A.L.K.E.R.
http://rapidshare.com/files/24905416/S.T.A.L.K.E.R..rar.html
На 90 прoцентов как в S.T.A.L.K.E.R.
NightW0lf, Sampron, serg_aka_lain
Большое спасибо!
Большое спасибо!
Sero
Текст который выходит за пределы TPanel невозможно просмотреть используй лучше TMemo и будет на все 100%
Текст который выходит за пределы TPanel невозможно просмотреть используй лучше TMemo и будет на все 100%
Sampron
А в инсталл S.T.A.L.K.E.R. TPanel или TMemo?
Добавлено:
Цитата:
Покажите скрин у кого как получается с моим примером(в личку).
А в инсталл S.T.A.L.K.E.R. TPanel или TMemo?
Добавлено:
Цитата:
http://rapidshare.com/files/24905416/S.T.A.L.K.E.R..rar.html
Покажите скрин у кого как получается с моим примером(в личку).
Sero
В сталкере TMemo.
В сталкере TMemo.
PSKOVMAIL
Мне нужен скриншот!
Добавлено:
Цитата:
Исправлю!
Мне нужен скриншот!
Добавлено:
Цитата:
В сталкере TMemo.
Исправлю!
PSKOVMAIL
В личку посмотри!
В личку посмотри!
Цитата:
[Setup]
AppName=System Check
AppVerName=System Check
DefaultDirName={pf32}\System Check
[Files]
Source: C:\Program Files\Inno Setup 5\get_hw_caps.dll; Flags: dontcopy
[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 CheckSystemPage(PreviousPageId: Integer): Integer;
var Page: TWizardPage;
ProcessorName:string;
Processor,ProcessorNamePanel,VideoCardNamePanel,VideoCardPanel,AudioCardNamePanel,RAMTotalPanel,PageFileTotalPanel,AudioCardPanel,RAMPanel,PageFilePanel: TMemo;
ProcessorMHZ: Cardinal;
StaticText,StaticText2:TNewStaticText;
oneGhz,oneMB,Rest:Integer;
begin
RegQueryStringValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','ProcessorNameString', ProcessorName);
RegQueryDWordValue(HKLM, 'HARDWARE\DESCRIPTION\System\CentralProcessor\0','~MHz', ProcessorMHZ);
GetVidMemLocal;
GetSoundCards;
oneGhz:=1000;
Rest:=ProcessorMHZ - oneGhz;
oneMB:=1024*1024;
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 := TMemo.Create(Page);
with Processor do
begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Процессор'));
Color := -16777194;
Left := ScaleX(0);
Top := ScaleY(32);
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;
ProcessorNamePanel := TMemo.Create(Page);
with ProcessorNamePanel do
begin
Parent := Page.Surface;
Lines.Add(' '+ProcessorName+' '+IntToStr(ProcessorMHZ/oneGhz)+','+IntToStr(Rest)+'GHz'+' '+'@'+IntToStr(ProcessorMHZ)+'MHz');
Left := ScaleX(109);
Top := ScaleY(32);
Width := ScaleX(304);
Height := ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;
//частота процессора//
if ProcessorMHZ<1000 then
begin
ProcessorNamePanel.Color:=$CCFFCC;
StaticText.Caption:='Компоненты, выделенные красным не удовлетворяют требованиям игры.';
end;
VideoCardPanel:=TMemo.Create(Page);
with VideoCardPanel do
begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Видеоадаптер'));
Color := -16777194;
Left:=ScaleX(0);
Top:=Processor.Top+27;
Width:=ScaleX(104);
Height:=ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;
VideoCardNamePanel:=TMemo.Create(Page);
with VideoCardNamePanel do
begin
Parent:=Page.Surface;
Lines.Add(' '+GetVideoCardName+' '+IntToStr(GetVidMemLocal/oneMB)+' MB');
Left:=ScaleX(109);
Top:=VideoCardPanel.Top;
Width:=ScaleX(304);
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;
//видео память//
if GetVidMemLocal<63500000 then //64MB
begin
StaticText.Caption:='Компоненты, выделенные красным не удовлетворяют требованиям игры.';
VideoCardNamePanel.Color:=$CCFFCC;
end
AudioCardPanel:=TMemo.Create(Page);
with AudioCardPanel do
begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Звуковая карта'));
Color := -16777194;
Left := ScaleX(0);
Top:=VideoCardPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;
AudioCardNamePanel:=TMemo.Create(Page);
with AudioCardNamePanel do
begin
Parent:=Page.Surface;
Lines.Add(' '+GetSoundCardName);
Left:=ScaleX(109);
Top:=AudioCardPanel.Top;
Width:=ScaleX(304);
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;
//аудио//
if
GetSoundCards=0 then
begin
StaticText.Caption:='Компоненты, выделенные красным не удовлетворяют требованиям игры.';
with
AudioCardNamePanel do
begin
Color:=$CCFFCC;
Lines.Add('Не обнаружено');
ReadOnly := True; Cursor := crArrow;
end;
end;
RAMPanel:=TMemo.Create(Page);
with RAMPanel do
begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' ОЗУ'));
Color := -16777194;
Left := ScaleX(0);
Top:=AudioCardPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;
RAMTotalPanel:=TMemo.Create(Page);
with RAMTotalPanel do
begin
Parent:=Page.Surface;
Lines.Add(' '+IntToStr(GetSystemPhys+1) +' MB');
Left:=AudioCardNamePanel.Left;
Top:=RAMPanel.Top;
Width:=AudioCardNamePanel.Width;
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;
//оперативка//
if GetSystemPhys+1<256 then
begin
RAMTotalPanel.Color:=$CBC0FF;
StaticText.Caption:='Компоненты, выделенные красным не удовлетворяют требованиям игры.';
end;
PageFilePanel:=TMemo.Create(Page);
with PageFilePanel do
begin
Parent := Page.Surface;
Lines.Add(ExpandConstant(' Файл подкачки'));
Color := -16777194;
Left := ScaleX(0);
Top:=RAMPanel.Top+27;
Width := ScaleX(104);
Height := ScaleY(21);
ReadOnly := True; Cursor := crArrow;
end;
PageFileTotalPanel:=TMemo.Create(Page);
with PageFileTotalPanel do
begin
Parent:=Page.Surface;
Lines.Add(' '+IntToStr(GetSystemPage)+' MB');
Left:=RAMTotalPanel.Left;
Top:=PageFilePanel.Top;
Width:=RAMTotalPanel.Width;
Height:=ScaleY(21);
Color := $CCFFCC;
ReadOnly := True; Cursor := crArrow;
end;
//файл подкачки//
if GetSystemPage<756 then
begin
PageFileTotalPanel.Color:=$CCFFCC;
StaticText.Caption:='Компоненты, выделенные красным не удовлетворяют требованиям игры.';
end;
Result := Page.ID;
end;
procedure InitializeWizard();
begin
CheckSystemPage(wpWelcome);
end;
Добавлено:
Как отключить сообщение: "Недостаточно места на диске. Установка требует не менее %1 Кб
свободного места, а на выбранном Вами диске доступно только %2 Кб.%n%nВы желаете тем не
менее продолжить установку?"
Кто нибудь межет подсказать как можно сделать чтобы в файл [например - fsgame.ltx] в строке $app_data_root$=true|false|D:\|Stalker\ вписывалось значение из константы {commondocs}\STALKER-SHOC чтобы получилось $app_data_root$=true|false|C:\|Documents and Settings\All Users\Документы\STALKER-SHOC\.
Заранее благодарю!
Заранее благодарю!
NightW0lf
$app_data_root$=true|false|{commondocs}\STALKER-SHOC\
$app_data_root$=true|false|{commondocs}\STALKER-SHOC\
Sero
Цитата:
Это то ясно!
Но вот как сделать так чтобы эта строка сама прописалась в этот файл fsgame.ltx.
P.S.: до установки в этом файле нет этой строки $app_data_root$.
Цитата:
$app_data_root$=true|false|{commondocs}\STALKER-SHOC\
Это то ясно!
Но вот как сделать так чтобы эта строка сама прописалась в этот файл fsgame.ltx.
P.S.: до установки в этом файле нет этой строки $app_data_root$.
NightW0lf
А в какой секции надо прописать это?
А в какой секции надо прописать это?
Sero
Цитата:
Ну я думаю в секции [Code].
Цитата:
А в какой секции надо прописать это?
Ну я думаю в секции [Code].
NightW0lf
Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$app_data_root$=true|false|' + ExpandConstant('{commondocs}\STALKER-SHOC')+ #13, True);
end;
end;
Код: procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$app_data_root$=true|false|' + ExpandConstant('{commondocs}\STALKER-SHOC')+ #13, True);
end;
end;
а я сделал просто вот так
$app_data_root$=true|false|STALKER-SHOC\
...и забыл нахрен про этот файл....теперь все сохранения в директории игры в папке \bin
$app_data_root$=true|false|STALKER-SHOC\
...и забыл нахрен про этот файл....теперь все сохранения в директории игры в папке \bin
Fack! Как отключить сообщение: "Недостаточно места на диске. Установка требует не менее %1 Кб свободного места, а на выбранном Вами диске доступно только %2 Кб.%n%nВы желаете тем не менее продолжить установку?"
Доброго времени суток! Подскажете, пожалуйста, как перебороть то, что IS режет строки в INI файлах на длину не более 1025 символов, как уместить в одну строку (при генерации этой строки инсталлером) более 21000 символов?
спасибо!
спасибо!
NightW0lf
Цитата:
Теперь я понел что тебе надо!
Цитата:
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall
then
begin
SaveStringToFile(ExpandConstant('{app}')+'\fsgame.ltx', '$app_data_root$=true|false|' + ExpandConstant('{commondocs}\STALKER-SHOC')+ #13, True);
end;
end;
Теперь я понел что тебе надо!
Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
Предыдущая тема: ICONS
Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.