Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup: создание инсталляционных пакетов (Часть 15)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Открыть новую тему     Написать ответ в эту тему

Cheery



.:МордератоР:.
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inno Setup
 
 

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
All version | Исходники проекта
 
Последние версии:
Inno Setup 6.3.3 [12.07.2024]
Скачать (5,37 Mb)
 
Inno Setup QuickStart Pack (Unicode) 6.1.2 [15.11.2020]
Скачать (4.23 Mb)
 
Что нового? | Что нового v.6x?  
 
Русский язык для Inno Setup v6.x
Скачать
 
Русский язык для Inno Setup v5.x
Скачать
 
Русская справка к версии - 5.6.1 (Зеркало) | 6.0.0 beta | 6.x
 
Последняя версия с поддержкой Windows 95 - 5.1.7
 
Последняя версия с поддержкой Windows 98/ME/NT4 - 5.4.3 ANSI
 
Последняя версия с поддержкой Windows 2000/XP/2003 - 5.6.1 (ANSI, Unicode)
 

Расширенная версия от китайских собратьев. Офсайт
Inno Setup Compiler 5.5.0-5.2 build 121216
Скачать (2.98 Mb) |Скачать (2.98 Mb) - зеркало GoogleDrive | Что нового
 
Inno ISCmplr Setup 5.5.1 build 120726
Скачать (1.73 Mb) | Что нового
 
Добавляет списку компонентов возможность сворачивать дочерние элементы. Содержит более удобный редактор, кроме того, компилятор имеет множество других возможностей и новых функций. На сайте автора также есть дополнительные библиотеки.
 
Русский язык для Inno Setup Enhanced (Restools) версии 5.4.x (ansi и unicode) от vadimsva
Скачать
 


Документация, FAQ, и различные примеры для Inno Setup - Здесь можно найти различную документацию, примеры, архивы веток InnoSetup для оффлайн просмотра, и т.д.
 
Дополнительные библиотеки для Inno Setup - InnoTools Downloader, коллекция DLL файлов, распаковка архивов 7-zip и FreeArc и т.д.
 
Дополнительные утилиты для Inno Setup - сюда входят различные распаковщики, надстройки над Inno Setup, различные генераторы скриптов, утилита объединения скриптов и т.д.
 
Скрипты инсталляторов для игр - В этом разделе можно найти различные обложки и скрипты инсталляторов для игр.  
 
Скрипт для добавления ярлыков в Game Explorer (работает только в Windоws 7)

Родственные темы:

Inno Setup плюс внешние упаковщики - обсуждение FreeArc+Inno, Precomp+Inno, 7zip+Inno и Inno+остальные внешние упаковщики.
 
Пережатиe/Pекомпрессия/Oптимизация файлов для лучшего сжатия - обсуждение того, какими утилитами/способами лучше сжимать, чтобы получить как можно меньший размер инсталятора.

Примечание для всех участников

Правила топика посвященному Inno Setup  
 
Перед тем, как задать вопрос: Первый вариант: загрузите "версию для печати" (ссылка справа вверху, над номерами страниц) и попробуйте поискать средствами браузера (ctrl+F). Второй вариант: для экономии трафика и для более удобного поиска, скачайте оффлайн версию форума для просмотра в разделе Документация.
Большинство типовых задач уже решались, причем неоднократно!  
Пожалуйста, не захламляйте тему и используйте поиск, этим вы избавите тему от флуда!

Всего записей: 52737 | Зарегистр. 04-04-2002 | Отправлено: 23:29 13-10-2013 | Исправлено: boss911, 03:15 07-11-2024
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
dodakaedr
Вы случайно не знаете как привязать компонент из секции [Components] к функциям в секции code?
 
Уже сам разобрался, если кому нужно то пример выложу или в личку кину.

Всего записей: 1265 | Зарегистр. 03-05-2014 | Отправлено: 18:43 03-04-2015 | Исправлено: CUTA, 16:18 06-04-2015
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
В системе имеется файл "Config.ini" с таким содержимым:
[General]
Language=Russian
Как мне в эту секцию дописать:
Key=123
и сохранить файл в таком виде:
[General]
Language=Russian
Key=123
Пробовал так, но результат не тот:
if FileExists(ExpandConstant('{win}\Config.ini')) then
SetIniString('Gereral', 'Key', '123', ExpandConstant('{win}\Config.ini'));
Получается:
[General]
Language=Russian
 
[General]
Key=123
Помогите.

Всего записей: 345 | Зарегистр. 25-03-2013 | Отправлено: 19:15 08-04-2015 | Исправлено: AlekseyPopovv, 22:52 08-04-2015
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AlekseyPopovv

Цитата:
SetIniString('Gereral', 'Key', '123', ExpandConstant('{win}\Config.ini'));

 
Не правильно названа секция. Требуется General , а у вас написано Gereral
 
А ещё возможно что у вас нет прав на редактирование этого файла, вот запись ключа и не идёт.

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 12:39 09-04-2015 | Исправлено: sjwrec, 12:42 09-04-2015
AlekseyPopovv



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sjwrec
Спасибо, уже разобрались, там оказалось всё не так просто.
Вот что ещё интересует:
Я создал новую страницу "CreateCustomPage", как сделать что бы она отображалась только при выборе "Portable" версии?

Всего записей: 345 | Зарегистр. 25-03-2013 | Отправлено: 20:42 09-04-2015
serg_aka_lain

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
как сделать что бы она отображалась только при выборе "Portable" версии?

Через встроенную функцию ShouldSkipPage

Код:
 
function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if not PortableMode.Checked then
    if PageID = MyPage.ID then Result := True;
end;


Всего записей: 340 | Зарегистр. 13-01-2007 | Отправлено: 00:15 10-04-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
доброе время суток, господа!
давненько я не был в этом тёплом уютном топике, даже соскучился по атмосфере.
 
вчера решил мигрировать с ANSI компилятора сабжа на UNICODE-версию и столкнулся с парочкой граблей.
в частности раньше я для завершения запущенного приложения при его деинсталляции использовал ISTask.dll, но в юникод версии она перестала работать(
кто нибудь сталкивался с подобной проблемой и как вы ее решали?
 
заодно ищу иные пути решения вопроса:
задача - прибитие (желательно корректное, с возвратом результата о положительном состоянии деинсталлеру) удаляемого приложения.
taskkill /f конечно вариант, но он ведь не сообщает инсталятору когда отработал и успешно ли?
прошу поправить меня если я ошибаюсь.
 
заранее благодарю откликнувшихся!

----------
animelist

Всего записей: 7528 | Зарегистр. 11-03-2004 | Отправлено: 03:34 10-04-2015 | Исправлено: AngelNet, 15:12 10-04-2015
tahirg



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
хочу свою иконку в "установке и удалении программ"
в скрипте добавляю значение
UninstallDisplayIcon
однако меняется лишь иконка деинсталятора, а панели управлении нет
что я делаю не так?

Всего записей: 1999 | Зарегистр. 23-03-2003 | Отправлено: 10:24 10-04-2015
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tahirg

Цитата:
UninstallDisplayIcon  однако меняется лишь иконка деинсталятора, а панели управлении нет  что я делаю не так?

 
Хм странно. У меня так прописано

Код:
 
UninstallDisplayIcon={uninstallexe}
 

 
И нормально отображается в Программы и компоненты Windows 8.1. В остальных не проверял.

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 10:31 10-04-2015 | Исправлено: sjwrec, 10:32 10-04-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
tahirg
иконку нужно еще и положить в сурсы. например как это делал я:

Код:
[Setup]
DefaultGroupName=mIRC
// значок программы в апплете установка/удаление программ
UninstallDisplayIcon={app}\mirc.exe
 
// используемая для деинсталлятора иконка
UninstallIconFile=uninstall.ico

 
при этом файл uninstall.ico должен лежать в папке со скриптом установки.


----------
animelist

Всего записей: 7528 | Зарегистр. 11-03-2004 | Отправлено: 14:46 10-04-2015
LuxCore

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nik1967
Цитата:
непонятно. Как то бы яснее.

Инсталлятор с именем Project.exe содержит исполняемый файл программы с именем Project.exe (т. е. с таким же именем). Нужно последний установить на место инсталлятора.
 
И ещё вопрос: как узнать, какая версия Microsoft Office установлена на компьютере?
 

Всего записей: 2 | Зарегистр. 02-03-2015 | Отправлено: 15:20 13-04-2015
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
камрады, подскажите пожалуйста, как сделать процедуру прибития процесса при деинсталле более эффективной.
пока есть такой костыль, но он работает некрасиво и топорно (порой не отрабатывает вовсе)

Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
// прибиваем запущенный процесс при деинсталляции
var
ErrorCode: Integer;
begin
  ShellExec('', ExpandConstant('{sys}\cmd.exe'),'/c taskkill /im test.exe /f','', SW_SHOW, ewNoWait, ErrorCode);
  Sleep(3000);
end;

у меня юникод версия сабжа, поэтому использовать ISTask.dll не могу(
 
заранее благодарю!

----------
animelist

Всего записей: 7528 | Зарегистр. 11-03-2004 | Отправлено: 02:08 15-04-2015
dodakaedr



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
Для теста перед запуском скрипта запустите калькулятор
Код:
[Setup]
AppName=Test
AppVersion=1.1
DefaultDirName={pf}\Test
 
[Code]
function CheckAppRun: boolean;
var
i: integer;
begin
if FindWindowByWindowName('Калькулятор') = 0 then
  Result:= True
  else if MsgBox('Закрыть калькулятор?', mbError, MB_YESNO) = idyes then begin
  Exec(ExpandConstant('{sys}\taskkill.exe'), ' /F /IM calc.exe', '', SW_HIDE, ewWaitUntilTerminated, i);
  Result := True;
  end;
end;
 
function InitializeSetup(): Boolean;
begin
  Result := CheckAppRun;
end;

по аналогии и для деинсталляции.

Всего записей: 178 | Зарегистр. 31-01-2014 | Отправлено: 14:01 15-04-2015 | Исправлено: dodakaedr, 14:02 15-04-2015
DmitryKz

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
del

Всего записей: 3145 | Зарегистр. 29-09-2005 | Отправлено: 17:48 16-04-2015 | Исправлено: DmitryKz, 18:28 16-04-2015
alloc22

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Подскажите пожалуйста, как оставить "живым" окно инсталлятора во время выполнения программ из секции "Run"?
 

Код:
[Run]
Filename: {app}\Temp\Pkzip.exe; WorkingDir: {app}; Parameters: "-add -store -dir=relative -NoZipExtension ""{app}\Modules\Ahkuilon.rvm"" ""{app}\Temp\Modules\Ahkuilon\*.*"""; StatusMsg: "Упаковка архива Ahkuilon.rvm..."; Flags: waituntilterminated skipifdoesntexist runhidden; Check: CheckError

 
или если через ISDone, чтоб вместо "Извлекается файл:" писалось то что я указал в функции ISExec (т.е. "Обновление архива Ahkuilon.rvm"):
 

Код:
if not ISExec       ( 1, 0, 0, ExpandConstant('{app}\Temp\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{app}\Temp'), 'Обновление архива Ahkuilon.rvm',false) then break;

Всего записей: 2 | Зарегистр. 17-08-2010 | Отправлено: 21:53 21-04-2015
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
alloc22
 

Код:
 
 
LabelCurrFileName.Hide; // Прячем вторую строку: "Извлекается файл"
 
WizardForm.StatusLabel.Caption:= 'Обновление архива Ahkuilon.rvm...'; // В первой строке показываем что нам нужно.
 
if not ISExec       ( 1, 0, 0, ExpandConstant('{app}\Temp\Pkzip.exe'), ExpandConstant('-add -store -dir=relative -NoZipExtension "{app}\Modules\Ahkuilon.rvm" "{app}\Temp\Modules\Ahkuilon\*.*"'), ExpandConstant('{app}\Temp'), '',false) then break;
 
LabelCurrFileName.Show; // Если нужно снова показывать что извлекается.
 
 


Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 22:30 27-04-2015 | Исправлено: sjwrec, 15:34 28-04-2015
WildGoblin



Ru-Board Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Скрипт для добавления ярлыков в Game Explorer (работает только в Windоws 7)
 
P.S. Обновил ссылки.

Всего записей: 32147 | Зарегистр. 15-09-2001 | Отправлено: 12:37 30-04-2015 | Исправлено: WildGoblin, 14:39 18-11-2015
nektoktoto

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, уважаемые специалисты по Inno Setup.
 
Помогите пожалуйста разобраться со следующим:
Как через секцию Code распаковать sfx nanozip архив
и чтобы при распаковке перезаписывал файлы без дополнительных вопросов?
 
Сейчас у меня только один вариант - через батник с параметром "x". Но при таком варианте
он всё равно спрашивает про перезапись файлов.
 
Надеюсь на вашу помощь!
P.S. Извиняюсь, если вопрос уже задавался, но ответов я не увидел...

Всего записей: 25 | Зарегистр. 25-08-2011 | Отправлено: 01:43 01-05-2015 | Исправлено: nektoktoto, 01:48 01-05-2015
sjwrec



Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nektoktoto
 
Давно уже с NanoZip не работал
 
Вроде ключ -o используется для перезаписи файлов без вопросов. Но лучше поищите в нете для него справку и почитайте какие команды за что отвечают.

Всего записей: 473 | Зарегистр. 01-10-2010 | Отправлено: 19:35 04-05-2015
BUU



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Всем привет, может глупый вопрос, а Inno Restools забили на проект? потому что прошло сколько и нет новых версий, может кто то занимается доработкой вместо них?

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 01:47 08-05-2015
AlexM2222



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Сделал для себя перепаковку программы USB Safely Remove, всё получилось хорошо, но остались два вопроса ("косметического плана - уборка за собой"):
1) При запуске программа создаёт дополнительную ветку в реестре HKLM\SOFTWARE\SafelyRemove. Как прописать её удаление при деинсталяции в скрипте.
2) При запуске программа создаёт лог событий USBSRService (c:\ProgramData\USBSRService\USBSRService.log.txt). Как прописать удаление папки с логом (c:\ProgramData\USBSRService) при деинсталяции в скрипте.
Вот мой скрипт...
 
Если есть ещё замечания по скрипту - приму с удовольствием (только учусь)

Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 10:47 08-05-2015
Открыть новую тему     Написать ответ в эту тему

Страницы: 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 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153

Компьютерный форум Ru.Board » Компьютеры » Программы » Inno Setup: создание инсталляционных пакетов (Часть 15)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru