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

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

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

Аватара для El Sanchez

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 22-10-2015
Внимание! Данная тема предназначена только для обсуждения написания скриптов !
Остальные вопросы, а также последние версии компилятора в теме
Inno Setup. Прочие вопросы.


Показать/скрыть: Справка, руководство, примеры:

Показать/скрыть: Ссылки на примеры скриптов:

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

  • Inno Script Generator - генератор скриптов Inno Setup. Обладает некоторыми полезными функциями, которых нет ни у самого Inno Setup, ни у ISTool.
    Последняя версия: 1.0.3.1 [23.03.2008] - Скачать | зеркало на русифицированную программу;
    Примечание: Родной сайт www.hisoft2000.de более недоступен, поэтому здесь расположены сторонние ссылки.

  • Inno Setup Form Designer - редактор страниц Inno Setup, можно создавать свои страницы.
    Последняя версия: 2.0.8 [12.11.2006] - Скачать;
    Примечание: Родной сайт http://isfd.kaju74.de/index.php?isfd более недоступен, поэтому здесь расположены сторонние ссылки.

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

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

  • ISSJoiner - Программа для объединения нескольких скриптов InnoSetup в один.
    Последняя версия: 3.0 [23.07.2009]

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

  • RegExporter - Фриварная утилита для экспорта реестра и конвертации файлов *.reg и *.ini в инсталляционные скрипты Inno Setup и NSIS.
    Последняя версия: 1.2.0 [23.09.2014] - Скачать;



Предыдущие ветки обсуждения по ссылкам ниже и в прикреплённых архивах:

Скрипты Inno Setup. Помощь и советы [часть 6]
Скрипты Inno Setup. Помощь и советы [часть 7]

Отправлено: 08:52, 02-02-2015

 

Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Kashtan007:
Как сделать, чтобы после установки в указанной папке создавался текстовый файл, в который будет выводится список установленных компонентов? »
Kashtan007,
Код: Выделить весь код
procedure CurStepChanged(CurStep: TSetupStep);
begin
    case CurStep of
        ssPostInstall:
            SaveStringToFile(ExpandConstant('{app}\components.txt'), WizardSelectedComponents(False), False);
    end;
end;
Цитата Dodakaedr:
На скрине видно что строка полностью выделена. »
Dodakaedr, ему не выделять строку надо, а сделать так, чтобы выбрать строку можно было не только по клику мыши по изображению чекбокса/радио, но и по клику по самой строке. WantTabs в True как раз и позволяет такое сделать. Только он не признается куда поделось стандартное свойство WantTabs, может компилятор ругается совсем не на WantTabs, а на что-то другое, только ж ни ругани, ни скрина не представлено.

Последний раз редактировалось El Sanchez, 06-03-2015 в 09:45. Причина: ересь

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

Отправлено: 20:23, 05-03-2015 | #251



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

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


Аватара для Dodakaedr

Ветеран


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

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


Цитата El Sanchez:
но и по клику по самой строке. »
я ж про то же Видео

-------
Inno Setup 5 Ultra Unicode

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

Отправлено: 21:57, 05-03-2015 | #252


Аватара для El Sanchez

Ветеран


Contributor


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

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


Цитата Dodakaedr:
я ж про то же»
Dodakaedr, diman_21Ru, пардон, ввел всех в заблуждение. Пока сам себя не проверишь, ответа не получишь. Все дело в свойстве TreeViewStyle, которое есть у листа из китайской версии. При значении True (либо в секции Setup директива ComponentsListTVStyle=yes) наблюдаем подобное поведение, WantTabs немного из другой оперы. Для решения проблемы нужно самому обработать мышиные события:
Скрытый текст

Код: Выделить весь код
type
    TCheckListBoxHelper = record
        Index: Integer;
        ItemArea: TItemArea;
    end;

var
   CLBHelper: TCheckListBoxHelper;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
    with TNewCheckListBox(Sender) do
    begin
        if (Button = mbLeft) and (CLBHelper.ItemArea = iaItem) and ItemEnabled[CLBHelper.Index] then
        case State[CLBHelper.Index] of
            cbUnchecked,
            cbGrayed:
                CheckItem(CLBHelper.Index, coCheckWithChildren);
            cbChecked:
                CheckItem(CLBHelper.Index, coUncheck);
        end;
    end;
end;

/////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
begin
    CLBHelper.Index := Index;
    CLBHelper.ItemArea := Area;
end;

///////////////////////////
procedure InitializeWizard;
begin
    with WizardForm.ComponentsList do
    begin
        if TreeViewStyle then
        begin
            OnMouseDown := @ComponentsListOnMouseDown;
            OnItemMouseMove := @ComponentsListOnItemMouseMove;
        end;
    end;
end;

Последний раз редактировалось El Sanchez, 06-03-2015 в 18:52. Причина: nik1967 fix

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

Отправлено: 09:44, 06-03-2015 | #253


Аватара для diman_21Ru

Старожил


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

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


El Sanchez, Не помогло (

Отправлено: 11:36, 06-03-2015 | #254


Аватара для nik1967

Старожил


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

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


El Sanchez, замечательно! Только я позволил себе немного подправить скрипт:
Скрытый текст
Код: Выделить весь код
type
    TCheckListBoxHelper = record
        Index: Integer;
        ItemArea: TItemArea;
    end;

var
   CLBHelper: TCheckListBoxHelper;

//////////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if (Button = mbLeft) and (CLBHelper.ItemArea = iaItem) then
  begin
    with TNewCheckListBox(Sender) do
    begin
      if ItemEnabled[CLBHelper.Index] then 
      begin
        case State[CLBHelper.Index] of
          cbUnchecked,
          cbGrayed:
            CheckItem(CLBHelper.Index, coCheckWithChildren);
          cbChecked:
            CheckItem(CLBHelper.Index, coUncheck);
        end;
      end;
    end;
  end;
end;

/////////////////////////////////////////////////////////////////////////////////////////////////////////
procedure ComponentsListOnItemMouseMove(Sender: TObject; X, Y: Integer; Index: Integer; Area: TItemArea);
begin
    CLBHelper.Index := Index;
    CLBHelper.ItemArea := Area;
end;

///////////////////////////
procedure InitializeWizard;
begin
    with WizardForm.ComponentsList do
    begin
        if TreeViewStyle then
        begin
            OnMouseDown := @ComponentsListOnMouseDown;
            OnItemMouseMove := @ComponentsListOnItemMouseMove;
        end;
    end;
end;

а то компоненты, у которых стоит флаг Fixed, тоже были кликабельны.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 06-03-2015 в 16:42.

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

Отправлено: 11:37, 06-03-2015 | #255


Аватара для diman_21Ru

Старожил


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

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


Как не крути не работает может кто помочь в личку скину .

nik1967, Поможешь? в личку скину скрипт

Отправлено: 11:39, 06-03-2015 | #256


Аватара для diman_21Ru

Старожил


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

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


Как снять галочку Filename: "{app}\WoTLauncher.exe"; Description: "Запустить World Of Tanks после установки?"; Flags: postinstall shellexec;

Отправлено: 12:06, 06-03-2015 | #257


Аватара для nik1967

Старожил


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

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


diman_21Ru, я так понимаю, секция [Run]? Добавь флаг unchecked - в справку заглядывай! И да, проверь личку.

Кстати, как то diman_21Ru задавал вопрос о переключении 3 языков на лету. Переделал пример - сделал его с комбобоксом - теперь языки можно переключать не по кругу, а выборочно. Может кому пригодится.
ЭТО ТОЛЬКО ПРИМЕР! Что бы переключение происходило для всех надписей - все эти надписи нужно переделать!
Скрытый текст
Код: Выделить весь код
[setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}
;ShowLanguageDialog=auto

[Languages]
Name: "eng"; MessagesFile: "compiler:Languages\English.isl"
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"
Name: "ukr"; MessagesFile: "compiler:Languages\Ukrainian.isl"

[CustomMessages]
; Русский
rusButtonBack=< &Назад
rusButtonNext=&Далее >
rusButtonCancel=Отмена
rusSetupWindowTitle=Установка — %1
rusWelcomeLabel1=Вас приветствует Мастер установки %1
rusWelcomeLabel2=Программа установит %1, версия %2 на Ваш компьютер.%n%nРекомендуется закрыть все прочие приложения перед тем, как продолжить.%n%nНажмите «Далее», чтобы продолжить, или «Отмена», чтобы выйти из программы установки.

; English
engButtonBack=< &Back
engButtonNext=&Next >
engButtonCancel=Cancel
engSetupWindowTitle=Setup — %1
engWelcomeLabel1=Welcome to the %1 Setup Wizard
engWelcomeLabel2=This will install %1 version %2 on your computer.%n%nIt is recommended that you close all other applications before continuing.%n%nClick Next to continue, or Cancel to exit Setup.

; Ukrainian
ukrButtonBack=< &Назад
ukrButtonNext=&Далi >
ukrButtonCancel=Cкасування
ukrSetupWindowTitle=Встановити — %1
ukrWelcomeLabel1=Вас вітає Майстер установки %1
ukrWelcomeLabel2=Програма встановить %1, версія %2 на Ваш комп'ютер.%n%nРекомендуємо закрити всі інші програми перед тим, як продовжити.%n%nНатисніть «Далі», щоб продовжити, або «Скасувати», щоб вийти з програми установки.

[Code]
var
  lang: String;
  ComboBox1: TNewComboBox;

procedure ChangeLang();
begin
  WizardForm.BackButton.Caption:= CustomMessage(lang+'ButtonBack');
  WizardForm.NextButton.Caption:= CustomMessage(lang+'ButtonNext');
  WizardForm.CancelButton.Caption:= CustomMessage(lang+'ButtonCancel');
  WizardForm.Caption:= FmtMessage(CustomMessage(lang+'SetupWindowTitle'), ['{#SetupSetting('AppName')}']);
  WizardForm.WelcomeLabel1.Caption:= FmtMessage(CustomMessage(lang+'WelcomeLabel1'), ['{#SetupSetting('AppName')}']);
  WizardForm.WelcomeLabel2.Caption:= FmtMessage(CustomMessage(lang+'WelcomeLabel2'), ['{#SetupSetting('AppName')}', '{#SetupSetting('AppVersion')}']);
end;

procedure ComboBox1OnChange(Sender: TObject);
begin
  case TNewComboBox(Sender).ItemIndex of
    0: lang:= 'rus';
    1: lang:= 'eng';
    2: lang:= 'ukr';
  end;
    ChangeLang();
end;

procedure InitializeWizard;
begin
  ComboBox1:= TNewComboBox.Create(WizardForm);
  with ComboBox1 do begin
    Parent:= WizardForm;
    Style:= csDropDownList;
    SetBounds(ScaleX(10),WizardForm.CancelButton.Top,WizardForm.CancelButton.Width,WizardForm.CancelButton.Height);
    OnChange:= @ComboBox1OnChange;
    Items.Add('Русский');
    Items.Add('English');
    Items.Add('Українська');  
  end;

  if ActiveLanguage='rus' then begin
    lang:= 'rus';
    ComboBox1.ItemIndex:= 0;
  end else
  if ActiveLanguage='eng' then begin
    lang:= 'eng';
    ComboBox1.ItemIndex:= 1;
  end else
  if ActiveLanguage='ukr' then begin
    lang:= 'ukr';
    ComboBox1.ItemIndex:= 2;
  end;
end;

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Последний раз редактировалось nik1967, 06-03-2015 в 13:04.

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

Отправлено: 12:11, 06-03-2015 | #258


Аватара для diman_21Ru

Старожил


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

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


nik1967, Вообще гуд

nik1967, А можно эту кнопку сделать более красивше ?

nik1967, И как можно размер изменить кнопки?

Отправлено: 13:10, 06-03-2015 | #259


Аватара для nik1967

Старожил


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

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


Цитата diman_21Ru:
А можно эту кнопку сделать более красивше ? »
Не понятно.
Цитата diman_21Ru:
И как можно размер изменить кнопки? »
Можно изменить только ширину.

-------
Если сообщение оказалось полезным для Вас, то помимо спасибо, можно нажать на "Полезное сообщение".


Отправлено: 13:40, 06-03-2015 | #260



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты Inno Setup. Помощь и советы [часть 7] El Sanchez Автоматическая установка приложений 2499 02-02-2015 08:59
Скрипты Inno Setup. Помощь и советы [часть 6] El Sanchez Автоматическая установка приложений 2494 10-03-2014 11:51
Скрипты Inno Setup. Помощь и советы [часть 5] El Sanchez Автоматическая установка приложений 1999 28-03-2013 19:09
Скрипты Inno Setup. Помощь и советы [часть 4] El Sanchez Автоматическая установка приложений 2099 22-05-2012 23:16
Скрипты Inno Setup. Помощь и советы [часть 3] Serega Автоматическая установка приложений 3755 26-10-2011 17:58




 
Переход