Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: Buster78
Дата сообщения: 14.09.2005 15:16
Здравствуйте, принимайте новичка ... и не пинайте сильно, есть пара вопросов

К сожалению поиск не работает, не смог найти, может и было решение.

Вопросы:
1. Сделал свой инсталлер, который будет запускаться через батник. Хотелось бы сделать возможность следить за выполнением через ExitCode. В Инно есть коды, которые опеределены жестко. А есть ли возможно сделать свои коды выхода? Например может быть ситуация, что приложение запущено и автообновление не выполнено, или версия не соответсвует - на каждую проблему свой код выхода поставить. А то у меня на все случае он выходит с кодом 1. Все проверки я делаю в InitializeSetup.

2. Перед началом инсталляции мне нужно оставить работу одной программы. Сейчас я это делаю кодом. Все работает - но автоматически нигде это не отписывается (в общем понятно почему ). Есть ли аналог секции [Run], но перед началом копирования файлов?

Спасибо.
Автор: Widok
Дата сообщения: 14.09.2005 15:28
Buster78
поиск работает:
http://forum.ru-board.com/topic.cgi?forum=5&topic=11274#1
так же есть "версия для печати":
http://forum.ru-board.com/misc.cgi?action=printtopic&forum=5&topic=4801
Автор: devmax
Дата сообщения: 12.10.2005 07:28
Прочитал весь топик, ответа не нашел.
Есть набор файлов для создания инсталятора, только один из них имеет версюю файла, остальные нет. Необходимо, чтобы при запуске и проверки версий существующего и устанавливаемого файлов, если пользователь отвечает, что сохранить существующий файл как более новый, инсталятор не перезаписывал и все остальные файлы тоже. По умолчанию, он спрашивает только на файл с версией и если говоришь оставить установленный уже, он его оставляет, а другие затирает, есно после этого получается, что все компоненты от разных версий. Подскажите в каком направлении двигаться. В паскале я не силен (ну не программист)
Автор: SerIg
Дата сообщения: 14.11.2005 01:02
А есть русификатор на InnoSetup v5.1.5???
Автор: albel
Дата сообщения: 14.11.2005 01:06
SerIg
для 5.1.0+ (от начала года где-то ) последний. Доступен на странице http://www.jrsoftware.org/files/istrans/
Автор: SerIg
Дата сообщения: 14.11.2005 01:11

Цитата:
SerIg
для 5.1.0+ (от начала года где-то ) последний. Доступен на странице http://www.jrsoftware.org/files/istrans/

albel

А он подойдет к версии InnoSetup v5.1.5???
Автор: albel
Дата сообщения: 14.11.2005 01:32
SerIg
да. Единственное- пара строк может остаться без перевода
Автор: SerIg
Дата сообщения: 14.11.2005 01:48
albel
Не это не то!
Вот как было с прогой 5.0.8, там ЕХЕшник заменялся в самой проге и все, Инно русская.
А тут так можно?
Автор: cracklover
Дата сообщения: 15.11.2005 09:25
Простите за глупый вопрос. Это, наверно, уже обсуждалось, но почему на многих развёрнутых инноосетапных дистрибутивах отсутсвует возможность снова их собрать ?

Например, если вы разберёте Клайтек Мега Кодек Пак с помощью innounp, то потом с помощью полученного скрипта из этой разобранной инсталляции не получается собрать Клайтек снова.
Тут же вылетают ошибки компиляции, когда через Inno Setup указываешь на скрипт и нажимаешь кнопку компиляции.
Пишет что типа в скрипте недопустимые значения.
Как же был собран дистрибутив разработчиками, если в скрипте были недопустимые значения?
Автор: QuickeneR
Дата сообщения: 15.11.2005 09:44
cracklover
Скорее всего, это ошибка распаковщика. Он генерирует скрипт заново по тем данным, что есть в экзешнике, и не факт, что результат будет 100% правильным с точки зрения компилятора. Если приведешь конкретные ошибки, можно будет сказать точнее.
Автор: cracklover
Дата сообщения: 15.11.2005 10:07

Цитата:
Если приведешь конкретные ошибки, можно будет сказать точнее.


Parameter "Types" includes an anknown types

а сама строчка где вылезла ошибка:
Name: "player\bsplayer"; Description: "BSplayer [version 1.36.825]"; Types: "lotsofstuff"; MinVersion: 4.1,4.0;

И таких ошибок сотни.
Из-за любой компиляция прерывается.
Автор: coolpunk
Дата сообщения: 15.11.2005 13:59
SerIg
вот у Sama есть: http://samlab.ws/ruz/innosetup515_medissn.rar
Автор: QuickeneR
Дата сообщения: 15.11.2005 14:37
cracklover
Ага, секция [Types] не создавалась... Попробуй это
Автор: cracklover
Дата сообщения: 16.11.2005 20:39

Цитата:
Ага, секция [Types] не создавалась... Попробуй это


Как я понял, это какой-то тестовый доработанный 0.17 анпакер?

Он, конечно, распаковывает как-то поточнее, но потом всё равно вытащенный скрипт не даёт скомпилить снова прогу. Теперь ошибки вылетают не в первую же секунду компиляции, а чуть позже. Так что всё равно странно.
Автор: QuickeneR
Дата сообщения: 16.11.2005 21:02

Цитата:
Как я понял, это какой-то тестовый доработанный 0.17 анпакер?

Да

Цитата:
Теперь ошибки вылетают не в первую же секунду компиляции, а чуть позже. Так что всё равно странно.

А что тут странного? Возможность рекомпиляции без ручной коррекции скрипта никогда и не обещалась. Просто в некоторых случаях она удается.
Автор: feandy
Дата сообщения: 17.11.2005 06:47

Цитата:
Ага, секция [Types] не создавалась.

Как правило секция при декомпиле создается в конце скрипта.
Я обычно перетягиваю ее в начало. И проблемы исчезают.
Т.е приходится руками править скрипт
Автор: JKSerGEAnt
Дата сообщения: 17.11.2005 08:59
cracklover
Для начала при декомпиляции напрочь отсутствует секция [code]. Уже из-за этого скомпилировать такой скрипт не получится. Да и нафиг это надо вообще.
Автор: cracklover
Дата сообщения: 17.11.2005 12:39
To all^

Так подскажите, пожалуйста, как мне переделать скрипт Клайтек Мега кодек пака?

Это не просто забава, это новая идея, которая требует воплощения.
Автор: DroN_S
Дата сообщения: 17.11.2005 13:15
Вопрос такой:
как работать с функциями WinAPI в коде?
Мне надо определить директорию Windows
делаю так:

Код:
function GetWinPath: string;
var
a : array[0..144] of char;
begin
GetWindowsDirectory(a, sizeof(a));
Result := StrPas(a);
end;
Автор: QuickeneR
Дата сообщения: 17.11.2005 14:47
feandy

Цитата:
Как правило секция при декомпиле создается в конце скрипта.
Я обычно перетягиваю ее в начало. И проблемы исчезают.
Т.е приходится руками править скрипт


Я думал, сабж нечувствителен к порядку секций. Вот такой файл откомпилировался нормально.

[more]
Код: [Files]
Source: "{app}\noext"; DestDir: "{app}";

[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe";

[Components]
Name: "program"; Description: "Program Files"; Types: "full compact custom";
Name: "help"; Description: "Help File"; Types: "full";
Name: "readme"; Description: "Readme File"; Types: "full";
Name: "readme\en"; Description: "English";
Name: "readme\de"; Description: "German";

[Types]
Name: "full"; Description: "Full installation";
Name: "compact"; Description: "Compact installation";
Name: "custom"; Description: "Custom installation";

[Setup]
AppName=My Program
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
OutputBaseFilename=setup
Compression=lzma
Автор: cracklover
Дата сообщения: 17.11.2005 14:55

Цитата:
Мега кодек пак - это тот, который весит 30 метров? Если так, я пас, великоват будет файл для "посмотреть". Может что поменьше есть?


Зачем его весь качать? Скажите куда выложить вытащенный из него инносетаповский скрипт и я выложу!
Автор: QuickeneR
Дата сообщения: 17.11.2005 15:01
Обменники: rapidshare.de, webfile.ru
Если скрипт небольшой, можно прямо сюда запостить - в таком виде:
[no][more]
Код:
тут
текст
скрипта
Автор: cracklover
Дата сообщения: 18.11.2005 10:17
To QuickeneR:

Посмотрите, пожалуйста, вот тот скрипт:

_http://rapidshare.de/files/7794545/install_script.rar.html]
Автор: Nick 2003
Дата сообщения: 19.11.2005 17:20
Inno Setup 5.1.6

Цитата:
Changes:
- Registration and unregistration of 32-bit DLLs is now performed in an external process. This change was primarily made to ensure that a buggy DLL cannot bring down the entire
Setup/Uninstall process by, for example, corrupting its memory.
- Pascal Scripting changes/improvements:
The already-existing AnsiUppercase and AnsiLowercase functions are now documented. Unlike their non-Ansi counterparts, these can handle non-ASCII characters (e.g. accented letters).
TNewCheckListBox: Added new ItemCaption property. This can be used to change the caption of an already-created item. (Setting an item's caption through the Items property is not supported by TNewCheckListBox.)
- OLE is now initialized before registering a 64-bit DLL.
- While Setup is waiting for a 64-bit DLL to register, it now processes messages.
On CD/DVD-spanned installs, fixed issue with AutoPlay not being suppressed if you clicked OK too quickly on the Setup Needs the Next Disk dialog after swapping CDs/DVDs.
- When WindowVisible=yes, the gradient background now uses 256 colors instead of 64, resulting in a smoother appearance when running in 24- or 32-bit color mode.
- In the documentation for the Excludes [Files] section parameter, mention that a simple Unix-style pattern matching routine is used, which exhibits some differences from the DOS/Windows-style pattern matching used in the Source parameter.
- Added official Slovak translation.
- Minor tweaks.

http://www.jrsoftware.org/download.php/is.exe
Автор: QuickeneR
Дата сообщения: 20.11.2005 16:03
cracklover
Возьми подправленный распаковщик. С ним должен получаться скрипт, пригодный для компиляции. Но в мегапаке активно используется встроенный паскалевский код. В инстальнике он хранится в откомпилированном виде. Если код тебя устраивает, его можно без изменений затолкать в свой инстальник с помощью пропатченной дллки для IS 5.1.5. Если же его тоже нужно поменять, тут сложнее. Дизассемблировать можно вот этой прогой, чтобы посмотреть, что там внутри. А преобразовывать в паскаль придется вручную.
Автор: cracklover
Дата сообщения: 21.11.2005 07:37
To QuickeneR:

C дллкой теперь всё компилится, но, как я понял, с ней просто игнорируются все ошибки. Поэтому результат компиляции достаточно глючный.
То что вы посоветовали, по всей вероятности, годится только для несбольших и несложных разобранных инсталляций.
Автор: QuickeneR
Дата сообщения: 21.11.2005 09:04
В каком смысле глючный? Твой инстальник при запуске ругается на установленные кодеки и их пакеты? У меня ругается, и из этого я заключаю, что паскалевский код работает. Если нет (естественно, если другие кодеки установлены), значит, код не выполняется. Возможно, патченая дллка не нашла файл, проверить можно, запустив

innounp твой-setup.exe

Если получится


Код: ; Version detected: 5102
Compression used: lzma
Files: 792 ; Bytes: 144955283
Compiled Pascal script: 72620 byte(s)
Автор: Kindly
Дата сообщения: 21.11.2005 09:41
Русификатор для версии 5.1.6 + Руководство по программированию версии 2.0:
http://rapidshare.de/files/7936877/InnoSetup516_rus.zip.html
Автор: cracklover
Дата сообщения: 21.11.2005 12:19

Цитата:
А что ты вообще хочешь сделать? Неужели только копирайты перебить?


Я вот что хотел:
http://forum.ru-board.com/topic.cgi?forum=5&bm=1&topic=10575&start=480#lt

Почитай, пожалуйста, там понятно зачем я так бьюсь над Клайтеком.
Автор: QuickeneR
Дата сообщения: 21.11.2005 13:30
Понятно. Допустим, один раз код можно декомпилировать ручками, подобрать опции сжатия и сделать инстальник почти как оригинальный. Но он же обновляется регулярно, значит, кому-то придется постоянно следить за версиями и обновлять скрипт. Может, проще написать авторам этого мегапака и попросить у них исходник? Или обоснованно написать, зачем нужны апдейты и почему не устраивает существующая система. Им же тоже будет легче - трафик меньше.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172

Предыдущая тема: ICONS


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.