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

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

 

Аватара для Dodakaedr

Ветеран


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

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


Цитата R.i.m.s.k.y.:
оно не застынет »
Нет. Можно запустить пример и посмотреть его работу.

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


Отправлено: 16:05, 18-01-2017 | #1811



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

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


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


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

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


Привет ребят!
Понадобилось написать dll библиотеку на Delphi, что бы прикрутить ее к Inno Setup. Делаю это в первый раз, опыта раньше не было. Столкнулся с проблемой.

Как правильно передать строку из функции в приложение Inno Setup?

В Delphi я пишу так:
Код: Выделить весь код
function GetLastVersion(Link: String) : String; stdcall;
var
  FileOnNet, LocalFileName: string;
  Version: TStringList;
begin
  Result:= '0';

  FileOnNet:=Link;
  LocalFileName:=WinTemp+'MMVersion.dat';

  if InternetConnected then
  begin
    if DownloadFile(FileOnNet,LocalFileName) = True then
    begin
      Version:= TStringList.Create;
      Version.LoadFromFile(LocalFileName);

      Result:= Version.Strings[3];

      Version.Free;

      if FileExists(LocalFileName) then DeleteFile(LocalFileName);
    end;

  end else
  begin
    Result:= '0';
  end;
end;
В Inno Setup добавляю следующее:

Код: Выделить весь код
function GetLastVersion(const Link: String) : String; external 'GetLastVersion@files:MMProtect.dll stdcall';
Получаю Access Violation...

Отправлено: 03:04, 22-01-2017 | #1812


Аватара для semiono

Ветеран


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

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


Код: Выделить весь код
function x(): Boolean;
begin
  if RegValueExists(HKCU, 'Software\aaaa', 'bbbb') then
    begin
    Result := true
    end
    else
    begin
    Result := false
    end
end;


[Registry]
; x
Root: HKCU; Subkey: "Software\aaaa"; ValueName: "bbbb"; Flags: deletevalue noerror; Permissions: everyone-full; Check: x

; not x
Root: HKCU; Subkey: "Software\aaaa"; ValueType: string; ValueName: "bbbb"; ValueData: "0"; Flags: noerror; Permissions: everyone-full; Check: not x
Не получается. Мне нужно, чтобы согласно условию, если VALUE существует, то надо удалить, если не существвует, то записать в реестр.
То-есть инсталятор должен работать по-кругу, каждый раз выбирая противоположное действие. Как бы так.

-------
Полезное сообщение


Отправлено: 15:04, 22-01-2017 | #1813


Аватара для R.i.m.s.k.y.

Ветеран


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

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


semiono

Цитата:
deletevalue
When this flag is specified, Setup will first try deleting the value if it exists. If ValueType is not none, it will then create the key if it didn't already exist, and the new value.
Код: Выделить весь код
function x(): Boolean;
begin
Result := RegValueExists(HKCU, 'Software\aaaa', 'bbbb');
end;


[Registry]
; x
Root: HKCU; Subkey: "Software\aaaa"; ValueType: none; ValueName: "bbbb"; Flags: deletevalue noerror; Permissions: everyone-full; Check: x

; not x
Root: HKCU; Subkey: "Software\aaaa"; ValueType: string; ValueName: "bbbb"; ValueData: "0"; Flags: noerror; Permissions: everyone-full; Check: not x
Alloc, покажи секцию files c MMProtect.dll

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 15:09, 22-01-2017 | #1814


Аватара для semiono

Ветеран


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

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


R.i.m.s.k.y., не совсем корректно работает. Попробовал убрать Check: not, но не помогло. Вторая строка всегда пишется в реестр.

Если нужно, реестр можно было бы в секции код править, (но мне функция чек так же нужна в секции Files, надеюсь потом это возможно добавить?)

-------
Полезное сообщение


Последний раз редактировалось semiono, 22-01-2017 в 15:40.


Отправлено: 15:31, 22-01-2017 | #1815


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата semiono:
не совсем корректно работает »
?

Цитата semiono:
реестр можно было бы в секции код править »
regWriteStringValue

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 15:47, 22-01-2017 | #1816


Аватара для semiono

Ветеран


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

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


Цитата R.i.m.s.k.y.:
? »
Первый раз записывает строку, а после этого всегда проходит обе (вернее первый раз удаляет и записывает)

[x] Root: HKCU; Subkey: "Software\aaaa"; ValueType: none; ValueName: "bbbb"; Flags: deletevalue noerror; Permissions: everyone-full; Check: x

[x] Root: HKCU; Subkey: "Software\aaaa"; ValueType: string; ValueName: "bbbb"; ValueData: "0"; Flags: noerror; Permissions: everyone-full; Check: not x

Цитата R.i.m.s.k.y.:
regWriteStringValue »
Я путаюсь в операторах if then else, вобщем в Паскале

-------
Полезное сообщение


Отправлено: 18:13, 22-01-2017 | #1817


Аватара для R.i.m.s.k.y.

Ветеран


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

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


semiono, всё должно быть нормально
или в скрипте еще где-то это дело делается

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!

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

Отправлено: 18:18, 22-01-2017 | #1818


Аватара для semiono

Ветеран


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

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


Код: Выделить весь код
function x(): Boolean;
begin
  if RegValueExists(HKCU, 'Software\aaaa', 'bbbb') then
  begin
  Result := RegDeleteValue(HKCU, 'Software\aaaa', 'bbbb')
  end
  else
  begin
  Result := RegWriteStringValue(HKCU, 'Software\aaaa', 'bbbb' ,'0')
  end
end;
Не пойму что не так, почему else и if всегда проходит насквозь. Выглядит красиво, но не работает.

-------
Полезное сообщение


Отправлено: 20:16, 22-01-2017 | #1819


Аватара для R.i.m.s.k.y.

Ветеран


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

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


Цитата semiono:
Код: Выделить весь код
function x(): Boolean;
begin
  if RegValueExists(HKCU, 'Software\aaaa', 'bbbb') then
  begin
  Result := RegDeleteValue(HKCU, 'Software\aaaa', 'bbbb')
  end
  else
  begin
  Result := RegWriteStringValue(HKCU, 'Software\aaaa', 'bbbb' ,'0')
  end
end;
»
/me с грохотом упал под стол
я ж привел тебе код функции

-------
Хороший установщик тот, которого не замечаешь
Оформление в инно пустая трата времени: толку мало, головняка много, а ошибок истчо больше!


Отправлено: 20:27, 22-01-2017 | #1820



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




 
Переход