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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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

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

Cheery



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

Предыдущие части
Это мощное бесплатное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта, но генерит на 200-300 кб больший инсталятор. На данный момент он конкурирует и даже превосходит многие коммерческие установщики по функциональности и стабильности.
All version | Исходники проекта
 
Последние версии:
Inno Setup QuickStart Pack (Unicode) 6.1.2 [15.11.2020]
Скачать (4.23 Mb)
 
Inno Setup 6.2.2 [15.02.2023]
Скачать (4.50 Mb)
 
Что нового? | Что нового v.6x?  
 
Русский язык для Inno Setup v6.x
Скачать
 
Русский язык для Inno Setup v5.x
Скачать
 
Русская справка к версии - 6.0.0 beta | 5.6.1 - Зеркало
 
Последняя версия с поддержкой 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 | Исправлено: Komandor, 10:55 21-01-2024
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly
Я вас не совсем понял
Деинсталлятора нет в скрипте.

Всего записей: 1170 | Зарегистр. 03-05-2014 | Отправлено: 17:01 28-11-2014
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
CUTA, где я говорил про деинсталлятор? был задан вопрос:

Цитата:
Вопрос как отключить анимацию на странице завершение работы мастера?
на который дан ответ в виде дополнительного кода.


----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 17:11 28-11-2014 | Исправлено: Kindly, 17:12 28-11-2014
CUTA



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly
Я прошу прощения, просто код на странице не сразу появился.
Большое вам спасибо всё работает как надо

Всего записей: 1170 | Зарегистр. 03-05-2014 | Отправлено: 17:23 28-11-2014
BUU



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
MsgBox('Installation in existing folder is not possible!', mbError, mb_Ok);
 
А можно текст написать, чтоб понятно было, что нельзя в эту папку или как там нельзя с файлами, запутался ((

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 17:28 28-11-2014
Igimon

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Подскажите пожалуйста, как сделать данный скрипт, чтобы при условии, если пользователь выберет удалить, установка бы запускала деинсталятор и закрывалась, а при условии отказа исталлятор бы продолжил свою работу.
 

Код:
 
function InitializeSetup(): Boolean;
var
  ResultCode: Integer;
  s, ResultStr:string;
 begin
 Result:=True;
 begin
 If RegQueryStringValue(HKLM, 'SOFTWARE\MY_PROGRAM', 'UninstallString', ResultStr)
then
 begin
   ResultStr:=RemoveQuotes(ResultStr);
  if MsgBox('Вы действительно хотите удалить MY_PROGRAM и все компоненты программы?', mbconfirmation, MB_YESNO) = idYes
then
  if not Exec(ResultStr, '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
then
  MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;
 


Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 22:06 28-11-2014
Kindly



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

Код:
case MsgBox('Вы действительно хотите удалить MY_PROGRAM и все компоненты программы?', mbconfirmation, MB_YESNO) of  
      IDNO:
   begin
      Result:=True;
   end;
      IDYES:
   begin
      // удаление
   end;


----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 22:14 28-11-2014 | Исправлено: Kindly, 22:14 28-11-2014
Igimon

Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Kindly
Все равно запускает установку после удаления..
 

Код:
 
function InitializeSetup(): Boolean;
var
  ResultCode: Integer;
  s, ResultStr:string;
 begin
 Result:=True;
 begin
 If RegQueryStringValue(HKLM, 'SOFTWARE\MY_PROGRAM', 'UninstallString', ResultStr)
then
 begin
   ResultStr:=RemoveQuotes(ResultStr);
 case MsgBox('Вы действительно хотите удалить MY_PROGRAM и все компоненты программы?', mbconfirmation, MB_YESNO) of  
      IDNO:
   begin
      Result:=True;
   end;
      IDYES:
   begin
      // удаление
   end;  
   if not Exec(ResultStr, '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)
  then
  MsgBox('Ошибка удаления. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Вероятно, деинсталлятор был перемещен, удален или переименован.', mbError, MB_OK);
end;
end;
end;  
end;
end;
 

Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 22:34 28-11-2014
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Igimon
нужно тогда в
      IDYES:
   begin
      // удаление
      Result := False;
   end;  
 
и код удаления нужно прописывать сверху Result := False; если что

----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 22:43 28-11-2014 | Исправлено: Kindly, 22:45 28-11-2014
Igimon

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

Цитата:
и код удаления нужно прописывать сверху Result := False; если что

 
Спасибо! с False вверху, все работает!
 
Если можно еще два вопроса, строчку QuietUninstallString инсталлятор не подхватывает только корректно работает с UninstallString, в принципе решил этот вопрос так:
 
if not Exec(ResultStr, '/SILENT', '', SW_SHOW, ewWaitUntilTerminated, ResultCode)  
 
а как напрямую задействовать  
 
If RegQueryStringValue(HKLM, 'SOFTWARE\MY_PROGRAM', 'QuietUninstallString', ResultStr)
 
?
 
И второй вопрос, при выводе попуп с вопросом  
 
 
MsgBox('Вы действительно хотите удалить MY_PROGRAM и все компоненты программы?', mbconfirmation, MB_YESNO) of  
 
названия окна - Установка, как задать другое название попупа с вопроса?

Всего записей: 800 | Зарегистр. 08-04-2005 | Отправлено: 23:01 28-11-2014 | Исправлено: Igimon, 23:04 28-11-2014
Kindly



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

Цитата:
строчку QuietUninstallString инсталлятор не подхватывает
попробуй использовать Unicode версию InnoSetup, насколько я понимаю.
 

Цитата:
как задать другое название попупа с вопроса?
может быть так, если правильно уловил суть:

Код:
const
   MB_ICONINFORMATION = $40;
   MB_ICONEXCLAMATION = $30;
   MB_ICONQUESTION = $20;    
   MB_ICONSTOP = $10;
   MB_ICONNONE = $0;
 
function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';
 
procedure CancelButtonClick(CurPage: Integer; var Cancel, Confirm: Boolean);
var
   hWnd: Integer;
begin
   Cancel:=False;
   Confirm:=False;
   hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
   if MessageBox(hWnd, 'The setup is not finished! Do you really want to abort?', 'Exit from Installer', MB_YESNO or $30) = idYes then
   Cancel:=true;
end;

 
на Unicode версии, вероятно, нужно использовать  
external 'MessageBoxW@user32.dll stdcall';  
и
lpText, lpCaption: AnsiString;
проверил, нельзя на Unicode версии использовать в данной функции AnsiString, нужно оставить String.

----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 23:10 28-11-2014 | Исправлено: Kindly, 15:09 29-11-2014
BUU



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

Всего записей: 181 | Зарегистр. 15-08-2008 | Отправлено: 14:10 29-11-2014
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
BUU
Цитата:
Код не работает
тогда нет смысла давать код на проверку файлов по маске в папке, он тоже не будет работать.


----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 14:14 29-11-2014
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
кто нибудь может проверить использование AnsiString для istask.dll в юникод версии?
я пока не могу найти живой дистр инно ультра( сайт автора был на вордпрессе и он взломан, оттуда в данный момент не качается (отписал ему о проблеме).
у меня же стоит анси версия и я не могу проверить сам(
 
p.s. ищу дистр InnoUltra самый свежий, мб у кого то завалялся.

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 15:27 29-11-2014 | Исправлено: AngelNet, 15:27 29-11-2014
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet, ты что такой ленивый, возьми да и проверь.
я же тебе дал пример использования.  
если так каждый перестанет соображать и переспрашивать одно и тоже, так никогда и не научитесь включать свой мозг. теперь я начинаю понимать, почему былые "мэтры" в этой теме появляются редко.

----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 17:06 29-11-2014 | Исправлено: Kindly, 17:14 29-11-2014
nik1967



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

Цитата:
ищу дистр InnoUltra самый свежий

А что он из себя представляет? Могу поделиться своим Inno 5.5.1.ee2(u)

Всего записей: 1076 | Зарегистр. 11-10-2006 | Отправлено: 18:12 29-11-2014
AngelNet



Gold Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Kindly
я поясняю ситауцию для тех кто не понял:
у меня стоит АНСИ версия, мне нужна юникодовая но дистра у меня не сохранилось и его источник в тырнете сдох!
как только он у меня появится так сразу сам и проверю, а пока я в поисках ибо автор сайта неделю молчит как уже...
 
Добавлено:
nik1967
представляет примерно это:
   
и состав компонентов:
   
эдакий суповой набор ништяков на все случаи жизни -)

----------
animelist

Всего записей: 7430 | Зарегистр. 11-03-2004 | Отправлено: 19:41 29-11-2014
Kindly



Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
AngelNet
Цитата:
у меня стоит АНСИ версия, мне нужна юникодовая но дистра у меня не сохранилось и его источник в тырнете сдох!  

http://files.jrsoftware.org/is/5/isetup-5.5.5-unicode.exe
автор dll Genri, он много полезного здесь когда-то сделал, и у него вроде не было сайта.

----------
Ru-Board Crew

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 21:48 29-11-2014
Mazozazo



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
как с инстолятора удалить в меню инфу о inno? и добавить туда свое?

Всего записей: 3 | Зарегистр. 30-11-2014 | Отправлено: 11:08 30-11-2014
nortem



Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Помогите, такой трабл в скрипте (модуле ботвы)
Unknown Identifier 'ExtractTemporaryFileSize'

Всего записей: 28 | Зарегистр. 23-05-2014 | Отправлено: 18:35 30-11-2014
innonewbie

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Mazozazo, пробуй: Ссылка. Пример от nik1967 для расширенной версии inno setup, для "обычной" вроде нужно добавить в начало секции [Code]  
type  
HMENU = Cardinal;  

Всего записей: 168 | Зарегистр. 30-12-2010 | Отправлено: 19:23 30-11-2014 | Исправлено: innonewbie, 19:26 30-11-2014
Открыть новую тему     Написать ответ в эту тему

Страницы: 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

Компьютерный форум 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