PDA

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


Страниц : 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

Gugle
03-02-2012, 16:06
R.i.m.s.k.y., да нет. Я имел ввиду, что мне надо было архивировать файлы, которые ложатся в backup, после установки софта.

Вот нашел (http://soar.name/2011/06/innosetup-archive-manager/#.TyvMIYFvpzY) Сейчас попробую как работает. Отпишусь в своем же сообщении.

Работает.
Есть прогресс бар.

alert30
03-02-2012, 16:06
Ты ломать крушить мой мозг любвеобильно и ясно »
Отредактировал. Что-то я быстро перенажал клавишу... :)

TROY Diamond
03-02-2012, 18:02
Как в патче для игры Сталкер реализованы несколько индикаторов процесса?

http://i32.fastpic.ru/big/2012/0203/86/c2ac6d0b81142895a2f30898b247c486.png (http://fastpic.ru/) http://i29.fastpic.ru/big/2012/0203/32/2563c6b1740c99c6fafea2a4b1e3f332.png (http://fastpic.ru/) http://i29.fastpic.ru/big/2012/0203/d0/cda8533c7ed5d16a838aaf506da02ed0.png (http://fastpic.ru/)

"По очереди появляются несколько индикаторов": отдельно для распаковки, для обновления и для регистрации.
Т.е. сначала файлы распаковываются "полоска доходит до конца", потом "полоска по новой" для обновления и ещё раз для регистрации.

Почему в оригинальном установщике шрифт текста Лицензионного соглашения более "аккуратный, компактный и чёткий", чем в моём?
(1 - оригинал, 2 - мой):

http://i29.fastpic.ru/big/2012/0203/20/d125050faf222caa78a82c52bac66520.png (http://fastpic.ru/) http://i27.fastpic.ru/big/2012/0203/89/87035d50bf68ecda4e0312fab20cc689.png (http://fastpic.ru/)

Текст в обычном *.txt, а не *.rtf, - можно ли его как-нибудь "настроить"?

alert30
03-02-2012, 19:34
TROY Diamond, изменить запросто, просто открой Inno Setup 5.4.3 (РАСШИРЕННАЯ), открой скрипт ISS, редактор форм, и найди типа "License" и удачи изменить шрифты...

wdmitriy
04-02-2012, 01:39
Ребят подскажите кто может у меня такая проблема переделал скрипт от "Killer" Установка проходит успешно а вот при удалении выскакивает ошибка Runtime Error (at 170:5712): Could not call proc. после нажатия на "ок" выскакивает следующая Runtime Error (at 213:5): Could not call proc. и на этом все ничего не удаляеться уже весь скрипт перелопатил в чем проблема понять не могу зарание спасибо за ответ!!

Johny777
04-02-2012, 02:09
wdmitriy,
скин к деинсталятору пришивал?
если да, то вот правильный код-пример:

[Files]
Source: ISSkin.dll; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system; /// в папку установи
Source: steam.cjstyles; DestDir: {app}; Flags: ignoreversion; Attribs: hidden system; /// в папку установки
/// если используешь скин на самом инсталяторе, то эти же две строки, только в темп
/// Source: ISSkin.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression
/// Source: steam.cjstyles; DestDir: {tmp}; Flags: ignoreversion dontcopy nocompression

[_Code]
procedure LoadSkinA(lpszPath: String; lpszIniFileName: String ); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload uninstallonly';

function InitializeUninstall(): Boolean;
begin
FileCopy(ExpandConstant('{app}\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
FileCopy(ExpandConstant('{app}\steam.cjstyles'), ExpandConstant('{tmp}\steam.cjstyles'), False);
LoadSkinA(ExpandConstant('{tmp}\steam.cjstyles'), '');
Result:=True;
end;

Gnom_aka_Lexander
04-02-2012, 10:38
Runtime Error (at 213:5) »
213-я строка 5-й символ.
А вообще - Could not call proc означает обращение к объекту до его создания. Чаще всего. Без скрипта - больше никто и ничего не сможет тебе подсказать, что тебе действительно помогло-бы. Хотя желающих пофлудить на тему нарушения тобой элементарных правил постановки вопроса - найдется множество. Но большинство удержит себя в руках.

Johny777
04-02-2012, 14:13
скажите пожалуйста
если создать один чекбокс и например 3 радио кнопки, то чтобы сделать эти радиокнопки дочерними (как с компонетами 1, 1\1, 1\2) нужно настраивать Tab Order?
например у чекбокса Tab Order 0, а у радиокнопок 1

alert30
04-02-2012, 14:49
Johny777, то есть, к примеру если чекбокс не галична (не активируется галочкой), то эти радиобуттоны не активны я так полагаю?

Johny777
04-02-2012, 15:10
alert30,
да
видишь ли
у меня косяк с RunList-ом на последней странице
устанавливаются 4 игры и в конце четыре чебокса
выбираются все одновременно, а надо, чтоб по очереди
флаг "эксклюзив" не действует в секции RUN, вот и прикидываю, чтоб как-то сделать так:
http://rghost.ru/36333884/image.png (http://rghost.ru/36333884.view)
здесь
http://rghost.ru/36333900/image.png (http://rghost.ru/36333900.view)
те пустой чекбокс "запустить" и радиобаттоны
скрип с нуля делаю сначала на game script generator от South
раньше эти чекбоксы были как бы "эксклюзивными"
а сейчас нет
где ошибся понять не могу


отбой,
примерно вот так будет эксклюзивный выбор на RunList-е
procedure RunListClickCheck(Sender: TObject);
var
i:integer;
begin
if WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex] then begin
for i:=0 to WizardForm.RunList.Items.Count-1 do
WizardForm.RunList.Checked[i]:=False;
WizardForm.RunList.Checked[WizardForm.RunList.ItemIndex]:=True;
end;
end;

procedure InitializeWizard;
begin
WizardForm.RunList.OnClickCheck:=@RunListClickCheck;
WizardForm.TypesCombo.ItemIndex:=0;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if (CurPageID=wpFinished) or (CurPageID=wpInfoAfter) then
WizardForm.RunList.Checked[0]:=True;
end;

но хотелось бы всё таки узнать насчёт TabOrder

STRAYKER
04-02-2012, 16:57
Помогите, как сделать в скрипте что бы были дополнительные голочки по поводу установки дополнительного ПО?

R.i.m.s.k.y.
04-02-2012, 18:09
STRAYKER, может в справке поглядеть?
[Tasks]
Name: vcredist; Description: MS Visual C++ 2008; GroupDescription: Доп.ПО

[Run]
Tasks: vcredist; Filename: {app}\VCRedist2008\vcredist_x86.exe; WorkingDir: {app}\VCRedist2008; Description: MS Visual C++ 2008; Flags: waituntilterminated

leshcat
05-02-2012, 02:36
Привет всем!

Странное дело:

function InitializeSetup(): Boolean;
var
path, RegValue, TmpFileName,TmpFileName2,ExecStdout: String;
ErrorCode, Messages, Messages2: Integer;
begin
Result:= True;


TmpFileName := ExpandConstant('{tmp}') + '\A.txt';
TmpFileName2 := ExpandConstant('{tmp}') + '\B.txt';

Exec('cmd.exe', ..+ TmpFileName +... , ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ErrorCode);
LoadStringFromFile(TmpFileName, ExecStdout);

Чето там с ним делается.

Потом:

Exec('cmd.exe', ..+ TmpFileName2 +... , ExpandConstant('{tmp}'), SW_HIDE, ewWaitUntilTerminated, ErrorCode);
LoadStringFromFile(TmpFileName2, ExecStdout);

Проблема в следующем:
TmpFileName2 := ExpandConstant('{tmp}') + '\B.txt'; ----> не создается ни под каким предлогом, хотя A файл всегда.

В чем проблема?

SARATOVSKY
05-02-2012, 18:05
Здравствуйте, ребят подскажите как создать инсталл с выборочной установкой. К примеру у меня в инстале 11 частей игры и нужно чтобы какие части нужны те и должны отмечаться галочками. Ткните мне туда где это описано!

R.i.m.s.k.y.
05-02-2012, 18:13
SARATOVSKY,
Tasks (выше пример) и Components по аналогии

wdmitriy
06-02-2012, 07:01
как сделать чтобы видео проигрывалось на заднем фоне в окне инсталлятора за надписями, прогрес баром и тд.

master00778
06-02-2012, 15:08
помогить как сделать музыку в инсталляторе

nazbek010
06-02-2012, 16:29
Люди помогите как соединить эти 2 кода

procedure CurStepChanged(CurStep: TSetupStep);
var
FindFiles: TFindRec;
i: integer;
MyFiles: array of string;
MyDir, BackDir: string;
begin
if CurStep=ssInstall then begin
if MyTask.Checked then begin
MyFiles:=['*.vtx','*.','*.mdl','*.vvd','*.phy']; // указать файлы или маски нужные для бакупа через запятую. при указании маски '*' бакупятся все файлы с вложенными папками
MyDir:=ExpandConstant('{app}'+'\cstrike\models\weapons\'); //папка откуда бакупить
BackDir:=ExpandConstant('{app}'+'\Backup\'); // папка куда бакупить
for i:=0 to GetArrayLength(MyFiles)-1 do
begin
if FindFirst(MyDir+MyFiles[i], FindFiles) then begin
repeat
if not DirExists(BackDir) then begin
CreateDir(BackDir);
end;
MoveFile(MyDir+FindFiles.Name, BackDir+FindFiles.Name);
until not FindNext(FindFiles);
FindClose(FindFiles);
end;
end;
end;
end;
end;

и

procedure CurStepChanged(CurStep: TSetupStep);
begin
case CurStep of
ssInstall: begin
PercentsOldProc:=SetWindowLong(WizardForm.ProgressGauge.Handle,-4,CallBackProc(@PercentsProc,4));
if GetArrayLength(ADisk)>0 then begin
KillTimer(WizardForm.Handle,WFDiskTimerID);
SetArrayLength(ADisk,0);
end;
end;
ssPostInstall: SetWindowLong(WizardForm.ProgressGauge.Handle,-4,PercentsOldProc);
end;
end;

Dark_Delphin
06-02-2012, 18:23
master00778, вот пример. (http://rghost.ru/2565368)
Есть даже регулятор громкости.

valyok666
06-02-2012, 18:44
master00778, wdmitriy,
трудно в справку заглянуть или примеры в шапке???




© OSzone.net 2001-2012