Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Chuvakstepan
Дата сообщения: 08.04.2007 10:05
вставил, неработает
Автор: PSKOVMAIL
Дата сообщения: 08.04.2007 10:46
Вот с выбором дисков

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
Автор: GloThin
Дата сообщения: 08.04.2007 10:49
Chuvakstepan

Цитата:
вставил, неработает

Ты замени строку:
Caption :=ProcessorName+' '+IntToStr(ProcessorMHZ)+'MHz' ;
на:
Caption :=DelSP(ProcessorName)+' '+IntToStr(ProcessorMHZ)+'MHz' ;
И все будет нормально...
Автор: Chuvakstepan
Дата сообщения: 08.04.2007 10:54
GloThin
респект!
Автор: Sero
Дата сообщения: 08.04.2007 11:14
А вот в листбокс показывет и процент свободного места(S.T.A.L.K.E.R.),как сделать это?
Автор: NightW0lf
Дата сообщения: 08.04.2007 11:22

Цитата:
А вот в листбокс показывет и процент свободного места(S.T.A.L.K.E.R.),как сделать это?

Да тоже это хочется но лучше чтоб вообще полностью скопировать как у оригинала.
Автор: Chuvakstepan
Дата сообщения: 08.04.2007 11:55
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?

Добавлено:
Всё, нашёл

Да понял я, понял
Автор: NightW0lf
Дата сообщения: 08.04.2007 12:02
Chuvakstepan

Цитата:
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?


Код:
[code]
procedure InitializeWizard();
begin
CheckSystemPage(wpWelcome);
//укажи нужную [например wpLicense, wpPassword, wpInfoBefore, wpInstalling, wpInfoAfter, wpFinished и т.д.]
end;
Автор: Sampron
Дата сообщения: 08.04.2007 12:06
Chuvakstepan
Замени
CheckSystemPage(wpWelcome);
на
CheckSystemPage(wpLicense);
Автор: serg_aka_lain
Дата сообщения: 08.04.2007 12:12

Цитата:
А как сделать так чтобы эта новая страница отображалась не после страницы приветствия, а, скажем, после страницы лицензионного соглашения?



Page := CreateCustomPage(wpLicense,'Аппаратное обесп...','и.т.д.....');
Автор: Sero
Дата сообщения: 08.04.2007 12:40
Вот:
http://rapidshare.com/files/24905416/S.T.A.L.K.E.R..rar.html
На 90 прoцентов как в S.T.A.L.K.E.R.
Автор: Chuvakstepan
Дата сообщения: 08.04.2007 13:29
NightW0lf, Sampron, serg_aka_lain

Большое спасибо!

Автор: Sampron
Дата сообщения: 08.04.2007 13:46
Sero
Текст который выходит за пределы TPanel невозможно просмотреть используй лучше TMemo и будет на все 100%
Автор: Sero
Дата сообщения: 08.04.2007 14:10
Sampron
А в инсталл S.T.A.L.K.E.R. TPanel или TMemo?

Добавлено:

Цитата:
http://rapidshare.com/files/24905416/S.T.A.L.K.E.R..rar.html

Покажите скрин у кого как получается с моим примером(в личку).

Автор: Sampron
Дата сообщения: 08.04.2007 14:16
Sero
В сталкере TMemo.
Автор: PSKOVMAIL
Дата сообщения: 08.04.2007 14:20
ВОТ ТАК!!!

ВОТ

Похоже на 99%!!!
Автор: Sero
Дата сообщения: 08.04.2007 14:44
PSKOVMAIL
Мне нужен скриншот!

Добавлено:

Цитата:
В сталкере TMemo.

Исправлю!
Автор: PSKOVMAIL
Дата сообщения: 09.04.2007 09:09
СКИНШОТ
Автор: Sero
Дата сообщения: 09.04.2007 13:44
PSKOVMAIL
В личку посмотри!
Автор: Cash xXx
Дата сообщения: 09.04.2007 16:52

Цитата:
[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Вы желаете тем не

менее продолжить установку?"
Автор: NightW0lf
Дата сообщения: 10.04.2007 17:14
Кто нибудь межет подсказать как можно сделать чтобы в файл [например - 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\.

Заранее благодарю!
Автор: Sero
Дата сообщения: 10.04.2007 18:58
NightW0lf

$app_data_root$=true|false|{commondocs}\STALKER-SHOC\
Автор: NightW0lf
Дата сообщения: 10.04.2007 19:21
Sero

Цитата:
$app_data_root$=true|false|{commondocs}\STALKER-SHOC\

Это то ясно!
Но вот как сделать так чтобы эта строка сама прописалась в этот файл fsgame.ltx.

P.S.: до установки в этом файле нет этой строки $app_data_root$.
Автор: Sero
Дата сообщения: 10.04.2007 19:49
NightW0lf
А в какой секции надо прописать это?
Автор: NightW0lf
Дата сообщения: 10.04.2007 19:57
Sero

Цитата:
А в какой секции надо прописать это?

Ну я думаю в секции [Code].
Автор: Cash xXx
Дата сообщения: 10.04.2007 21:07
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;
Автор: putes
Дата сообщения: 10.04.2007 21:28
а я сделал просто вот так
$app_data_root$=true|false|STALKER-SHOC\
...и забыл нахрен про этот файл....теперь все сохранения в директории игры в папке \bin
Автор: Cash xXx
Дата сообщения: 10.04.2007 21:38
Fack! Как отключить сообщение: "Недостаточно места на диске. Установка требует не менее %1 Кб свободного места, а на выбранном Вами диске доступно только %2 Кб.%n%nВы желаете тем не менее продолжить установку?"
Автор: SyCraft
Дата сообщения: 10.04.2007 22:03
Доброго времени суток! Подскажете, пожалуйста, как перебороть то, что IS режет строки в INI файлах на длину не более 1025 символов, как уместить в одну строку (при генерации этой строки инсталлером) более 21000 символов?
спасибо!
Автор: Sero
Дата сообщения: 10.04.2007 22:39
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, истории становления российского интернета. Сделано для людей.