;Пример Файла описания программы. Должен называться info.txt (регистр не важен) ;и лежать в папке с программой. Cохранять файл можно в UTF-8 с BOM или CP1251. ;формат INI. Строка комментария начинается с точки с запятой. ;любой файл описания программы начинается с этой секции [General] ;Зависимости. НЕ РЕАЛИЗОВАНО. Можно перечислять через запятую. Список приложений ;до/без которых программа не будет установлена, использовать аккуратно. Depends= ;Дополнения. НЕ РЕАЛИЗОВАНО. Можно перечислять через запятую. Вообще планируется ;перечислять тут дополнительные компоненты программы. Для описания дополнения ;нужно создать секцию с названием дополнения. Для дополнений доступен весь ;набор свойств Execute, свойство Description, а также 2 специальных: Cheked и ;RunAfterMainProgramm, которые могут иметь значения true и false. Если ;Cheked=true то при установки флага на основную программу он так же будет ;установлен на дополнении, в противном случае флаг будет отсутвовать. Если ;RunAfterMainProgramm=true то комманды для установки дополнения будут выполнены ;после того как будет установлена основная программа, в противном случае ;дополнение будет установлено до основной программы. Кирилицу не использовать! Addons= ;Наборы комманд. Выполняться будут в той последовательности в которой даны в ;данном примере Можно использовать команды из PATH например msiexec, taskkill, ;reg и т.п. В качестве рабочей директории коммандам будет передана та в которой ;лежит фал "info.txt". Путь к ней можно подставлять в комманды и параметры ;при помощи %directory%. Перетаскивать всю простыню из примера в реальный файл ;описания не надо! Скорее всего Вам будет достаточно основных семейств (см ниже) ;Можно перечислять комманды через запятую, желательно каждую комманду брать в ;кавычки. Слеши и кавычки внутри команды экранировать ОБЯЗАТЕЛЬНО иначе виндовый ;парсер ломается, например, если мы хотим сказать: ;Execute=C:\windows\notepad.exe "my_doc.txt",Следующая команда ;писать будем ;Execute="C:\\windows\\notepad.exe \"my_doc.txt\"","Следующая команда" ;Дублировать один и тот же набор НЕЛЬЗЯ! Если у Вас настолько много комманд, что ;это вызывает проблемы используйте Execute.common, дополнения или пакетники. ;ЗЫ упаси Вас ктулху не закрыть кавычки или писать полные пути! Получите глюки ; и много сообщении об ошибках. Используйте переменные среды и внутренние ;%directory%, %name% и %key% чтобы отказаться от абслютных путей. ;Execute выполняется ДО платформозависимого кода и на любой платформе Execute="msiexec /i 2GISShell-3.16.3.0.msi /qb ALLUSERS=1","msiexec /i 2GISData_Samara-104.0.0.msi /qb ALLUSERS=1","reg delete HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run /v \"2Gis Update Notifier\" /f" ;платформозависимый код, выполняется в зависимости от верии и разрядности os ;будет выполнено на всем что имеет 32 битную архитектуру Execute.X86= ;будет выполнено на всем что имеет 64 битную архитектуру Execute.X64= ;семейства их всего 6 но это будет то чем вы будете пользоваться чаще всего ;будет выполнено на XP, 2003 сервере и всем что вышло ДО них Execute.XP_family= ;то же самое но с указанием архитектуры Execute.X86.XP_family= Execute.X64.XP_family= ;будет выполнено на Vista, 2008 сервере и всем что вышло ПОСЛЕ них Execute.Vista_family= ;то же самое но с указанием архитектуры Execute.X86.Vista_family= Execute.X64.Vista_family= ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;!!!ТОЛЬКО для той OS что указана!!!! ;!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ;Не стоит ожидать что Execute.XP= будет выполнено на 2003 сервере а Execute.7 на ;всем что выходило позже. Перечислять все не стал но теоретически понимает 2000 ;2003 2008 2008R2 2012 2012R2. Всякие итаниумы, скорее всего, будут распознаны ;как X64 Execute.XP= Execute.2003= Execute.Vista= Execute.7= Execute.8= Execute.8.1= Execute.10= Execute.X86.XP= Execute.X86.2003= Execute.X86.Vista= Execute.X86.7= Execute.X86.8= Execute.X86.8.1= Execute.X86.10= Execute.X64.XP= Execute.X64.2003= Execute.X64.Vista= Execute.X64.7= Execute.X64.8= Execute.X64.8.1= Execute.X64.10= ;Execute.common выполняется ПОСЛЕ платформозависимого кода на любой платформе Execute.common= ;Файл с иконкой. Иконка берется из винапи: то есть если вы проассоциируете фалу ;*.ico какой-нить левый значек будет отображаться он а не то что в иконке. ;Размер 32 на 32 пикселя. Перменные среды, %directory%, %name% и %key% работают. Icon=ico.ico ;Имя программы, кирилицу писать в cp1251 или сохранять весь файл в UTF-8 с bom ;мультибайт, scsu и прочий юникод не работают Name=2Gis ;Краткое описание программы Description=Cправочник организаций с картой города ;Полное описание программы. НЕ РЕАЛИЗОВАНО. FullDescription=Подробный и актуальный справочник организаций с картой города ;версия которая в инсталляторе, можно получать из exe-шника RFOMFILE:путь_к.exe ;в пути тоже можно писать перменные среды, %directory%, %name% и %key%. Ver=3.15.10.4952 ;Строка проверки установленной версии: ;FROMFILE:%PROGRAMFILES%\\%name%\\путь_к.exe ;или ;FROMUID:61993DF3-0FD9-47A2-AC2D-DCB82BEDE0E6 ;вместо %name% будет подставлено имя программы, если не уверены что писать ;%PROGRAMFILES% или %PROGRAMFILES(x86)% пишите %PROGRAMFILES%. Если версия ;совпадет с тем что в Ver= флаг программы будет снят а значек заменен на ;зеленую галку. VerCheck=FROMFILE:%PROGRAMFILES(x86)%\\%name%\\3.0\\grym.exe ;VerCheck=FROMUID:61993DF3-0FD9-47A2-AC2D-DCB82BEDE0E6 ;Сайт производителя Url=http://2gis.ru ;Инфа о лицензии, если написать валидный url или путь к файлу то станет ссылкой License="У программы достаточно мутная лицензия явно разрешено только использование в некоммерческих целях!" ;Ключ продукта. Можно вставлять в комманды и VerCheck подстрокой %key% Key= ;Список наборов в которые входит программа, чувствителен к регистру. Кирилицу на ;свой страх и риск. Kits=base,home,postninite,freeware ;Время в секундах по истечении которого с момента запуска комманды установка ;считается повисшей и будет прервана. ;значение 0 или отсутсвует - таймер не активен ( на самом деле активен но со ;значением ULONG_MAX/1000, это примерно 49 суток в x32 винде и дохералион в x64) ;пункт в файле отсутсвует - значение 1 час KillTimer=