Как прочитать пользовательские значения из INF-файла в Inno Setup? - PullRequest
2 голосов
/ 13 января 2010

Программы установки, созданные с помощью Inno Setup, могут читать INI-файл с помощью параметра / LOADINF. Можно ли читать пользовательские переменные через этот файл INI? Есть ли функция для получения имени файла INI, заданного с помощью этой опции? (Тогда это возможно с помощью служебных функций INI.)

Ответы [ 2 ]

2 голосов
/ 29 октября 2010

код

ExpandConstant('{param:LoadInf}')

предоставляет имя файла INI файла из параметров командной строки.

Используйте этот код, если файл INF находится в папке установки

AddBackslash(ExpandConstant('{src}')) + ExpandConstant('{param:LoadInf}');
1 голос
/ 13 января 2010

Мы просто перебираем аргументы командной строки с помощью функции ParamStr(i) и ищем аргумент, начинающийся с "/LOADINF=", а затем извлекаем имя файла оттуда.

Одна ошибка, которая нас изначально получила, былачто имя файла может быть дескриптором относительного пути (например, просто имя файла).Однако, если вы используете сжатие, то текущим рабочим каталогом будет некоторая подпапка в вашей папке %TEMP%, а не папка, в которой находится ваш setup.exe.Поэтому вам следует убедиться, что это обнаружено, и, если необходимо, добавить к указанному имени файла AddBackslash(ExpandConstant('{src}')).

...