Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Neutron,
ваще так надо:
var
welcomelabel1, welcomelabel2: tlabel;
procedure InitializeWizard();
WelcomeLabel1:= TLabel.Create(WizardForm);
with WelcomeLabel1 do begin
AutoSize:=False;
SetBounds(ScaleX(100), ScaleY(85), ScaleX(350), ScaleY(45));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:='arial';
Font.Size:= 11;
Font.Color:=$FFFFFF;
Caption:='дарова васяня!!';
Parent:=WizardForm;
end;
WelcomeLabel2:=TLabel.Create(WizardForm);
with WelcomeLabel2 do begin
AutoSize:=False;
SetBounds(ScaleX(100), ScaleY(140), ScaleX(344), ScaleY(40));
WordWrap:=True;
Alignment := taCenter;
Transparent:=True;
Font.Name:=fontname;
Font.Size:= 11;
Font.Color:=$FFFFFF;
Caption:= 'закрой все приложение не будь лохом!';
Parent:=WizardForm;
end;
procedure CurPageChanged(CurPageID: Integer);
begin
welcomelabel1.hide;
welcomelabel2.hide;
case CurPageID of
wpWelcome: begin
WelcomeLabel1.Show;
WelcomeLabel2.Show;
end;
end;
end;
No4noylis
01-08-2011, 17:15
Rikill, Можно впринцепе и так, но зачем эти лейбы заново создавать если они уже есть?Просто меняешь Parent как я написал и все:)
VASYAKRN
01-08-2011, 17:15
пожалста добавте к моему скрипту ботву и одно изображение для примера в скрипт http://inno.at.ua/12.7z
insombia
01-08-2011, 18:46
Как сделать чтобы возле создания значков и установки припустим дирекста были три линии просто забыл как оно называется правильно
Если вот эти линии http://i26.fastpic.ru/big/2011/0801/3f/017e03ee0cd3a4aaca9bb0445d89b13f.jpg
то вот так
[Setup]
ShowTasksTreeLines=true
И у меня вопрос
Как мне добавить проверку памяти на винчестере
LinkOFF, может быть места? Если да, то как то так:
#define NeedSize "400427"
#define TotalNeedSize "500427"
[Setup]
AppName=NeedSize
AppVerName=TotalNeedSize
DefaultDirName={pf}\NeedSize
DefaultGroupName=NeedSize
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[_Code]
//******************************************* [ начало Место для установки ] ***************************************************//
Function NumToStr(Float: Extended): String;
Begin
Result:= Format('%.2n', [Float]); StringChange(Result, ',', '.');
while ((Result[Length(Result)] = '0') or (Result[Length(Result)] = '.')) and (Pos('.', Result) > 0) do
SetLength(Result, Length(Result)-1);
End;
var
FreeMB, TotalMB: Cardinal;
NeedSize, TotalNeedSize:Integer; TotalNeedSpaceLabel,NeedSpaceLabel,FreeSpaceLabel: TLabel;
Function MbOrTb(Byte: Extended): String;
begin
if Byte < 1024 then Result:= NumToStr(Byte) + ' Мб' else
if Byte/1024 < 1024 then Result:= NumToStr(round(Byte/1024*100)/100) + ' Гб' else
Result:= NumToStr(round((Byte/(1024*1024))*100)/100) + ' Тб';
end;
procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
NeedSpaceLabel.Caption := 'Игра займет на диске: '+ MbOrTb(NeedSize);
TotalNeedSpaceLabel.Caption := 'Для распаковки требуется: '+ MbOrTb(TotalNeedSize);
FreeSpaceLabel.Caption := 'Доступно места на диске: '+ MbOrTb(FreeMB);
WizardForm.NextButton.Enabled:= (FreeMB>TotalNeedSize);
WizardForm.NextButton.Enabled:= (FreeMB>NeedSize);
if (FreeMB<TotalNeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
if (FreeMB<NeedSize) then
FreeSpaceLabel.Font.Color:=clRed else
FreeSpaceLabel.Font.Color:=WizardForm.Font.Color;
end;
procedure InitializeWizard();
begin
NeedSize := {#NeedSize};
TotalNeedSize := {#TotalNeedSize};
WizardForm.DiskSpaceLabel.Hide;
TotalNeedSpaceLabel := TLabel.Create(WizardForm);
TotalNeedSpaceLabel.Parent := WizardForm.SelectDirPage;
TotalNeedSpaceLabel.SetBounds(ScaleX(5), ScaleY(200), ScaleX(209), ScaleY(13));
FreeSpaceLabel := TLabel.Create(WizardForm);
FreeSpaceLabel.Parent := WizardForm.SelectDirPage;
FreeSpaceLabel.SetBounds(ScaleX(5), ScaleY(180), ScaleX(209), ScaleY(13));
NeedSpaceLabel := TLabel.Create(WizardForm);
NeedSpaceLabel.Parent := WizardForm.SelectDirPage;
NeedSpaceLabel.SetBounds(ScaleX(5), ScaleY(220), ScaleX(209), ScaleY(13));
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
end;
//******************************************* [ конец Место для установки ] ***************************************************//
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectDir then GetFreeSpaceCaption(nil);
end;
insombia
01-08-2011, 23:32
Как сделать чтобы когда запускаешь игру то игра запускалась сразу с высоким приоритетом?Код какой то или что?
P.S.Видел такое в репаке assassin's creed brotherhood от механиков
murlakatamenka
01-08-2011, 23:49
insombia, недавно кто-то выкладывал скрипт SetPriorityClass.iss
#define GameName "name"
[setup]
AppName={#GameName}
AppVersion=1.0
DefaultDirName={pf}\{#GameName}
[_code]
const
NORMAL_PRIORITY_CLASS = $00000020;
IDLE_PRIORITY_CLASS = $00000040;
HIGH_PRIORITY_CLASS = $00000080;
REALTIME_PRIORITY_CLASS = $00000100;
function SetPriorityClass(hProcess: THandle; dwPriorityClass: DWORD): BOOL;
external 'SetPriorityClass@kernel32';
function GetCurrentProcess: THandle;
external 'GetCurrentProcess@kernel32';
procedure InitializeWizard();
begin
SetPriorityClass(GetCurrentProcess, IDLE_PRIORITY_CLASS); //установка приоритета для инсталлятора.
end;
или вот скачать с rghost (http://rghost.ru/7854431)
insombia, а не мог бы ты объяснить какая разница от этих приоритетов?
insombia
02-08-2011, 10:47
Rikill если запустить игру с высоким приоритетом она лучше идет меньше виснет
R.i.m.s.k.y.
02-08-2011, 11:02
если запустить игру с высоким приоритетом она лучше идет меньше виснет »
спорное утверждение, наоборот если игруха будет иметь слишком высокий приоритет то системным и прочим процессам будет меньше ресурсов, а ведь мы не в ДОСе живем, игрухи зависят от системных процессов, ресурсы которых игруха с повышенным приоритетом и отожрет
винды давно уже различают запуск полноэкранного приложения и переключают на него что можно дать "здесь и сейчас"
единственно что может пригодится - Set CPU Affinity для старых прог, не держащих многоядренность, тогда эта утилитка пригвоздит процесс к заданному ядру, да и то толку от нее только в ХР, виста и семерка это уже умеют делать сами.
Raf-9600
02-08-2011, 12:44
Ктонить подскажет, как сделать чтоб определённый файл устанавливался только в случае если пользователь выбрал два компонента?
Т.е. если к примеру так указать:
Source: d2speech.mpq; DestDir: {app}; Components: Voice\English Text\Russian
То файл установиться если выбран хотябы какой-то один из перечисленных компонентов, а мне нужно чтоб он устанавливался только если выбраны оба.
R.i.m.s.k.y.
02-08-2011, 13:04
Raf-9600, Components: Voice\English and Text\Russian
insombia
02-08-2011, 13:55
А как лучше всего сжимать игру через инно указывая просто папку с игрой или все файлы игры?Просто когда то распаковал установку лицензии alice madness returns то там все файлы игры были а не просто папка с игрой,игра сама занимала до 10 гб а инсталятор 6 с лишним
R.i.m.s.k.y.
02-08-2011, 14:47
А как лучше всего сжимать игру через инно указывая просто папку с игрой или все файлы игры »
сли нету скрытых или системных файлов внутри, то изомонопенисcуально :), можно указать одну папку и флаги recurseallsubdirs createallsubdirs
только учти, что если укажешь одну папку и поставишь в этой же строчке After/before install, то процедура под After/before install будет отрабатывать НАД КАЖДЫМ файлом в папке, что сильно замедлит установку при большом кол-ве мелких файлов
при указании папки целиком скрытые и системные подпапки/файлы пропускаются, если их нужно добавить - добавляй каждый поотдельности
Подскажите как мне сделать чтоб при установке проценты были полными.Например не 16.4% а просто 16% и так далее (17%,18%...)
Это не оно? »
Сам не знаю.Вроде оно
saha1010
02-08-2011, 18:35
Помогите сделать скрипт который будет только записывать 2 значения в реестр которые при установке должен будет ввести сам пользователь.
Например сюда
HKEY_LOCAL_MACHINE\SOFTWARE\ supesGame \\ name REG_SZ ...
HKEY_LOCAL_MACHINE\SOFTWARE\ supesGame \\Key REG_SZ ....
R.i.m.s.k.y.
02-08-2011, 18:41
Помогите сделать скрипт который будет только записывать 2 значения в реестр которые при установке должен будет ввести сам пользователь. »
на визуалбейсике это и то проще будет
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC