Войти

Показать полную графическую версию : Скрипты 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

Gnom_aka_Lexander
25-03-2012, 12:10
Johny777, Создавай объект NewCheckListBox. пример создания и добавления элементов можно посмотреть в Example_NewCheckListBox.iss. при его заполнении нужно сперва удалить все элементы : CheckListBox.Items.Free;
Только хоть массивом в цикле, хоть чеклистбоксом, все равно нужно проверку довольно сложную делать.
Еще вариант - создать сразу все чекбоксы, при сокрытии все остальные чекбоксы сдвигать вверх на заданный шаг.расстоянием скажем в 10 пикселем »
Высота по умолчанию - 14, значит шаг будет 24 у тебя.

Johny777
25-03-2012, 15:56
при сокрытии все остальные чекбоксы сдвигать вверх на заданный шаг. »
это то и проблема
логики не хватает
или прописывать 30-40 комбинаций для (у меня 6-7 задач максимум)
дыры будут, а от всяких ListBox ов у себя в скрипте отказался, тк с отдельными элементами работать легче
да и при скине чекбоксы в ListBox-е виндовсовские а не со скина,
ладно
думаю как на авторане можно сделать просто неактивными

Ivan_009
25-03-2012, 18:24
Какая фукция в ISDone вызывает откат установки подскажите пожалуйста

Ivan_009
25-03-2012, 20:23
Как мне сменить надпись на установить

Johny777
25-03-2012, 22:42
Ivan_009,
идёшь в директорию ...\Inno Setup 5\Languages
в ней открываешь блокнотом Russian.isl, а там весь диалог инсталла, расписанный по разделам
; *** "Select Additional Tasks" wizard page
SelectTasksLabel2=Выберите дополнительные задачи, которые должны выполниться при установке [name], после этого нажмите «Далее»:
....
из справки мы узнаём о секции [Messages] (Секция [Messages] используется для определения текста сообщений в инсталляторе и деинсталляторе.) и получаем:


[Messages]
SelectTasksLabel2=Выберите дополнительные задачи, которые должны выполниться при установке [name], после этого нажмите «Установить»:

а можно так, если языков больше одного

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

[Messages]
Russian.SelectTasksLabel2=Выберите дополнительные задачи, которые должны выполниться при установке [name], после этого нажмите «Установить»:
English.SelectTasksLabel2=Select the additional tasks you would like Setup to perform while installing [name], then click Install.


________________
вот на всякий случай русская справка http://rghost.ru/37221111

brauni
26-03-2012, 15:03
Уважаемые форумчане! Помогите начинающему разобраться с проблемой. Мне было нужно создать простой инсталятор для игры (700Мб) с использованием модуля распаковки архивов FreeArc. За основу был взят шаблон FreeArc_Example (секция [Code] была перенесена без изменений). Вот что у меня получилось: см. вложение.
Скрипт получился вроде рабочий: инсталлятор создавался, компиляция проходила без сообщений о ошибках. Но в готовом инсталяторе обнаружилась проблема - распаковка архива (datapack.arc) происходит только когда инсталятор находится в той-же папке где был собран (т.е. в папке с файлами игры, скриптом и unarc.dll. При переносе инсталятора в другое место и его запуске оттуда - распаковка архива не происходит. Подскажите пожалуйста - где и в чем я ошибся.

PS: Пользуюсь IS v5.2.3.0 (ansi) c ISPP.

Johny777
26-03-2012, 16:16
Подскажите пожалуйста - где и в чем я ошибся. »
ни в чём!
вот смотри

[Code]
const
Archives = '{src}\*.arc'; // укажите расположение архивов FreeArc; для внешних файлов строку в [Files] добавлять

здесь идёт поиск архива по расширению \*.arc
{src} это константа пути и означает "снаружи"
если написать {src}\data\*.arc , то ахивы лежат в папке data, которая лежит рядом с setup.exe
в этих примерах ты таскаешь архив вместе с инсталлятором!

brauni
26-03-2012, 19:36
здесь идёт поиск архива по расширению \*.arc
{src} это константа пути и означает "снаружи"
если написать {src}\data\*.arc , то ахивы лежат в папке data, которая лежит рядом с setup.exe
в этих примерах ты таскаешь архив вместе с инсталлятором! »

Намек понял! Заменил в указанной строке константу {src} на {app} и инсталятор начал распаковывать архив вне зависимости от своего местоположения (что и требовалось). СПАСИБО!!!

Ivan_009
28-03-2012, 15:54
как можно сделать в isSlideShow v1.02 в первом примере где слайд шоу на весь экран показ слайдов не по процентам а по времени. Мне нужно для ISDone.. :help:

rasim933
28-03-2012, 19:00
Помните мою антологию? Мне почти удалось всё сделать)))) ТОлько опять, не все игры помещяются на 4 дисках. Кто-то сможет мне помочь сделать репак игры которая весить 1,75 ГБ? Мне только нужно её перепаковать и при этом разделить на файлы весом 100 мб каждый. Кто-то поможет это всё проделать или предложите ещё какие-нибудь варианты?

alert30
28-03-2012, 20:33
rasim933, возможно UPX по-может, но причины при запуске инсталлятора бывают разные...
[hr]
Кстати, можно убрать галочку "Использовать загрузчик"; а сами форматы BIN'ы - само надо разбираться.

Gnom_aka_Lexander
28-03-2012, 20:51
и при этом разделить на файлы весом 100 мб »
Если вопрос касается Inno Setup, то ответ - пожалуйста:
[Setup]
DiskSpanning=True
DiskSliceSize=104857600 - разбиение на части, по 100 мегабайт каждая.
если тебе это нужно делать не с помощью Inno Setup, то ты ошибся темой...

rasim933
28-03-2012, 23:32
Не, насчёт разбивания, этот код непоможет, как мне кажется. Я пробовал уже так, я запоковал установщик игры, протом его приходилось распаковывать сам установщик, а затем устнавливать игру. Я неправильно сделал?

Или мне прийдётся сначала установить игру, потом вес файлы упаковывать заново?

Johny777
28-03-2012, 23:56
весом 100 мб каждый »
тебе Лександер да рабочую настройку разбиения по 100 метров на .bin
Не пойму
Тебе не удаётся ужать до этого размера?
которая весить 1,75 ГБ »
попробуй стандартными средствами
вот настройка на максимальное сжатие
сожми сначала со словарём 262144, а потом с 131072 и посмотри. Если не получится, то используй фриарк

Compression=lzma2/ultra64
LZMAUseSeparateProcess=yes
LZMAMatchFinder=BT
LZMANumFastBytes=273
LZMADictionarySize=262144
///LZMADictionarySize=131072
InternalCompressLevel=ultra64
SolidCompression=true
MergeDuplicateFiles=true

SolidCompression не используй, если есть выбор компонентов

al70
29-03-2012, 00:05
Всем доброго времени суток.
У меня вопрос. Мне нужно вызвать ф-ю из DLL после установки приложения, но перед появлением окна Finish. Причем вызов должен происходить только во время установки, а не деинстала приложения. Сам процесс вызова ф-ии я знаю, а вот как поймать нужный момент?

R.i.m.s.k.y.
29-03-2012, 08:06
al70, использовать CurStep = ssPostInstall или CurStep = ssDone
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
MsgBox('это шаг ssPostInstall', mbInformation, MB_OK);
твоя_функция;
end;
if CurStep = ssDone then
begin
MsgBox('это шаг ssDone', mbInformation, MB_OK);
твоя_функция;
end;
end;

R.i.m.s.k.y.
29-03-2012, 15:30
Ivan_009, ну типа опа, нюхай сюдой
Риальне поцанчеги никада, слыш бро, никагда не ставят на программерских и админских тачилах по-умолчанию русскую раскладку потому кактаместь такое западло как буковка цэ, с то есть. це буква выглядит одинаково на обоих мовах, но компилятор он же сцукотупой как мой трындец и не понимает етого и вопит как касперский над стухнетом.
А истчо бывает такое что на пацанских форумах, к примеру как этот да, когда братишки друг другу хелпают, тег (во слово-заумь Э!) [code] подменяют на [*code] или [_code] чтобы пихло форума схарчило подгон как надо, форум он же брат по разуму компилятора не жди от что он щаз дипблю порвет как [П] на выборах
Так что сотри эту строчку, копирни [code], вставь и будет тебе хэппи, ну до следующей ошибки

PS какой квесчен такой и ансвер

==============
как грится вместо тысячи слов один скриншот ошибки

R.i.m.s.k.y.
29-03-2012, 15:45
Ivan_009,
да я тоже твой вопрос не очень понял
скрин/текст ошибки покажи

R.i.m.s.k.y.
29-03-2012, 16:08
Ivan_009
1. как ни странно - понять, самому, исходя из факта что Inno при компиляции идет сверху вниз
2. писать по русски

rasim933
29-03-2012, 17:02
Предположим, есть файл setup.exe, он весит 1,75 гб. Я его через инно перезжимаю. В конце получается setup1.exe + setup1 (1).bin + setup1 (2).bin +setup1 (3).bin +.... При желании установить игру, мне надо из setup1.exe распаковать setup.exe, а потом из этого setup.exe установить игру. Меня это неустраивает. Понимаете что именно я хочу сделать?




© OSzone.net 2001-2012