Войти

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 4]


Страниц : 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

Rikill
28-11-2011, 21:13
ntrx, может так?

fsItalic];

Dark_Delphin
28-11-2011, 21:22
Rikill, нет.

R.i.m.s.k.y.
28-11-2011, 21:25
ntrx, я насчитал 64 символа в строке, а ругается на 74 символ, на закрывающуся скобку
скрипт

Dark_Delphin
28-11-2011, 21:30
R.i.m.s.k.y., да.
Я вот не пойму почему так...
Ругатся на эту строку начало, после того как поставил секцыю [RUN] и [Tasks].

R.i.m.s.k.y.
28-11-2011, 21:34
ntrx,
у меня так с закрывающими эндами бывает - ругается не там где не хватает, хотя намудрил выше места ругани
так шта ишшы, должон быть скобка

Dark_Delphin
28-11-2011, 21:46
Вчера работал скрипт нормально..

R.i.m.s.k.y.
28-11-2011, 21:51
ntrx,
я батарейки для хрустального шара берегу - дорогие стали
вот и вспоминай чего наворотил с послевчерашнего :tongue:

Dark_Delphin
28-11-2011, 22:06
Где можна найти пример прикрутки скина в инсталлятор?

El Sanchez
28-11-2011, 22:20
Подскажите пожалуйста, что это за ошибка и как исправить? »
ntrx, ну {cm:Welcome1} раскроются при такой записи, а {#MyAppName} кто раскроет? ExpandConstant закончился на {cm:Welcome1}.
Нужно убрать лишние 2 скобки.

Caption := ExpandConstant('{cm:Welcome1}'#13#10'{#MyAppName}');

R.i.m.s.k.y.
28-11-2011, 22:35
Нужно убрать лишние 2 скобки »
никогда бы не подумал, я всегда в инно все конструкции заключаю в скобки при первом случае, удобнее потом разбираться

Dark_Delphin
28-11-2011, 22:41
Хэх...

Ну проблема была в этом:

#define MyAppName "Hell's Reach"

В слове Hell's просто нужно было убрать апостроф.

El Sanchez
28-11-2011, 23:16
а {#MyAppName} кто раскроет? »
Тьфу ты! Надо же сглупил я как. Всю жизнь константы препроцессора в ExpandConstant заключал, а на самом деле не обязательно. Вот что значит привычка. :)


ntrx, если нужно апостроф сохранить, удвой его: #define MyAppName "Hell''s Reach"

TROY Diamond
29-11-2011, 17:46
Здравствуйте!

ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА!!! БУДЬТЕ ЛЮБЕЗНЫ!!! ОЧЕНЬ ПРОШУ ВАС!!!

Как сделать "универсальную проверку" на наличие уже ранее установленного приложения, с предложением его удалить/запустить/выйти или всё равно продолжить установку (если можно, то укажите мне, пожалуйста, "отдельно эти варианты" и все вместе). Если вариантов несколько, то тем более помогите, пожалуста!!!

МНЕ НУЖНО, чтобы при запуске моего установщика, происходила проверка на наличие уже установленной проги, как моим установщиком, так и другими вне зависимости от того как бы она не называлась? Просто "искалось" бы в реестре какой-то абсолютно "одинаковый" параметр, например... и по нему находилась эта прога. Или как-то по-другому?!

кроме вот этого варианта (или может в него можно что-то добавить, "усовершенствовать"?):

function InitializeSetup(): Boolean;
var
ResultCode: Integer;
ResultStr:string;
begin
Result:=True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Программа_is1', 'UninstallString', ResultStr)
then
begin
If ResultStr<>''
then
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Эта программа уже была ранее установлена.' #13#13 'Вы хотите предварительно удалить её?', mbInformation, MB_YESNO) = idYes
then
if not Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode)
then
MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещён, удалён или переименован.', mbError, MB_OK);
end;
end;
end;
end;

Так как он подойдёт только Inno Setup, ведь он добавляет "_is1", (и только с именем "Программа_is1", а если у кого-то она по-другому называется) и для установленных другими инсталляторами, например Wise или InstallShild?

Что делать? Нужен "ориентир" по какому-то параметру, который прописывается в реестр всеми установщиками или как?

МНЕ нужно, чтобы при запуске моего установщика, происходила проверка на наличие уже установленной проги, как моим установщиком, так и другими вне зависимости от того как бы она не называлась?

Здравствуйте!

Подскажите, пожалуйста, как сделать сборку игрушек типа Quake, где большая часть ресурсов игры упакована в zip-архивы.

Как сделать? Насколько я понимаю, сначала, надо всё распаковать, а потом запокавать болле сильно, а в процессе установки обратно упаковать и чтобы это всё НЕ было видно для конечного пользователя, с удалением этих папок после создания

Чем открыть формат ar? Ни WinRAR, ни 7-zip, ни Universal Extractor его не берут. Используется в игре SRS

Модератор: TROY Diamond учитесь оформлять сообщение, скрываете большие тексты тегом more, код выделять тегом code. Писать в тексте слова вроде ПОМОГИТЕ МНЕ ПОЖАЛУЙСТА!!! пустая трата времени + нарушение правил оформления сообщения.

TROY Diamond
30-11-2011, 14:37
Подскажите, как делают "компактные RePack'и" для игр типа Quake, CoD, SRS и т.п., где большая часть ресурсов игры уже упакована во что-нибудь "слабо сжатое" (что ещё раз бесполезно ужимать), например в переименованные zip-архивы *.pak, *.iwd, *.pk3?

Надо сначало это всё дело распаковать в отдельные папки, загнать в Inno, НЕ хочу создавать SFX-архивы, хочу просто всё ввиде соответствующих папок лежало в инстале, которые извлекаются из инстала и сразу же перепаковываются, а потом удаляются.

Так? или есть другой способ?!

Как вот это или что-то в этом роде, запустить по ходу установки, а не в конце? Где это прописать?

[Run]
FileName: "{app}\Папка\pkzip25.exe"; Parameters: "-add -dir=relative -NoZipExtension Архив.pk3 pak1/*.*"; WorkingDir: "{app}\Папка"; StatusMsg: "Создание файла.pk3..."

Только не из секции "[Run]" ИЛИ КАК ВООБЩЕ ЭТО ДЕЛАЕТСЯ, ЧТОБЫ ПРОЦЕСС ЗАПУСКАЛСЯ НЕ В КОНЦЕ УСТАНОВКИ, А ПО ХОДУ РАСПАКОВКИ, ТАК КАК КРОМЕ "НУЖДАЮЩИХСЯ В УПАКОВКИ", - ЕСТЬ И КУЧА ДРУГИХ ФАЙЛОВ, КОТОРЫЕ ПРОСТО НАДО ИЗВЛЕЧЬ ИЗ ИНСТАЛА И СКОПИРОВАТЬ В ПАПКУ УСТАНОВКИ?!

Чё та где-то "Before" надо писать, в коде, подскажите, пожалуйста!!!

БЕЗ "pkzip", если это возможно (и какой и где его взять если без него нельзя?!!!), а также, чтобы архивы сразу имели нужное расширение, а НЕ *.zip, И ЧТОБЫ ПАПКА НЕ ВИСЕЛА НА ВИНТЕ, ДО ЗАВЕРШЕНИЯ УСТАНОВКИ И ЗАКРЫТИЯ ИНСТАЛЛЯТОРА, А ПРЯМ СРАЗУ УДАЛЯЛАСЬ ПОСЛЕ СОЗДАНИЯ И ПЕРЕИМЕНОВАНИЯ АРХИВА!!!

Началось извлечение файлов из дистрибутива (в том числе и тех которые НЕ требуют дальнейшей упаковки: документация, значки, исполняемые файлы), а вместе с ними и папки, которые нужно "превратить" в архивы, - СРАЗУ, т.е. извлеклась "папка" -> перепаковалась, переименовалась как надо, удалилась... дальше копируется следующая или другие файлы и чтобы индикатор процесса тоже НЕ стоял на месте во время упаковки...

По поводу: "Создание Файла.pk3...", можно ли сделать так, чтобы индикатор процесса в это время двигался или создать иммитацию, или вручную его двигать?
Я БЫ ВООБЩЕ УБРАЛ БЫ ДОПОЛНИТЕЛЬНОЕ СООБЩЕНИЕ: "СОЗДАНИЕ ФАЙЛА.PK3..." ЕСЛИ БЫ ИНДИКАТОР ПРОЦЕССА ПРОДОЛЖАЛ ДВИГАТЬСЯ ВО ВРЕМЯ УПАКОВКИ!!!

А по окончании установки, удалялся весь оставшийся "мусор" и ещё раз проверялось, чтобы ничего лишнего НЕ осталось?!

БУДЬТЕ ЛЮБЕЗНЫ, дайте, пожалуйста, полный скрипт инстала для пакетов кодеков K-Lite!

TROY Diamond, мемуары под спойлер, пожалуйста. Все Ваши проблемы обсуждались ранее. Советую почитать по подробнее.

Ну, что Вам сложно что ли подсказать? У меня Инернет медленный, я 2-части осилил прочитал, но не нашёл, то что мне именно нужно!!!

Помогите!!!

R.i.m.s.k.y.
30-11-2011, 14:49
TROY Diamond,
http://www.lulzov.net/images/201110/srh59apo9l9n.jpg

я, к примеру, не могу вычленить из потока сознания техзадание: чего надо то? почему не упаковывать стандартными средствами инно?
И верхний пример проверки установленной программы вполне годный.
А что до усовершенствовать, то у каждой биологической модели человека свои понятия совершенного, а кнопки "сделать гут" еще не придумали.

Ставь конкретные вопросы: чего нужно, чего непонятно, первое-второе-третье
Я на прошлой странице спрашивал, веришь-нет - ответили.
Потому что грамотно спросил: что хочу и в чем затык.

И не думай что за тебя скрипт писать будут!


Что до к-ляйта, то возми Inno Unpacker и распотроши его
Только не жди многого, там очень жирная секция кода, она только дизассемблируется


Ну а для начала советую в стандартном инно компиляторе нажать F1, в строке поиска ввести Installation order, и почитать
Проблемы с английским? в шапке русская справка

R.i.m.s.k.y.
30-11-2011, 16:25
Так как он подойдёт только Inno Setup, ведь он добавляет "_is1", (и только с именем "Программа_is1", а если у кого-то она по-другому называется) и для установленных другими инсталляторами, например Wise или InstallShild?
Что делать? Нужен "ориентир" по какому-то параметру, который прописывается в реестр всеми установщиками или как?
МНЕ нужно, чтобы при запуске моего установщика, происходила проверка на наличие уже установленной проги, как моим установщиком, так и другими вне зависимости от того как бы она не называлась? »

тогда нужно знать точно как другой установщик проверяет наличие этой программы
в ~75% случаев достаточно отрегшотить* ключи реестра устанавливаемой программы, исключив HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* - это секция установки/удаления программ в панели управления
сделать это нужно в двух системах: х86 и х64, тк ключи реестра будут разными



Подскажите, как делают "компактные RePack'и" »
наверное freearc + isdone
не вижу в них смысла кроме возможности вывода красивых процентов и времени распаковки
инно на максе жмет не хуже, а может даже чуть лучше

Надо сначало это всё дело распаковать в отдельные папки, загнать в Inno, НЕ хочу создавать SFX-архивы, хочу просто всё ввиде соответствующих папок лежало в инстале, которые извлекаются из инстала и сразу же перепаковываются, а потом удаляются.
Так? или есть другой способ?! »
такая постановка вопроса показывает, что ты еще ничего даже не пробовал сделать, иначе такого вопроса просто не было бы
скачай в шапке самые простые примеры, разбери, почитай

и запомни - простой репак чего_ты_там_перепаковываешь в 100500 раз стабильнее красивостей
док-ва на руторе в раздачах игр-репаков


----------------------
* отрегшотить - отследить установку проги программой regShot, она же умеет отслеживать устанавливаемые файлы

TROY Diamond
30-11-2011, 20:28
тогда нужно знать точно как другой установщик проверяет наличие этой программы
в ~75% случаев достаточно отрегшотить* ключи реестра устанавливаемой программы, исключив HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\* - это секция установки/удаления программ в панели управления
сделать это нужно в двух системах: х86 и х64, тк ключи реестра будут разными

Я знаю куда и чё прописывается! Я спрашиваю как это всё указать, чтобы моя сборка находила, всё это дело?

скачай в шапке самые простые примеры, разбери, почитай

Я, что против, какие? у меня всё в "крестиках", страницы по пол-минуты грузятся...

и запомни - простой репак чего_ты_там_перепаковываешь в 100500 раз стабильнее красивостей
док-ва на руторе в раздачах игр-репаков

наверное freearc + isdone
не вижу в них смысла кроме возможности вывода красивых процентов и времени распаковки
инно на максе жмет не хуже, а может даже чуть лучше

А КТО ПИСАЛ ЧТО МНЕ НУЖНЫ КРАСИВЫЕ, Я ПРОСИЛ "КОМПАКТНЫЕ"!!!

Да, мне не нужна эта гламурная мишура я спрашиваю как сделать такой репак, zip-архивы ведь не пережмешь, мне надо их все распаковать, упаковать в Инно, а потом снова всё это создать обратно?

R.i.m.s.k.y., мда *iss у K-lite Codec Pack весит почти 1 мб

у инсталлера кляйта очень большой блок Code, бинарник полметра весит

Кто-нибудь поделится?

TROY Diamond,


я, к примеру, не могу вычленить из потока сознания техзадание: чего надо то? почему не упаковывать стандартными средствами инно?
И верхний пример проверки установленной программы вполне годный.
А что до усовершенствовать, то у каждой биологической модели человека свои понятия совершенного, а кнопки "сделать гут" еще не придумали.

Ставь конкретные вопросы: чего нужно, чего непонятно, первое-второе-третье
Я на прошлой странице спрашивал, веришь-нет - ответили.
Потому что грамотно спросил: что хочу и в чем затык.

И не думай что за тебя скрипт писать будут!


Что до к-ляйта, то возми Inno Unpacker и распотроши его
Только не жди многого, там очень жирная секция кода, она только дизассемблируется


Ну а для начала советую в стандартном инно компиляторе нажать F1, в строке поиска ввести Installation order, и почитать
Проблемы с английским? в шапке русская справка

Вот нашёл на Вашем форуме вот этот скрипт:

http://rghost.ru/27877781

НО ЭТО ТОЛЬКО ПО ПЕРВОМУ ВОПРОСУ И ТО НЕ СОВСЕМ... (А по-второму вопросу про установщики для игр типа Call of Duty и Quake. И по третьему вопросу про игру Street Racing Syndicate, чем и как открыть формат *.ar, + скрипт чтобы его упаковать, а в процессе установки обратно создать)?

Он мне не подходит!!!

Так как проверка НЕ "универсальная", - "заточена" под Inno Setup!!! А если приложение было установлено другим инсталлятором, например Wise или InstallShild и/или файл деинсталлятора имеет другое имя и или находится НЕ в папке установки!

Мне нужно, чтобы при запуске моей сборке, происходило обнаружение ранее установленного этого же приложения, НО НЕ ТОЛЬКО С ПОМОЩЬЮ МОЕГО ИНСТАЛА!!!
С предложением, его удалить, запустить, выйти и ПРОПУСТИТЬ (ВСЁ РАВНО ПРОДОЛЖИТЬ УСТАНОВКУ) - т.к. очень часто пользователи некорректно удаляют приложение, НЕ с помощью деинсталлятора (а ключ в реестре всё равно весит), проги -то нет, но НЕ запустить НЕ удалить, НЕ переустановить её НЕЛЬЗЯ!!!

К примеру, пользователь, ДО этого устанавливал программу с помощью другого инсталла и/или неправильно её удалил. А тут он взял мою сборку - запустил она нашал ранее установленную и предложила её либо удалить, запустить или всё равно продолжить установку (удалив/затерев или "поверх" поставив).

Хочу, чтобы у меня был "установщик-чистильщик", при запуске, которого, будет найдена ранее установленная программа, а при корректном удалении её - УДАЛИТСЯ ВСЁ, включая и то, что было создано в процессе установки/использования, как моей так и другой сборки!

TROY Diamond
30-11-2011, 20:48
Как ярлыку задать параметр скрывать консольные окна? Запускать командную строку в скрытом режиме?

Дело в том, что при запуске утилиты сбиваются, настроенные мной опции... мне ничего не пришло в голову, как создать bat'ник, который эти настройки восстанавливает обратно, по закрытии утилиты.
И ярлык я сделал именно на этот bat'ник, а не на саму утилиты. Пользователь запускает утилиту с ярлыка, запускается bat-ник, который запускает утилиту, а после вносит изменения в реестр и весит на пол-экрана пока утилиту не закроют!!! Как его скрыть?!

ИЛИ МОЖЕТ БЫТЬ ЕСТЬ КАКОЙ-НИБУДЬ ДРУГОЙ СПОСОБ, КОГДА ПРИ ЗАПУСКЕ ОДНОЙ ПРОГИ С ЯРЛЫКА ВЫПОЛНЯЛАСЬ БЫ ЕЩЁ ПОТОМ И ДРУГАЯ?

В данном случае, мне нужно после закрытия утилиты внести/заменить некоторые записи в реестре, которые утилита изменила.



Как при установке запустить "на мнгновение" определённое приложение (буквально на 1-2 секунды), а потом автоматически его закрыть, как при нажатии на крестик или на кнопку "Отмена"/"Закрыть".
Приложение находится в инстале и копируется в папку основного приложения. В принципе её можно и вручную, потом запустить, или "чекбокс" поставить в конце, но я хочу чтобы всё это было сделано "на автомате"!
И всё это необходимо "провернуть" в скрытом режиме, чтобы пользователь не видел запускаемого приложения, именно поэтому нужно, чтобы прога сама автоматически закрылась!
Наверное, надо как-то "убить процесс"?!

R.i.m.s.k.y.
30-11-2011, 22:34
TROY Diamond, ты только себя читаешь?
тебе известен способ как ищется твоя прога?
ты уже хотя бы отрегшотил что пишет в реестр твоя прога?

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

не обижайся

если ты сам свою задачу разложишь по полочкам и начнешь с начала то
а) будет проще самому разобраться
б) задавать конкретные вопросы по одному разу и получать конкретные ответы,

в конце концов кому тут помощь нужна?

начать следует как раз с того какие изменения нужно сделать в системе чтобы поставить прогу: скопировать файлы, записать в реестр, зарегить библиотеки.
это ты знаешь?
если знаешь - начинаешь потихоньку заполнять Setup/Files/Registry
кстати это ответ на твой вопрос "как узнать стоит прога или нет?"

поменьше эмоций, у компилятора нет параметра /emotion=true

батник запускается сам и висит окном, скрыть его нельзя, наследие доса
строки в батнике запускаются последовательно одна за другой
если нужно запустить скопом из батника - в начале поставь start прога.ехе, следующая прога запустится не ожидая окончания предыдущей
но если ты батник запускаешь из инно то есть параметр runhidden - черного окна батника не будет видно, и ошибок тоже

И если ты знаешь про раздел реестра "установка/удаление программ" то наверное знаешь и про ключ UninstallString - строчка с деинсталлятором, которую нужно запустить для удаления

Это дурной тон удалять то чего не просят. Достаточно чтобы инсталлер проверил что есть "инородное вкрапление", предупредил и закрылся.


Я знаю куда и чё прописывается! Я спрашиваю как это всё указать, чтобы моя сборка находила, всё это дело? »
в шестой версии протокола TCP/IP будет добавлена возможность угадывания куда и чё прописывается по словам "Я спрашиваю"

valyok666
01-12-2011, 01:34
Привет всем)щас задался вопросом)мне надо сделать онлайн инсталл InnoTools Downloader т.е он скачивает архив (эт знаю как справку читал) а как сделать чтобы файл скачивался в темп и дальше шла распаковка через ISDOne?И распаковка шла в путь указанный в сетупе)кто нибудь задавался таким вопросом???или есть примеры кроме стандартных с сайта буду рад))




© OSzone.net 2001-2012