|
Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 6] |
|
Скрипты Inno Setup. Помощь и советы [часть 6]
|
Ветеран Сообщения: 1273 |
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы. Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах: |
|
Отправлено: 19:06, 28-03-2013 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата Optitron:
[Components] Name: a; Description: Папка 1 Name: b; Description: Папка 2 Name: c; Description: C:\Windows\Папка Name: d; Description: C:\Program Files\Папка Name: e; Description: C:\Папка [Files] Source: Папка\*; DestDir: {app}\Папка1; Flags: ignoreversion recursesubdirs createallsubdirs; Components: a Source: Папка\*; DestDir: {app}\Папка2; Flags: ignoreversion recursesubdirs createallsubdirs; Components: b Source: Папка\*; DestDir: {win}\Папка; Flags: ignoreversion recursesubdirs createallsubdirs; Components: c Source: Папка\*; DestDir: {pf}\Папка; Flags: ignoreversion recursesubdirs createallsubdirs; Components: d Source: Папка\*; DestDir: {sd}\Папка; Flags: ignoreversion recursesubdirs createallsubdirs; Components: e |
|
------- Отправлено: 16:04, 03-12-2013 | #1591 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Raf-9600,
Цитата Raf-9600:
попутно читал справку, чего и тебе советую, тк возможностей много, например регулировка громкости, отображение прогресса, перемотка, итд http://www.un4seen.com/doc/#bass/BAS...reateFile.html короче вот код конкретно по твоему вопросу: |
|
Последний раз редактировалось Johny777, 04-12-2013 в 01:35. Отправлено: 16:38, 03-12-2013 | #1592 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать Всем здравствуйте!
Подскажите плиз, как можно на момент запуска деинсталлятора узнать текущую директорию, где находится этот самый деинсталлятор. GetCurrentDir почему-то возвращает не директорию расположения, а систем32 |
Отправлено: 16:54, 03-12-2013 | #1593 |
Пользователь Сообщения: 78
|
Профиль | Отправить PM | Цитировать Shkutu,
|
Отправлено: 19:22, 03-12-2013 | #1594 |
Старожил Сообщения: 398
|
Профиль | Отправить PM | Цитировать Johny777, Спасибо! Никаких особых проблем не возникло. Единственная мелочь: в твоём коде проверка в процедуре BASS_PlayFile такая if Channel <> 0 then, а должно быть if Channel = 0 then.
Собственно вот как эта часть выглядит у меня: |
Последний раз редактировалось Raf-9600, 04-12-2013 в 01:46. Отправлено: 19:53, 03-12-2013 | #1595 |
Ветеран Сообщения: 1273
|
Профиль | Отправить PM | Цитировать Цитата Shkutu:
|
|
Отправлено: 19:59, 03-12-2013 | #1596 |
Ветеран Сообщения: 532
|
Профиль | Отправить PM | Цитировать Спрашивал на руборде
Есть набор программ устанавливаемых через инно, среди компонентов допустим есть прога 1.exe возможно ли если пользователь выбрал установку этой программы, выходило сообщение "Внимание! Прежде чем установить эту программу, необходимо установить бла бла бла... Выполнить необходимые условия?" и кнопки в этом сообщении Да (я позже выполню) - тогда чекбокс автоматом с этой проги снимается и продолжается установка других компонентов (если они выбраны) Нет (уже установлено) - тогда чекбокс автоматом с этой проги НЕ снимается и продолжается установка выбраной 1.exe и других компонентов (если они выбраны) дали скрипт [components] Name: fuck; Description: lol; Name: fuck2; Description: lol2; [_code] procedure CurPageChanged(CurPageID: Integer); var i: integer; begin if Curpageid=wpWelcome then if MsgBox('fuck',mbInformation,mb_YesNo)=idyes then for i:=0 to WizardForm.ComponentsList.ItemCount-1 do begin MsgBox(WizardForm.ComponentsList.ItemCaption[i],mbinformation,mb_ok); if WizardForm.ComponentsList.ItemCaption[i]='lol' then WizardForm.ComponentsList.Checked[i]:=False else WizardForm.ComponentsList.Checked[i]:=True; end; end; ![]() как исправить или может какой другой есть скрипт? |
------- Отправлено: 23:11, 03-12-2013 | #1597 |
Ветеран Сообщения: 649
|
Профиль | Отправить PM | Цитировать Raf-9600,
Цитата Raf-9600:
Цитата Raf-9600:
![]() if i >= 1 then означает "если длина массива больше-равно 1". Не вижу смысла. Если длина массива 1, то рандом не нужен Если больше одного, рандом уместен те мы уже пишем if i = 1 then uSoundName := Sounds[0] else if i > 1 then ипользуем рандом, но ты хочешь чтоб файлы не проигрывались два раза подряд и рекурсивно вызываешь BASS_PlayFile() пока значения TempSoundName и uSoundName будут разными. Да функция GetArrayLength() и Random() работают быстро, но мы не знаем сколько раз пройдёт рекурсия пока рандом не выдаст другое значение. Те тут крайне нестабильная секция кода с точки зрения скорости. Другими словами очень желательно другое решение. В данном случае модификация рандома. Вот кокретно для решения этой задачи наваял код: алгоритм простой - чистая математика функция function RandRange(const LeftInt, RightInt: Integer): Integer; где LeftInt - левая граница RightInt - правая условие RightInt > LeftInt хотя бы на 1 например мы хотим получить случайные числа от 2 до 7 включительно. функция function NotRandRand(const LeftInt, RightInt: Integer; var LastResultInt: Integer): Integer; где всё тоже самое кроме LastResultInt, в которую пишется значение последнего результата. условие: переменная, которую отправляем в var LastResultInt: Integer должна быть глобальной (это съест всего лишь 4 байта памяти процесса), иначе ничего работать не будет! как она работает думаю понятно по коду. Единственное скажу, что если последнее выпавшее число не равно левой границе и павой, то значит речь идёт о 2-х половинах и тут мы доверим рандому case Random(2) of например у нас числа 1...7. Вапало 5. --> в след. раз в Random(2) выпал 0 (рандом возвращает входное значение -1), то мы выполним RandRange(1, 5-1) если выпала 1, то RandRange(5+1, 7) короче говоря никаких повторов 222, 33, итд. Минимум через 1 вот код: процедура Test(); отладочная. Вот мой результат обрати внимание на 2 и 4-ю строку. Как и следовало ожидать при RightInt - LeftInt = 1 значения чередуются вот твой участок кода (обновлённый): Хочу заметить. У меня лежит код (пока времени нет довести до ума ![]() строка if not FileExists(AddBackslash(RemoveBackslash(ExpandConstant('{tmp}'))) + 'BASS.dll') then ExtractTemporaryFile('BASS.dll'); не нужна (заметь у меня в коде её нет), тк BASS.dll итак извлекается для последующей её динамичной загрузки ========================================================================================= ispolin, у меня компилятор на Свойство ItemCount не ругается. Использую расширенную версию(не самую новую - 5.4.3). В шапке есть ссылка на расширенную. |
||
Последний раз редактировалось Johny777, 04-12-2013 в 04:59. Отправлено: 04:32, 04-12-2013 | #1598 |
SHVtYW4= Сообщения: 3451
|
Профиль | Отправить PM | Цитировать Цитата Johny777:
El Sanchez, Добавь пожалуйста ссылки на соответствующую версию хотя бы под спойлер "Расширенная версия Inno Setup от Restools". Пример: |
|
Последний раз редактировалось Nordek, 04-12-2013 в 12:53. Отправлено: 12:31, 04-12-2013 | #1599 |
Пользователь Сообщения: 149
|
Профиль | Отправить PM | Цитировать El Sanchez, спасиб
|
Отправлено: 13:01, 04-12-2013 | #1600 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Скрипты Inno Setup. Помощь и советы [часть 5] | El Sanchez | Автоматическая установка приложений | 1999 | 28-03-2013 19:09 | |
Скрипты Inno Setup. Помощь и советы [часть 4] | El Sanchez | Автоматическая установка приложений | 2099 | 22-05-2012 23:16 | |
Скрипты Inno Setup. Помощь и советы [часть 3] | Serega | Автоматическая установка приложений | 3755 | 26-10-2011 17:58 | |
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] | Serega | Автоматическая установка приложений | 2651 | 08-11-2010 18:34 | |
Скрипты Inno Setup Compiler | QAZAK | Автоматическая установка приложений | 7 | 15-01-2007 17:59 |
|