Inno setup как запустить программу

Эта тема предназначена как сборник скриптов и примеров.
Правила в этой теме следующие:
1. Один пост — один пример.
2. Все посты оформляются в виде вопрос — ответ.
3. Для большего удобства новые посты оформляются также как уже существующие. Ниже пример формления
4. Если к вашему примеру прилагаются файлы, заливайте их во вложение.

[B][COLOR=DarkRed]В:[/COLOR][/B] Как написать простейший инсталлятор?
[B][COLOR=DarkBlue]О:[/COLOR][/B] Примерно так
[SPOILER=Код][CODE]
[Setup]
AppName=My Program
AppVersion=1.5
DefaultDirName=My Program
DefaultGroupName=My Program
UninstallDisplayIcon=MyProg.exe
Compression=lzma2
SolidCompression=yes
OutputDir=userdocs:Inno Setup Examples Output

[Files]
Source: «MyProg.exe»; DestDir: «»
Source: «MyProg.chm»; DestDir: «»
Source: «Readme.txt»; DestDir: «»; Flags: isreadme

Уроки по Inno Setup #1 | Создание простейшего инсталятора

[Icons]
Name: «My Program»; Filename: «MyProg.exe»
[/CODE][/SPOILER]

Shegorat

Lord of Madness

Администратор
В: Как узнать где находится Setup.exe на CD или на жестком диске?
О: Примерно так
Спойлер: Код

Shegorat

Lord of Madness

Администратор
В: Как сделать проверку через реестр установлена программа или нет?
О: Так
Спойлер: Код

[Setup] AppName=MyApp AppverName=MyApp DefaultDirName=MyApp [Registry] Root: HKLM; Subkey: SOFTWAREMyApp; ValueName: InstallPath; ValueType: string; ValueData: ; Flags: uninsdeletekey [code] function InitializeSetup(): Boolean; begin Result:= True; if RegValueExists(HKLM, ‘SOFTWAREMyApp’, ‘InstallPath’) then begin MsgBox(‘Копия данной программы уже установлена! Установка будет прекращена’, mbConfirmation, MB_OK); Result:= False; end; end;

Shegorat

Lord of Madness

Администратор

В: Как добавить описание к компонентам в ComponentsList?
О: Вот пример без использования различных библиотек (Требуется расширенная версия InnoSetup от ResTools)

Спойлер: Код

Источник: krinkels.org

Русские Блоги

Начало работы с Inno Setup (11) — запускать определенные программы после завершения установки.

Начало работы с Inno Setup (11) — запускать определенные программы после завершения установки.

Иногда наша программа может успешно завершить установку, но для ее настройки могут потребоваться другие программы, чтобы помочь в завершении. Если эти программы не выполняются, основная программа не сможет выполнить работу должным образом или даже завершить работу. Очевидным примером является то, что многие программы в настоящее время разрабатываются с использованием технологии NET, которая требует, чтобы на компьютере была установлена ​​.NET Framework, в противном случае основная программа не может работать.Основная программа может быть запущена только после предварительной установки NET Framework. В это время вы можете использовать раздел «Выполнить», чтобы указать программу, которая будет выполняться после установки программы и до того, как программа установки отобразит последнее диалоговое окно.

Читайте также:
Самая лучшая программа для клонирования жесткого диска

Inno Setup. Как создать свой установщик ?


Представьте себе, что есть основная программа с именем ipmsg.exe и программа инициализации с именем init.exe. Основная программа может работать только после однократного запуска init.exe. На этот раз можно выполнить ( Здесь init.exe — это файл, который я нашел случайно, и он не обязательно связан с ipmsg, это просто для демонстрации):

DefaultDirName=»E:TEST» AppVersion=1.0 Compression=lzma2/max ShowLanguageDialog=yes [components] Название: main; Описание: «Основная программа (обязательно)»; Типы: полная компактная кастомная; Флаги: фиксированные. Название: данные; Описание: «файл данных»; Типы: полный Название: help; Описание: «Файл справки»; Типы: полный компакт. [files] ; Файлы для упаковки Source: «F:desktoptestipmsg.exe»; DestDir: «»;Components:main Source: «F:desktoptestinit.exe»; DestDir: «»;Components:main Source: «F:desktoptestbin.dat»; DestDir: «»;Components:data Source: «F:desktoptesthelp.chm»; DestDir: «» ;Components:help Source: «F:desktoptestreadme.txt»; DestDir: «»;components:help;Flags:isreadme [run] Filename: «INIT.EXE»;

Протестируйте упакованный файл, сгенерированный приведенным выше кодом, запустите до окончательного появления финиша, появится следующий экран, последующая программа установки зависнет, дождитесь выполнения программы под сегментом выполнения, прежде чем продолжить.

Умные читатели могли подумать, что с помощью этого метода можно также реализовать функцию readme. Давайте поговорим о различных параметрах этого абзаца:

Filename:
Этот параметр является обязательным и используется для описания файла, который необходимо выполнить, или папки, которую необходимо открыть. Если имя файла не является исполняемым файлом (.exe или .com) или пакетным файлом (.bat или .cmd), вы должны использовать в записи тег shellexec. Как видно из приведенного выше кода, этот параметр может содержать константы.
Description:
действителен только в разделе [Выполнить]. Это описание элемента, которое может содержать константы. Если не указано иное, будет использоваться описание по умолчанию.
Parameters:
Необязательные параметры командной строки программы, которые могут включать константы. Например, некоторым консольным программам необходимо передавать параметры. Этот параметр можно использовать сейчас. Примеры:

Имя файла: » INIT.EXE»; Описание: «Инициализатор»; Параметры: «/ t»

Примечание. Если ваша программа не принимает параметры, переданные параметры будут проигнорированы.

WorkingDir
В каком каталоге запускается программа. Если этот параметр не указан, используется каталог в параметре Filename. Если имя файла не включает путь, он будет использовать каталог по умолчанию. Этот параметр может содержать константы.
StatusMsg
действителен только в разделе [Выполнить]. Поскольку некоторые программы невидимы во время выполнения (по соображениям безопасности или по другим причинам), но вы не хотите, чтобы пользователи думали, что программа установки не отвечает, вы можете использовать этот параметр, чтобы указать сообщение, отображаемое на странице мастера, когда программа Если этот параметр не указан Но он пуст, будет использоваться сообщение по умолчанию «Завершение установки . ». Этот параметр может содержать константы. Например:

Читайте также:
Что значит локальная программа

[run] Имя файла: » INIT.EXE»; Описание: «Программа инициализации»; StatusMsg: «Не волнуйтесь, просто подождите минутку»

Эффект такой:

Эффект следующий:

Опции Описание
hidewizard Если этот флаг установлен, мастер будет скрыт во время работы программы.
nowait Если этот флаг указан, он не будет ждать завершения процесса перед обработкой следующей записи [Run] или перед завершением установки и не может использоваться в сочетании с waituntilidle или waituntilterminated.
postinstall Действует только в разделе [Выполнить]. Попросите установщика создать поле выбора на странице мастера завершения установки.Пользователь может установить или снять этот флажок, чтобы решить, следует ли обрабатывать эту запись. Ранее этот тег назывался showcheckbox. Если установщик перезапустил компьютер пользователя (установил файл, помеченный как restartreplace, или если индикация AlwaysRestart в разделе [Setup] вызвана положением «да»), то флажок не появится, поэтому эти записи не будут обработаны.
runhidden Если этот флаг указан, программа будет запускаться в скрытом окне.
runmaximized Если этот флаг указан, программа или документ будут запускаться в развернутом окне.
runminimized Если этот флаг установлен, программа или документ будут запускаться в свернутом окне.
shellexec Если имя файла не является прямым исполняемым файлом (файлом .exe или .com), этот флаг является обязательным. Когда этот флаг установлен, имя файла может быть папкой или любым зарегистрированным типом файла. Когда используется флаг shellexec, он не будет ждать, пока сгенерированный процесс не будет завершен. Если это действительно необходимо, вы должны добавить флаг waituntilterminated.
skipifdoesntexist Если эта отметка указана в разделе [Выполнить], если имя файла не существует, установщик не отображает сообщение об ошибке; если эта отметка указана в разделе [UninstallRun], если имя файла не существует, то деинсталлятор не отображает предупреждение «Некоторые элементы не могут быть удалены»
skipifnotsilent Действует только в разделе [Выполнить]. Сообщите программе установки, чтобы она пропустила эту запись, если программа установки не работает в фоновом режиме.
skipifsilent Сообщите программе установки, чтобы она пропустила эту запись, если программа установки работает в фоновом режиме.
unchecked Попросите установщика сначала снять этот флажок. Если пользователь хочет обработать этот элемент, он может выполнить его, установив флажок выбора. Если при этом не указан флаг postinstall, этот флаг игнорируется.
waituntilidle Если этот флаг указан, он будет ждать в течение периода отсутствия ввода, пока процесс не будет ждать ввода пользователя, вместо того, чтобы ждать завершения процесса. (Вызовите функцию Win32 WaitForInputIdle.) Не может использоваться в сочетании с nowait или waituntilterminted.
waituntilterminated Если этот флаг указан, он будет ждать, пока процесс не будет полностью завершен. Обратите внимание, что это действие по умолчанию (то есть вам не нужно указывать этот флаг), если вы не используете флаг shellexec, и в этом случае, если вы хотите подождать, вам нужно указать этот флаг. Не может использоваться в сочетании с nowait или waituntilidle.
Читайте также:
Как убрать ярлык из программы и компоненты

Источник: russianblogs.com

Запустите приложение после нажатия на кнопку Готово (не после установки)

У меня есть установка для установки приложения, и мне нужно запустить приложение после успешной установки. Я использовал postinstall для этого.

Но он показывает флажок, и пользователь может снять его. Мне нужно запустить приложение, не спрашивая, потому что это своего рода служба, которая должна запускаться при запуске. если пользователь снял флажок, он должен перезагрузить компьютер для запуска.

Поэтому я могу использовать код Filename: «myapp.exe» без флагов в разделе RUN для запуска приложения, но проблема в том, что оно запускается сразу после установки, а не после нажатия кнопки «Готово».

Первая проблема — у моего приложения есть окно инструкций. он появляется при запуске, поэтому окно настройки переходит в конец. И вторая проблема заключается в том, что мое приложение не позволяет завершить работу, если не удалить, потому что его нужно запускать в фоновом режиме. Настройка ожидает завершения процесса.

Есть ли способ запустить приложение после нажатия кнопки «Готово» в inno setup?

samgi 31 Май 2019 в 09:57

2 ответа

Лучший ответ

[Code] function NextButtonClick(CurPageID: Integer): Boolean; var ResultCode: Integer; begin if CurPageID = wpFinished then begin if ExecAsOriginalUser( ExpandConstant(‘MyProg.exe’), », », SW_SHOW, ewNoWait, ResultCode) then begin Log(‘Executed MyProg’); end else begin MsgBox(‘Error executing MyProg — ‘ + SysErrorMessage(ResultCode), mbError, MB_OK); end; end; Result := True; end;

Замените ExecAsOriginalUser Exec , если вы хотите запустить программу с повышенными привилегиями / правами администратора (если установщик использует их вообще).

Martin Prikryl 31 Май 2019 в 07:10

Добавьте раздел code в ваш скрипт следующим образом:

[Code] procedure CurStepChanged(CurStep: TSetupStep); var ResultCode: Integer; begin if CurStep = ssDone then Exec(ExpandConstant(‘MyProg.exe’), », », SW_SHOW, ewNoWait, ResultCode); end;

Он будет запущен только при успешной установке.

Используйте ExecAsOriginalUser вместо Exec , если вы не хотите, чтобы исполняемый файл запускался от имени администратора.

Источник: question-it.com

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru