Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 [170] 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188

Raf-9600
08-10-2011, 18:56
тырит чужие скрипты немного переделывает и выдаёт за свои »
Самое худшее, что даже переделывает не он, а люди с этого форума, или ру-боарда http://i25.fastpic.ru/big/2011/0719/cc/67d60348944c198eadf82071204131cc.gif

VASYAKRN
08-10-2011, 19:03
1.Етот скрипт я делал сам
2.В категории продам скрипт на моем сайте я просто скопирувал с http://www.krinkels.ru/forum/ и забил написать автора
3. А ети два скрипти я пробивал соидинить но не получилось

No4noylis
08-10-2011, 19:04
А реально ли сделать чтоб и DescCtrl.dll работал (описание компонентов), и чтоб компоненты можно было сворачивать? »
Конечно, просто вместе с компонентами скрываешь и InfoPanel.:)
3. А ети два скрипти я пробивал соидинить но не получилось »
Не знаю, у меня все соединилось замечательно (http://s1.ipicture.ru/uploads/20111008/MTv4MlbF.png)...

VASYAKRN
08-10-2011, 19:06
А если ви думаете что етот скрипт чужой то найдите автора!!!!!

valyok666
08-10-2011, 19:21
VASYAKRN,писать по русски научись сначало

VASYAKRN
08-10-2011, 19:26
valyok666, Не спригивай с базара

valyok666
08-10-2011, 19:29
VASYAKRN, пока по русски писать не научишься базара не будет=)

insombia
08-10-2011, 19:34
VASYAKRN скрипт сделал VinTagE так что не пи***

Gnom_aka_Lexander
08-10-2011, 19:35
скрипт сделал VinTagE так что не пи*** »
Я уже расписывал с десяток сираниц назад, где чей скрипт.

insombia
08-10-2011, 19:42
Лександер у него на сайте так было написано
VASYAKRN хорошо если ты пишешь сам скрипты то скажи чем если не ответишь ты настоящее говно которое умеет только пи**деть

No4noylis
08-10-2011, 19:49
VASYAKRN хорошо если ты пишешь сам скрипты то скажи чем если не ответишь ты настоящее говно которое умеет только пи**деть »
insombia, Это ни к чему, тут и так все понятно... Просто если я, например, сам пишу себе скрипты, то я смог легко объединить те два кода и исправить ошибки :)

valyok666
08-10-2011, 19:53
тот скрипт создание формы и т.д как же ты всё там объединил если эти 2 кода объединить не можешь????

No4noylis
08-10-2011, 19:55
No4noylis, тот скрипт создание формы и т.д как же ты всё там объединил если эти 2 кода объединить не можешь???? »
О чем ты, по подробней, какие два кода я объединить не могу???
No4noylis, я не про тебяа про VASYAKRN »
Тогда, если не сложно, исправь сообщение :)

insombia
08-10-2011, 19:55
No4noylis я просто веду к тому что он вечно возьмет чужой скрипт и говорит что он его создал

valyok666
08-10-2011, 19:56
No4noylis, я не про тебя=)а про VASYAKRN

VinTagE
08-10-2011, 20:04
No4noylis,
valyok666,
insombia,
VASYAKRN,
Собирает с моего скрипта (CODBO v.1.0) и он как я видел написал вот это

// Cкрипт сделан из Call of Duty Black Ops (1.0) by VinTagE ;

// Причина не хотел писать скрипт с нуля поскольку ето занимает много времени

//Огромное спасиба:
//=== nik1967 за идею
//=== VinTagE за скрипт Call of Duty Black Ops (1.0)
//===
//===
//===

В скрипте Darksiders BlackSelf By Vasyakrn.7z (http://rghost.ru/24665211)
Так что не нагоняем на него!

Только это надпись убила меня:
//Скрипт мой ето закос под скрипт Nik1967 с одноименним названиям, которий в свою очередь делал ево под BlackSelf

insombia
08-10-2011, 20:16
VinTagE понятно но если зайти на его сайт то там почти везде написано что он сделал скрипт из всех которых там есть

Raf-9600
08-10-2011, 20:27
А реально ли сделать чтоб и DescCtrl.dll работал (описание компонентов), и чтоб компоненты можно было сворачивать? »
Конечно, просто вместе с компонентами скрываешь и InfoPanel. »
А ты мог бы такой фокус сотворить, если не сложно? В благодарность, могу дать пригласительный на форум forum.0day.kiev.ua или поделиться бубликами на их трекере http://forum.mozilla-russia.org/img/smilies/roll.png

Собстно скрипт, к которому хотелось бы приделать такую фичу:
#define TIME_FOR_VIEW 10

[Setup]
AppName=StarCraft All in One
AppVerName=StarCraft All in One
DefaultDirName={code:NoSD}\Games\StarCraft
OutputBaseFilename=setup
;Compression=zip
Compression=lzma2/ultra64
SolidCompression=yes
DiskSpanning=yes
DiskSliceSize=730000000
;WizardImageFile=myimage.bmp
WizardImageStretch=yes
;WizardSmallImageFile=mysmallimage.bmp
DisableStartupPrompt=yes
DefaultGroupName=StarCraft
AppPublisher=Blizzard Entertainment
AppPublisherURL=http://eu.blizzard.com/ru-ru/games/sc/index.html
AppUpdatesURL=http://us.blizzard.com/support/article.xml?locale=en_US&articleId=21149
AppSupportURL=http://us.blizzard.com/support/index.xml?locale=en_US&gameId=3
ChangesAssociations=yes
AllowNoIcons=yes
AppendDefaultDirName=yes
AlwaysShowGroupOnReadyPage=yes
AlwaysShowDirOnReadyPage=yes
SlicesPerDisk=1
VersionInfoVersion=1.0.0.0
UninstallDisplayIcon={app}\StarCraft.exe
AppId=StarCraft All in One by Raf-9600
AllowRootDirectory=no
DirExistsWarning=yes
;InfoBeforeFile=InfoBefore_RU.rtf
SignedUninstallerDir={app}\Uninstaller StarCraft All in One




[Languages]
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl";


[Messages]
TranslatorNote=Installer created by Raf-9600%nRaf-9600@yandex.ru
BeveledLabel=Created by Raf-9600


[Components]
Name: "Game"; Description: "Тип установки:"; Flags: fixed; Types: full compact custom;
Name: "Game\Full"; Description: "Игра"; Flags: exclusive;
Name: "Game\Lokal"; Description: "Локализация"; Flags: exclusive;

Name: "SoundUnit"; Description: "Озвучка юнитов:"; Flags: fixed; Types: full compact custom;
Name: "SoundUnit\eng"; Description: "Английская"; Flags: exclusive;
Name: "SoundUnit\fra"; Description: "Французская"; Flags: exclusive; ExtraDiskSpaceRequired: 74772480
Name: "SoundUnit\deu"; Description: "Немецкая"; Flags: exclusive; ExtraDiskSpaceRequired: 76926976
Name: "SoundUnit\ita"; Description: "Итальянская"; Flags: exclusive; ExtraDiskSpaceRequired: 80142336
Name: "SoundUnit\spa"; Description: "Испанская"; Flags: exclusive; ExtraDiskSpaceRequired: 80470016
Name: "SoundUnit\ukr"; Description: "Украинская"; Flags: exclusive; ExtraDiskSpaceRequired: 87625728
Name: "SoundUnit\rus"; Description: "Русская от:"; Flags: exclusive;
Name: "SoundUnit\rus\Tycoon"; Description: "Tycoon"; Flags: exclusive; Types: full; ExtraDiskSpaceRequired: 72474624
Name: "SoundUnit\rus\Fargus1"; Description: "Фаргус v1"; Flags: exclusive; ExtraDiskSpaceRequired: 79585280
Name: "SoundUnit\rus\Fargus2"; Description: "Фаргус v2"; Flags: exclusive; ExtraDiskSpaceRequired: 76685312
Name: "SoundUnit\rus\SC2"; Description: "StarCraft 2"; Flags: exclusive; ExtraDiskSpaceRequired: 310125136
Name: "SoundUnit\rus\Ogon"; Description: "Надмозг"; Flags: exclusive; ExtraDiskSpaceRequired: 73920512
Name: "SoundUnit\rus\7Wolf"; Description: "7Wolf"; Flags: exclusive; ExtraDiskSpaceRequired: 70934528
Name: "SoundUnit\rus\Mordo"; Description: "Мордовия"; Flags: exclusive; ExtraDiskSpaceRequired: 73920512

Name: "StarCraft"; Description: StarCraft; Types: full compact custom;

Name: "StarCraft\Text"; Description: "Текст:"; Flags: fixed; Types: full compact custom;
Name: "StarCraft\Text\eng"; Description: "Английский"; Flags: exclusive;
Name: "StarCraft\Text\fra"; Description: "Французский"; Flags: exclusive;
Name: "StarCraft\Text\deu"; Description: "Немецкий"; Flags: exclusive;
Name: "StarCraft\Text\ita"; Description: "Итальянский"; Flags: exclusive;
Name: "StarCraft\Text\spa"; Description: "Испанский"; Flags: exclusive;
Name: "StarCraft\Text\ukr"; Description: "Украинский"; Flags: exclusive;
Name: "StarCraft\Text\rus"; Description: "Русский от:"; Flags: exclusive;
Name: "StarCraft\Text\rus\Freze"; Description: "Frezzze"; Flags: exclusive; Types: full
Name: "StarCraft\Text\rus\Tycoon"; Description: "Tycoon"; Flags: exclusive;
Name: "StarCraft\Text\rus\Fargus"; Description: "Фаргус"; Flags: exclusive;
Name: "StarCraft\Text\rus\Ogon"; Description: "Надмозг"; Flags: exclusive;

Name: "StarCraft\SoundCamp"; Description: "Озвучка брифингов:"; Types: full compact custom;
Name: "StarCraft\SoundCamp\eng"; Description: "Английская"; Flags: exclusive;
Name: "StarCraft\SoundCamp\fra"; Description: "Французская"; Flags: exclusive; ExtraDiskSpaceRequired: 177065984
Name: "StarCraft\SoundCamp\deu"; Description: "Немецкая"; Flags: exclusive; ExtraDiskSpaceRequired: 223875072
Name: "StarCraft\SoundCamp\ita"; Description: "Итальянская"; Flags: exclusive; ExtraDiskSpaceRequired: 177807360
Name: "StarCraft\SoundCamp\spa"; Description: "Испанская"; Flags: exclusive; ExtraDiskSpaceRequired: 176799744
Name: "StarCraft\SoundCamp\rus"; Description: "Русская от:"; Flags: exclusive;
Name: "StarCraft\SoundCamp\rus\Stream"; Description: "Stream"; Flags: exclusive; Types: full; ExtraDiskSpaceRequired: 182129976
Name: "StarCraft\SoundCamp\rus\RuKol"; Description: "Русская коллекция"; Flags: exclusive; ExtraDiskSpaceRequired: 93392896
Name: "StarCraft\SoundCamp\rus\Fargus"; Description: "Фаргус"; Types: full; Flags: exclusive; ExtraDiskSpaceRequired: 160055296
Name: "StarCraft\SoundCamp\rus\Ogon"; Description: "Надмозг"; Flags: exclusive; ExtraDiskSpaceRequired: 54247424



;[Types]
;Name: "full"; Description: "Полная установка"; Flags: iscustom




[Files]

;--=\=Технические=/=--


;-=Install=-
Source: compiler:descctrl.dll; DestDir: {tmp}; Flags: dontcopy noencryption nocompression solidbreak;
Source: compiler:InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy noencryption nocompression solidbreak;



[Code]
//Ничего не отображающий прогресс-бар
procedure NeaProgress;
begin
WizardForm.ProgressGauge.Style:= npbstMarquee;
end;

const
n1=21; //количество слайдов
oneMB= 1024*1024;

type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
TRandNumbers = array[1..N1] of byte;

function GetLogicalDrives: DWord; external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(nDrive: String): Longint; external 'GetDriveTypeA@kernel32.dll stdcall';
function GetVolumeInformation(PathName,VolumeName: PChar; VolumeNameSize,VolumeSerialNumber,MaxComponentLength,FileSystemFlags: Longint; FileSystemName: PChar; FileSystemNameSize: Longint): Longint; external 'GetVolumeInformationA@kernel32.dll stdcall';
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall';

function WrapTimerProc(callback:TProc; paramcount:integer):longword;
external 'wrapcallback@files:InnoCallback.dll stdcall';

function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;
external 'SetTimer@user32.dll stdcall';

function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;
external 'KillTimer@user32.dll stdcall';

function enabledesc(ComponentsListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';

function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

const
DRIVE_FIXED = 3;
var
Info, InfoCaption, StatusMessages: TNewStaticText;
InfoPanel: TPanel;

FreeMB, TotalMB: Cardinal;
NeedSpaceLabel: TLabel;
NeedSize, n, currTime: Integer;
VolumeName, FileSystemName, S: String;
VolumeSerialNo, MaxComponentLength, FileSystemFlags: Longint;
ListBox: TListBox;
StartMenuTreeView: TStartMenuFolderTreeView;

Files: Array of String;
TimerID: LongWord;
SplashImage: TBitmapImage;
bmp: TRandNumbers;
z:byte;

procedure ChangeCaption(str: string);
begin
WizardForm.StatusLabel.Caption:= str;
end;
function NoSD(s: string): string;
var
x, bit, i: Integer;
tp: Cardinal;
sd: string;
begin
sd:= ExpandConstant('{sd}');
Result:= sd;
// Вызываем функцию WinAPI
// Функция возвращает битовую маску установленных логических дисков.
// Бит 0 определяет наличие диска А:, бит 1 - диска B и т.д.
x:= GetLogicalDrives;
if x <> 0 then
// цикл по полученным битам переменной X
for i:= 1 to 64 do
begin
// Накладываем битовую маску для выделения бита с поряковым номером 0
bit:= x and 1;
// нашли логический диск...
if bit = 1 then
begin
// определяем тип логического диска
tp:= GetDriveType(PChar(Chr(64 + i) + ':'));
if tp = DRIVE_FIXED then
// если диск не является системным
if Chr(64 + i) <> Copy(sd, 1, 1) then
begin
Result:= Chr(64 + i) + ':';
Break;
end;
end;
// побитовый сдвиг вправо
x:= x shr 1;
end;
end;
Function StringToArray(Text, Cut: String): array of String; var i, k: Integer;
Begin
SetArrayLength(Result, 0); if Cut = '' then Cut:= #1310; //если шаблон пуст, считаем переводы строк
Repeat k:= Pos(Cut,Text);
if k = 1 then begin Delete(Text, 1, Length(Cut)); CONTINUE
end;
SetArrayLength(Result, GetArrayLength(Result) +1); i:= GetArrayLength(Result) -1;
if k = 0 then
Result[i]:=Text
else begin
Result[i]:= Copy(Text, 1, k -1); Delete(Text, 1, Length(Result[i]) + Length(Cut));
end;
Until Length(Text) * k = 0;
End;
function NextButtonClick(CurPageID: Integer): Boolean;
var
i,j: integer;
s,c: string;
begin
Result := True;
if CurPageID = wpSelectDir then
begin
c := 'АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя';
for i:=1 to length(WizardForm.DirEdit.text) do
for j:=1 to length(c) do
begin
if WizardForm.DirEdit.text[i] = c[j] then
begin
s := 'В пути установки присутствуют русские буквы, что недопустимо.'#13#13'Пожалуйста, повторите ввод.';
MsgBox(s, mbError, mb_Ok);
Result := False ;
exit;
end
else Result := True;
end;
end;
end;



procedure FindFiles(FromDir: String; Mask: String);
var FSR, DSR: TFindRec; FindResult: Boolean;
begin
FindResult:= FindFirst(AddBackslash(FromDir)+Mask, FSR)
while FindResult do begin
if FSR.Attributes and FILE_ATTRIBUTE_DIRECTORY = 0 then begin
S:= S + AddBackslash(fromDir) + FSR.Name +'|';
end;
FindResult:= FindNext(FSR);
end;
FindResult:= FindFirst(AddBackslash(FromDir)+ '*.*', DSR)
while FindResult do begin
if ((DSR.Attributes and FILE_ATTRIBUTE_DIRECTORY) = FILE_ATTRIBUTE_DIRECTORY) and not ((DSR.Name = '.') or (DSR.Name = '..')) then begin
FindFiles(AddBackSlash(FromDir)+DSR.Name, Mask)
end;
FindResult:= FindNext(DSR);
end;
FindClose(FSR); FindClose(DSR)
end;

procedure RecodeOgg;
var ResultCode: integer; CurFile: String;
begin
WizardForm.ProgressGauge.Style:= npbstNormal;
FindFiles(ExpandConstant('{app}'), '*.ogg') //Находим все файлы по маске, в выбранной папке
Files:= StringToArray(S, '|') //Переводим в массив
WizardForm.ProgressGauge.Max:= GetArrayLength(Files)-1; //Получаем кол-во файлов
WizardForm.ProgressGauge.Position:=0
for n:=(GetArrayLength(Files)-1) downto 0 do begin
CurFile:= Files[n]
StringChange(CurFile, AddBackslash(ExpandConstant('{app}')), '')
Exec(ExpandConstant('{app}\oggdec.exe'), '-Q '+AddQuotes(CurFile), '', SW_Hide, EwWaitUntilTerminated, ResultCode) //Для каждого файла запускаем декодер
DeleteFile(Files[n]) //Удаляем ненужный файл
WizardForm.FilenameLabel.Caption:= Files[n]; //Двигаем прогрессбар
WizardForm.ProgressGauge.Position:= WizardForm.ProgressGauge.Position +1;
end;
DeleteFile(ExpandConstant('{app}\oggdec.exe'))
end;

procedure GetFreeSpaceCaption(Sender: TObject);
var
Path: String;
begin
Path := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Path, True, FreeMB, TotalMB);
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled := False else
WizardForm.NextButton.Enabled := True; end;

procedure GetNeedSpaceCaption;
begin
if NeedSize > 1024 then
NeedSpaceLabel.Caption := 'Требуется как минимум '+ FloatToStr(round(NeedSize/1024*100)/100) + ' Гб свободного дискового пространства.' else
NeedSpaceLabel.Caption := 'Требуется как минимум '+ IntToStr(NeedSize)+ ' Мб свободного дискового пространства.';
end;


Function ByteOrTB(Bytes: Extended; noMB: Boolean): String; { Перевод числа в значение бт/Кб/Мб/Гб/Тб (до 3х знаков после запятой)}
Begin
if not noMB then Result:= FloatToStr(Int(Bytes)) +' Мб' else
if Bytes < 1024 then Result:= FloatToStr(Int(Bytes)) +' Бт' else
if Bytes/1024 < 1024 then Result:= FloatToStr(round((Bytes/1024)*10)/10) +' Кб' else
If Bytes/oneMB < 1024 then Result:= FloatToStr(round(Bytes/oneMB*100)/100) +' Мб' else
If Bytes/oneMB/1000 < 1024 then Result:= FloatToStr(round(Bytes/oneMB/1024*1000)/1000) +' Гб' else
Result:= FloatToStr(round(Bytes/oneMB/oneMB*1000)/1000) +' Тб'
StringChange(Result, ',', '.')
End;

Function DelSP(String: String): String; { Удаление начальных, конечных и повторных пробелов }
Begin while (Pos(' ', String) > 0) do Delete(String, Pos(' ', String), 1); Result:= Trim(String); End;

Function CutString(String: String; MaxLength: Longint): String; { Обрезать строку до заданного кол-ва символов}
Begin
if Length(String) > MaxLength then Result:= Copy(String, 1, 6) +'...'+ Copy(String, Length(String) - MaxLength +9, MaxLength)
else Result:= String;
End;

Procedure GetDiskInfo(Disk: String);
Begin
FileSystemName:= StringOfChar(' ', 32); VolumeName:= StringOfChar(' ', 256);
GetVolumeInformation(Disk, VolumeName, 255, VolumeSerialNo, MaxComponentLength, FileSystemFlags, FileSystemName, 31);
FileSystemName:= DelSp(FileSystemName); VolumeName:= DelSp(VolumeName); if VolumeName='' then VolumeName:='без метки';
End;

Procedure ListBoxRefresh; var FreeB, TotalB: Cardinal; Path, String: string; Begin
ListBox.Items.Clear
for n:= 1 to 31 do // диск 'А' пропустить
if (GetLogicalDrives and (1 shl n)) > 0 then
if (GetDriveType(Chr(ord('A') + n) +':\') = 2) or (GetDriveType(Chr(ord('A') + n) +':\') = 3) then
if GetSpaceOnDisk(Chr(ord('A') + n) +':\', True, FreeMB, TotalMB) then ListBox.Items.Add(Chr(ord('A') + n) +':');
for n:= 0 to ListBox.Items.Count -1 do begin
Path:= Copy(ListBox.Items[n],1,2) +'\' { если в накопителе нет диска, пропустить обновление }
if GetSpaceOnDisk(Path, False, FreeB, TotalB) and GetSpaceOnDisk(Path, True, FreeMB, TotalMB) then begin GetDiskInfo(Path);
if FreeB >= $7FFFFFFF then String:= PadL(ByteOrTB(FreeMB*oneMB, true),10) else String:= PadL(ByteOrTB(FreeB, true),10);
if TotalB >= $7FFFFFFF then begin TotalB:= TotalMB; FreeB:= FreeMB; String:= PadL(ByteOrTB(TotalMB*oneMB, true),11) +' всего -'+ String end else String:= PadL(ByteOrTB(TotalB, true),11) +' всего| '+ String;
ListBox.Items[n]:= Copy(Path,1,2) + String + PadL(FloatToStr(round(FreeB/TotalB*100)),3)+ '% своб|'+ PadL(FileSystemName,5)+ '| '+ CutString(VolumeName,9); end; end;
End;

Procedure ObjectOnClick(Sender: TObject); Begin
Case TObject(Sender) of
ListBox: for n:= 0 to ListBox.Items.Count-1 do if ListBox.Selected[n] then WizardForm.DirEdit.Text:= Copy(ListBox.Items[n],1,1) +Copy(WizardForm.DirEdit.Text, 2, Length(WizardForm.DirEdit.Text))
StartMenuTreeView: if StartMenuTreeView.Directory <> '' then WizardForm.GroupEdit.Text:= StartMenuTreeView.Directory else WizardForm.GroupEdit.Text:= '{#SetupSetting("DefaultGroupName")}'
WizardForm.NoIconsCheck: begin WizardForm.GroupEdit.Enabled:= not(WizardForm.GroupEdit.Enabled); StartMenuTreeView.Enabled:= WizardForm.GroupEdit.Enabled; WizardForm.GroupBrowseButton.Enabled:= WizardForm.GroupEdit.Enabled end;
end; End;

procedure InitializeWizard1();
begin
with WizardForm do begin
with MainPanel do
Height := Height - 1;
with WizardSmallBitmapImage do begin
Left := 0;
Top := 0;
Height := 58; //Размер рисунка
Width := 497; //
end;
with PageNameLabel do begin
Width := Width - 497; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 497; //
end;
with PageDescriptionLabel do begin
Width := Width - 497; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 497; //
end;
end;
end;

procedure InitializeWizard2();
begin
NeedSize := 2500; //Здесь указывается место для приложения
WizardForm.DiskSpaceLabel.Hide;
NeedSpaceLabel := TLabel.Create(WizardForm);
with NeedSpaceLabel do
begin
Parent := WizardForm.SelectDirPage;
Left := ScaleX(0);
Top := ScaleY(220);
Width := ScaleX(209);
Height := ScaleY(13);
end;
ListBox:= TListBox.Create(WizardForm)
ListBox.SetBounds(WizardForm.DirEdit.Left, WizardForm.DirEdit.Top + WizardForm.DirEdit.Height + 8, WizardForm.DirBrowseButton.Left + WizardForm.DirBrowseButton.Width - WizardForm.DirEdit.Left, WizardForm.DiskSpaceLabel.Top - (WizardForm.DirEdit.Top + WizardForm.DirEdit.Height + 12))
ListBox.Font.Size:= 9
ListBox.Font.Style:= []
ListBox.Font.Name:= 'Courier New';
ListBox.OnClick:= @ObjectOnClick;
ListBox.Parent:= WizardForm.SelectDirPage;
WizardForm.DirEdit.OnChange := @GetFreeSpaceCaption;
WizardForm.DirEdit.Text := WizardForm.DirEdit.Text + #0;
end;

procedure CurPageChanged1(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then
begin
GetNeedSpaceCaption;
if FreeMB < NeedSize then
WizardForm.NextButton.Enabled:=False
ListBoxRefresh
end;
end;

procedure InitializeWizard3();
begin
WizardForm.TYPESCOMBO.Visible:= false;
WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + WizardForm.ComponentsList.Top - WizardForm.TYPESCOMBO.Top;
WizardForm.ComponentsList.Top := WizardForm.TYPESCOMBO.Top;
WizardForm.ComponentsList.Width := ScaleX(200);
InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectComponentsPage;
InfoPanel.Caption := '';
InfoPanel.Top := WizardForm.ComponentsList.Top;
InfoPanel.Left := ScaleX(216);
InfoPanel.Width := ScaleX(200);
InfoPanel.Height := WizardForm.ComponentsList.Height;
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectComponentsPage;
InfoCaption.Caption := 'Описание';
InfoCaption.Left := ScaleX(224);
InfoCaption.Top := InfoPanel.Top - ScaleY(5);
InfoCaption.Font.Color := clActiveCaption;
Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(6);
Info.Width := ScaleX(188);
Info.Top := ScaleY(12);
Info.Height := WizardForm.ComponentsList.Height - ScaleY(18);
Info.Caption := 'Переместите ваш указатель мыши на компоненты чтобы увидеть их описание.';
Info.WordWrap := true;
//Впишыте описание компонентов
enabledesc(WizardForm.ComponentsList.Handle,Info.Handle,
'Выберите тип установки;'+ //Game\
'Произвести полную установку игры.;'+ //Game\Full
'Выберите этот пункт, если вы хотите не установить игру, а только локализировать уже установленную. Перед выбором этого пункта, убедитесь, что на предыдущей странице, вы выбрали папку, в которой уже содержится установленный StarCraft или BroodWar.;'+ //Game\Lokal

'Выберите язык озвучки монологов юнитов;'+ // SoundUnit
'Английская озвучка;'+ // SoundUnit\eng
'Французская озвучка;'+ // SoundUnit\fra
'Немецкая озвучка;'+ // SoundUnit\deu
'Итальянская озвучка;'+ // SoundUnit\ita
'Испанская озвучка;'+ // SoundUnit\spa
'Украинская, шуточная озвучка, с ненормативной лексикой;'+ // SoundUnit\ukr
'Выберите локализатора;'+ // SoundUnit\rus
'Качественная, русская озвучка от Tycoon, также издаваемая фирмой RP Collection;'+ // SoundUnit\rus\Tycoon
'Локализация от фирмы Фаргус, из классического StarCraft;'+ // SoundUnit\rus\Fargus1
'Локализация от фирмы Фаргус, из продолжения StarCraft - Brood War;'+ // SoundUnit\rus\Fargus2
'Локализация из StarCraft 2, выполненная фирмой СофтКлаб;'+ // SoundUnit\rus\SC2
'Шуточная локализация от неопознанной фирмы. Известна под народным названием "С огоньком";'+ // SoundUnit\rus\Ogon
'Локализация от фирмы 7Волк;'+ // SoundUnit\rus\7Wolf
'Созданная группой старкрафтеров-энтузиастов из Мордовии, нецензурная озвучка в стиле "Гоблина". Некоторые фразы юнитов, взяты из локализации 7Волк.;'+ // SoundUnit\rus\7Wolf

'Культовая компьютерная игра, в жанре стратегии в реальном времени, разработанная и изданная компанией Blizzard Entertainment в 1998 году.;'+ //StarCraft

'Выберите язык внутриигрового текста;'+ //Text
'Английский текст;'+ // Text\eng
'Французский текст;'+ // Text\fra
'Немецкий текст;'+ // Text\deu
'Итальянский текст;'+ // Text\ita
'Испанский текст;'+ // Text\spa
'Украинский, шуточный перевод;'+ // Text\ukr
'Выберите локализатора;'+ // Text\rus
'Качественная локализация от Frezzze, версии 1.5.2;'+ // Text\rus\Freze
'Локализация от фирмы Tycoon;'+ // Text\rus\Stream
'Локализация от фирмы Фаргус;'+ // Text\Fargus
'Шуточная локализация. Для StarCraft, выполнена локализация от неопознанной фирмы, которая известна под народным названием "С огоньком". Для BroodWar, включена локализация от 7Волк.;' // Text\Ogon

);
end;



function ShouldSkipPage(CurPage: Integer): Boolean;
begin
if Pos('/SP-', UpperCase(GetCmdTail)) > 0 then
case CurPage of
wpLicense, wpPassword, wpInfoBefore, wpUserInfo,
wpSelectDir, wpSelectProgramGroup, wpInfoAfter:
Result := True;
end;
end;

const
WM_LBUTTONDOWN = 513;
WM_LBUTTONUP = 514;

procedure InitializeWizard4();
begin
if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) then
begin
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONDOWN,0,0);
PostMessage(WizardForm.NextButton.Handle,WM_LBUTTONUP,0,0);
end;
end;

procedure CurPageChanged2(CurPageID: Integer);
begin
if (Pos('/SP-', UpperCase(GetCmdTail)) > 0) and
(CurPageID = wpSelectComponents) then
WizardForm.BackButton.Visible := False;
end;


//Проверка на оставшыеся файлы
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Res: Integer;
begin
case CurUninstallStep of
usPostUninstall:
begin
if DirExists(ExpandConstant('{app}')) then
if ExpandConstant('{language}') = 'ua' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не порожня.'#13#13 +
'"Так" – повне видалення всіх файлів у папці, включаючи саму папку.' #13#13 +
'"Ні" – відкрити папку в провіднику, щоб вручну видалити файли.'#13#13 +
'"Скасувати" – нічого не робити, видалити папку пізніше самостійно.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не видалена.' #13#13 'Папка або один з файлів у ній задіяні іншою програмою.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Помилка відкриття.' #13#13 'Папка не знайдена.', mbError, MB_OK);

IDCANCEL:;
end
else
if ExpandConstant('{language}') = 'ru' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не пуста.'#13#13 +
'"Да" – полное удаление всех файлов в папке, включая саму папку.' #13#13 +
'"Нет" – открыть папку в проводнике, чтобы вручную удалить файлы.'#13#13 +
'"Отмена" – ничего не делать, удалить папку позже самостоятельно.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не удалена.' #13#13 'Папка или один из файлов в ней задействованы другим приложением.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Ошибка открытия.' #13#13 'Папка не найдена.', mbError, MB_OK);

IDCANCEL:;
end
else
case MsgBox('Directory "' + ExpandConstant('{app}') + '" is not empty.'#13#13 +
'"Yes" to delete all of the files in the directory, including the directory itself.' #13#13 +
'"No" to open the directory with explorer to delete the files manually.'#13#13 +
'"Cancel" to do nothing and delete the directory later manually.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Directory is not deleted.' #13#13 'Directory or one of the files are used by the other application.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Error opening the directory.' #13#13 'Directory is not found.', mbError, MB_OK);

IDCANCEL:;
end
end
end
end;


function get_unique_random_number(X:byte):TRandNumbers;
var
A,b,c: string;
i,j,k:byte;
begin
For i:=1 to X do A:=A+chr(i);
B:='';
For i:=1 to X do begin
j:=Random(Length(A)-1)+1;
C:='';
B:=B + A[j];
for k:=1 to Length(A) do
if k<>j then C:=C+A[k];
A:=C;
end;
for i:=1 to X do Result[i]:=ord(B[i]);
end;

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
begin
currTime := currTime + 1;
if (currTime mod {#TIME_FOR_VIEW} = 0)
then begin
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_'+inttostr(bmp[currTime/{#TIME_FOR_VIEW}])+'.bmp'));
if (currTime/{#TIME_FOR_VIEW} = N1) then currTime:=0;
end;
end;


procedure InitializeWizard5;
begin
bmp:=get_unique_random_number(N1);
ExtractTemporaryFile('Image_'+inttostr(bmp[1])+'.bmp');

currTime := 0;

WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY(12);
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20);
WizardForm.ProgressGauge.Height := 16;
WizardForm.ProgressGauge.Hide;

WizardForm.StatusLabel.Parent := WizardForm;
WizardForm.StatusLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.StatusLabel.Left := ScaleX(10);
WizardForm.StatusLabel.Width := ScaleX(397);
WizardForm.StatusLabel.Hide;

SplashImage := TBitmapImage.Create(WizardForm);
SplashImage.Top := 0;
SplashImage.Left := 0;
SplashImage.Width := WizardForm.MainPanel.Width;
SplashImage.Height := WizardForm.Bevel.Top;
SplashImage.Parent := WizardForm.InnerPage;
SplashImage.Stretch := True;
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_'+inttostr(bmp[1])+'.bmp'));
SplashImage.Hide;
end;



procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
WizardForm.StatusLabel.Caption := 'Распаковка слайдов...';
for z:=2 to N1 do ExtractTemporaryFile('Image_'+inttostr(bmp[z])+'.bmp');
end;
if CurStep = ssPostInstall then begin
if (IsComponentSelected('SoundUnit\fra') or IsComponentSelected('SoundUnit\deu') or IsComponentSelected('SoundUnit\ita') or IsComponentSelected('SoundUnit\spa') or IsComponentSelected('SoundUnit\ukr') or IsComponentSelected('SoundUnit\rus') ) then begin
ChangeCaption('Конвертация монологов юнитов...');
RecodeOgg;
end; //if IsComponentSelected
if CurStep = ssPostInstall then RecodeOgg;
end; //CurStep = ssPostInstall
end;

procedure CurPageChanged3(CurPageID: Integer);
var
pfunc: LongWord;
begin
if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);
WizardForm.PageNameLabel.Visible := False;
WizardForm.PageDescriptionLabel.Visible := False;
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.ProgressGauge.Show;
WizardForm.StatusLabel.Show;
SplashImage.Show;
WizardForm.CancelButton.Enabled := True;
WizardForm.CancelButton.Top := WizardForm.Bevel.Top + ScaleY(100);
end else
begin
WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.FileNameLabel.Hide;
WizardForm.StatusLabel.Hide;
if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
begin
WizardForm.InnerNotebook.Show;
WizardForm.Bevel1.Show;
WizardForm.MainPanel.Show;
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
end;
If CurPageID = wpFinished then
end;
end;


procedure CurPageChanged4(CurPageID: Integer);
begin
if CurPageID = wpInstalling then
WizardForm.BeveledLabel.hide;
if CurPageID = wpInfoAfter then
WizardForm.BeveledLabel.show;
end;




procedure InitializeWizard;
begin
InitializeWizard1();
InitializeWizard2();
InitializeWizard3();
InitializeWizard4();
InitializeWizard5();
end;


procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
CurPageChanged3(CurPageID);
CurPageChanged4(CurPageID);
end;

procedure DeinitializeSetup();
begin
disabledesc();
KillTimer(0, TimerID);
end;

VASYAKRN
08-10-2011, 20:29
VinTagE понятно но если зайти на его сайт то там почти везде написано что он сделал скрипт из всех которых там есть »
если так то дай ссилки етих материалов

insombia
08-10-2011, 20:35
VASYAKRN легко

VASYAKRN
http://inno.at.ua/load/utility/game_stripts/assassins_creed_revelations_isdone_0_6b/9-1-0-177
http://inno.at.ua/load/utility/game_stripts/assasins_creed_bratherhood_1_1_1_0_isdone0_6_by_vasyakrn/9-1-0-160
http://inno.at.ua/load/utility/game_stripts/f_e_a_r_3/9-1-0-131
http://inno.at.ua/load/utility/game_stripts/devil_3/9-1-0-76
+ спи**ил мой скрипт и не удаляешь со своего сайта




© OSzone.net 2001-2012