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

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

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

Widok (29-12-2008 12:26): лимит страниц. продолжаем здесь  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 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

   

Widok



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

Это мощное средство для создания установочных пакетов (дистрибутивов) программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно создавать свои страницы, используя Inno Setup Form Designer.
По сравнению с NSIS (основной конкурент на бесплатной основе) проще в настройке, имеет более понятную структуру скрипта.  
 
Последний релиз: 5.2.3 [10.03.2008]
История версий | скачать | все сборки || Скачать Preprocessor | все сборки
 
Русификатор от NightW0lf для версии 5.2.0
Скачать | зеркало
 
Русская справка к версиям 5.0.x, автор перевода BagIra
Скачать | зеркало || cкачать в .chm формате
 
Руководство по расширенным возможностям Inno Setup 5 (не для чайников) от Kindly
Версия 5.1 скачать || версия 5 скачать|зеркало || версия 4 скачать|зеркало || версия 3 скачать|зеркало
 
Inno Setup Extensions Knowledge Base (содержит ответы на многие вопросы)
Новая версия (Web-интерфейс) || Старая chm-версия скачать | зеркало
 
Коллекция скриптов и Сборник вопросов, собранных из этой и предыдущих частей топика.
 
Corona Skin & Check System Requirements от Victor_Dobrov
Скачать | зеркало | скриншот | описание | старая версия || InnoSetup Upgrade || Слайд-шоу
Обложка для Inno Setup. Сделает инсталлятор более симпатичным и добавляет расширения: Проверка минимальных требований. Расширенный прогрессбар. Расчёт времени до завершения распаковки. Список дисков. Слайдшоу или AVI-файл в фоновом окне. Компактный режим установки. Деинсталляция неучтённых файлов. Экран справки/скриншота. Медиаплеер и многое другое...
 
Примечание: Если необходимо использовать метод проверки внешнего файла через сумму MD5 (который описан в 5 версии руководства от Kindly) для запуска инсталлятора, то понадобится калькулятор хеша MD5, калькулятор сумм MD5, SHA-256, CRC32. Если требуется узнать, какие ключи реестра меняет та или иная программа, используйте RegShot. Чтобы растянуть фоновый рисунок на весь экран, в версии Inno Setup 5.1.10 и выше используйте этот код.

Дополнительные утилиты для Inno Setup


Мощная надстройка для Inno Setup, при помощи которой создавать свои инсталляторы становится очень просто.
 
Последний релиз: 5.2.1 [15.10.2007]
Скачать | зеркало || Русификатор | зеркало

Простой мастер создания скрипта для установки одной или нескольких игр. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации.
 

Прежнее название ScriptMaker. Удобная оболочка для облегчения написания скриптов установки для Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
 
Последний релиз: 1.0.3.1 [23.03.2008]
Скачать | обновить (нужен QuickStartPack 5.2.3)

Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки (немного усечённый). Возможно подключение к Total Commander или FAR с помощью MultiArc плагинов.
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.2.3
 
Последний релиз: 0.20 [23.05.2008] New
Скачать | Расширенная версия (с поддержкой русского языка)  

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

Объёмные скрипты или части кода заключайте в тег more, чтобы ваш вопрос в сообщении не затерялся среди множества строк прилагаемого скрипта.

Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 18:16 17-06-2008 | Исправлено: equis, 17:51 06-12-2008
Sig666

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Я нашел тут скрипт, загружающий изображение определенного размера в зависимости от разрешения экрана. http://forum.ru-board.com/topic.cgi?forum=5&topic=23235&start=606&limit=1&m=1#1
Как достичь, чтобы проверялось соотношение сторон - стандартное или широкоформатное, и в зависимости от этого грузить нужную картинку?

Всего записей: 134 | Зарегистр. 15-01-2008 | Отправлено: 15:01 03-10-2008
SergeyLS

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

Цитата:
Господа такая трабла, в инсталяторе непашет анинстал((  
При запуске "unins000.exe" выдает - Runtime error (at 45:64): Could not call proc. С чем это может быть связано?.. Или в какой секции могут быть косяги, вот то что у меня в секции сетупа  

Попробуй так:
Подробнее...

Всего записей: 52 | Зарегистр. 09-05-2008 | Отправлено: 15:42 03-10-2008 | Исправлено: SergeyLS, 16:18 03-10-2008
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SergeyLS
If RunTaskA('builder.exe', false) then  ... - исправь
 
 
Добавлено:
и почему не так:

Код:
 
If RunTaskU('Browser.exe', false) or  
    RunTaskU('builder.exe', false) or
    RunTaskU('Asod.exe', false) or
    RunTaskU('SetAccess.exe', false) then  
  begin    
    if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
      begin    
        KillTaskU('builder.exe');  
        KillTaskU('Browser.exe');  
        KillTaskU('asod.exe');  
        KillTaskU('SetAccess.exe');  
        Result := True;    
      end  else    
            Exit;    
  end;  
 

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 15:47 03-10-2008
nOobCrafter

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

Код:
Source: ISTask.dll; DestDir: {app}; Flags: dontcopy  

Так он у меня добавляется в инстал. Опять же мне казалось что елси донткопи то в инстле он есть и скрипт запоминается.          ? О_о Или надо что бы этот файл лежал вместе в деинсталятором?
 

Код:
Function InitializeSetup: Boolean;                
    begin
If RunTask('builder.exe', false) then  
    begin  
   if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
           begin  
KillTask('builder.exe');
KillTask('Browser.exe');
KillTask('asod.exe');
KillTask('SetAccess.exe');    
Result := True;  
        end  else  
            Exit;  
    end;
Result := True;  
 
If RunTask('Browser.exe', false) then
begin  
   if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
       begin  
KillTask('builder.exe');
KillTask('Browser.exe');
KillTask('asod.exe');
KillTask('SetAccess.exe');
Result := True;  
    end  else  
            Exit;  
    end;
 
If RunTask('Asod.exe', false) then
begin  
   if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
           begin  
KillTask('builder.exe');
KillTask('Browser.exe');
KillTask('asod.exe');
KillTask('SetAccess.exe');  
Result := True;  
end  else  
            Exit;  
    end;
 
If RunTask('SetAccess.exe', false) then
begin  
   if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
           begin  
KillTask('builder.exe');
KillTask('Browser.exe');
KillTask('asod.exe');
KillTask('SetAccess.exe');
Result := True;  
end  else  
            Exit;  
    end;      
end;

 
Вот так убиваю задачи в начале инстала и тут все работает.
 

Код:
function KillTask(ExeFileName: string): Integer;  
external 'KillTask@files:ISTask.dll stdcall delayload setuponly';  
 
function RunTask(FileName: string; bFullpath: Boolean): Boolean;  
external 'RunTask@files:ISTask.dll stdcall delayload setuponly';  
 
function KillTaskA(ExeFileName: string): Integer;  
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';  
 
function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;  
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';  
 
То есть мне в секции анинстала писать RunTaskA??
 

Цитата:
и почему не так:

Потому что незнал)))
 
Кажись понял разницу))

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 16:21 03-10-2008 | Исправлено: nOobCrafter, 16:26 03-10-2008
SergeyLS

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

Цитата:
SergeyLS  
If RunTaskA('builder.exe', false) then  ... - исправь  
 

Исправил.  

Цитата:
 
Добавлено:  
и почему не так:  
 
Код:  
If RunTaskU('Browser.exe', false) or  
    RunTaskU('builder.exe', false) or  
    RunTaskU('Asod.exe', false) or  
    RunTaskU('SetAccess.exe', false) then    
  begin    
    if MsgBox('123 '#13#13' 123?'#13#13 +    
       '"Да" - 133' #13#13 +    
       '"Нет" - 123, mbError, mb_YesNo) = idYes then    
      begin    
        KillTaskU('builder.exe');    
        KillTaskU('Browser.exe');    
        KillTaskU('asod.exe');    
        KillTaskU('SetAccess.exe');    
        Result := True;    
      end  else    
            Exit;    
  end;    
 

Да так будет лучше и короче, просто в торопях не подумал
 
Добавлено:
nOobCrafter

Цитата:
Так он у меня добавляется в инстал. Опять же мне казалось что елси донткопи то в инстле он есть и скрипт запоминается.          ? О_о Или надо что бы этот файл лежал вместе в деинсталятором?  

Думаю, что нужно, чтобы он лежал там откуда запускается деинсталлятор.

Цитата:
RunTaskU('Browser.exe', false) - а что здесь играет U или А?   О_о  

А ничего, просто для того, чтобы различались то, что для инсталяции, а что для деинсталляции. Главное чтобы в одинаковых секциях - одинаково было. А в разных - отличалось и вот это важно: setuponly и uninstallonly.
Но все-равно Genri лучше предложил, я ведь не програмист, а повар!
 
 
 

Всего записей: 52 | Зарегистр. 09-05-2008 | Отправлено: 16:21 03-10-2008 | Исправлено: SergeyLS, 16:50 03-10-2008
nOobCrafter

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Угу, спс за инфу, я тогда вобще молчу кто я))
Ксатити вспомнил чиво у меня так много кода, просто на каждый запущенный процесс ругается по своей табличке,  а не одна на всех. Отсюда и стока "лишних" букавак

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 16:46 03-10-2008 | Исправлено: nOobCrafter, 17:09 03-10-2008
Genri

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

Цитата:
Думаю, что нужно, чтобы он лежал там откуда запускается деинсталлятор.
-- не совсем так. Файл должен лежать там, где указано в определении. Например, если указано:
function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;  
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';  
... то при вызове функции RunTaskA, деинсталлятор будет искать {app}\ISTask.dll
ЗЫ. А ты в ПМ заглядываешь?

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 17:05 03-10-2008 | Исправлено: Genri, 17:20 03-10-2008
nOobCrafter

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

Код:
function KillTask(ExeFileName: string): Integer;  
external 'KillTask@files:ISTask.dll stdcall delayload setuponly';  
 
function RunTask(FileName: string; bFullpath: Boolean): Boolean;  
external 'RunTask@files:ISTask.dll stdcall delayload setuponly';  
 
function KillTaskA(ExeFileName: string): Integer;  
external 'KillTask@C:\123\ISTask.dll stdcall delayload uninstallonly';  
 
function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;  
external 'RunTask@C:\123t\ISTask.dll stdcall delayload uninstallonly';  

Файл лежит по адресу C:\123\USTask.dll При деинстале он иногда о чем то задумывается на секунду но завершить процесс так и не предлагает, при инстале все ок.
 
Ф-ция такого вида для всех тасков в данной ф-ции):

Код:
function InitializeUninstall(): Boolean;  
begin  
If RunTaskA('Browser.exe', false) then    
    begin  
 if MsgBox('123 '#13#13' 123?'#13#13 +      
       '"Да" - 133' #13#13 +      
       '"Нет" - 123, mbError, mb_YesNo) = idYes then      
           begin  
KillTaskA('builder.exe');
KillTaskA('Browser.exe');
KillTaskA('asod.exe');
KillTaskA('SetAccess.exe');
Result := True;  
        end  else  
            Exit;  
    end;
Result := True;  

 
Где еще могут быть косяки?
 
Может все же надо не в "function InitializeUninstall(): Boolean;" это реализовывать а например тут?

Код:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  
begin
DelTree(ExpandConstant('C:\123'), True, True, True);  
end;  

 Но тут ругается(

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 17:27 03-10-2008 | Исправлено: nOobCrafter, 17:30 03-10-2008
Genri

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

Цитата:
'RunTask@C:\123t\ISTask.dll  
-- это ошибка или в коде так и есть?
 
 
Добавлено:

Цитата:
C:\123\USTask.dll
-- это ошибка или в коде так и есть?

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 17:33 03-10-2008
nOobCrafter

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

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 18:05 03-10-2008
Genri

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

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 18:08 03-10-2008
SergeyLS

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
nOobCrafter
Такие штуки на системном диске, меня несколько шокируют:

Цитата:
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);  
begin  
DelTree(ExpandConstant('C:\123'), True, True, True);  
end;

Хотел дать совет, как можно обойтись без этого, да не успел.
Genri
Уже дал!  
 
Добавлено:
Genri

Цитата:
 
Думаю, что нужно, чтобы он лежал там откуда запускается деинсталлятор.  
-- не совсем так. Файл должен лежать там, где указано в определении. Например, если указано:  
function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;    
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';  
... то при вызове функции RunTaskA, деинсталлятор будет искать {app}\ISTask.dll  
ЗЫ. А ты в ПМ заглядываешь?

 
Просто наверно немного неправильно выразился, конечно туда где указано.
А в ПМ иногда заглядываю. Просто сейчас бегаю от компа к духовому шкафу и назад.
Вот косяки иногда и выходят.

Всего записей: 52 | Зарегистр. 09-05-2008 | Отправлено: 18:51 03-10-2008 | Исправлено: SergeyLS, 19:46 03-10-2008
LinkX

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Как можно убрать окно с сообщением (когда произведена деинсталляция, но не все файлы удалились) "Деинсталляция %1 завершена.%n%nЧасть элементов не удалось удалить. Вы можете удалить их самостоятельно.".

Всего записей: 10 | Зарегистр. 13-09-2008 | Отправлено: 22:07 03-10-2008
Forslay



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

Всего записей: 181 | Зарегистр. 15-06-2007 | Отправлено: 13:57 04-10-2008
Artem_Butenko



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

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 17:42 04-10-2008
Kindly



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

Всего записей: 3000 | Зарегистр. 04-08-2005 | Отправлено: 12:37 05-10-2008
Medissn

Newbie
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Inno Setup 5.2.2 [Русская версия] (Версия перевода от 31.12.2007)
http://medissn.narod.ru/files/isetup-5.2.2-ru.exe

Всего записей: 10 | Зарегистр. 05-10-2008 | Отправлено: 23:35 05-10-2008
Artem_Butenko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Товарищи, извините меня за столь стремительную генерацию вопросов, просто я все еще не познал до конца Inno Setup. Пожалуйста, напомните, как задается цвет страниц и компонентов страницы в Inno Setup. И еще хотелось бы вернуться к теме озвучивания действий инсталлятора. В вопросах создания .dll у меня мало опыта, но м.б. есть готовое решение (т.е. сторонняя .dll) позволяющее организовать озвучивание действий инсталлятора (особенно те, которые невозможно организовать через код, например, клик по кнопкам диалогового окна).

Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 00:17 06-10-2008
boss911



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

Код:
[Run]
Filename: {app}\Prog1.exe; Flags: waituntilterminated skipifsilent
Filename: {app}\Prog2.exe; Flags: postinstall skipifsilent nowait
Filename: {app}\Prog3.exe; Flags: postinstall skipifsilent nowait

Помогите сделать так, если Prog2.exe или Prog3.exe не выбраны (postinstall) для запуска, то Prog1.exe чтобы тоже не выполнялся.

Всего записей: 3701 | Зарегистр. 29-01-2005 | Отправлено: 05:43 06-10-2008 | Исправлено: boss911, 22:55 07-10-2008
nOobCrafter

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

Цитата:
Такие штуки на системном диске, меня несколько шокируют:  
 
Цитата:procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);    
begin  
DelTree(ExpandConstant('C:\123'), True, True, True);    
end;  
 
 
Хотел дать совет, как можно обойтись без этого, да не успел.  
Genri  
Уже дал!  

 
Ммм... А можно посмотреть ответ?...А то я то то немного непонял альтернативы?..
Или обьсню ситуацию, программа может работать только из определенной папки, при переносее ее в другую папку она просто небудет пахать (программно заданы конкретные пути к файлам внутри самой проги), поэтому имеет смысл удалять именно эту папку, ибо при обычно анинстале, удаляются елси неошиаюсь лишь те файлы которые были в оригинальной установке, все логи\журналы созраня.тся, в данном случае, при удалении проги оставлять что либо ненадо, для этого есть функция бэкапа.
 
Genri

Код:
 begin  
          KillTaskU('calc.exe');  
        end  
        else  
          Result := False;  
    end;

 
А какая разница есkи у меня стоит:

Код:
 else  
          Exit
    end;

Как правильнее и корректнее если у меня несколько задач а не одна?
 
З.Ы. Спс все заработало, осталось только пара этих вопросов для общего развития)

Всего записей: 99 | Зарегистр. 26-06-2008 | Отправлено: 10:16 06-10-2008 | Исправлено: nOobCrafter, 10:41 06-10-2008
   

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

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


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

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

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru