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

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

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

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

Ветеран


Contributor


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


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

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

 

Аватара для Dodakaedr

Ветеран


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

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


proffbik, Для этого нужно задействовать секцию [Icons].

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

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

Отправлено: 21:05, 01-08-2024 | #1081



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

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


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


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

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


Цитата Dodakaedr:
proffbik, Для этого нужно задействовать секцию [Icons]. »
Благодарю. Могу ли услышать подробнее для более четкого понимания? Если есть пример кода, то был бы очень признателен

Код: Выделить весь код
[Icons]
Name: "{group}\{#MyAppNameIcon}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; IconFilename: "{app}\game.ico"
Name: "{commondesktop}\{#MyAppNameIcon}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; IconFilename: "{app}\game.ico"; Tasks: desktopicon
Name: "{commonappdata}\Microsoft\Internet Explorer\Quick Launch\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: quicklaunchicon

Последний раз редактировалось proffbik, 01-08-2024 в 23:08.


Отправлено: 23:01, 01-08-2024 | #1082


Аватара для Flix

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


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

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


Цитата proffbik:
При создании скрипта через wizard, отмечаю "Разрешить пользователю отключить создание папки в меню пуск". В итоге этот выбор не предоставляется пользователю при установке. Помогите люди добрые) »
Проверь наличие и значение в сценарии директивы AllowNoIcons.
Должно быть AllowNoIcons=yes
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:15, 02-08-2024 | #1083


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


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

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


Цитата Flix:
Проверь наличие и значение в сценарии директивы AllowNoIcons.
Должно быть AllowNoIcons=yes »
Благодарю. Решил проблему тем, что скачал версию 5.5.9 unicode и в ней как раз таки высветилась эта строчка AllowNoIcons=yes. А в более новых версиях она почему то не прикрепляется визардом)

Последний раз редактировалось proffbik, 02-08-2024 в 23:50.


Отправлено: 23:44, 02-08-2024 | #1084


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


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

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


Приветствую, друзья!

Хочу сделать закрепление иконки на панели задач, испробовал все скрипты выложенные в интернете (От Эль Санчеза и т.п.). Ничего из этого не работает. Есть варианты сделать это?

Отправлено: 13:04, 06-08-2024 | #1085


Аватара для ZVSRus

Старожил


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

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


Вложения
Тип файла: rar Pin El Sanchez.rar
(2.1 Kb, 5 просмотров)

Цитата proffbik:
Ничего из этого не работает. Есть варианты сделать это?
Примеры от El Sanchez все рабочие. Фуфло никто выкладывать не будет!.

-------
Inno Setup 5.5.1.ee2 Ultra ANSI Unicode


Последний раз редактировалось ZVSRus, 11-08-2024 в 13:42.

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

Отправлено: 13:34, 11-08-2024 | #1086


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


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

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


Ребята, всем привет. Такая проблема

создал батник, который запускаю вручную -- реестр успешно считывается
если запускаю этот же батник через [run] секцию уже в созданном Inno Setup приложении, то исполняется весь код успешно, кроме чтения реестра

Батник делает простое
Смотрит в реестре путь к игре и если есть потом пишет его в файл.
Писать в файл он может всё что угодно через Inno Setup (это проверено и работает)

Короче вот 2 варианта кода чтения ресстра (которые, повторюсь, рабочие и работают если их запускать вручную, но не хотят если запускать из Inno Setup в любом виде)
Код: Выделить весь код
rem Получаем путь к установке Brawlhalla из реестра
for /f "tokens=2*" %%a in ('reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 291550" /v "InstallLocation"') do (
    set "registry=%%b"
)
Код: Выделить весь код
powershell -Command "& { $registryPath = 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App 291550'; $valueName = 'InstallLocation'; $installLocation = Get-ItemProperty -Path $registryPath -Name $valueName | Select-Object -ExpandProperty $valueName; $iconPath = Join-Path -Path $installLocation -ChildPath 'Brawlhalla.exe'; $appDataPath = [System.Environment]::GetFolderPath('ApplicationData'); $hubFilePath = 'Brawlhalla\hub.omx'; if (Test-Path $hubFilePath) { [xml]$xmlContent = Get-Content -Path $hubFilePath; $iconNode = $xmlContent.SelectSingleNode('//icon'); $iconNode.InnerText = $iconPath; $xmlContent.Save($hubFilePath); } }"

Я также написал код, который проверяет наличие реестра самим Inno Setup установщиком, но мне этот вариант нужен на самый крайний случай. Ведь я хочу динамическое обновление приложения посредством загрузки данных, а не статичный установщик, который надо будет переобновлять с выходом новой версии.

Пробовал запускать с правами админа, но в чём смысл если сам Inno Setup может читать, а батник нет, мне не подходит вариант даже если это заработает.
Также знаю что в 64 версиях внутри Inno Setup нужно писать HKEY_LOCAL_MACHINE_64
я это пробовал и в батнике (думал вдруг связь есть)
но нет, не помогает
Кто справится с первого раза получит 1000₽ по номеру телефона. Кто не с первого 700₽ (под разом подразумевается выдача готового решения)
Спасибо

Отправлено: 10:10, 12-08-2024 | #1087


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

Ветеран


Contributor


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

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


Цитата lmiol:
Батник делает простое
Смотрит в реестре путь к игре и если есть потом пишет его в файл. »
lmiol, reg.exe он разных разрядностей бывает. В зависимости от окружения, 32- или 64-разрядного, из которого вызвали батник, будет вызван 32- или 64-разрядный reg.exe. Только вот 64-разрядный reg при таком запросе полезет искать в 64-разрядный раздел HKLM\SOFTWARE, 32-разрядный reg в 32-разрядный HKLM\SOFTWARE, который фактически является HKLM\SOFTWARE\WOW6432Node. Steam пишет в 64-разрядный раздел, понятно, что 32-разрядный reg или 32-разрядный Inno, вызывающий 32-разрядный reg, ничего не найдут в 32-разрядном разделе. Начитавшись инторнетов, умники в батниках или ещё где явно пишут WOW6432Node, не думая о разрядности вызывающего, потом в 32-разрядных системах в реестре появляется раздел WOW6432Node, которого быть там не должно, или на 64-разрядных системах в 32-разрядном разделе появляется лишний HKLM\SOFTWARE\WOW6432Node\WOW6432Node.
Чтобы такого не происходило, лучше в reg при запросе сразу указывать в какую ветку лезть параметрами /reg:32 или /reg:64, в таком случае разрядность reg не имеет значения.
Код: Выделить весь код
function GetSteamAppInstallLocation(const AAppID: Integer): string;
var
  LSubkeyName: string;
begin
  Result := '';
  LSubkeyName := Format('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\Steam App %u', [AAppID]);
  if IsWin64() then
  begin
    if RegQueryStringValue(HKCU64, LSubkeyName, 'InstallLocation', Result) and
      (Result <> '') then Exit;
    if RegQueryStringValue(HKLM64, LSubkeyName, 'InstallLocation', Result) and
      (Result <> '') then Exit;
  end;
  if RegQueryStringValue(HKCU32, LSubkeyName, 'InstallLocation', Result) and
    (Result <> '') then Exit;
  RegQueryStringValue(HKLM32, LSubkeyName, 'InstallLocation', Result);
end;

procedure InitializeWizard();
begin
  MsgBox(GetSteamAppInstallLocation(291550), mbInformation, MB_OK);
end;

Отправлено: 10:39, 21-08-2024 | #1088


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


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

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


Цитата El Sanchez:
lmiol, reg.exe он разных разрядностей бывает. В зависимости от окружения, 32- или 64-разрядного, из которого вызвали батник, будет вызван 32- или 64-разрядный reg.exe. Только вот 64-разрядный reg при таком запросе полезет искать в 64-разрядный раздел HKLM\SOFTWARE, 32-разрядный reg в 32-разрядный HKLM\SOFTWARE, который фактически является HKLM\SOFTWARE\WOW6432Node. Steam пишет в 64-разрядный раздел, понятно, что 32-разрядный reg или 32-разрядный Inno, вызывающий 32-разрядный reg, ничего не найдут в 32-разрядном разделе. Начитавшись инторнетов, умники в батниках или ещё где явно пишут WOW6432Node, не думая о разрядности вызывающего, потом в 32-разрядных системах в реестре появляется раздел WOW6432Node, которого быть там не должно, или на 64-разрядных системах в 32-разрядном разделе появляется лишний HKLM\SOFTWARE\WOW6432Node\WOW6432Node.
Чтобы такого не происходило, лучше в reg при запросе сразу указывать в какую ветку лезть параметрами /reg:32 или /reg:64, в таком случае разрядность reg не имеет значения. »
Я же уже написал в сообщении что знаю как проверять реестр через inno setup. Мне это не нужно, у меня уже есть готовый код.
И повторяю еще раз. Делая реестр через Inno setup будет означать что и данные приложения будут захардкожены в установщике. Т.е. отдельный установщик - отдельные проверки на реестр или если другими словами то новая версия приложения означает что мне надо новый установщик собирать. Моя задача была сделать Inno Setup установщик один а данные чтобы всегда скачивались вместе с батником, в котором уже будет прописана логика. И при апдейте приложения я и батник обновлю. Иными словами это будет один установщик и разные данные приложения, включая разное чтение реестра.

Я еще раз повторяю мой батник успешно читает что угодно (путь текущий например) и успешно всё это пишет в нужный мне файл (когда запускается через inno setup), вот только считать данные с реестра он не может (зато может когда я запускаю его вручную из под винды). Код считывания с реестра батником я приложил
Я ничего не пишу в реестр мне только надо считать с него и всё


PS я проверю твое предположение про WOW6432Node и прочее
если поможет -- отпишусь

Последний раз редактировалось lmiol, 21-08-2024 в 17:46.


Отправлено: 17:19, 21-08-2024 | #1089


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


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

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


Подскажите.
Столкнулся с константой {commonfonts}.
На строчку
Код: Выделить весь код
Source: "{commonfonts}\*.*"; DestDir: "{commonfonts}";
выдаёт сообщение, что неизвестная константа. В справке её нет.
Если я напишу просто {fonts}
Код: Выделить весь код
Source: "{commonfonts}\*.*"; DestDir: "{fonts}";
будет без разницы?
Или это как то нужно по другому сделать.

Отправлено: 23:48, 23-08-2024 | #1090



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




 
Переход