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

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

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

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

Ветеран


Contributor


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


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

Профиль | Отправить 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

 

Аватара для Johny777

Ветеран


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

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


nik1967,

Цитата nik1967:
) < '2.0.0.1' then »
так не получится (хотя было бы очень практично ! ), тк нужно сравнивать числа а не строку
Пардон я в прошлом говорил что нужно сравнивать стоки, но не знал что
Цитата Mat_y:
допустим версия должна быть выше 2.0.0.1 и если версия ниже »
нужен подробный результат сравнения
вот накатал функцию сравнения версий, по примеру станет ясно что она возвращает и как работает:

читать дальше »
Код: Выделить весь код
const
    FILE_VERSION_STR_LEN = 7;
    
function CompareFileVersions(const AVer, BVer: String): Integer;
var
    i: Integer;
begin
    for i := 1 to FILE_VERSION_STR_LEN do
    begin
        if i and 1 = 0 then Continue; // если порядковый номер в строке чётный, то переходим к след. витку цикла, тк это точка

        Result := Ord(AVer[i]) - Ord(BVer[i]);
        if Result <> 0 then Break;
    end;
end;


procedure InitializeWizard();
var
    iResult: Integer;
begin
    iResult := CompareFileVersions('7.0.0.1', '7.0.0.0');

    if iResult = 0 then MsgBox('Same Version', mbInformation, MB_OK)
    else
    if iResult < 0 then MsgBox('AVer < BVer', mbInformation, MB_OK)
    else
    if iResult > 0 then MsgBox('AVer > BVer', mbInformation, MB_OK);
end;


PS: делал упор на быстродействие

Последний раз редактировалось Johny777, 18-10-2013 в 15:16.

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

Отправлено: 14:04, 18-10-2013 | #1291



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

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


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


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

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


Всем привет! Кто-нибудь знает, можно ли из инно запускать параметризованный sql скрипт (transact-sql) и как?

Отправлено: 14:32, 18-10-2013 | #1292


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


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

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


Помогите кому не трудно разобраться с набором команд для сжатия.. Я использую следующий набор команд:

Код: Выделить весь код
arc.exe a -ep1 -dses --dirs -s; -lc- -di -i2 -r "-hppassword" -mprecomp+srep:l512+lzma:a1:mfbt4:d176m:fb128:mc1000:lc8 data.bin packeddata\*
При установке игры, "Setup.tmp" потребляет целых 720 мб оперативной памяти.. можно как то снизить данный показатель при этом не потерять степень сжатия и скорость распаковки? Заранее спасибо

Отправлено: 14:52, 18-10-2013 | #1293


Аватара для nik1967

Старожил


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

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


Цитата Johny777:
так не получится (хотя было бы очень практично ! ), тк нужно сравнивать числа а не строку »
Да ладно? Прежде чем выложить, я проверил и не раз. У меня почему то работает.
У тебя же function FileVersion возвращает строку - вот я и сравниваю строковый параметр - версию файла.

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


Последний раз редактировалось nik1967, 18-10-2013 в 15:05.

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

Отправлено: 14:53, 18-10-2013 | #1294


Аватара для Johny777

Ветеран


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

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


nik1967,
if '3.0.0.0' < '3.0.0.1' then Beep;
в натуре работает, буду знать, спасибо за знание!

даже не знал, что так можно, по старинке алгорим пишу... жесть, не задумывался о очевидном решении
те для меня сравнение строк раньше было =/<>, а можно оказывается и <, >

... ну все ж пусть будет и математическое сравнение до кучи, раз уж оно есть

Последний раз редактировалось Johny777, 18-10-2013 в 15:20.


Отправлено: 15:11, 18-10-2013 | #1295


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


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

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


Ребят Всем привет помогите решить проблему

Отправлено: 22:21, 18-10-2013 | #1296


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


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

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


Ух... супер... все шикарно работает...
Немного адаптировал под себя... чтобы по 100 раз в код не лазить.
читать дальше »
Код: Выделить весь код
function FileVersion(const FilePath: String): String;
var
  oFS: Variant;
begin
  oFS:= CreateOleObject('Scripting.FileSystemObject');
    try
      Result:= oFS.GetFileVersion(FilePath);
    except
  end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
    Result:= true;

    case CurPageID of
      wpSelectDir:
      begin
        if FileExists(ExpandConstant('{app}')+'\Game.exe') then begin
          if  FileVersion(ExpandConstant('{app}')+'\Game.exe') < '{#AppVerName}.0' then begin
            MsgBoxEx(WizardForm.Handle, 'Установщик предназначен для версии {#AppVerName}', 'Файлы не подходят для данной версии', MB_OK or MB_ICONWARNING, 0, 0);
            Result:= false;
          end;
          if  FileVersion(ExpandConstant('{app}')+'\Game.exe') > '{#AppVerName}' then begin
            MsgBoxEx(WizardForm.Handle, 'Установщик предназначен для версии {#AppVerName}', 'Файлы не подходят для данной версии'', MB_OK or MB_ICONWARNING, 0, 0);
            Result:= false;
          end
      end else begin
          MsgBoxEx(WizardForm.Handle, 'Еще раз проверьте путь установки!', 'Неверно указан путь', MB_OK or MB_ICONWARNING, 0, 0);
          Result:= false;
        end;
      end;
    end;
  end;


И я опять возвращаюсь к наиболее запутанному для себя вопросу... реально ли подгружать особо крупные компоненты с ФТП, если их выберут для установки?

Отправлено: 00:50, 19-10-2013 | #1297


SHVtYW4=


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

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


Цитата Mat_y:
Немного адаптировал под себя... »
Только ошибку в скрипте допустил:

читать дальше »
Код: Выделить весь код
[Code]
function FileVersion(const FilePath: String): String;
var
  oFS: Variant;
begin
  oFS:= CreateOleObject('Scripting.FileSystemObject');
    try
      Result:= oFS.GetFileVersion(FilePath);
    except
  end;
end;

function NextButtonClick(CurPageID: Integer): Boolean;
begin
    Result:= true;

    case CurPageID of
      wpSelectDir:
      begin
        if FileExists(ExpandConstant('{app}')+'\MyProg.exe') then begin
          if  FileVersion(ExpandConstant('{app}')+'\MyProg.exe') < '{#AppVerName}.0' then begin
            MsgBoxEx(WizardForm.Handle, 'Установщик предназначен для версии {#AppVerName}', 'Файлы не подходят для данной версии', MB_OK or MB_ICONWARNING, 0, 0);
            Result:= false;
          end;
          if  FileVersion(ExpandConstant('{app}')+'\MyProg.exe') > '{#AppVerName}' then begin
            MsgBoxEx(WizardForm.Handle, 'Установщик предназначен для версии {#AppVerName}', 'Файлы не подходят для данной версии', MB_OK or MB_ICONWARNING, 0, 0);
            Result:= false;
          end
      end else begin
          MsgBoxEx(WizardForm.Handle, 'Еще раз проверьте путь установки!', 'Неверно указан путь', MB_OK or MB_ICONWARNING, 0, 0);
          Result:= false;
        end;
      end;
    end;
  end;

Отправлено: 05:27, 19-10-2013 | #1298


Аватара для habib2302

Ветеран


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

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


Доброе время суток. Я делаю репак atomic alarm clock. Проблема в том, что не срабатывает скрипт на удаление др. версий приложения при старте. Оригинальная програ установлена. Кстати. Кто то мне давал скрип (архив под название 1) он не работает

-------
Помог? От "Полезное сообщение" не откажусь!!!


Последний раз редактировалось habib2302, 16-12-2013 в 00:15.


Отправлено: 16:49, 19-10-2013 | #1299


Ветеран


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

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


Цитата habib2302:
Кстати. Кто то мне давал скрип (архив под название 1) он не работает »
Я давал. Он работает. День другой, ошибки все те же)
читать дальше »
Код: Выделить весь код
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}
OutputDir=.

[Languages]
;Путь к файлу сообщений русского языка
Name: Russian; MessagesFile: compiler:Languages\Russian.isl

;Путь к файлу сообщений английского языка
Name: English; MessagesFile: compiler:Default.isl

[CustomMessages]
;Сообщение для русского языка
Russian.MsgUnins=Перед установкой необходимо удалить предыдущую версию приложения. Продолжить?

;Сообщение для английского языка
English.MsgUnins=Before installation it is necessary to remove the previous version of the app. Continue?

[Code]
function InitializeSetup(): Boolean;
begin
    MsgBox(CustomMessage('MsgUnins'), mbError, MB_OK);
end;


Цитата habib2302:
Проблема в том, что не срабатывает скрипт на удаление др. версий приложения при старте »
Возможно потому, что оригинальный установщик написан не на Inno (какой у этой программки оригинальный инстал я не знаю) и создает запись в реестре без иновского _is1.
Код: Выделить весь код
Buff := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + AppIds[i] + '_is1,UninstallString|}'));

Отправлено: 18:45, 19-10-2013 | #1300



Компьютерный форум 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




 
Переход