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

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 06-06-2020
Внимание! Данная тема предназначена только для обсуждения написания скриптов!
Остальные вопросы, а также последние версии компилятора в теме
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.3.0 [17.01.2015] - Скачать;



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

Скрипты Inno Setup. Помощь и советы [часть 6] | Скрипты Inno Setup. Помощь и советы [часть 6].7z
Скрипты Inno Setup. Помощь и советы [часть 7] | Скрипты Inno Setup. Помощь и советы [часть 7].7z
Скрипты Inno Setup. Помощь и советы [часть 8] | Скрипты Inno Setup. Помощь и советы [часть 8].7z
Это сообщение посчитали полезным следующие участники:

Отправлено: 16:09, 04-04-2018

 

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

Ветеран


Contributor


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

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


Цитата Vanadiy777:
Но надо чтобы текстовое значение "Добавление задачи" бралось из CustomMessages... »
Vanadiy777,
Код: Выделить весь код
Exec(ExpandConstant('{sys}\schtasks.exe'), Format('/create /f /tn "%s" /xml "%s"', [CustomMessage('foo'), ExpandConstant('{app}\AddTasks.xml')]), '', SW_HIDE, ewWaitUntilTerminated, i);
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:54, 27-10-2022 | #851



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

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


Аватара для Vanadiy777

Ветеран


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

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


nik1967, El Sanchez,
Огромное сердечное вам спасибо!

Оба варианта работают.

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 14:56, 27-10-2022 | #852


Аватара для Vanadiy777

Ветеран


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

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


Не могу сам разобраться, а примеров не нашел...
Нужно считать из реестра путь установленной программы.
Проблема заключается в том, что название программы - постоянное, а вот версия может быть разная.

Подскажите пожалуйста на примере Opera или Mozilla Firefox, в ней вообще посложнее будет...
Opera
Код: Выделить весь код
[_Code]
function GetInstallDir(Path: String ): String;
begin
RegQueryStringValue(HKCU, Software\Microsoft\Windows\CurrentVersion\Uninstall\Opera 91.0.4516.77', 'InstallLocation', Path);
Result := Path;
end;

Mozilla Firefox 1
Код: Выделить весь код
[_Code]
function GetInstallDir(Path: String ): String;
begin
RegQueryStringValue(HKLM, Software\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 99.0.1 (x64 ru)', 'InstallLocation', Path);
Result := Path;
end;

Mozilla Firefox 2
Код: Выделить весь код
[_Code]
function GetInstallDir(Path: String ): String;
begin
RegQueryStringValue(HKLM, Software\Microsoft\Windows\CurrentVersion\Uninstall\Mozilla Firefox 106.0.2 (x86 ru)', 'InstallLocation', Path);
Result := Path;
end;


То, что написано красным, меняется в зависимости от установленной версии.

Как правильно прописать функцию, чтобы считывалось только название программы, а остальные данные (которые красным) игнорировались?
Или, возможно, есть другой способ как-то получить директорию установки программы?
Помогите, пожалуйста (ткните носом), если это вообще реализуемо средствами Inno...

Заранее благодарен за помощь.

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Последний раз редактировалось Vanadiy777, 30-10-2022 в 01:42. Причина: Дополнение


Отправлено: 21:02, 29-10-2022 | #853


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


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

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


Как сделать так, чтобы при определенном условии отменить установку?
Допустим, не проходим по системным требованиям. Есть экран проверки. И вот на нем при нажатии "Далее" выдавать сообщение и сразу на последний экран. Или экран с ошибкой может какой есть? В общем, надо правильно прервать установку. Я пробовал Abort, но возникает ошибка и установщик зависает.

Отправлено: 14:07, 30-10-2022 | #854


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


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

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


Решил проблему так:
Код: Выделить весь код
function NextButtonClick(CurPageID: Integer): Boolean;
begin
  Result := True;

  if CurPageId = wpWelcome then begin
    if IsWin64() then begin
      MsgBox('Ваш ПК не соответствует минимальным требованиям. Установка невозможна.', mbInformation, MB_OK);
      IsCanInstall := false;
    end  
  end
end;

function ShouldSkipPage(PageID: Integer): Boolean;
begin
  if not IsCanInstall then begin
    case (PageID) of
      ChooseVersionPage.ID: Result := True
      wpSelectDir: Result := True
      wpSelectComponents: Result := True
      wpSelectTasks: Result := True
      wpReady: Result := True
    end
  end
  else
    Result := False;
end;

function PrepareToInstall(var NeedsRestart: Boolean): String;
begin
  if not IsCanInstall then
    Result := 'Ваша ПК не соответствует минимальным требованиям.'
  else
    Result := '';
end;
Т.е. не проходим по условию, то пропускаем все страницы, а на шаге готовности к установке выдаем Result с текстом ошибки.
Не уверен, что способ правильный, но в моем случае рабочий.
Это сообщение посчитали полезным следующие участники:

Отправлено: 15:15, 30-10-2022 | #855


Аватара для Vanadiy777

Ветеран


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

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


Цитата EdMSL:
Не уверен, что способ правильный, но в моем случае рабочий. »
EdMSL,
главное - результат!

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 15:40, 30-10-2022 | #856


Аватара для Vanadiy777

Ветеран


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

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


nik1967,
Спасибо Вам огромное!
Если установлена Mozilla Firefox x64, то все отрабатывает отлично.
Если Mozilla Firefox x86 - то путь не видит.

Буду экспериментировать... По результатам отпишусь...

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 19:28, 30-10-2022 | #857


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


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

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


Нужно получить данные о системе. В шапке есть скрипт, но выглядит он громоздко. Может есть какой-то более современный способ?
Я пробовал этим способом https://stackoverflow.com/questions/...-in-inno-setup
Но видеопамять определяется неверно, хотя если делать это все через wmic напрямую, то данные выдает верные.
Пишу так:
Код: Выделить весь код
Query := 'SELECT AdapterRAM FROM Win32_VideoController';
  VideoSystem := WbemQuery(WbemServices, Query);
  if not VarIsNull(VideoSystem) then
  begin
    log(VideoSystem.AdapterRam);
    vram := VideoSystem.AdapterRAM;
  end;
на выходе получаю -1048576

Отправлено: 19:58, 30-10-2022 | #858


Аватара для Vanadiy777

Ветеран


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

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


Цитата nik1967:
измени куст реестра с HKLM64 на HKLM, и возможно »

nik1967, да, эти варианты тоже уже пробовал - тогда х64 не работает, а х86 работает.

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 20:51, 30-10-2022 | #859


Аватара для Vanadiy777

Ветеран


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

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


nik1967,
в общем, попробовал все возможные варианты...
Поиск идет конкретно по тем параметрам, которые указаны в #define.
Если указано HKLM64 и SOFTWARE\Microsoft\, то ищет путь для х64,
если HKLM и SOFTWARE\WOW6432Node\Microsoft\, то, соответственно, для х86.

Попытался добавить дополнительные значения в #define, естественно, с другими именами, и продублировать
процедуру поиска, чтобы искал сразу по двум ключам, но, покуда я не в зуб ногой, естественно, ни фига путного не получилось...

Т.е. надо как то организовать поиск одновременно по ключам "SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall"
и "SOFTWARE\WOW6432Node\Microsoft\Windows\CurrentVersion\Uninstall", а затем уже как то это вывести в Result:= Path;

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

С уважением, и заранее благодарю за помощь.

-------
Подписываюсь крестиком... Но кнопочку "Полезное сообщение" все равно нажмите...


Отправлено: 01:07, 31-10-2022 | #860



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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




 
Переход