Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме Inno Setup. Прочие вопросы.
Изменение размера окна инсталлятора - пример скрипта для изменения размера окна инсталлятора вместе с элементами управления, (ссылка на сообщение);
Липкая форма - пример реализации прилипания формы к краям экрана, (ссылка на сообщение);
Лечим баги: TNewCheckListBox и скин - исправление пропадания полос прокрутки в TNewCheckListBox при использовании ISSkin.dll, (ссылка на сообщение);
Лечим баги: TNewCheckListBox и TreeViewStyle - исправление бага в TNewCheckListBox с выставленным в True свойством TreeViewStyle, при котором нельзя выбрать элемент мышкой, (ссылка на сообщение);
Цвет прогресс-бара - пример скрипта для замены цвета прогресс-бара на свой, (ссылка на сообщение);
Автовыбор диска установки - определяет логические диски на компьютере и предлагает установить на первый логический диск не являющийся системным, (ссылка на сообщение);
Распаковка архивов FreeArc - новая версия скриптов для распаковки архивов FreeArc, (ссылка на сообщение);
Работа с архивами 7z - пример скрипта для работы с архивами 7z, (ссылка на сообщение);
Предосмотр компонентов - пример создания предосмотра устанавливаемых компонентов в всплывающем окне, (ссылка на сообщение);
Создание заставки SplashScreen - пример создания заставки SplashScreen на основе растровых изображений, (ссылка на сообщение);
Анимированный баннер - пример создания баннера на основе анимированных gif-файлов, (ссылка на сообщение);
Стандартные папки Windows - пример скрипта, позволяющий получить путь к стандартным папкам Windows, (ссылка на сообщение);
ExecAndWait.iss - скрипт, который позволяет запускать другие программы с ожиданием их завершения и при этом инсталлятор остаётся "живым", т.е. отвечает на действия пользователя, (ссылка на сообщение);
MsiQueryProductState.iss - пример скрипта для проверки установки программы, установленной с помощью Windows Installer, (ссылка на сообщение);
Определение информации о версии файла - пример скрипта для определения информации о версии файла, которую можно посмотреть в свойствах файла на вкладке Версия, (ссылка на сообщение);
Замена меню "О программе" - пример скрипта для замены текста меню "О программе", (ссылка на сообщение);
Отключить сообщение о нехватке места на HDD - пример скрипта для отключения сообщения о нехватке места на HDD. С небольшими изменениями может использоваться для отключения и других сообщений, вызванных внутренними обработчиками Inno, (ссылка на сообщение);
Отображение размера устанавливаемого файла - пример скрипта для приведения размера устанавливаемого файла из байтовой формы в удобочитаемую (вариант №1) и отображения на втором прогрессбаре, (ссылка на сообщение);
Копирование файлов с прогрессом - пример скрипта для копирования файлов и директорий с отображением прогресса операции, маски поддерживаются, (ссылка на сообщение);
Отображение процентов при (де)инсталляции - пример скрипта для отображения процентов прогресса удаления/копирования файлов при (де)инсталляции, (ссылка на сообщение);
ConvertString.iss - пример скрипта для конвертирование строк в различные кодировки, (ссылка на сообщение);
Работа с XML - архив с скриптами для работы с xml-документами, (ссылка на сообщение);
SetRestorePoint.iss - пример скрипта для создания контрольной точки перед установкой, (ссылка на сообщение);
Определение внешнего IP-адреса - пример скрипта для определения внешнего IP-адреса машины, на которой запущен инсталлятор (необходимо соединение с интернетом), (ссылка на сообщение);
IsInternetActive.iss - пример скрипта для определения подключения машины к Интернет, (ссылка на сообщение);
Загрузка файла из Интернет - пример скрипта для загрузки файла из Интернет, один поток без докачки, (ссылка на сообщение);
Запущен ли процесс (WMI) - пример скрипта для определения запущен ли определенный процесс в системе, используя WMI, (ссылка на сообщение);
Запущен ли процесс - пример скрипта для определения запущен ли определенный процесс в системе, (ссылка на сообщение);
Закрытие процесса - пример скрипта для закрытия запущенного процесса, (ссылка на сообщение);
Установка гаджета в Windows 7 - пример установки гаджета в Windows 7 (требуется юникодная версия Inno), (ссылка на сообщение);
Установка драйвера устройства - пример скрипта для установки legacy- и WDM- (требуется утилита devcon.exe) драйверов устройств, (ссылка на сообщение);
Показать/скрыть: Дополнительные программы для 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] - Скачать;
RegExporter - Бесплатная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
Последняя версия: 1.3.0 [17.01.2015] - Скачать;
Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:
Flix, ну да, пробовал в версии Inno Setup 6.0.5, там же в справке и смотрел.
Тут всё теперь понятно.
Так в моём случае получается {commonfonts} и {fonts} одно и тоже? Или как.
Так в моём случае получается {commonfonts} и {fonts} одно и тоже? Или как. »
DA-Bro, до версии 6.1.0 это была константа {fonts}, а после была переименована в {commonfonts}.
Если используете версию Inno ниже 6.1.0, то указываете {fonts}.
Если выше 6.1.0 - то {commonfonts}, но с учетом 10 версии винды и выше, а также привилегий, могут быть варианты с {userfonts} и {autofonts}. Если не имеете понятия про версию винды и права пользователя, то рекомендуется использовать константу {autofonts}.
lmiol, reg.exe он разных разрядностей бывает. В зависимости от окружения, 32- или 64-разрядного, из которого вызвали батник, будет вызван 32- или 64-разрядный reg.exe. Только вот 64-разрядный reg при таком запросе полезет искать в 64-разрядный раздел HKLM\SOFTWARE, 32-разрядный reg в 32-разрядный HKLM\SOFTWARE, который фактически является HKLM\SOFTWARE\WOW6432Node. Steam пишет в 64-разрядный раздел, понятно, что 32-разрядный reg или 32-разрядный Inno, вызывающий 32-разрядный reg, ничего не найдут в 32-разрядном разделе. Начитавшись инторнетов, умники в батниках или ещё где явно пишут WOW6432Node, не думая о разрядности вызывающего, потом в 32-разрядных системах в реестре появляется раздел WOW6432Node, которого быть там не должно, или на 64-разрядных системах в 32-разрядном разделе появляется лишний HKLM\SOFTWARE\WOW6432Node\WOW6432Node.
Чтобы такого не происходило, лучше в reg при запросе сразу указывать в какую ветку лезть параметрами /reg:32 или /reg:64, в таком случае разрядность reg не имеет значения. »
Проверил, это не то что надо, это вообще отдельный раздел реестра WOW6432Node
я думал это редирект а оказалось это просто отдельный раздел для 64биток.
Я также исследовал редиректы внутренние, но это не помогло. А также я выяснил что не может читать только с HKEY_LOCAL_MACHINE, а вот с HKEY_CURRENT_USER без проблем читает.
Поэтому я решил пойти другим путем и определить путь игры через Steam.
Вышло даже лучше чем я хотел - я определяю еще и диск (ведь игру можно в либе переместить на другой том)
получилось очень даже хорошо и мой динамический установщик кайфово отпрабатывает и готов к любым обновлениям версий и тому что там разработчик может изменить.
Т.е. мой Inno Setup проверяет только наличие стима и флага что игра установлена (так как всё это для одной игры требуется), а вот путь где установлено, построение конфигов и всё остальное я чекаю через скрипты