Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Закрытая тема
Настройки темы
[архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Ветеран


Сообщения: 1133
Благодарности: 581


Конфигурация

Профиль | Отправить PM | Цитировать


Изменения
Автор: jameszero
Дата: 08-11-2010
Описание: тема закрыта
Лимит страниц.
Тема закрыта.
Продолжение по ссылке Скрипты Inno Setup. Помощь и советы [часть 3]




Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:
Показать/скрыть: Ссылки на примеры скриптов:
Показать/скрыть: Дополнительные программы для Inno Setup:
  • ISTool - неплохой редактор скриптов Inno Setup.
    Последняя версия: 5.3.0.1 [29.09.2009] - Скачать | зеркало;
    Предыдущая версия: 5.3.0 [07.04.2009] - Скачать (зеркало) | Русификатор (зеркало);

  • Inno Script Generator - ещё один редактор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать;

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы. Официальный сайт - недоступен.
    Последняя версия: 2.0.8 [12.11.2006] - Страница с зеркалами;

  • Inno Setup GameScript Generator - программа генерирует скрипты для Inno Setup . С помощью GameScript Generator и Inno Setup вы сможете быстро создать простенький инсталляционный пакет для любой игры. В инсталлятор можно встроить музыку, слайдшоу и фоновый рисунок. Для специалистов созданный скрипт, возможно, будет неплохой заготовкой для дальнейшей модернизации;

  • ISSkin - Программа для создания и добавления в инсталлятор скинов. Инструкция.
    Последняя версия: 3.0.0.0 [19.01.2010] - Скачать;

  • InnoSetup Script Joiner - Программа для объединения нескольких скриптов InnoSetup в один;

  • Converter - Программа конвертирует reg-файлы в формат *.iss (формат скриптов Inno Setup).
    Последняя версия: 0.1.3 [11.09.2009] - Скачать;


Ссылка на архив предыдущей темы (также можно скачать из вложения)

-------
Книги нужны, чтобы напоминать человеку, что его оригинальные мысли не так уж новы... Авраам Линкольн.


Отправлено: 22:06, 23-08-2009

 

Аватара для Sotonisto

Пользователь


Сообщения: 131
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


У меня есть 4 вопроса.

1. Как сделать картинку фоном инсталлятора? Вот так, только без логотипа, белой полосы и черно пространства?
>>> http://s54.radikal.ru/i143/1001/fc/251dc65b26d6.jpg
Ну что бы была картинка на весь инсталл и во всех диалогах (да и надпись приветствия желательно по центру разместить).
Дайте плз скрипт, или ссылку, где все подробно описано.

3. Можно ли изменить стандартную рамку инсталла, например, на черную?
>>> http://s15.radikal.ru/i189/1001/dd/da66e7110cff.jpg

4. Как заменить стандарный прогресс бар (просто полоса) на прогресс бар с делениями?

Отправлено: 07:38, 06-01-2010 | #811



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для ZanyGamer

Новый участник


Сообщения: 23
Благодарности: 3

Профиль | Отправить PM | Цитировать


Думаю примеры которые просит Sotonisto, нужно в шапку кинуть, т.к. очень много задавали эти вопросы! На все я видел ответы на разных страницах, дабы не перебирать все страницы (больше 100) считаю целесообразным засунуть эти скрипты в шапку и желательно с вложенными картинками и стилем. Будет просто здорово!

-------
Проснулся и не знаешь, с какой ноги встать? Отправь NOGA на 4141...))))


Отправлено: 07:50, 06-01-2010 | #812


Аватара для YURSHAT

Старожил


Сообщения: 163
Благодарности: 78

Профиль | Отправить PM | Цитировать


Цитата Sotonisto:
1. Как сделать картинку фоном инсталлятора? Вот так, только без логотипа, белой полосы и черно пространства? »
Примерно так

Цитата Sotonisto:
3. Можно ли изменить стандартную рамку инсталла, например, на черную? »
Можно, применив скин Tiger.cjstyles

Цитата ZanyGamer:
Думаю примеры которые просит Sotonisto, нужно в шапку кинуть, »
Пример с картинкой итак есть в шапке!!! А вообще этот вопрос уже жован-пережован 100 раз!!!

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Последний раз редактировалось YURSHAT, 06-01-2010 в 09:27.

Это сообщение посчитали полезным следующие участники:

Отправлено: 09:15, 06-01-2010 | #813


Аватара для Sotonisto

Пользователь


Сообщения: 131
Благодарности: 16

Профиль | Сайт | Отправить PM | Цитировать


Цитата YURSHAT:
Примерно так »
Я посмотрел и ужаснулся
Я и в шапке скрипт видел, но чет у меня траблы начинаются, когда черные кнопки пытаюсь сделать ((

В конце скрипта на картинку для инсталлера есть такой код:
читать дальше »
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
  pnl:= TPanel.Create(WizardForm);
  with pnl do
    begin
      Align:= alClient;
      Parent:= WizardForm;
    end;
  with WizardForm do
    begin
      with WizardBitmapImage do
        begin
          Align:= alClient;
          Stretch:= True;
          Parent:= pnl;
        end;
      NextButton.Parent:= pnl;
      CancelButton.Parent:= pnl;
      BackButton.Parent:= pnl;
      Bevel.Parent:= pnl;
      pnl.Repaint;
    end;

  if (CurPageID > wpWelcome) and (CurPageID < wpFinished) then
    begin
      WizardForm.Bevel1.Parent:= pnl;
      with TLabel.Create(pnl) do
        begin
          AutoSize:= WizardForm.PageNameLabel.AutoSize;
          SetBounds(WizardForm.PageNameLabel.Left,WizardForm.PageNameLabel.Top,
                    WizardForm.PageNameLabel.Width,WizardForm.PageNameLabel.Height);
          Caption:= WizardForm.PageNameLabel.Caption;
          with Font do
            begin
              Color:= WizardForm.PageNameLabel.Font.Color;
              Style:= WizardForm.PageNameLabel.Font.Style;
              Name:= WizardForm.PageNameLabel.Font.Name;
              Size:= WizardForm.PageNameLabel.Font.Size;
            end;
          Transparent:= True;
          Parent:= pnl;
        end;
      with TLabel.Create(pnl) do
        begin
          AutoSize:= WizardForm.PageDescriptionLabel.AutoSize;
          SetBounds(WizardForm.PageDescriptionLabel.Left,WizardForm.PageDescriptionLabel.Top,
                    WizardForm.PageDescriptionLabel.Width,WizardForm.PageDescriptionLabel.Height);
          Caption:= WizardForm.PageDescriptionLabel.Caption;
          with Font do
            begin
              Color:= WizardForm.PageDescriptionLabel.Font.Color;
              Style:= WizardForm.PageDescriptionLabel.Font.Style;
              Name:= WizardForm.PageDescriptionLabel.Font.Name;
              Size:= WizardForm.PageDescriptionLabel.Font.Size;
            end;
          Transparent:= True;
          Parent:= pnl;
        end;
      pnl.Repaint;
    end;

  if CurPageID = wpWelcome then WelcomePage;
  if CurPageID = wpSelectDir then SelectDirPage;
  if CurPageID = wpReady then ReadyPage;
  if CurPageID = wpInstalling then InstallingPage;
  if CurPageID = wpFinished then FinishedPage;
end;

Он конфликтует с этой строкой - она для замены кнопок:
читать дальше »
Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
  UpdateButton(WizardForm.BackButton,bidBack)
  UpdateButton(WizardForm.NextButton,bidNext)
  UpdateButton(WizardForm.CancelButton,bidCancel)
end;


Если чет перенести - ничего не пашет =( Я в инно сетапе пока что профан, так что не знаю что делать =(

Плюс вот такое вот во время принятия лицензии/выбора папки в меню пуск/устанавливать директ и т.д.

Просто ничего не видно и все ((

И еще я хочу избавится от белых полос (они портят картинку). Я видел пару раз инстал без них и мне тож захотелось примерно такой же сделать.

Цитата YURSHAT:
Пример с картинкой итак есть в шапке!!! А вообще этот вопрос уже жован-пережован 100 раз!!! »
Я б качнул руководство от Kindly, но у меня айпи не выделенный, так что про скачивание с рапида можно забыть ((

Цитата YURSHAT:
Можно, применив скин Tiger.cjstyles»
Напиши пример строки плз.

З.Ы.: а как на счет прогресс-бара? ну на кряйняк ему же цвет можно как-то изменить?!

Последний раз редактировалось Sotonisto, 06-01-2010 в 12:10.


Отправлено: 11:40, 06-01-2010 | #814


Аватара для YURSHAT

Старожил


Сообщения: 163
Благодарности: 78

Профиль | Отправить PM | Цитировать


Sotonisto
Цитата:
Он конфликтует с этой строкой - она для замены кнопок:
Можно сделать так: Первой процедуре CurPageChanged присвоить цифру 1 т.е.
procedure CurPageChanged1(CurPageID: Integer);
begin

бла-бла

Второй цифру 2

procedure CurPageChanged2(CurPageID: Integer);
begin

бла-бла (кнопки)

А в конце скрипта добавить это:

Код: Выделить весь код
procedure CurPageChanged(CurPageID: Integer);
begin
CurPageChanged1(CurPageID);
CurPageChanged2(CurPageID);
end;
Цитата:
И еще я хочу избавится от белых полос (они портят картинку). Я видел пару раз инстал без них и мне тож захотелось примерно такой же сделать.
Код: Выделить весь код
procedure InitializeWizard();
begin
WizardForm.Bevel.Hide 
WizardForm.Bevel1.Hide 
end;
Цитата:
Напиши пример строки плз.
Используйте прогу ISSkin. А Tiger.cjstyles даст вам черную строку заголовка

Цитата:
З.Ы.: а как на счет прогресс-бара? ну на кряйняк ему же цвет можно как-то изменить?!
Можно наложить на него текстурку
Пример
Код: Выделить весь код
[Setup]
AppName=zz
DefaultGroupName=group
AppVerName=zzz
DefaultDirName={pf}\test
SolidCompression=false
InternalCompressLevel=none
Compression=none

#define PB_ImageFile  "progress1.bmp"//картинка 1 на 19

[Files]
Source: D:\Программы\Inno Setup 5.2.2\Новая папка (4)\DLL\InnoCallback.dll; Flags: dontcopy ignoreversion
Source: {#PB_ImageFile}; DestDir: "{tmp}"; Flags: recursesubdirs ignoreversion
Source: {win}\help\*.hlp; DestDir: {app}\Files; Flags: external

[Code_]
type
    TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);

var
    TimerID: LongWord;
    intOldCurrWidth : Integer;
    ProgressBar_BitmapImage: TBitmapImage;
    ProgressBar_Edit : TEdit;
    ProgressBar_ImageHeight : integer;

// Функции для работы с таймером
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';

// Обработчик нажатия кнопки Отмена
procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if CurPageID = wpInstalling then // Просто спрячем наш Прогресс Бар
ProgressBar_Edit.Show;
end;

// Функция вызываемая по таймеру
procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
    CurrWidth : single;
begin
    // Используем текущее состояние стандартного Прогресс Бара (ПБ)
    with WizardForm.ProgressGauge do
    begin
        CurrWidth := ( Position * Width ) / Max;            // Вычисляем какой ширины должен быть наш ПБ
        if intOldCurrWidth <> Round( CurrWidth ) then       // Если ширина пока что такая же, то не будем пока что рисовать, чтобы избежать лишних обновлений формы
        begin
            intOldCurrWidth := Round( CurrWidth );
            // Теперича "рисуем" наш ПБ
            ProgressBar_BitmapImage.SetBounds( 0, 0, intOldCurrWidth, ProgressBar_ImageHeight );
            ProgressBar_BitmapImage.Show();                     // Показываем его во всей красе
        end;
    end;
end;

procedure CurPageChanged(CurPageID: Integer);
var
    pfunc: LongWord;
begin
    if CurPageID = wpInstalling then
    begin
        // Устанавливаем таймер
        pfunc := WrapTimerProc( @OnTimer, 4 );
        TimerID := SetTimer( 0, 0, 100, pfunc );
        intOldCurrWidth := 0;
    end;

    // Убираем таймер, когда находимся на последней странице.
    if CurPageID = wpFinished then
        KillTimer( 0, TimerID );
end;

Procedure InitializeWizard;
begin
    // Создаем наш Edit, чтобы у нашего ПБ была более-менее нормальная рамка.
    ProgressBar_Edit := TEdit.Create( WizardForm );
    with ProgressBar_Edit do
    begin
        // Создаем его на месте стандартного ПБ
        Left := WizardForm.ProgressGauge.Left;
        Top := WizardForm.ProgressGauge.Top;
        Width := WizardForm.ProgressGauge.Width;
        Height := WizardForm.ProgressGauge.Height;
        Enabled := False;
        ReadOnly := True;
        // Фоновый цвет делаем точно такой же как у формы.
        Color := WizardForm.Color;
        Parent := WizardForm.InstallingPage;
    end;

    // Распаковываем картинку для нашего ПБ
    ExtractTemporaryFile( '{#PB_ImageFile}' );

    ProgressBar_BitmapImage := TBitmapImage.Create( WizardForm );
    with ProgressBar_BitmapImage do
    begin
        // Загружаем картинку
        Bitmap.LoadFromFile( ExpandConstant( '{tmp}\' ) + '{#PB_ImageFile}' );
        Parent := ProgressBar_Edit;
        Stretch := True;        // Он должен растягиваться
        Hide;                   // Прячем его до поры до времени
    end;

    // Получаем высоту для картинки
    ProgressBar_ImageHeight := ProgressBar_Edit.Height - 2;
    // Прячем стандартный ПБ
    WizardForm.ProgressGauge.Hide;
end;

procedure DeinitializeSetup();
begin
    // Убираем таймер
    KillTimer( 0, TimerID );
end;

-------
Если я знаю, что знаю мало, я добьюсь того, чтобы знать больше... В.И. Ленин
Krinkels.org - сжатие данных и создание инсталляторов


Последний раз редактировалось YURSHAT, 07-01-2010 в 02:23.

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:07, 06-01-2010 | #815


Аватара для GrizzlyMK

Новый участник


Сообщения: 28
Благодарности: 3

Профиль | Отправить PM | Цитировать


Вложения
Тип файла: rar Skript.rar
(17.9 Kb, 20 просмотров)

Помогите соединить 2 скрипта.
Оба скрипта в архиве, заранее спасибо.

Отправлено: 18:00, 06-01-2010 | #816


Пользователь


Сообщения: 129
Благодарности: 76

Профиль | Отправить PM | Цитировать


Inno Setup 5.3.7 released. Happy new year!
Что нового?

* The PrivilegesRequired [Setup] section directive can now be set to lowest. On Windows Vista and later this instructs Setup to not request elevated rights (via a User Account Control dialog) even if it was started by a member of the Administrators group. Do not use this setting unless you are sure your installation will run successfully on unprivileged accounts. On Windows NT/2000/XP/2003, lowest behaves the same as none.
* Added new Compiler IDE option: Autosave before compiling.
* [Tasks] section flags checkedonce and unchecked may now be combined. This combination specifies the task to be unchecked by default on the first install, and always unchecked by default on subsequent installs as well.
* A problem with "Not Implemented" errors when Setup or Uninstall was run on Windows 7 under special conditions such as from a non-interactive service was fixed.
* Changed the CodePrepareToInstall.iss example script to use the RunOnce registry key instead of a shortcut placed in {commonstartup}.
* Pascal Scripting: the Non Unicode compiler now has a PAnsiChar type just like the Unicode compiler.
* Added official Japanese translation.
* Unicode [code] based on RemObjects Pascal Script SVN code revision 197.
* Minor tweaks.
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:33, 06-01-2010 | #817


Новый участник


Сообщения: 22
Благодарности: 0

Профиль | Отправить PM | Цитировать


А как реализовать такую функцию.Когда выбран одим из компонентов то он запускается после инсталляции.А если не выбран то не запускается.пробовал функцию checked но в примере он спрашивает устанавливать или нет в любом случае.Может надо чтото исправить в коде

Отправлено: 14:07, 07-01-2010 | #818


Аватара для Drongo

Будем жить, Маэстро...


Сообщения: 6694
Благодарности: 1393

Профиль | Сайт | Отправить PM | Цитировать


Всем привет. Позвонил друг, попросил узнать, как сделать инсталятор с проверкой операционной системы на Висту. В коде я выделил красным цветом, что я добавил для того чтобы инсталятор проверил что ОС - является Вистой и установка пошла дальше. Добавил эту строку. Друг говорит, что вариант не проходит, пробовал на висте установить, значение ложное и не устанавливается.
Код: Выделить весь код
(Pos('Vista', SystemVersionPanel.Text) = 0) then  // Windows Vista (c любым SP или без него)
Код: Выделить весь код
...
// Операционная система:
  SystemVersionPanel.Color := $CCFFCC

  DeviceKey := 'Software\Microsoft\Windows NT\CurrentVersion'
  if not UsingWinNT then StringChange(DeviceKey, 'Windows NT', 'Windows')
	RegQueryStringValue(HKLM, DeviceKey, 'ProductName', DeviceName)
  if RegQueryStringValue(HKLM, DeviceKey, 'CSDVersion', DeviceKey) then
     DeviceName := DeviceName + ' ' + DeviceKey
	StringChange(DeviceName, 'Microsoft ', '')
  SystemVersionPanel.Text := ' ' + DeviceName + ' сборка ' + IntToStr(Version.Major) + '.' + IntToStr(Version.Minor) +
                             '.' + IntToStr(Version.Build)

  if (Pos('2000 Service Pack 4', SystemVersionPanel.Text) = 0) and  // Windows 2000 SP4
     (Pos('XP Service Pack 1', SystemVersionPanel.Text) = 0) and  // Windows XP SP1
     (Pos('XP Service Pack 2', SystemVersionPanel.Text) = 0) and  // Windows XP SP2
     (Pos('XP Service Pack 3', SystemVersionPanel.Text) = 0) and  // Windows XP SP3
     (Pos('Vista', SystemVersionPanel.Text) = 0) then  // Windows Vista (c любым SP или без него)
     begin
      SystemVersionPanel.Color := $CCCCFF
      ChangeText := True
     end
...
Как сделать проверку чтобы на Висте условие удовлетворялось бы?

-------
Правильная постановка вопроса свидетельствует о некотором знакомстве с делом.
3нание бывает двух видов. Мы сами знаем предмет — или же знаем, где найти о нём сведения.
[Quick Killer 3.0 Final [OSZone.net]] | [Quick Killer 3.0 Final [SafeZone.cc]] | [Парсер логов Gmer] | [Парсер логов AVZ]

http://tools.oszone.net/Drongo/Userbar/SafeZone_cc.gif


Отправлено: 16:07, 07-01-2010 | #819


Пользователь


Сообщения: 129
Благодарности: 76

Профиль | Отправить PM | Цитировать


Цитата Drongo:
Как сделать проверку чтобы на Висте условие удовлетворялось бы? »
А если так?
Код: Выделить весь код
[Setup]
AppName=My Program
AppVerName=My Program version
DefaultDirName={pf}\My Program
OutputDir=userdocs:My Program.

[code]
function InitializeSetup: Boolean;
var
  Version: TWindowsVersion;
  S: String;
begin
  GetWindowsVersionEx(Version);
  S := 'Ваша операционная система не является Windows Vista.'
         + #13#13 'Продолжение невозможно!';

  if Version.NTPlatform and (Version.Major = 6) and (Version.Minor = 0) then
     Result := True
  else
   begin
     SuppressibleMsgBox(S, mbCriticalError, MB_OK, MB_OK);
     Exit;
   end;

  if (UsingWinNT = False) then
  begin
    SuppressibleMsgBox(S, mbCriticalError, MB_OK, MB_OK);
    Exit;
  end;

  Result := True;
end;
Это сообщение посчитали полезным следующие участники:

Отправлено: 19:34, 07-01-2010 | #820



Компьютерный форум OSzone.net » Автоматическая установка Windows » Автоматическая установка приложений » [архив] Скрипты Inno Setup. Помощь и советы [часть 2]

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58
[архив] Inno Setup .:[все вопросы]:. Mchik Автоматическая установка приложений 1329 23-08-2009 20:13
[архив - Часть 2] AutoIt скрипты Vadikan AutoIt 985 21-01-2008 09:58
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59
[Архив - Часть 1.1] AutoIt скрипты EgOrus AutoIt 335 04-02-2006 16:58




 
Переход