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

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

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

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

   

haav



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

 
 
Это мощное средство для создания установочных пакетов [дистрибутивов] программ. Поддерживается шифрование, установка пароля, различные задачи по завершении установки. Можно легко самим создавать диалоги, используя спец. дизайнер. И всё это абсолютно бесплатно! По сравнению с NullSoft [основной конкурент на бесплатной ниве] мне albel понравилась более интуитивно-понятная структура скрипта, простота в настройке.  
 
Последний релиз: 5.1.11 [1 Марта 2007 года]
История версий | скачать  
 
Русификатор от NightW0lf для версии 5.1.11  
Скачать | зеркало
 
Русская справка к версиям 5.0.xx
Скачать | зеркало || cкачать в .chm формате
И снова BagIra на высоте
 
Руководство по расширенным возможностям Inno Setup 5 [не для чайников] от Kindly
[3 версия]  
Скачать | зеркало
[4 версия]  
Скачать | зеркало
[5 версия]  
Скачать | зеркало
 
Inno Setup Extensions Knowledge Base  
Скачать | зеркало
 
Примечание: начиная с версии 5.1.10 в Inno Setup при использовании в инсталляторе фонового изображения формата BMP стало глючить возможность растягивания картинки на весь экран - чтобы это исправить добавьте этот код.
Если вы захотите использовать метод проверки внешнего файла через сумму MD5 [который описан в 5 версии руководства по программированию в Inno Setup] для запуска инсталлятора то вам понадобится калькулятор суммы MD5, калькулятор сумм MD5, SHA-256, CRC32. Если вы хотите узнать какие ключи в реестр вносит та или иная программа [или игра] то Вам понадобится RegShot.



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



ISTool
 
www.istool.org
 
Последний релиз: 5.1.8 [18 Октября 2006 года] New
Скачать | зеркало  
[как сказано в описании изменений, добавлена поддержка новых директив 5.1.8]
 
Русификатор
Скачать | зеркало


 
Распаковщик установок, сделанных с помощью Inno Setup. При распаковке извлекаются  ресурсы и скрипт установки [немного усечённый]. Возможно подключение к TotalCommander или FAR с помощью MultiArc плагинов.
 
Поддерживает распаковку инсталляторов, сделанных с помощью Inno Setup начиная с версии 3.0.0-beta по 5.1.10
 
Последний релиз: 0.19
Скачать | зеркало


 
Удобная оболочка для облегчения написания скриптов установки для INNO SETUP. Обладает некоторыми полезными функциями, которых нет ни у самого INNO, ни у ISTool.
 
Последний релиз: 5.1.6.9 [09 Июль 2006 года]
Скачать 4.2 мб | обновление 3.1 мб
 
Русификатор от GloThin
Скачать с сайта GloThin | Зеркало | Зеркало | зеркало
Пароль: ruboard
Примечание: офф. сайт косо отображается в Oper`е.
 
Новое название проекта на сайте, похоже произошла замена ScriptMaker на:
 
Inno Script Generator

Последний релиз: 1.02.5 [02 Апреля 2007 года]
Скачать | обновление
Примечание: обновление ставится только на Inno Setup Quickstartpack 5.1.11.

Всего записей: 67 | Зарегистр. 11-12-2001 | Отправлено: 15:23 09-10-2002 | Исправлено: NightW0lf, 15:16 15-04-2007
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
а что означает  BACKGROUND=6; и  TIMER=16;

Всего записей: 2785 | Зарегистр. 10-04-2003 | Отправлено: 21:51 30-11-2006
Genri

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

Цитата:
что означает  BACKGROUND=6; и  TIMER=16;

Просто поименованные константы. По ним длл-ка распознает, куда выводить изображение. В оригинале:
const
  TOPLEFT        = 1;
  TOPRIGHT    = 2;
  BOTTOMLEFT    = 3;
  BOTTOMRIGHT    = 4;
  CENTER        = 5;
  BACKGROUND    = 6;
  TOP        = 7;
  BOTTOM        = 8;
  LEFT        = 9;
  RIGHT        = 10;
  TIMER        = 16;

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 22:52 30-11-2006
mikar



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

Всего записей: 2059 | Зарегистр. 06-02-2005 | Отправлено: 07:00 01-12-2006
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
значит isxbb_AddImage(ExpandConstant('{tmp}')+'\2.jpg',BACKGROUND or TIMER);
означает побитовое "или" 6 и 16 ?  
я пробовал их (числа) изменять и получил в финале мозаику
 
я пробовал изменять 3 в isxbb_StartTimer(3,BACKGROUND) НО так и не получил анимации!
обидно!

Всего записей: 2785 | Зарегистр. 10-04-2003 | Отправлено: 16:51 01-12-2006
Genri

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

Цитата:
означает побитовое "или" 6 и 16  

Типа того. Хотя в чистом виде битовая маска была бы, если бы значения всех констант были равны степеням двойки. Но в данном случае, очевидно разработчика устроил и такой вариант (т.е. старший бит в 10110 определяет таймер, а все остальное одна из остальных констант, так как очевидно два местоположения задать нельзя).
 
3 в isxbb_StartTimer(3,BACKGROUND) это шаг таймера в секундах.
 
Если хочешь, можешь в личку выслать весь код. Конфиденциальность гарантирую

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 17:34 01-12-2006
svs123456789

Silver Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri
СПАСИБО !!! оказывается проблема была a JPG - не все jpg умеет воспроизводить dll сабжа

Всего записей: 2785 | Зарегистр. 10-04-2003 | Отправлено: 19:16 02-12-2006
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Блин проблема.
 
Вставляю изображение через код
 
[Code]
procedure InitializeWizard();
var
 BackgroundBitmapImage: TBitmapImage;
 s:string;
begin
 ExtractTemporaryFile('My_Image.bmp'); //My_Image.bmp - указываемое изображение в секции [Files]
 s:=ExpandConstant('{tmp}')+'\My_Image.bmp';
 BackgroundBitmapImage := TBitmapImage.Create(MainForm);
 BackgroundBitmapImage.Bitmap.LoadFromFile(s);
 BackgroundBitmapImage.Align := alClient;  
 BackgroundBitmapImage.Parent := MainForm;
 BackgroundBitmapImage.Stretch:=True;
end;
 
И хочу вставить через ISSI смал имэйдж большего размера.
[ISSI]
 
#define ISSI_IncludePath "C:\ISSI"
#define ISSI_WizardSmallBitmapImage "C:\ISSI\Install_Images\SmallImage.bmp"
#define ISSI_WizardSmallBitmapImage_x 176
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"
 
 
Но при компиляции останавливается на procedure InitializeWizard(); и ругается. Что не так? Помогите!!!

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 12:08 03-12-2006
Genri

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

Цитата:
при компиляции останавливается на procedure InitializeWizard()

Переименуй procedure InitializeWizard() в procedure ISSI_InitializeWizard() и в секцию [ISSI] добавь #define ISSI_InitializeWizard (можно вместо одной лишней #define ISSI_IncludePath "C:\ISSI" - их у тебя две)

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 15:32 03-12-2006
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri,
 
не помогло Пишет unknown identifier 'ISSI_InitializeWizard'
 
 
[ISSI]
#define ISSI_WizardSmallBitmapImage "C:\ISSI\Install_Images\SmallImage.bmp"
#define ISSI_WizardSmallBitmapImage_x 176
#define ISSI_InitializeWizard
#define ISSI_IncludePath "C:\ISSI"
#include ISSI_IncludePath+"\_issi.isi"

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 19:54 03-12-2006
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Chanka
Прочитай внимательно мой пост. Надо сделать две вещи:
 
1. В секцию [ISSI] добавить строку:
#define ISSI_InitializeWizard
-- это ты сделал
 
2. В секции Code процедуру:
procedure InitializeWizard();
...переименовать в:
procedure ISSI_InitializeWizard();
-- судя по ошибке, ты это не сделал или ошибся в написании.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 21:13 03-12-2006
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Спасибо, Genri!
 
 
Просто я поставил [ISSI], а под ним код, а надо было наоборот
 
Еще один вопросик: можно ли использовать в качестве фона JPG изображение но только не через isxbb.dll?

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 23:42 03-12-2006
Genri

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

Цитата:
можно ли использовать в качестве фона JPG изображение  

Насколько я знаю, без использования внешних длл, только BMP

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 00:26 04-12-2006
GRom V

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

Цитата:
[Setup]  
AppName=My Program  
AppVerName=My Program  
CreateAppDir=No  
WindowVisible=Yes  
 
[Files]  
; Копирование *.dll для демонстрации  
Source: "{sys}\*.dll"; DestDir: {tmp}; Flags: external  
Source: InnoCallback.dll; DestDir: {tmp}; Flags: dontcopy  
Source: pic1.bmp; DestDir: {tmp}; Flags: dontcopy  
Source: pic2.bmp; DestDir: {tmp}; Flags: dontcopy  
 
[Code]  
type  
  TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);  
 
var  
  BackgroundBitmapImage: TBitmapImage;  
  TimerID: LongWord;  
 
function WrapTimerProc(callback:TProc; paramcount:integer):longword;  
external 'wrapcallback@files:innocallback.dll stdcall';  
 
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord;  
external 'SetTimer@user32.dll stdcall';  
 
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord;  
external 'KillTimer@user32.dll stdcall';  
 
 
//**************************************//  
function PercentProgress(): Integer;  
begin  
  with WizardForm.ProgressGauge do  
    begin  
      Result:= (Position-Min)/((Max - Min)/100) ;  
    end;  
end;  
 
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);  
var  
  percent: integer;  
   
begin  
percent:= PercentProgress;  
(* К сожалению, Inno Setup не поддерживает  
   задание диапазона в операторе Case. Типа:  
   Case X of  
     1 .. 10: xxx;  
    11 .. 20: yyy; *)  
  with BackgroundBitmapImage do  
    begin  
      if ((percent > 0) and (percent < 10) and (Tag <> 1))  then  
        begin  
         Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');  
         Tag:= 1;  
        end else  
      if ((percent > 11) and (percent < 20) and (Tag <> 2)) then  
        begin  
         Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic2.bmp');  
         Tag:= 2;  
      end;  
    end;  
end;  
 
procedure CurPageChanged(CurPageID: Integer);  
var  
  pfunc: LongWord;  
 
begin  
  if CurPageID = wpInstalling then  
    begin  
      pfunc:= WrapTimerProc(@OnTimer, 4);  
      TimerID:= SetTimer(0, 0, 500, pfunc);  
 
      BackgroundBitmapImage := TBitmapImage.Create(MainForm);  
      with BackgroundBitmapImage do  
        begin  
          Left := 50;  
          Top := 100;  
          AutoSize := True;  
          Center := True;  
          Parent := MainForm;  
          Bitmap.LoadFromFile(ExpandConstant('{tmp}') + '\pic1.bmp');  
          Tag:= 1;  
        end;  
    end;  
end;  
 
procedure InitializeWizard();  
begin  
  ExtractTemporaryFile('pic1.bmp');  
  ExtractTemporaryFile('pic2.bmp');  
end;  
 
procedure DeinitializeSetup();  
begin  
  KillTimer(0, TimerID);  
end;

 
 
Этот скрипт очень даже ен плох! Но подскажи - как сделать чтоб форма рисовалась не сразу, т.е первая картинка вылетала не сразу а через какое то время - например(if ((percent > 10) and (percent <20))
Заранее благодарен.

Всего записей: 466 | Зарегистр. 31-10-2006 | Отправлено: 03:05 04-12-2006 | Исправлено: GRom V, 10:24 04-12-2006
Genri

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
GRom V
Ты исправляешь посты быстрее, чем я отвечаю
 
1. Рисовать или нет, можно использовать свойство Visible. Например:

Код:
 
procedure CurPageChanged(CurPageID: Integer);
var
  pfunc: LongWord;
 
begin
  if CurPageID = wpInstalling then
    begin
      pfunc:= WrapTimerProc(@OnTimer, 4);
      TimerID:= SetTimer(0, 0, 500, pfunc);
 
      BackgroundBitmapImage := TBitmapImage.Create(MainForm);
      with BackgroundBitmapImage do
        begin
          Left := 50;
          Top := 100;
          AutoSize := True;
          Center := True;
          Parent := MainForm;
          Visible := False; // все подготовили, но скрыли.
        end;
    end;
end;
 

2. Восстанавливать состояние можно либо тем же Visible:= False, но более корректно освобождением ресурсов (метод Free). Например:

Код:
 
      if (percent = 100)  then
        begin
         KillTimer(0, TimerID);
         BackgroundBitmapImage.Free;
      end;
 

 
Добавлено:
Но если хочешь восстановить начальное состояние, лучше при проверке процентов Visible выставлять в False, а ресурсы освобождать в процедуре DeinitializeSetup. Это связано с тем, что проценты проверяются раз в пол-секунды (SetTimer(0, 0, 500, pfunc)) и если копирование проходит быстро, 100% таймер может не поймать.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 11:42 04-12-2006 | Исправлено: Genri, 11:44 04-12-2006
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
А можно ли сделать как 1с делает в своих игрушках. Когда запускаешь сетап, сначала рисуется форма с картинкой до панели задач, потом появляется мастер и панель задач прикрывается. Всё это происходит очень быстро. Кто-нибудь знает, как это сделать?

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 13:25 04-12-2006
AtotIK



Junior Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Не видел как делает 1С (а в каких игрухах?), но способ есть:
 
1. Нужен рисунок сделанный в 32-битном цвете. Желательно с прозрачным фоном.
 
2. Запускиется специальная прога (если надо - завтра залью, весит она ~200 кб) из Temp'а которая отображает эту картинку "наплывами" - сначала она постепенно появляется, а потом постепенно пропадает.
 
Вот и всё.

Всего записей: 138 | Зарегистр. 17-09-2006 | Отправлено: 16:43 04-12-2006 | Исправлено: AtotIK, 16:47 04-12-2006
omals

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Привет
в скрипте для закачки файла и его инсталяции (по выбора юзверя) использую isxdl.dll (http://www.istool.org/default.aspx/isx/isxdl).
Вопрос: Как в silent режиме спрятать окно прогресса закачки?. Возможно ли это?
если да, то как? а может у кого-то есть исходники isxdl.dll (на том сайте не смог найти)?
Спасибо

Всего записей: 110 | Зарегистр. 04-12-2006 | Отправлено: 17:47 04-12-2006
Chanka

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

Цитата:
Не видел как делает 1С (а в каких игрухах?)

 
Например: Prey, Call of Juarez, El Matador и.т.д.
 

Цитата:
если надо - завтра залью

 
Заливай

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 18:05 04-12-2006
Genri

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

Цитата:
сначала рисуется форма с картинкой до панели задач, потом появляется мастер и панель задач прикрывается

Очевидно речь идет о двух свойствах формы: BorderStyle:= bsNone и WindowState:= wsMaximized. Первое в Inno Setup выставить можно, а второе к сожалению не поддерживается (по крайней мере мне не известно).  
 
Добавлено:
Chanka
Не очень красиво, но решить можно следующим образом:

Код:
 
[Code]
function ShowWindow(hWnd: LongWord; nCmdShow: LongWord): LongWord;
external 'ShowWindow@user32.dll stdcall';
 
procedure InitializeWizard();
begin
  MainForm.BorderStyle:= bsNone;
  ShowWindow(MainForm.Handle, SW_SHOWMAXIMIZED);
end;
 

... надеюсь это то, что требовалось.

Всего записей: 872 | Зарегистр. 06-09-2003 | Отправлено: 19:04 04-12-2006
Chanka

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Genri,
 
пойдёт  
 
Еще вопросик:
 
Если вставить этот код, то не отображаются компоненты. Как-нибудь можно это поправить?
 
[Code]
function GetSystemMetrics(nIndex:Integer):Integer;
external 'GetSystemMetrics@user32.dll stdcall';
 
procedure InitializeWizard();
var
 BackgroundBitmapImage: TBitmapImage;
 s:string;
 width, height:Integer;
begin
 WizardForm.Position:=poScreenCenter;
 MainForm.BORDERSTYLE:=bsNone;
 width:=GetSystemMetrics(0);
 height:=GetSystemMetrics(1);
 MainForm.Width:=width;
 MainForm.Height:=height;
 width:=MainForm.ClientWidth;
 height:=MainForm.ClientHeight;
 ExtractTemporaryFile('1.bmp');
 s:=ExpandConstant('{tmp}')+'\1.bmp';
 BackgroundBitmapImage := TBitmapImage.Create(MainForm);
 BackgroundBitmapImage.Bitmap.LoadFromFile(s);
 BackgroundBitmapImage.Align := alClient;
 BackgroundBitmapImage.Parent := MainForm;
 BackgroundBitmapImage.Stretch:=True;
 MainForm.Visible:=True;
end;

Всего записей: 208 | Зарегистр. 24-08-2006 | Отправлено: 21:50 04-12-2006
   

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

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


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

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.Board
© Ru.Board 2000-2020

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru