Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
R.i.m.s.k.y.
09-10-2011, 13:45
Rikill, если есть папка D:\games - по умолчанию предлагать туда устанавливать (путь в окне выбора папки уже D:\Games\Игра), нету папки - в програмфилесы
Шрифты в обоих двух случаях отображаются нормально
Rikill, Эммм, Font_Classic.exe мой вариант ISFont.dll, да?
Протестировал всё работает нормально!
VinTagE, да. Это твой. Тебя указать в моём посте? Он не у всех работает.
Rikill, Тебя указать в моём посте?
Как хочешь =)
Он не у всех работает.
Хотя мне писали что "ISFont.dll" работает достаточно хорошо.
Raf-9600
09-10-2011, 14:41
значит не правильно сделал из простого инно в рестулз. » Верно, все работает. Но проблема теперь в том, что комментариями, закрываются сведения, о необходимом месте на винчестере. Может ктонить сделать, чтоб комментарии отображались не снизу, а в виде боковушки, как при использовании DescCtrl.dll ?
http://i27.fastpic.ru/thumb/2011/1009/1c/ccfeda2c8e48023d35f019a0d7c2d01c.jpeg (http://fastpic.ru/view/27/2011/1009/ccfeda2c8e48023d35f019a0d7c2d01c.jpg.html)
Raf-9600, InfoPanel и пр просто подвинь
Edison007
09-10-2011, 14:55
Друзья, Shegorat работает над библиотекой для правильного отображения шрифта в инсталляторе. Просим протестировать. В архиве два инсталлятора. Простой и от Shegorat. Напишите о результатах работ обеих библиотек! »
мне интересно, почему ты здесь об этом пишешь?
Edison007, меня Gnom попросил распространить.
Raf-9600
09-10-2011, 14:56
InfoPanel и пр просто подвинь »
Да-да, все проще чем я думал. Нужно просто значения из скрипта для DescCtrl.dll, перенести в текущий http://www.kolobok.us/smiles/light_skin/yahoo.gif
saha1010
09-10-2011, 18:19
Помогите пожал уста вставить 2 слова
НАд двумя строчками которые получаются в этом скрипте.
Введите желаемый ник !!!ТОЛЬКО ЦИФРАМИ или ЛАТИНСКИМИ БУКВАМИ!!
Введите любой пароль !!!ТОЛЬКО ЦИФРАМИ или ЛАТИНСКИМИ БУКВАМИ!!!
Как на рисунке .
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[code]
var
ISCustomPage1: TWizardPage;
key1: TNewEdit;
key2: TNewEdit;
key3: TNewEdit;
key4: TNewEdit;
user: TNewEdit;
procedure InitializeWizard();
begin
{ Creates custom wizard page }
ISCustomPage1 := CreateCustomPage(wpWelcome, 'Информация о пользователе', 'Пожалуйста, введите данные о себе.');
{ key1 }
key1 := TNewEdit.Create(WizardForm);
with key1 do
begin
Name := 'key1';
Parent := ISCustomPage1.Surface;
Left := ScaleX(48);
Top := ScaleY(136);
Width := ScaleX(65);
Height := ScaleY(21);
Text := '';
MaxLength := 4; // количество знаков
end;
{ key2 }
key2 := TNewEdit.Create(WizardForm);
with key2 do
begin
Name := 'key2';
Parent := ISCustomPage1.Surface;
Left := ScaleX(136);
Top := ScaleY(136);
Width := ScaleX(65);
Height := ScaleY(21);
Text := '';
MaxLength := 4;
end;
{ key3 }
key3 := TNewEdit.Create(WizardForm);
with key3 do
begin
Name := 'key3';
Parent := ISCustomPage1.Surface;
Left := ScaleX(224);
Top := ScaleY(136);
Width := ScaleX(65);
Height := ScaleY(21);
Text := '';
MaxLength := 4;
end;
{ key4 }
key4 := TNewEdit.Create(WizardForm);
with key4 do
begin
Name := 'key4';
Parent := ISCustomPage1.Surface;
Left := ScaleX(312);
Top := ScaleY(136);
Width := ScaleX(65);
Height := ScaleY(21);
Text := '';
MaxLength := 4;
end;
{ user }
user := TNewEdit.Create(WizardForm);
with user do
begin
Name := 'user';
Parent := ISCustomPage1.Surface;
Left := ScaleX(48);
Top := ScaleY(56);
Width := ScaleX(329);
Height := ScaleY(21);
Text := '';
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
Var
S1, S2: String;
begin
result:=true;
if CurPageID = wpReady then begin//запись после страницы готовности.
S1 := ExpandConstant(key1.Text+'-'+key2.Text+'-'+key3.Text+'-'+key4.Text);
RegWriteStringValue(HKLM, 'Software\GSC Game World\STALKER-COP', 'InstallCDKEY', S1);
RegWriteStringValue(HKLM, 'SOFTWARE\Wow6432Node\GSC Game World\STALKER-COP', 'InstallCDKEY', S1);
S2 := user.Text;
RegWriteStringValue(HKLM, 'Software\GSC Game World\STALKER-COP', 'InstallUserName',S2);
RegWriteStringValue(HKLM, 'SOFTWARE\Wow6432Node\GSC Game World\STALKER-COP', 'InstallUserName',S2);
end;
end; "читать дальше"
http://s017.radikal.ru/i437/1110/95/367b760f79b9t.jpg (http://radikal.ru/F/s017.radikal.ru/i437/1110/95/367b760f79b9.jpg.html)
valyok666
09-10-2011, 18:31
saha1010, так что лейблы не создать новые?
valyok666, боюсь он слов таких не знает...
valyok666
09-10-2011, 19:03
Rikill, ну я просто сказал стандартное слово=)
saha1010
09-10-2011, 19:54
valyok666Нет я не знаю что это но догадываюсь что наверно надпись внутри которая будет исчезать при наведении на неё. Думаю вам веднее как сделать лечше.
Gnom_aka_Lexander
09-10-2011, 20:41
Помогите пожал уста вставить 2 слова
НАд двумя строчками которые получаются в этом скрипте. »
Держи.
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[_code]
var
NickPage: TWizardPage;
key: array[0..3]of TNewEdit;
user: TNewEdit;
procedure InitializeWizard();
var
i1,i2:Integer;
begin
NickPage := CreateCustomPage(wpWelcome, 'Информация о пользователе', 'Пожалуйста, введите данные о себе.');
{ key }
for i1:=0 to 3 do begin
key[i1] := TNewEdit.Create(WizardForm);
with key[i1] do begin
Parent := NickPage.Surface;
SetBounds(ScaleX(48+88*i1),ScaleY(136),ScaleX(65),ScaleY(21));
MaxLength := 4; // количество знаков
end;
end;
{ user }
user := TNewEdit.Create(WizardForm);
with user do begin
Parent := NickPage.Surface;
SetBounds(ScaleX(48),ScaleY(56),ScaleX(329),ScaleY(21));
end;
for i2:=0 to 1 do
begin
with TLabel.Create(WizardForm) do begin
Parent := NickPage.Surface;
Transparent := True;
SetBounds(ScaleX(48),ScaleY(20+80*i2),ScaleX(329),ScaleY(30));
case i2 of
0:Caption := 'Введите желаемый ник'+#13#10+'!!!ТОЛЬКО ЦИФРАМИ или ЛАТИНСКИМИ БУКВАМИ!!';
1:Caption := 'Введите любой пароль'+#13#10+'!!!ТОЛЬКО ЦИФРАМИ или ЛАТИНСКИМИ БУКВАМИ!!!';
end;
Alignment := taCenter;
end;
end;
end;
function NextButtonClick(CurPageID: Integer): Boolean;
Var
S1, S2: String;
begin
result:=true;
if CurPageID = wpReady then begin//запись после страницы готовности.
S1 := ExpandConstant(key[0].Text+'-'+key[1].Text+'-'+key[2].Text+'-'+key[3].Text);
RegWriteStringValue(HKLM, 'Software\GSC Game World\STALKER-COP', 'InstallCDKEY', S1);
RegWriteStringValue(HKLM, 'SOFTWARE\Wow6432Node\GSC Game World\STALKER-COP', 'InstallCDKEY', S1);
S2 := user.Text;
RegWriteStringValue(HKLM, 'Software\GSC Game World\STALKER-COP', 'InstallUserName',S2);
RegWriteStringValue(HKLM, 'SOFTWARE\Wow6432Node\GSC Game World\STALKER-COP', 'InstallUserName',S2);
end;
end;
Хм, вобщем такой вопросец, как бы так написать скрипт чтобы по выбору устанавливалась нужная папка, тоесть имеем 2 папки имя у обеих base, но одна содержит файл zzpak_russian.pk4 который по сути является zip архивом, а другая содержимое этого файла 2 папки fonts и strings/ Иными словами нужно собрать так чтобы при установке был запрос ставить запакованые или распакованые ресурсы
Gnom_aka_Lexander
09-10-2011, 21:11
Photon9, Содержимое одной из этих папок, должно быть установлено в {app}\base я так понял?
Можно так:
[Files]
Source: base_packed\*; DestDir: {app}\base; Flags: recursesubdirs createallsubdirs; Components: res\pack
Source: base_UNpacked\*; DestDir: {app}\base; Flags: recursesubdirs createallsubdirs; Components: res\UNpack
[Components]
Name: res; Description: Ресурсы программы; Types: full
Name: res\pack; Description: Упакованные; Flags: exclusive
Name: res\UNpack; Description: неупакованные; Flags: exclusive Соответственно, в папку base_packed кладеш упакованные ресурсы (без подпапки base), а в папку base_UNpacked - неупакованные.
я смотрю тут есть несколько репакеров игр:
вот вы мучаетесь делаете скрипты с красивыми картинками, музыкой и прочим медиапр0ном, но не знаете чту нужно нам - игрофанам на самом деле, а нужно всего то найти папку d:\games и по-умолчанию предлагать ставить туда, а не с-програмфилесы
такая мелочь зарулит в минуса любую оформлялку, которая еще в половине случаев дает ошибки "Rage out of bounds" »
Есть отличный скрипт от Serega ; скрипт, который определяет логические диски на компьютере и предлагает установить на первый
; логический диск не являющийся системным (если их несколько, в противном случае будет предложен
; системный диск).
; Автор: Serega, http://forum.oszone.net/member.php?userid=88670
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={code:NoSD}\Games\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl
[_Code]
function GetLogicalDrives: DWORD; external 'GetLogicalDrives@kernel32.dll stdcall';
function GetDriveType(lpRootPathName: PChar): Cardinal; external 'GetDriveTypeA@kernel32.dll stdcall';
const
DRIVE_FIXED = 3;
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;
R.i.m.s.k.y.
10-10-2011, 07:22
nik1967, спасибо, но я не для себя, я внес предложение репакерам
R.i.m.s.k.y., странное предложение :) мне на цэ нравится ставить
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC