Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Закрытая тема
Настройки темы
Скрипты Inno Setup. Помощь и советы [часть 4]

Аватара для El Sanchez

Ветеран


Contributor


Сообщения: 1273
Благодарности: 1030


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: Vadikan
Дата: 22-05-2012
Описание: Закрыто
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.4 [13.03.2010] - Скачать;


Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Inno Setup [все вопросы] часть 1
Inno Setup [все вопросы] часть 2
Скрипты Inno Setup. Помощь и советы [часть 3]


Продолжение обсуждения
Скрипты Inno Setup. Помощь и советы [часть 5]

Отправлено: 18:01, 29-08-2011

 

Пользователь


Сообщения: 91
Благодарности: 7

Профиль | Сайт | Отправить PM | Цитировать


Цитата R.i.m.s.k.y. :
TROY Diamond, ты только себя читаешь?
НЕ ПОСЫЛАЙТЕ МЕНЯ И НЕ ПОСЫЛАЙТЕ В ПОИСКОВИКИ, ПОЖАЛУЙСТА!!!
читать дальше »

НЕ пишите, что-нибудь вроде "Погугли в Яндексе...". Я только Яндексом и пользуюсь, именно с помощью него я и вышел на Ваш форум!!!

Я писал: "Скрипты для Inno Setup"; "Как сделать в Inno Setup"; "Секция [code] в Inno Setup" и эти же вопросы которые я здесь задаю, - все "дорожки привели" сюда!!!

Но поисковик - машина, его не спросишь на прямую, он не поймёт... если не сформулируешь верно или не будет совпадений, - а здесь живые люди - великие мудрецы!!!

Где, как не на форуме, задавать вопросы, узнавать что-то новое и нужное, а также делиться полезной информацией с нуждающимися?!

Да как Вы не поймёте зачем и почему мне это надо?! Не для гламура ведь ради...

1. Если тупо взять и загнать всё, как есть в Inno Setup или попытаться сжать каким-нибудь другим компрессором, то в лучшем случае, пару метров всего выиграю, а в худшем, размер ещё больше увеличится!!!
АРХИВЫ, НЕ СЖИМАЮТ!!! Сжатие одного архива другим архиватором приводит к увеличению размера!!! Только сжатие в zip, не накручивает размер, а они и так zip-архивы. Проще тогда вообще БЕЗ сжатия скомпилировать и всё!

2. А я хочу уменьшить размер... я пробовал... распаковывал эти архивы и упаковывал их обратно, но в RAR или 7-zip, ТАК РАЗМЕР УМЕНЬШАЛСЯ РАЗА В 3-4!!! Поэтому я и хочу так сделать.

3. Если запускать упаковку в архивы просто из секции "[Run]", то сначала всё содержимое инстала извлечётся на винт, потом начнётся, упаковка в архивы и только в конце "всё это дело" удалится!!! Для такого репака места на ЖД нужно раза в 3-4 больше, чем занимает сама игра!!!
К ТОМУ ЖЕ ИНДИКАТОР ПРОЦЕССА ДОЙДЁТ ДО КОНЦА (будет 100%), А ПОТОМ ПОЛЧАСА ВСЁ ЭТО БУДЕТ ВИСЕТЬ... так как создать архивов нужно кучу, да и на упаковку не мало времени уйдёт!!!
Пользователь подумает, что комп просто завис - индикатор процесса дошёл до конца, а установка не всё никак не завершается!!!

4. Поэтому я и хочу, чтобы всё происходило "по шагам":
Из инстала извлекается 1 папка -> создаётся архив (можно и сообщение соответствующее добавить "Создание файла...", а расширение из *.zip - переименовывается на нужное или сразу создаётся с нужным, или в конце), папка удаляется - индикатор процесса "двигается"...
Из инстала извлекается 2 папка -> создаётся 2 архив (расширение из *.zip - переименовывается на нужное или сразу создаётся с нужным, или в конце), папка удаляется - индикатор процесса продолжает "двигается"...
Из инстала извлекается 3 папка -> создаётся 3 архив, (расширение из *.zip - переименовывается на нужное или сразу создаётся с нужным, или в конце), папка удаляется - индикатор процесса всё дальше и дальше...
И так по очереди, пока все извлечённые нужные папки не "превратятся" в архивы.
А когда индикатор процесса дойдёт до конца, то и установка тоже завершится.

Вот и всё! Я ведь видел подобную реализацию, в какой-то сборке игры Бернаут или какой-то другой, а также в некоторых русификаторах от SerGEAnt's (Zone Of Games) - НЕ будут же они все ресурсы игры упаковывать?!
Поэтому они вызывают команду, чтобы архив распаковался, в него добавился перевод, а потом он снова упаковался обратно... (НО ЭТО НЕ ВЕЗДЕ В "МАЛЕНЬКИХ" РУСИФИКАТОРАХ, команда вызывалась просто из секции "[Run]").

ПОМОГИТЕ, ПОДСКАЖИТЕ, ПОЖАЛУЙСТА!!!

Ведь и установку каких-нибудь дополнительных приложений, реализуют подобным образом.
БЫВАЕТ же, к примеру, что до начала или во время установки приложения, надо что-то скопировать и/или запустить - это ведь примерно тоже самое!

Я ведь не прошу никого чё нибудь "гламурненкое" замутить, не прошу слайд-шоу, музыку и т.п. Не прошу; "А как вот такой сделать" и т.п. А тут ведь много таких просьб - им Вы помогаете!!!

А мне всего лишь кодик, команду, параметр, пример, нужны... Я ведь даже не знаю, что и куда в этом случае...


Цитата:
тебе известен способ как ищется твоя прога?
ты уже хотя бы отрегшотил что пишет в реестр твоя прога?

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

не обижайся

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

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

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

поменьше эмоций, у компилятора нет параметра /emotion=true
Я хочу чтобы моя сборка определяла это же ранее установленное приложение, каким бы инсталлятором оно не было установлено. NSIS, Wise, InstallShild или Inno Setup.

ВСЕ возможные и невозможные варианты названий и т.п. я готов написать, хоть 100 - мне не влом, Вы только скажите куда и как?

Inno Setup в реестре пишет в "Uninstall" с "is1", Wise "{цифры}" и т.п. К тому же название тоже может быть разным, к примеру у кого-то с какими-нибудь знаками "-", "." ":" или просто к названию прибавлено "Сборка..."
И как мне к каждому привязать, что бы всё это находилось, а главное можно было запустить деинсталлятор!

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

А потом ещё и возмущаются, почему приложение нельзя переустановить?! Ключ в реестре, то висит, его никто не удалил...

Поделитесь скриптом для UltraISO

Как сделать проверку разрядности и/или версии ОС для установки соответствующих компонентов?

К примеру у меня есть какие-то дополнительные файлы/проги, которые нужно поставить в зависимости от разрядности и/или версии системы.
Если x86, то ставим одну, если x64, то другую или туже, но с соответствующей разрядностью, если XP, то одно если Vista/7, то другое и т.п.

Чё та надо писать, типа "Check", а что конкретно и какой код я вообще НЕ знаю.

ТОТ ЖЕ САМОЕ И ДЛЯ ПАПКИ УСТАНОВКИ (или это не принципиально?).
К примеру папка "Program Files" вроде бы чем-то "отличается"?

Поделитесь, пожалуйста, самым оптимальным и простым скриптом для создания сильно упакованного дистрибутива (Inno Setup + внешний компрессор)
Насколько я знаю, чаще всего используют FreeArc

МНЕ НУЖНО, чтобы архив(ы), был(и) "рядом" с файлом "setup.exe" и извлекались сразу напрямую из него, чтобы не тратилось время и места на ЖД, для извлечения сначала из "Inno Setup".
ОБЯЗАТЕЛЬНО НУЖНО, чтобы архивы были поделены на части нужного мне размера, т.к. как размер большой и ВЫГЛЯДЕЛИ ОНИ ТАК ЖЕ КАК И "СТАНДАРТНЫЕ ЧАСТИ INNO SETUP" (setup-1.bin, setup-2.bin...).
И ВНЕШНЕ ПРИ РАСПАКОВКЕ, ЧТОБЫ ВСЁ ВЫГЛЯДЕЛО "КАК СТАНДАРТНАЯ УСТАНОВКА", с одним обычным прогресс-баром и БЕЗ всяких: "Извлечение из архива...", "файлов: .., % выполнено, осталось ждать..." и т.п. НИЧЕГО ЭТОГО НЕ НАДО!!!

Должно быть как обычно "Распаковка файлов..." и один стандартный индикатор процесса.
И распаковка начиналась НЕ из секции "Run", а в процессе установки, чтобы индикатор процесса "двигался".
А при отмене/прерывании установки - удалялось всё, что распаковалось, типа как обычно: "Откат изменений..." и всё...

Один раз видел, что-то подобное... поэтому и спрашиваю!

А обычно "куча мишуры", оформление, несколько индикаторов процесса, дополнительные окна и надписи, изменение цвета, НИЧЕГО этого не надо.

Дайте, пожалуйста, скрипт и посоветуйте как и чем лучше сжимать и т.п.

Спасибо! Жду Вашего ответа...

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

Последний раз редактировалось volk1234, 04-12-2011 в 20:59. Причина: неправильное оформление


Отправлено: 20:35, 01-12-2011 | #301



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для dracosha

Пользователь


Сообщения: 80
Благодарности: 11

Профиль | Отправить PM | Цитировать


Доброго дня!
Люди помогите решить задачу...
Через препроцессор пишу в ини дату:
Код: Выделить весь код
#expr WriteIni(MyAppSourcePath + "\profiles\settings_ru.ini", "Section1", "ReleaseDate", GetDateTimeString('dd.mm.yyyy', '', ''))
Значение (т.е.) саму дату пишет естественно без кавычек... Вот так:
Код: Выделить весь код
ReleaseDate=01.12.2011
а я хочу что бы писало так:
Код: Выделить весь код
ReleaseDate="01.12.2011"
куда только не пробовал подсунуть кавычки, ничего не помогает

Отправлено: 00:59, 02-12-2011 | #302


Новый участник


Сообщения: 29
Благодарности: 1

Профиль | Отправить PM | Цитировать


никто не в курсе собираются разработчики портировать inno на 64 бита? вообще разработчик достаточно ленивый походу такую маленькую программку до сих пор не портировал. прямо странности

Отправлено: 05:43, 02-12-2011 | #303


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


dracosha, что если добавить AddQuotes?
Код: Выделить весь код
#expr WriteIni(MyAppSourcePath + "\profiles\settings_ru.ini", "Section1", "ReleaseDate", AddQuotes(GetDateTimeString('dd.mm.yyyy', '', '')))

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 08:09, 02-12-2011 | #304


Аватара для Rikill

Старожил


Сообщения: 189
Благодарности: 90

Профиль | Отправить PM | Цитировать


Arsi000, всё работает и хорошо. Зачем это нужно?

-------
"Око за око приведёт к слепоте мира"- Ганди


Последний раз редактировалось Rikill, 02-12-2011 в 16:24.


Отправлено: 15:17, 02-12-2011 | #305


Аватара для R.i.m.s.k.y.

Ветеран


Сообщения: 1640
Благодарности: 536

Профиль | Отправить PM | Цитировать


Rikill, между прочим я старался помочь, пытался узнать чего нужно, на понятые мною вопросы я ответил
а смысл в сообщениях обратно пропорционален кол-ву знаков
что до per rectum ad astrum я только сегодня после обеда вкурил что TROY Diamond хочет такой изврат сотворить, у меня просто в голове не укладывалась вся абсурдность этой затеи
столько писать и я смогу, см на моем сайте инструкции

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

Это сообщение посчитали полезным следующие участники:

Отправлено: 16:32, 02-12-2011 | #306


Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


Как сделать такое как на скрине?

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

Отправлено: 22:31, 03-12-2011 | #307


Аватара для Rikill

Старожил


Сообщения: 189
Благодарности: 90

Профиль | Отправить PM | Цитировать


Devils Night, а как может быть три подряд выбранных радиобаттонов?!
Сейчас очень быстро накатал примерчик, так что умные люди сильно ногами не бейте, а поправьте меня.
Пример не работает, но думаю если приложить немного знаний и сил то заработает, просто самому интересно стало.
Код: Выделить весь код
[Setup]
AppName=1
AppVerName=1
DefaultDirName=1

[Files]
Source: Files\*; Flags: dontcopy

[Types]
Name: full; Description: Full installation; Flags: iscustom

[Components]
Name: Lang1; Description: ляляля; Types: full;
Name: Lang2; Description: ляляля1; Types: full;


Код: Выделить весь код
var
 bmp: TBitmapImage;
 bmp1: TBitmapImage;
 
procedure InitializeWizard;
 begin
  ExtractTemporaryFile('bmp1.bmp');
 bmp1 := TBitmapImage.Create(WizardForm);
 With bmp1 do
 begin
   Top:=100;
   Left:=330;
   Width:=100; 
   Height:=30;
   Parent:=WizardForm.SelectComponentsPage;
   Bitmap.LoadFromFile(ExpandConstant('{tmp}\bmp1.bmp'));
 
 ExtractTemporaryFile('bmp.bmp');
 bmp := TBitmapImage.Create(WizardForm);
 With bmp do
 begin
   Top:=100;
   Left:=330;
   Width:=100; 
   Height:=30; 
   Parent:=WizardForm.SelectComponentsPage;
   Bitmap.LoadFromFile(ExpandConstant('{tmp}\bmp.bmp'));
 end;
 end;
 end;

procedure CurPageChanged(CurPageID: Integer);
begin
//bmp.hide
    if IsComponentSelected('Lang1') then bmp.show
    if IsComponentSelected('Lang2') then bmp1.show
end;

-------
"Око за око приведёт к слепоте мира"- Ганди


Последний раз редактировалось Rikill, 04-12-2011 в 01:28.


Отправлено: 01:15, 04-12-2011 | #308


Забанен


Сообщения: 216
Благодарности: 62

Профиль | Цитировать


Rikill, Не то.
Цитата Rikill:
а как может быть три подряд выбранных радиобаттонов?! »
нужно не три подряд, а один из них, но три и более.
Конкретно, нужно тоже самое, но чтобы при выбранном, сбоку менялась картинка

Код: Выделить весь код
[Setup]
AppId={{452AA98F-8AA7-40C9-A583-6DAF44B9E14E}
AppName=My Program
AppVersion=1.5
;AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputDir=.
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: A\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: A
Source: B\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: B
Source: C\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs; Tasks: C

[Tasks]
Name: A; Description: A; GroupDescription: Типа прога; Flags: exclusive
Name: B; Description: B; Flags: exclusive; GroupDescription: Типа прога
Name: C; Description: C; Flags: exclusive; GroupDescription: Типа прога

Именно при выборе, а не при наведении.

Отправлено: 06:22, 04-12-2011 | #309


Аватара для Gnom_aka_Lexander

Ветеран


Сообщения: 978
Благодарности: 564

Профиль | Сайт | Отправить PM | Цитировать


Цитата Devils Night:
нужно не три подряд, а один из них, но три и более.
Конкретно, нужно тоже самое, но чтобы при выбранном, сбоку менялась картинка
Именно при выборе, а не при наведении. »
Прикрепил пример.

-------
Я люблю помогать. Но не путайте: "Помогите мне" и "Сделайте за меня" - это совершенно разные понятия.


Последний раз редактировалось Gnom_aka_Lexander, 12-02-2020 в 14:56.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:09, 04-12-2011 | #310



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » Скрипты Inno Setup. Помощь и советы [часть 4]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Test ferget Тест-форум 0 24-08-2011 01:25
test ! ! Aaa ! ! Тест-форум 0 23-04-2011 11:29
test Santa aka Snt Тест-форум 0 16-04-2011 22:35
test xolod. Программное обеспечение Linux и FreeBSD 0 19-04-2009 21:03
Test memory KEugeNik Хочу все знать 11 23-11-2003 23:11




 
Переход