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

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

Автор: mavzer12
Дата сообщения: 24.09.2008 05:52
Можно как нибудь распаковать 7z архив (не SFX) также как rar архив через Unrar.exe
Автор: SotM
Дата сообщения: 24.09.2008 07:41
mavzer12
?! Разве твой вопрос каким нибудь образом относится к Inno??? Если и относится, то тогда вопрос сформулирован не правильно.
Автор: mavzer12
Дата сообщения: 24.09.2008 09:54
к примеру распаковка 7z SFX.exe через Inno
Filename: "{app}\GAME_RUS.exe"; WorkingDir: "{app}"; Parameters: "-y"; StatusMsg: "Процесс русификации..."; Flags: waituntilterminated skipifdoesntexist
А мне надо не SFX а просто ddd.7z архив через Inno
Автор: SotM
Дата сообщения: 24.09.2008 10:15
mavzer12
Дык, Help нужно читать, особенно раздел [Files]. К тому же, в шапке темы достаточно примеров. Подобные вопросы здесь уже обсуждались. Поиск рулит.
Автор: Ruud
Дата сообщения: 24.09.2008 11:33
mavzer12
Распаковать 7z архив можно с помощью консольного разархиватора 7za.exe.К примеру я так делал:
[Run]
Filename: {src}\7za.exe; WorkingDir: {src}; Parameters: "x Oblivion.7z -y -o""{app}"""; StatusMsg: Установка The Elder Scrolls 4 - Oblivion; Flags: waituntilterminated
Автор: KurtWagner
Дата сообщения: 24.09.2008 14:11
Как сделать след. в сексии [Run]
Если в рестре определеная запись стоит тогда он не устанавливаеться... (+ дайте тоже самое но наоботот тапа нет записи не устанавливается)

+ еще 1-ин ?-сик

Хочу распоковать архив *.zip любым способом...

ЗаРаНеЕ сПаСиБо!
Автор: SotM
Дата сообщения: 24.09.2008 16:09
KurtWagner
В шапке есть примеры. Взято из примера CheckRegValue.iss
По идее должно работать с секцией [Run].

Код: [Run]
Filename: "{src}\Redist\wmpcdcs8.exe"; WorkingDir: "{src}\Redist"; Description: "есть такая буква в этом слове"; Parameters: "/q"; Check: CheckKey
Filename: "{src}\Redist\wmpcdcs8.exe"; WorkingDir: "{src}\Redist"; Description: "нет такой буквы в этом слове"; Parameters: "/q"; Check: not CheckKey

[no][Code][/no]
Function CheckKey: Boolean;
Begin
    if ExpandConstant('{reg:HKLM\Software\LucasArts\Star Wars Empire at War\1.0,CD Key}') = 'fc4c-3d8-05f-d411-uk20' then Result:= True
End;
Автор: Vitalliano
Дата сообщения: 24.09.2008 23:12
Ребята, ктото пробовал на заднем фоне проигрывать видео в формате bik библиотекой binkw32.dll?
Автор: Artem_Butenko
Дата сообщения: 25.09.2008 01:17
Уважаемые специалисты в области кодинга в Inno Setup, у меня возник вопрос, нет, даже скорее идея. М.б. есть вариант использования специфической библиотеки (?!) для подгрузки собственной озвучки действий инсталлятора, например, через паскаль-скрипт привязать озвучку кнопок ("OK" и "Отмена") диалоговых окон не удается, также нельзя изменить озвучку появления информативных окон (например, сообщения об ошибке и др.). Очень интересный вариант озвучивания действий инсталлятора реализовал в Coronа Skin Victor_Dobrov, однако в данном варианте инсталлятор ссылается на .wav файлы операционной системы. Вопрос в том, можно ли использовать вариант Виктора, но с условием включения .wav ресурсов в дистрибутив инсталлятора, при запуске которого, все звуковые файлы (сопровождающие действия инсталлятора) копировались во временную папку (откуда, соответственно и используются). Искренне надеюсь, что мой вопрос не останется без внимания!
Автор: mavzer12
Дата сообщения: 25.09.2008 05:39
Ruud
Большой thanks
Автор: Victor_Dobrov
Дата сообщения: 25.09.2008 12:54
Vitalliano
Цитата:
Ребята, кто-то пробовал на заднем фоне проигрывать видео в формате bik библиотекой binkw32.dll?

Как-то не интересовался этим. Слайд-шоу вполне устраивает. Инсталляторы сейчас и так объёмные и показ видео вместе с lzma-распаковкой сделает установку весьма затянутой. А показ bik-файла требует ещё больше ресурсов, чем например, divx.
Автор: Vitalliano
Дата сообщения: 25.09.2008 14:22
Просто bik занемает меньше места чем divx или xvid.
Автор: Artem_Butenko
Дата сообщения: 25.09.2008 15:06
Друзья, пожалуйста посмотрите мой вопрос на предыдущей странице, может быть у кого-нибудь есть конструктивное решение. Буду рад любой Вашей помощи!!!
Автор: SotM
Дата сообщения: 25.09.2008 15:44
Vitalliano
Нет смысла в проигрывании видео в фоновом режиме. Victor_Dobrov вполне понятно объяснил.

Чувствую скоро здесь будут спрашивать про то как проигрывать на фоне DVD диски...
Автор: Raf_SE
Дата сообщения: 25.09.2008 15:56
Ктонить может подредактировать скрипт для создания бекапа, таким образом, что б он начинал работать не тогда когда его отметили в строке [Task] (IsTaskSelected) а когда его выбрали в [Components]

[more=Скрипт]
function MoveFile(const srcFile, destFile: PChar): Integer;
external 'MoveFileA@kernel32.dll stdcall';

procedure CreateBackup;
var
srcFile, destFile: string;
basePath, shortPath: string;
begin
if IsTaskSelected('src') then
begin
basePath := ExpandConstant('{app}');
srcFile := ExpandConstant(CurrentFileName);
shortPath := srcFile;
StringChangeEx(shortPath, basePath, '', True);
destFile := ExpandConstant('{app}\Backup_Anti-Balance_Mod') + shortPath;
ForceDirectories(ExtractFilePath(destFile));
MoveFile(PChar(srcFile), PChar(destFile));
end;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usPostUninstall then
begin
MoveDir(ExpandConstant('{app}\Backup_Anti-Balance_Mod\'), ExpandConstant('{app}'));
RemoveDir(ExpandConstant('{app}\Backup_Anti-Balance_Mod\'));
end;
end;
[/more]
Автор: Vitalliano
Дата сообщения: 25.09.2008 16:18
SotM

Цитата:
Нет смысла в проигрывании видео в фоновом режиме. Victor_Dobrov вполне понятно объяснил.

Чувствую скоро здесь будут спрашивать про то как проигрывать на фоне DVD диски...


Не надо писать таким умные ответы, я спросил, мне ответили и все, а то складывается впечатление, что Вы самый умный!!!

Добавлено:
Victor_Dobrov

У меня вопрос лично к Вам! Когда я прокомпелировал Coroa Skin и пытаюсь запустить, у меня выдает сообщение Мастер установки данной программы уже запущен!, как решить эту проблему?
Автор: Genri
Дата сообщения: 25.09.2008 16:43
Raf_SE -- замени IsTaskSelected на IsComponentSelected
Автор: Raf_SE
Дата сообщения: 25.09.2008 16:54
Genri
Спасибо, я просто немного протупил, и тестировал с IsComponentsSelected, потому ничё не получалось.
Автор: Artem_Butenko
Дата сообщения: 26.09.2008 00:07
Ребята, неужели заданный мной на 53 странице вопрос так сложен, насколько я знаю данной теме на форуме уделялось не так много внимания.

Добавлено:
Victor_Dobrov - в Coronа Skin у Вас просто замечательно реализована озвучка действий инсталлятора. Интересно, а можно привязать .wav файл к клику по кнопкам диалогового окна, указанию чек-боксов и радиобаттонов. Я понимаю, если включать все .wav файлы в инсталляционный дисрибутив его размер значительно увеличится, но тем не менее, это очень интересно.
Автор: Victor_Dobrov
Дата сообщения: 26.09.2008 01:17
Vitalliano
Цитата:
пытаюсь запустить Corona Skin, выдает сообщение "Мастер установки данной программы уже запущен!"

Надеюсь, мастер запущен только 1 раз? Тогда это сообщение будет, если Result:= AlreadyRun разместить не в InitializeSetup. О прочем, не видя исходного скрипта, судить трудно. В старых версиях скина такая проверка делалась немного иначе.

Artem_Butenko - по озвучке вопросы не ко мне. Чек-боксы перехватить можно, но диалоги только при открытии/закрытии.
Автор: htuos
Дата сообщения: 26.09.2008 11:04
Artem_Butenko

Цитата:
Интересно, а можно привязать .wav файл к клику по кнопкам диалогового окна, указанию чек-боксов и радиобаттонов.

про чекбоксы и радиобатоны тебе написали
звуки к кнопкам диалоговых окон привязать можно, но только в сторонней длл, т.к. инно не знает тип Pointer. только муторное это дело. если сможешь отловить событие создания окон приложением, то и скин свой повесить сможешь
Автор: ComradG
Дата сообщения: 26.09.2008 18:25
Мое долгое молчание обусловлено тем, что я поднимаю ща свой ftp, куда и выложу программы для прямого скачивания. Прошу прощения за задержку.
Автор: Kindly
Дата сообщения: 26.09.2008 20:28
Хотелось бы "добить" один из проектов, прошу помощи.
Нужно: считать из реестра путь установки, но удалить последние символы до слеша \. Например, устанавливается программа, в частности MSI пакет, но путь установки (C:\Program Files\My Program) не указывается, а путь прописывается в реестре с именем, например, главного файла (C:\Program Files\My Program\MyProg.exe). Вот и требуется процедурка, которая бы "фильтровала" такой путь, т.е. чтобы инсталлятор уже считывал настоящий путь установки без имени главного файла.
Автор: Genri
Дата сообщения: 26.09.2008 20:38
Kindly -- см. в хелпе функцию ExtractFilePath - подозреваю, это то, что тебе надо.
Автор: chelobey
Дата сообщения: 27.09.2008 23:37
привет всем.
каким образом можно организовать выбор типа установки и выбор компонентов на разных страницах...
и еще, содержание выбора компонентов (его перечень) зависило бы от выбранного типа установки. т.е. при выборе "тип1" набор устанавливаемых компонентов был "набор1", а при выборе "тип2", "набор2".
спасибо
Автор: Artem_Butenko
Дата сообщения: 28.09.2008 10:03
Друзья, у меня возник такой конструктивный вопрос, при распаковке SFX-7z архива через Inno Setup (пример из руководства тов. Kindly) стандартный статус-бар замирает в конечной точке, а хотелось бы в это время вывести новый прогресс-бар (под стандартным) на время распаковки SFX-архива. Если это возможно, пожалуйста помогите буду очень благодарен.
Автор: Raf_SE
Дата сообщения: 28.09.2008 12:56
Artem_Butenko
Если не ошибаюсь, у 7Zip есть 2 модуля, один чисто консольный, второй - графический. Фишка в том, что графический потдерживает все консольные команды. И при расспаковке через него ты увидеш прогрессбар распаковки.
Автор: Artem_Butenko
Дата сообщения: 28.09.2008 13:07
Raf_SE -- это не совсем то к чему я стремлюсь! Мне просто интересно, можно ли при распаковке архива расположенного рядом с инсталлятором, отрисовывать еще один прогресс-бар, под базовым (в окне Inno), показывающий статус распаковки "внешнего" архива (когда базовый прогресс установки уже "отработал"). Теперь, думаю, объяснил толково?
Автор: SotM
Дата сообщения: 28.09.2008 15:15
Artem_Butenko
Ответ прост: не получится. Inno сам не может распаковывать никакие архивы, если только не он сам их создал.
Автор: htuos
Дата сообщения: 28.09.2008 18:40
Artem_Butenko

Цитата:
Ответ прост: не получится. Inno сам не может распаковывать никакие архивы, если только не он сам их создал.

если точнее, то можно, если, к примеру, найдешь (или напишешь) длл, которая тебе сможет вернуть MaxValue для твоего прогрессбара и в любой момент времени CurrentValue. тогда используя цикл со Sleep(xxx) можно рисовать прогрессбар где тебе вздумается. или отдавать хэндл прогрессбара в какую-нибудь процедурку из длл, чтобы она сама его обновляла. а средствами инно, тоже думаю что не выйдет

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


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