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

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

Автор: Genri
Дата сообщения: 13.05.2009 10:26
SotM, Krinkels

Цитата:
Запускается 7z.exe и распаковывает архив
-- сорри - был не внимателен. Тогда пойдет. Но только при условии, что у клиента установлен 7z. И почти наверняка потребуется указание полного пути к архиватору.

Добавлено:
проще делать SFX-архивы с паролем (с 7z не работал, но подозреваю, что такой механизм предусмотрен)
Автор: Krinkels
Дата сообщения: 13.05.2009 10:35
SotM

Цитата:
А кто такой unpacker.exe ?!?!

Это что то типа универсального распаковщика
Автор: Genri
Дата сообщения: 13.05.2009 10:51
BondDaniil00

Цитата:
В инсталяторе запускаю скрипты, который заливают данные в базу. Так вот как можно обрабатывать ошибки если не запущен OracleXE???
-- насколько я понимаю, для того, чтобы "залить" данные в базу, надо подключиться к серверу. Но даже если сервер запущен, не факт что ты сможешь подключиться (недоступен порт, не настроен алиас, нет прав и т.д.). Так что имхо, проверять надо не запущен ли сервер, а производить тестовое подключение. И если все ок - тогда и запускать скрипты.
Автор: SotM
Дата сообщения: 13.05.2009 10:56
Genri

Цитата:
Но только при условии, что у клиента установлен 7z. И почти наверняка потребуется указание полного пути к архиватору.

Это не обязательно. Можно просто саму утилиту 7z.exe запихнуть в инсталятор. Она размером 150 Кб. Можно просто извлечь ее в {temp} папку и оттуда уже запускать. Правда я путь к 7z.exe не указал в примере.

Автор: BondDaniil00
Дата сообщения: 13.05.2009 12:01
Genri
буду очвень признателен, если расскажешь как это сделать
Автор: Genri
Дата сообщения: 13.05.2009 12:17
BondDaniil00 -- Oracle у меня нет. Так что готового скрипта дать не могу. Но в составе инно есть пример CodeAutomation.iss - возможно чем-нибудь и поможет.
Автор: ExpeditorR
Дата сообщения: 13.05.2009 12:26
Krinkels
Ещё можешь воспользоваться моей dll'кой is7z.dll, скачать можно тут: http://narod.ru/disk/4472636000/is7z%20v1.01.rar.html, и пароль введёшь и прогресс бар в окне инно покажешь.

p.s.
Правда некоторые жаловались, что большие архивы она не хочет распаковывать, хотя сколько я не пробовал воспроизвести этот глюк у меня ничего не вышло, ибо все тестовые архивы размером правда 2,1гига распаковались без проблем, но если всё же возникнут трудности разбей архив на более мелкие части, и будет счастье.
Автор: Krinkels
Дата сообщения: 13.05.2009 12:29
ExpeditorR
Вечером обязательно попробую
Автор: BondDaniil00
Дата сообщения: 13.05.2009 12:33
Genri
Да, похож СПАСИБО!

Добавлено:
А КАК СДЕЛАТЬ MsgBox если батник не может выполнится по какой либо причине
ошибку видно только в cmd, а выполняется батник SW_HIDE режиме
Автор: Engaged Clown
Дата сообщения: 13.05.2009 14:37
Подскажите новичку:
1) Распаковал innounp инсталляцию. Открыл в inno 5.2.4.
2) Заменяю нужные файлы. Пытаюсь компилировать, вылезает ошибка
3) Убираю строчку, вылезает другая ошибка

Цитата:
Parsing [Languages] section, line 300
File: embedded\enLicense.rtf
File: C:\ThreatFire\embedded\en.isl
*** Compile aborted.


Дальше у меня ступор, никогда не занимался подобным, вроде по логике скрипт должен без проблем компилироваться.

Маны читал, и русские и английские. В чём подвох ?
Автор: noiseless
Дата сообщения: 13.05.2009 14:52
BondDaniil00
Попробуй при ошибке создавать какой-нибудь временный файлик, а в Inno проверять на наличие оного, и если он есть, то выводить сообщение
Автор: spider91
Дата сообщения: 13.05.2009 15:14
SotM



Цитата:
Хммм, скорей всего легкого решения не будет. Наверное придется создать таймер по проверке нажатия кнопки Отмена, или еще что-то в этом роде...



а как ето организовать? если не заруднит дай пример плиз

ExpeditorR


Цитата:
Правда некоторые жаловались, что большие архивы она не хочет распаковывать, хотя сколько я не пробовал воспроизвести этот глюк у меня ничего не вышло, ибо все тестовые архивы размером правда 2,1гига распаковались без проблем, но если всё же возникнут трудности разбей архив на более мелкие части, и будет счастье.


у меня архивы большие не распаковываются. точно не помню со скольки гиг но архивы на 3 гб и больше точно не идут. и если разбивать на маленькие то сжатие немного меньше
Автор: Krinkels
Дата сообщения: 13.05.2009 15:48
ExpeditorR
На 5.3.0-beta не компилируется
Автор: Genri
Дата сообщения: 13.05.2009 16:17
BondDaniil00

Цитата:
КАК СДЕЛАТЬ MsgBox если батник не может выполнится по какой либо причине
ошибку видно только в cmd, а выполняется батник SW_HIDE режиме
-- батник не может выполнится или выполняется, но с ошибкой? Скорее всего имеется ввиду второе и необходимо получить результат выполнения. Тогда могут быть разные варианты. Например:
[more=Вариант 1]
Код: [no]
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DirExistsWarning=no

[Files]
Source: ISTask.dll; Flags: dontcopy
Source: new.cmd; Flags: dontcopy


Код:
function ExecConsoleAppX(CommandLine: PChar): PChar;
external 'ExecConsoleAppX@files:ISTask.dll stdcall delayload';

procedure CurStepChanged(CurStep: TSetupStep);
var
str: string;
begin
if CurStep = ssPostInstall then
begin
ExtractTemporaryFile('new.cmd');
str:= ExecConsoleAppX(ExpandConstant('{tmp}\new.cmd'));
MsgBox(str, mbInformation, MB_OK);
end;
end; [/no]
Автор: ExpeditorR
Дата сообщения: 13.05.2009 16:18
Krinkels
Только что проверил на 5.3.0-beta, и всё прекрасно работает.
spider91
попозже сегодня выложу новую тестовую версию, и если будет не сильно лень, то проверь на больших архивах.
Автор: spider91
Дата сообщения: 13.05.2009 16:22
ExpeditorR

конечно проверю и отпишусь что к чему
Автор: Krinkels
Дата сообщения: 13.05.2009 18:12
ExpeditorR
На 5.3.0 у меня выдает
На 5.2.4 идет без проблем
Автор: JKSerGEAnt
Дата сообщения: 13.05.2009 19:52
Господа, подскажите, инсталляторы, сделанные с помощью 3.0 beta, заработают исключительно при наличии .NET FMWK? Если да, то какая версия требуется обязательно? И неужели автор не предусмотрел никаких возможностей компиляции без него?
Автор: SotM
Дата сообщения: 13.05.2009 19:53
Krinkels
Так и есть, читай в шапке "Что нового в 5.3". Там сказано, что некоторые имена типов переменных поменялись.
Автор: spider91
Дата сообщения: 14.05.2009 00:07
подскажите как правильно прописать етот ключ для реестра в инно


Код: "DigitalProductID"=hex:6c,93,48,93,31,c3,4a,c3,7f,3b,c1,a2,6f,88,03,00
Автор: Genri
Дата сообщения: 14.05.2009 00:39
spider91

Цитата:
как правильно прописать етот ключ для реестра в инно
Код:"DigitalProductID"=hex:6c,93,48,93,31,c3,4a,c3,7f,3b,c1,a2,6f,88,03,00
-- вероятно так:
...ValueType: binary; ValueName: "DigitalProductID"; ValueData: "6c 93 48 93 31 c3 4a c3 7f 3b c1 a2 6f 88 03 00"
Автор: spider91
Дата сообщения: 14.05.2009 00:53
Genri

спасибо. я писал с "," поетому и не получалось

Добавлено:
как установить vcredist чтоб процеса установки вобще небыло видно? с параметром /q он ставится автоматом но видно окошко, так вот его я и хочу скрыть.


P.S.
флаг runhidden не помагает
Автор: boss911
Дата сообщения: 14.05.2009 05:52
ALL

Я тут попытался дополнить перевод для ISTool версии 5.3.0, но не все так просто, возможно тут кто-то поможет.

Удалось перевести вот [more=эти элементы]
Код: Compiler|ProductName=Назв. прод-а:
Compiler|ProductVersion=Верс. продукта:
Автор: BondDaniil00
Дата сообщения: 14.05.2009 07:40
Genri
Огромное спасибо
Автор: Krinkels
Дата сообщения: 14.05.2009 08:59
Друзья, не подскажете можно такое реализовать: вместо полоски прогресс бара поставить картинку которая будет открываться по ходу инсталяции?
Автор: BondDaniil00
Дата сообщения: 14.05.2009 09:19
Genri
Извени за нааглость, как теперь зделать чтоб msbox вываливался только если ватник не может выполниться
Автор: SotM
Дата сообщения: 14.05.2009 10:59
Krinkels
Объясни конкретней, что ты хочешь чтобы происходило "вместо" прогресс бара? Слайдшоу? Или шо?
Автор: Vitalliano
Дата сообщения: 14.05.2009 11:01
Такая проблема в InnoTools Downloader, добавил itd_ru.ini, дак вместо букв иероглифы, я так понимаю необходимо както перевести в Юникод?

К стати, кому интересен Русский перевод http://www.megaupload.com/?d=XF5EJEOL
Автор: Sens0r
Дата сообщения: 14.05.2009 11:39
Как можно защитится от установки программы в папку с этой же программой.
Пример:
По-умолчанию программа устанавливается в C:\Games\Game
Если, предположим, игра когда то стояла на компьютере и была в другой папке например
D:\Games\Game , пользователь указывает в диалоге выбора папке как правило C:\Games\Game, в следствии чего программа устанавливается в D:\Games\Game\Game
Вот, как сделать так чтобы установщик проверял дубликат в пути и исправлял путь на D:\Games\Game ?
Автор: Genri
Дата сообщения: 14.05.2009 11:39
BondDaniil00

Цитата:
как теперь зделать чтоб msbox вываливался только если ватник не может выполниться
-- еще раз - батник не может не выполниться! Он может не запуститься (если не найден или нет прав). Но если он запущен, то выполнится всегда. Другое дело, если прописанная в нем команда после выполнения возвращает статус с ошибкой. В функции Exec, статус выполнения сохраняется в параметре ResultCode (если 0 - успешно; отличный от нуля - в случае ошибки). Можешь анализировать ResultCode. Только следует иметь ввиду, что если в батнике будет несколько команд, то в ResultCode будет статус только последней выполненной команды.
[more]
Код: [no]
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DirExistsWarning=no

[Files]
Source: "new.cmd"; Flags: dontcopy

[Code]
var
ResultCode: Integer;
str: string;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
ExtractTemporaryFile('new.cmd');
Exec(ExpandConstant('{tmp}\new.cmd'), ' >> result.txt', '', SW_HIDE,
ewWaitUntilTerminated, ResultCode);

if ResultCode <> 0 then
begin
LoadStringFromFile(ExpandConstant('{tmp}\result.txt'), str);
MsgBox(str + #10#13 + IntToStr(ResultCode), mbInformation, MB_OK);
end;
end;
end; [/no]

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071

Предыдущая тема: в очередной раз босудим антивиры?


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