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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-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] - Скачать;


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

Отправлено: 19:06, 28-03-2013

 

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


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

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


FX-DENIS , Спасибо!
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:57, 11-12-2013 | #1691



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

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


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


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

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


Цитата Optitron:
"DefaultDirName" для каждого компонента был разный? »
По моему страниц 10 назад уже был ответ.Пролистайте странички.

Отправлено: 15:59, 11-12-2013 | #1692


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


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

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


FX-DENIS , Возникли проблемы с авто определением установки. Получается я вставил то что ты скинул, но когда запускается установщик пишет Название установщика "World of Tanks" и пишет что не может найти. Где я мог допустить ошибку?

Отправлено: 16:36, 11-12-2013 | #1693


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

Ветеран


Contributor


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

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


Цитата nik1967:
а вот самому написать функции "если нужен полный контроль над отображением информации о размерах/времени" ума не хватает. »
nik1967, открываешь любой репак, там этих реализаций... Вот мой вариант:
читать дальше »

Код: Выделить весь код
[Setup]
AppName=test
AppVerName=test
CreateAppDir=no
DefaultDirName={tmp}
Uninstallable=no
CreateUninstallRegKey=no

[Languages]
Name: en; MessagesFile: compiler:default.isl
Name: ru; MessagesFile: compiler:Languages\russian.isl

[CustomMessages]
ru.Size=байт,КБ,МБ,ГБ,ТБ,ПБ
en.Size=bytes,KB,MB,GB,TB,PB
ru.Time=сек,мин,ч
en.Time=s,m,h

[code]
function pow(x, y: Double): Double; external 'pow@ntdll.dll stdcall';

///////////////////////////////////////////////////
function BytesToSize(const dBytes: Double): String;
var
    i, j: Integer;
    dRange: Double;
begin
    with TStringList.Create do
    try
        CommaText := CustomMessage('Size');
        if Count = 0 then Exit;

        // default
        Result := Format('0 %s', [Strings[0]]);
        if dBytes = 0 then Exit;

        // convert
        for i := Count downto 0 do
        begin
            dRange := pow(1024, i);
            if dBytes < dRange then Continue;
            if Abs(dBytes/dRange - Round(dBytes/dRange)) < 0.01 then Result := Format('%.n %s', [dBytes/dRange, Strings[i]]) else Result := Format('%n %s', [dBytes/dRange, Strings[i]]);
            Break;
        end;
    except
        RaiseLastException;
    finally
        Free;
    end;
end;

///////////////////////////////////////////////////
function TicksToTime(const dwTicks: DWORD): String;
var
    i, j: Integer;
    dwRange: DWORD;
begin
    with TStringList.Create do
    try
        CommaText := CustomMessage('Time');
        if Count = 0 then Exit;

        // default
        if dwTicks < 1000 then
        begin
            Result := Format('0 %s', [Strings[0]]);
            Exit;
        end;
        
        // convert
        dwTicks := Round(double(dwTicks)/1000);
        for i := Count-1 downto 0 do
        begin
            dwRange := 1;
            for j := 1 to i do dwRange := dwRange*60;
            if dwTicks > dwRange-1 then
            begin
                Result := Format('%s%d %s ', [Result, dwTicks div dwRange, Strings[i]]);
                dwTicks := dwTicks - (dwTicks div dwRange)*dwRange;
            end;
        end;
    except
        RaiseLastException;
    finally
        Result := TrimRight(Result);
        Free;
    end;
end;

/////////////////////////////
procedure InitializeWizard();
begin
    MsgBox(BytesToSize(MaxInt), mbInformation, MB_OK);
    MsgBox(TicksToTime(MaxInt), mbInformation, MB_OK);
end;

Последний раз редактировалось El Sanchez, 18-02-2014 в 18:57. Причина: upd #1

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

Отправлено: 16:43, 11-12-2013 | #1694


SHVtYW4=


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

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


Цитата Farser21:
Получается я вставил то что ты скинул »
Вот молодец. А остальное FX-DENIS должен угадать за тебя, да?

Farser21, Тупо скопипастилл и всё?
А в :
Код: Выделить весь код
RegQueryStringValue(HKLM, 'SOFTWARE\Rockstar Games\EFLC', 'InstallPath', Path);//Какой ключ реестра ищет ...
и
Код: Выделить весь код
if not RegKeyExists(HKLM, 'SOFTWARE\Rockstar Games\EFLC') then
ничего не нужно указывать?

Вместо SOFTWARE\Rockstar Games\EFLC замени на свои. И если нет InstallPath, то смотри какое значение ведёт к папке.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.

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

Отправлено: 16:44, 11-12-2013 | #1695


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


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

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


FX-DENIS, Если вы про мой вопрос, то он был немного другого типа.

Отправлено: 17:36, 11-12-2013 | #1696


Аватара для nik1967

Старожил


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

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


El Sanchez, спасибо! Затупил немного - ввели в заблуждение функции StrFormatByteSize64 и StrFromTimeInterval. Думал к ним нужно привязываться.

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


Отправлено: 18:19, 11-12-2013 | #1697


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


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

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


Nordek, спасибо

Отправлено: 18:26, 11-12-2013 | #1698


Аватара для Tco 03

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


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

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


El Sanchez, Здравствуйте. Ваш пример по загрузке файла, без сомнения, хорош. Пожалуйста, если Вас не затруднит, не могли бы Вы помочь с реализацией загрузки двух файлов. С одним общим прогрессбаром и текущим. Или же как эксперт помогите, пожалуйста, доработать пример товарища Johny777. Он в принципе рабочий, но не корректно отрабатывает свои действия. Буду премного благодарен, да и не только я. Очень нужная будет вещь!

Отправлено: 18:31, 11-12-2013 | #1699


SHVtYW4=


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

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


FX-DENIS, Поправь пожалуйста сообщение. Не корректный вывод BB-Кодов.

Если в скрипте присутствует [Code], то понадобится дополнительная обработка.
Например: [*Code], [#Code], [Co[u][/u]de], [b][Co[/b][b]de][/b] и т.д.

Примеры с использованием возможной обработки:



Исходный текст BB-кодов:
[code][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[*Code]
procedure InitializeWizard();
begin
with WizardForm.WizardSmallBitmapImage do
begin
Visible := False;
end;
end;[/code]

Вывод:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[*Code]
procedure InitializeWizard();
begin
  with WizardForm.WizardSmallBitmapImage do
  begin
    Visible := False;
  end;
end;


Исходный текст BB-кодов:
[code][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[#Code]
procedure InitializeWizard();
begin
with WizardForm.WizardSmallBitmapImage do
begin
Visible := False;
end;
end;[/code]

Вывод:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[#Code]
procedure InitializeWizard();
begin
  with WizardForm.WizardSmallBitmapImage do
  begin
    Visible := False;
  end;
end;


Исходный текст BB-кодов:
[code][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[b][Co[/b][b]de][/b]
procedure InitializeWizard();
begin
with WizardForm.WizardSmallBitmapImage do
begin
Visible := False;
end;
end;[/code]

Вывод:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Code]
procedure InitializeWizard();
begin
  with WizardForm.WizardSmallBitmapImage do
  begin
    Visible := False;
  end;
end;


Исходный текст BB-кодов:
[code][Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Co[u][/u]de]
procedure InitializeWizard();
begin
with WizardForm.WizardSmallBitmapImage do
begin
Visible := False;
end;
end;[/code]

Вывод:
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program

[Code]
procedure InitializeWizard();
begin
  with WizardForm.WizardSmallBitmapImage do
  begin
    Visible := False;
  end;
end;



Кроме всего прочего, есть ещё в самой Inno Setup Compiler возможность копирования текста с BB-кодами.
В Inno Setup Compiler есть пункт "Копировать как UBB код", который позволяет скопировать сразу с BB-кодами.
Правда в некоторых случаях копируется не корректно.

-------
09a468a9b4293cd82adf6d6c60a9da82 | Tm9yZGVr
В связи со сменой железа и переходом на LInux с полным отказом от Windows - посещение на форуме будет редким.

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

Отправлено: 18:42, 11-12-2013 | #1700



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34
Скрипты Inno Setup Compiler QAZAK Автоматическая установка приложений 7 15-01-2007 17:59




 
Переход