PDA

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


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

Irenis
23-08-2014, 12:51
Irenis, http://rghost.ru/57616167 »
Пробовала ваш скрипт и программа inno setup уже переустановлена, почему то у меня получается не setup-1.bin, setup-2.bin и т.д., а вот что получилось:

setup
setup-1a.bin
setup-1b.bin
setup-2a.bin

Никто не в курсе, от чего это зависит? Как сделать, чтоб все красиво выглядело? :)

vint56
23-08-2014, 13:16
Irenis, все правильно потому что идет деления на диски закаментируй ;SlicesPerDisk=2 и будет setup-1.bin setup-2.bin
1 диск
setup-1a.bin
setup-1b.bin
2 диск
setup-2a.bin и так далее

Kashtan007
23-08-2014, 14:56
Всем привет.
Нужна ваша помощь!

Первый вопрос:
На странице каталога нужно 2 чекбокса.
1 чекбокс - будет удалять содержимое в res_mods\0.9.2\* и удалять папку xvm по пути res_mods\xvm.
2 чекбокс - должен делать бекап папки res_mods, по пути IB\old_res_mods, а после удаление репака возвращал бекап в папку res_mods.
Как это реализовать?

Второй вопрос:
Как сделать, чтобы файлы unins000.exe помещало по пути IB\Uninstall\* ?

Третий вопрос:
У меня в репаке есть файл "bin" и в папке куда я ставлю репак он тоже есть. В следствии чего если я ставлю репак, то файл заменяется, а когда удаляешь репак то файл тоже удаляется и не запускается игра. Как сделать, чтобы когда устанавливаешь репак, то файл "bin" из папки куда ставишь репак копировался по пути IB\BackUp, а после удаление возвращался на свое место.

P.S. Пользуюсь юникодом. Всем заранее спасибо за помощь!

Irenis
24-08-2014, 13:41
Подскажите, что означает солидное сжатие SolidCompression? Точнее, для чего это нужно? И на что влияет? И что будет, если его вообще убрать из скрипта?

Nordek
24-08-2014, 15:52
что означает солидное сжатие »Для чиновников, с обстоятельным подходом.

SolidCompression? »Непрерывное сжатие.
Непрерывный архив
(https://ru.wikipedia.org/wiki/Непрерывный_архив)

Справка:
Inno Setup Help » Секция скриптов » Секция [Setup] » SolidCompression:

Возможные значения: yes или no

Значение по умолчанию: no

Описание:
При значении yes включается уплотненное сжатие. Результат такого сжатия будет лучше, особенно если инсталлятор содержит файлы одного типа и эти файлы сгруппированы в секции [Files]. Убедитесь, что Compression=lzma или Compression=bzip, т.к. zip (значение по умолчанию) не позволяет выгодно использовать уплотненное сжатие (потому что работает с меньшими блоками).

Неудобство использования уплотненного сжатия в состоится том, что так как все файлы сжаты единым потоком, инсталлятор не может беспорядочно обращаться к любому из файлов. Это может тормозить работу. Если определенный файл не будет установлен в систему пользователя, данные все равно придется декомпрессировать (в память) для того, чтобы инсталлятор получил доступ к следующему файлу. И если, допустим, в процессе декомпрессии возникнет ошибка и пользователь нажмет Retry, инсталлятор не сможет обратиться к файлу, в котором возникла ошибка, потому что все файлы сжаты в один файл, и придется производить повторную попытку с нуля. Если включено разбиение на диски, пользователь должен будет снова ставить первый диск.

В общем, уплотненное сжатие не рекомендуется применять к большим по размеру инсталляторам (скажем, больше 100 MB) или если используется разбиение на диски. Эта директива служит для того, чтобы при скачивании из Internet маленьких приложений экономилось время.

Irenis
24-08-2014, 19:40
Nordek, Ясно, большое спасибо :)
Возможные значения: yes или no »
А если SolidCompression вообще убрать из скрипта, это будет то же самое, что поставить SolidCompression=no?

Nordek
24-08-2014, 19:49
А если SolidCompression вообще убрать из скрипта, это будет то же самое, что поставить SolidCompression=no? »Именно.
Т.е если будет в вашем скрипте присутствовать именно SolidCompression=no = то результат будет равнозначен тому, что SolidCompression и вовсе бы отсутствовал.

Чуточку дополню:
Если вместо no, использовать false = то результат от этого не изменится.
А если вместо yes использовать true = то результат так же, от этого не изменится.

Irenis
24-08-2014, 21:41
Уже вроде бы и спрашивать не удобно (что то я зачастила), но если не затруднит, может кто ответит еще на пару вопросов :blush2:
1. Убрала SolidCompression,
Поставила Compression=none
Может еще что то можно придумать, чтобы ускорить создание установщика? Мне сжатие не нужно, даже наоборот, чем больше будет весить установщик, тем лучше. Просто многие пользователи почему то считают, что чем больше весит установщик, тем лучше, значит ничего не вырезано, и графика лучше, ну и тому подобное.

2. Для чего нужны эти строчки:

#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif

Компилировала и с ними, и без, но так и не заметила, что меняется.
Может кстати где то на просторах интернета есть что то типа инструкции (или обозначений), где можно почитать, за что отвечают различные строки(коды) в скрипте.

R.i.m.s.k.y.
24-08-2014, 21:55
Может еще что то можно придумать, чтобы ускорить создание установщика? »
дефрагментировать диск
Просто многие пользователи почему то считают, что чем больше весит установщик, тем лучше, значит ничего не вырезано, и графика лучше, ну и тому подобное. »
о святая простота
Для чего нужны эти строчки:
#ifdef NeedSize
ExtraDiskSpaceRequired={#NeedSize}
#endif »
ifdef NeedSize - если true установщик будет к размеру файлов плюсовать дополнительное место для установки ExtraDiskSpaceRequired

Nordek
24-08-2014, 22:08
чтобы ускорить создание установщика? »
InternalCompressLevel=none
Compression=none

Irenis
24-08-2014, 22:52
Nordek, Спасибо, сейчас попробую :)
дефрагментировать диск »
Спасибо, что напомнили о таком понятии, как дефрагментация :) Тем более я часто удаляю-устанавливаю игры и программы, компьютер начал сильно тормозить. Правда, честно признаться, никогда не делала такую процедуру, страшновато как то, чтоб ничего нигде не повредилось. Просто читала, что после дефрагментации иногда бывает только хуже, система еще больше тормозит, а то и вовсе не запускается.

vint56
25-08-2014, 00:45
Irenis, если ты используешь мой пример тогда удали вот эти строчки простоя давал для максимального сжатия
SolidCompression=yes
Compression=lzma2/ultra64
LZMAUseSeparateProcess=yes
LZMAMatchFinder=BT
LZMANumFastBytes=273
LZMADictionarySize=262144
InternalCompressLevel=ultra64
MergeDuplicateFiles=true
#define NeedSize "8336330752" указываешь сколько нужно свободного места для установки игры

Kashtan007
25-08-2014, 00:57
Всем привет.
Нужна ваша помощь!

Первый вопрос:
На странице каталога нужно 2 чекбокса.
1 чекбокс - будет удалять содержимое в res_mods\0.9.2\* и удалять папку xvm по пути res_mods\xvm.
2 чекбокс - должен делать бекап папки res_mods, по пути IB\old_res_mods, а после удаление репака возвращал бекап в папку res_mods.
Как это реализовать?

Второй вопрос:
Как сделать, чтобы файлы unins000.exe помещало по пути IB\Uninstall\* ?

Третий вопрос:
У меня в репаке есть файл "bin" и в папке куда я ставлю репак он тоже есть. В следствии чего если я ставлю репак, то файл заменяется, а когда удаляешь репак то файл тоже удаляется и не запускается игра. Как сделать, чтобы когда устанавливаешь репак, то файл "bin" из папки куда ставишь репак копировался по пути IB\BackUp, а после удаление возвращался на свое место.

P.S. Пользуюсь юникодом. Всем заранее спасибо за помощь!

nik1967
25-08-2014, 08:51
Kashtan007, вот ты думаешь, буду постить на каждой странице одни и те же вопросы, может кто ответит. Твои вопросы были прочитаны на предыдущей странице всеми. Но. Кто захочет ответить - ответит. Да и на все твои "вопросы" есть ответы давным давно. Нужно только не лениться, и воспользоваться поиском и справкой к Inno Setup. Кнопка F1 сломалась? Например на вопрос
Как сделать, чтобы файлы unins000.exe помещало по пути IB\Uninstall\* ? »

[Setup]: UninstallFilesDir
"Default value:
{app}

Description:
Specifies the directory where the "unins*.*" files for the uninstaller are stored.

Note: You should not assign a different value here on a new version of an application, or else Setup won't find the uninstall logs from the previous versions and therefore won't be able to append to them.

Example:
UninstallFilesDir={app}\uninst"

В твоём случае:
UninstallFilesDir={app}\IB\Uninstall

Да и по первому и последнему вопросу есть ответы, если поискать. Пример (http://forum.ru-board.com/topic.cgi?forum=5&topic=30413&start=2274&limit=1&m=1#1).

Что, сложно и трудно? Нет, просто лень.

P.S. А если сложно с Inno Setup, то есть тема для заказа инсталлятора (http://krinkels.org/forums/kuplju-zakazhu.265/).

R.i.m.s.k.y.
25-08-2014, 09:24
Просто читала, что после дефрагментации иногда бывает только хуже, система еще больше тормозит, а то и вовсе не запускается. »
о святая простота »

InternalCompressLevel=none Compression=none »
вторая строчка и так стоит, а первая фактически ни на что не влияет тк отвечает за сжатие самого кода установщика, весит который немного, счет на десятки КИЛОбайт
тогда удали вот эти строчки »
и будет сжатие по-умолчанию, вопрос бул - максимально быстрое создание установщика

Kashtan007
25-08-2014, 11:26
nik1967, спасибо.

Где только не искал, но никак не могу найти ответ на 1 и 3 вопрос, либо же нахожу, но оно не работает.

Leka_651
25-08-2014, 11:45
Добрый день!
Такая задачка: если при удалении программы какие-то файлы были заняты, то по завершению будет выдано сообщение о перезагрузке. Если комп не перезагружать, и сразу в этот же каталог поставить программу, то инсталлятор выдаст сообщение, что сначала необходимо перезагрузить комп. Но если инсталлятор запустить в тихом режиме, то комп сразу начинает перезагружать. Как сделать так, чтобы при тихой установке инсталлятор просто завершал свою работу, ничего не установив.

Shkutu
25-08-2014, 12:25
Leka_651, попробуйте запустить инсталлятор с параметрами /VERYSILENT /NORESTART. Подробнее смотрите в справке раздел "Setup Command Line Parameters".
Kashtan007, как-то вы криво ищите, простите. По вопросам 1 и 3 nik1967 уже ответил, но еще есть например здесь: http://forum.oszone.net/post-2346042-530.html. И учитесь поиском пользоваться: правильно поставленный вопрос содержит в себе половину ответа, да и результат значительно быстрее, чем ждать, пока кто-то ответит :))

Leka_651
25-08-2014, 12:42
Shkutu, параметры помогают, я уже так попробовала. а можно ли как-то из кода проверить и запретить установку?

R.i.m.s.k.y.
25-08-2014, 12:47
а можно ли как-то из кода проверить и запретить установку? »

var isSilent : boolean;
Function InitializeSetup: Boolean;
Begin
isSilent := false;
for i:=2 to ParamCount do begin
if ( Pos(LowerCase('/silent'), Lowercase(ParamStr(i))) > 0 ) then isSilent := true;
if ( Pos(LowerCase('/verysilent'), Lowercase(ParamStr(i))) > 0 ) then isSilent := true;
end;
if isSilent then begin
MsgBox('тихая установка запрещена', mbInformation, MB_OK);
Result := False;
exit;
end;




© OSzone.net 2001-2012