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

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

 

Аватара для MogilShik2007

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


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

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


Цитата jack_nuclear:
Это описано в СПРАВКЕ, долбень. Мне хватает мозгов, что б написать инсталл в 1500 строк, а ты сиди на примерах с инета. По поводу DX смотри в справке и примерах с [Run] или для твоего начального уровня - напиши батник на запуск 2 екзешников типо такого »
Ну так хера здесь делаешь баклан, или в свой великой справке ответов не нашел?

Отправлено: 12:13, 27-02-2015 | #221



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

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


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


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

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


Цитата MogilShik2007:
Ну так хера здесь делаешь баклан, или в свой великой справке ответов не нашел? »

А в справке есть реализация звука? Ты и за 10 лет не напишешь.

Я тебе пример дал, долбень, и методы реализации

Примеры:
Exec('шляпа.exe', 'параметры', 'C:\путь', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode); //тебе нужен ewWaitUntilTerminated

функция:
function Exec(const Filename, Params, WorkingDir: String; const ShowCmd: Integer; const Wait: TExecWait; var ResultCode: Integer): Boolean;

Я уверен, что ты вообще не понимаешь, что с этим делать Жди пока кто-то за тебя сделает)) 2007 в нике год рождения, я так понял? За слова "ума не хватает понять вопроса" отвечаешь или очередной диванный?

Отправлено: 12:23, 27-02-2015 | #222


Аватара для K.A.V.

Ленивый кусок мяса


Contributor


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

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


Цитата jack_nuclear:
Идите лесом тогда... »
Цитата jack_nuclear:
Меня такие люди поражают своей безмозглостью. »
Цитата jack_nuclear:
В первых темах люди были умней. Деградируете »
Цитата MogilShik2007:
Ну так хера здесь делаешь баклан »
Цитата jack_nuclear:
Я тебе пример дал, долбень. »
Напоминаю всем, что есть такая штука, как ОПК
А более конкретно, пункт 3.1

Если кто-то что-то не понял, не знает, не умеет, неправильно понял другого человека - это не повод его оскорблять
Если вы находите такой стиль общения нормой, то данный форум не для вас
Если после данного замечания ваши сообщения будут оставаться на таком же уровне - вам помогут понять, что данный форум не для вас.
Уважайте друг друга и держите свои эмоции при себе

Цитата jack_nuclear:
За слова "ума не хватает понять вопроса" отвечаешь или очередной диванный? »
Успокоитесь или вам помочь? Если есть претензии к участнику - решайте такие вопросы в личных сообщениях, прекращайте этот цирк

ps
Цитата jack_nuclear:
вы*бнутся »
ь потеряли

-------
[Справочник по командам Windows] -- [Справочник по NSIS] -- [SFX Creator - для создания SFX архивов]

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

Отправлено: 12:39, 27-02-2015 | #223


Аватара для MogilShik2007

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


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

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


DEL

jack_nuclear, - 2381

Отправлено: 12:47, 27-02-2015 | #224


SHVtYW4=


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

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


Цитата MogilShik2007:
нужно чтоб из папки Redist устанавливалась полная версия DirectX, а после запускался DirectXweb »
Цитата MogilShik2007:
что по поводу первой части вопроса про реализацию DX? »
Простой пример:
Код: Выделить весь код
[Setup]
AppName=Redist
AppVersion=1.0
DefaultDirName={pf}\Redist
OutputDir=.

[Tasks]
Name: ext; Description: Дополнительные компоненты
Name: ext\dx; Description: Установить/Обновить DirectX

[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; Parameters: /silent; Tasks: ext\dx; Flags: skipifdoesntexist; StatusMsg: Установка DirectX 9
Filename: {src}\Redist\dxwebsetup.exe; Parameters: /Q; Tasks: ext\dx; Flags: skipifdoesntexist; StatusMsg: Установка DirectX 9 (Загрузка компонентов из сети интернет)

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


Отправлено: 15:37, 27-02-2015 | #225


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

Ветеран


Contributor


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

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


Цитата Zabeal:
Мне нужно записать в реестр несколько значений. Заранее количество значений не известно и будет вычисляться на этапе выполнения.
Для реализации задачи я применяю пользовательский макрос с директивой #for: »
Zabeal, в вашем случае использовать препроцессор не нужно:
Скрытый текст

Код: Выделить весь код
[Code]
const
    MapInfoPath = 'SOFTWARE\MapInfo\MapInfo\Professional';

/////////////////////////////////
function GetGlobalCount: Integer;
begin
    { тут вычисляется результат
    Result := 100500; }
end;

//////////////////////////////////////////////
procedure CurStepChanged(CurStep: TSetupStep);
var
    i: Integer;
begin
    case CurStep of
        ssPostInstall:
            begin
                for i := 1 to GetGlobalCount do
                    RegWriteStringValue(HKCU, Format('%s\FLD-%d', [MapInfoPath, i]), '', '');
            end;
    end;
end;

Цитата MogilShik2007:
что по поводу первой части вопроса про реализацию DX? »
MogilShik2007, подобные вопросы про установку DirectX и VCRedist, гордо именуемых в инсталляторах "Установка дополнительного ПО", всплывают на форуме довольно-таки часто, только почему-то никто не проверяет, а нужно ли это ПО системе конечного пользователя.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:53, 27-02-2015 | #226


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


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

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


Цитата El Sanchez:
Zabeal, в вашем случае использовать препроцессор не нужно: »
Спасибо за предложенное решение!
Я так и вынужден сделать, но всё-таки была надежда обойтись средствами самого установщика
Дело вот в чём: в реестр я конечно запишу значения, это отлично, но как быть при деинсталляции приложения?
Ведь тогда мне придётся самому чистить реестр, а значит нужно самому хранить ключи реестра, которые должны быть удалены при деинсталляции.
Вот я и хотел заставить установщик и писать в реестр и удалять ключи...

Очень жаль, что в препроцессор нельзя передать переменную из кода.
Мне не удалось справиться даже через промежуточный INI файл.
То есть, я записывал мою переменную в INI файл во время исполнения скрипта, а при нажатии кнопки Install эта переменная должна была прочитаться из файла и использоваться в цикле.
Так вот, в секции кода можно полностью управлять папками (указывать хоть абсолютный, хоть относительный путь), а в препроцессоре есть всего две системных константы, которые указывают на папку размещения исходного текста скрипта или исполняемого файла компилятора. В итоге из препроцессора мой INI файл может быть прочитан только в случае, если он лежит по абсолютному пути, что неприемлемо.

Последний раз редактировалось Zabeal, 27-02-2015 в 20:28. Причина: дополнил ответ


Отправлено: 20:18, 27-02-2015 | #227


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

Ветеран


Contributor


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

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


Цитата Zabeal:
Я так и вынужден сделать »
Zabeal, так и нужно, препроцессор для других задач оставьте.
Цитата Zabeal:
Дело вот в чём: в реестр я конечно запишу значения, это отлично, но как быть при деинсталляции приложения? »
Zabeal, создать через секцию Registry пару корневых записей в реестре, при деинсталляции все нормально удалится.
Код: Выделить весь код
[Registry]
; Тут будет создан корневой раздел производителя программы MapInfo.
; При деинсталляции, если этот раздел не будет содержать в себе других подразделов и ключей от других
; программ MapInfo, например, от MapMarker, то корневой раздел можно будет удалять (флаг uninsdeletekeyifempty)
Root: HKCU; SubKey: Software\MapInfo; Flags: uninsdeletekeyifempty
; Удаляем раздел нашей программы MapInfo со всеми подразделами и ключами.
Root: HKCU; SubKey: Software\MapInfo\MapInfo; Flags: uninsdeletekey
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:26, 28-02-2015 | #228


Аватара для Dodakaedr

Ветеран


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

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


Допустим имеем такой ini файл
Код: Выделить весь код
[INI]
Filename: "{commonappdata}\file.ini"; Section: "Flag"; Key: "AllUsers"; String: "0";
Подскажите как провести проверку на String: "0";? IniKeyExists не подходит.

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


Отправлено: 19:16, 28-02-2015 | #229


Аватара для nik1967

Старожил


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

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


Dodakaedr,
навскидку
Код: Выделить весь код
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName={pf}\My Program
OutputDir=.

[Code]
procedure InitializeWizard();
var
  S, P: String;
begin
  P:= ExpandConstant('{src}'+'\file.ini');
  //P:= ExpandConstant('{commonappdata}'+'\file.ini');
    if FileExists(P) then begin
      S:= GetIniString('Flag', 'AllUsers', '', P);
        if S = '0' then 
          MsgBox('true', mbInformation, MB_OK)
        else
          MsgBox('false', mbInformation, MB_OK);
    end;
end;

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


Последний раз редактировалось nik1967, 01-03-2015 в 13:47. Причина: Обновил пример.

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

Отправлено: 20:55, 28-02-2015 | #230



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




 
Переход