Войти

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

Devils Night
12-09-2011, 09:45
insombia, неплохо, какой скин добавлял? »

No4noylis
12-09-2011, 10:19
Второй вариант "Music2" самое оно, только там выдаёт ошибку. »
Devils Night,

В [_code] добавь эту процедуру:

procedure gdipShutdown; external 'gdipShutdown@{tmp}\botva2.dll stdcall delayload';

И в самом конце, в DeinitializeSetup; добавь:

gdipShutDown;

insombia
12-09-2011, 10:36
как сделать чтобы в Isdone не писалось тестовый прогон? вот скрин http://i32.fastpic.ru/big/2011/0912/a2/fa43272b5ecfb922bc2ede084129faa2.jpg

No4noylis
12-09-2011, 13:54
insombia,

Ты можешь открыть файл russian.ini, найти там "TIME_TEST"="Тестовый прогон", и написать вместо него, "TIME_TEST"="", и естественно сохранить изменения, тогда надписи тестовый прогон не будет в том месте где отмечено на скриншоте. ИЛИ ты можешь провести этот самый тестовый прогон, затем прикрутить к инсталлу records.inf, и тогда там где отмечено на скриншоте будет указано время до окончания установки. ИЛИ на крайний случай ты можешь вручную расставить проценты для распаковки и тогда, у тебя опять же там будет написано время до окончания установки.

Sollar
12-09-2011, 17:42
как в поле Name: прописать функцию {code:gets|{#l}}, либо каким образом это можно обойти?

[Types]

#define l

#sub AddDescription
Name: {code:gets|{#l}}; Description: {code:gets|{#l}}
#endsub

#for {l = 1; l < 3; l++} AddDescription

[Components]
Name: n1; Description: gdsgdg Types: {code:gets1};
Name: n2; Description: dsfgsg Types: {code:gets2};

xXDx
12-09-2011, 18:20
insombia, шрифт мелковат, а так нормально

kindza811
12-09-2011, 18:26
Может поможете? :cry2:

insombia
12-09-2011, 18:44
kindza811 http://rghost.ru/21349331 на,только музыки здесь нету можешь сам попробовать вставить

А как сделать чтобы проценты шли не до 300 а до 100? в исдоне

Kizekil
12-09-2011, 19:28
insombia, Автоматическая расстановка процентных соотношений в операциях. При автоматической расстановке необходим тестовый проход для определения времени выполнения каждой операции относительно других. Для включения данного режима необходимо заполнить вторые значения всех функций извлечения архивов нулями. Краткая инструкция: а) первым делом убедитесь, что в начале скрипта закомментирована строка #define records (т.е. необходимо поставить точку с запятой в начале этой строки); б) компилим проект и запускаем на установку. Это и будет нашим тестовым проходом. Все операции должны дойти до конца и завершиться удачно. Прогрессбар будет зашкаливать и все компоненты будут извлечены вне зависимости от того выбраны они, или нет. Все так и должно быть! в) после тестового прогона в указанной папке создастся файл records.inf (имя и путь назначается в процедуре инициализации. О ней см. "подробное описание функций" ниже), его необходимо добавить в проект, раскомметировав, или добавив в начале скрипта строку: #define records Так же стоит отметить, что если сам скрипт находится в папке отличной от той, в которую компилится проект (например в скрипте NFS:Undercover откомпиленный файл сохраняется в Output\setup.exe), то records.inf создастся в папке с setup.exe и его необходимо будет перенести непосредственно к скрипту, или же подправить в секции [Files] его истинное расположение, например: #ifdef records Source: Output\records.inf; DestDir: {tmp}; Flags: dontcopy #endif г) снова откомпилить проект. После этого инсталлер готов к работе. При запуске процесс выполнения операций будет равномерно и корректно отображаться на прогрессбаре.

insombia
12-09-2011, 19:35
Kizekil ну его нафиг кароче мне кажеться это из-за того что я использую для распаковки 3 архива вот и получается 300%

Gnom_aka_Lexander
12-09-2011, 19:55
insombia, блин, тебе привели выдержку из справки, где очень-очень подробно, и, по моему, вполне себе по русски написано, как сделать правильно проценты, при использовании ISdone.dll Или почитать, и то уже лень?

kindza811
12-09-2011, 20:14
insombia, спасибо :Beer:

Kizekil
12-09-2011, 20:49
Ещё после компиляции когда выбираешь язык установки надо долго ждать пока запустится инсталл.Окно активное,но не идёт установка

okril
13-09-2011, 18:23
ребята все привет.

сегодня познакомился с этим софтом. но есть ряд вопросов. с помощью мастера все понятно как сее работает НО:
как вы понимаете я в этом новичок.

1. хочу завернуть в один инсталлер по мимо папки с рядом файлов еще 3 софта которые надо установить.
пример

1сначало копирования папок в нужную деррикторию - ну это просто (среди них настройка.xml)
2затем запуск файла установки программы "софт для сканера" - в фоновом режиме
3затем запуск файла установки программы "Хфсп Драйве" - в фоновом режиме.
4затем открыть окно где будет возможность ввода параметров которые обновят ранне скопированный файл настройка.xml
вывод значков на раб стол.




помогите. есть скайп, агент. аська.

El Sanchez
13-09-2011, 18:37
как в поле Name: прописать функцию {code:gets|{#l}}, либо каким образом это можно обойти? »
Sollar, пардон за {} в имени типов/компонентов, не работает из-за двоеточия. Набросал пример, допустим ваш ini-файл
имеет следующий вид:

[org1]
ex1=1
org=ttt1
[org2]
ex2=1
org=ttt2

, лежит рядом со скриптом и называется test.ini, тогда

[Types]
#define l
#sub AddDescription
Name: {#ReadIni(SourcePath + "\test.ini", "org" + Str(l), "org")}; Description: {#ReadIni(SourcePath + "\test.ini", "org" + Str(l), "org")}
#endsub

#for {l = 1; l < 3; l++} AddDescription

[Components]
Name: n1; Description: n1; Types: {#ReadIni(SourcePath + "\test.ini", "org1", "org")}; Check: gets(ExpandConstant('{#ReadIni(SourcePath + "\test.ini", "org1", "ex1")}'))
Name: n2; Description: n2; Types: {#ReadIni(SourcePath + "\test.ini", "org2", "org")}; Check: gets(ExpandConstant('{#ReadIni(SourcePath + "\test.ini", "org2", "ex2")}'))

[code]
function gets(Param: String): Boolean;
begin
Result := Param = '1';
end;

Kizekil
13-09-2011, 19:54
okril, Готовые ответы (http://innoultra.ru/?page_id=18/)

Roman_-82
14-09-2011, 03:52
Всем привет. :) Пишу скрипт установки игры, нужно сделать два задания (или больше) - Установка русской озвучки и Установка русского текста и так далее. Подскажите пожалуйста как правильно указать пути. Возможно ли вскрыть уже готовый инсталлятор и посмотреть как он сделан (интересует скрипт)? Заранее благодарю.
Вот по такому примеру - http://i29.fastpic.ru/thumb/2011/0914/65/ff26753e27d040d6d55d907ac0163765.jpeg (http://fastpic.ru/view/29/2011/0914/ff26753e27d040d6d55d907ac0163765.jpg.html)

valyok666
14-09-2011, 16:15
Roman_-82, посмотри справку components

R.i.m.s.k.y.
14-09-2011, 17:55
Roman_-82, тезка, вскрытие скрипта тебе мало поможет, тк ты даже не удосужился а) прочитать справку про Components; и б) скачать из шапки примеры

Roman_-82
14-09-2011, 17:55
valyok666
Наполовину разобрался. Но как указать нужный путь установки файлов? Например, мне нужно чтобы папка с русской озвучкой скопировалась по определенному пути (C:\Games\Game\System\Sound)?




© OSzone.net 2001-2012