Имя пользователя:
Пароль:
 | Правила  

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

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

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

Ветеран


Contributor


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


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

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


Изменения
Автор: El Sanchez
Дата: 16-02-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]

Отправлено: 11:48, 10-03-2014

 

Аватара для Habetdin


Автор проектов


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

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


habib2302, нельзя напрямую запускать msi-файл, нужно запускать
Код: Выделить весь код
msiexec.exe /i файл.msi
Либо использовать shellexec

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке

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

Отправлено: 17:22, 18-07-2014 | #1151



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

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


SHVtYW4=


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

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


Вложения
Тип файла: 7z CDIMAGE.7z
(41.6 Kb, 36 просмотров)

Цитата Irenis:
Но мне нужно, чтобы этот установщик был в формате iso. Как это сделать попроще? »
Так.
Это сообщение посчитали полезным следующие участники:

Отправлено: 17:23, 18-07-2014 | #1152


Аватара для Shift85

Старожил


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

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


habib2302,
Цитата Habetdin:
Либо использовать shellexec »
Пример

Код: Выделить весь код
function InitializeSetup(): Boolean;
var ErrorCode : Integer;

begin
ShellExec('', ExpandConstant('{src}\Redist\PhysX.msi'),'/qn', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
Result:= True;
end;

Отправлено: 17:31, 18-07-2014 | #1153


Аватара для habib2302

Ветеран


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

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


Habetdin, а сейчас что хочет

Скрипт

Код: Выделить весь код
; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

#define MyAppName "Java SE Runtime Environment"
#define MyAppVersion "7.0.65"
#define MyAppURL "https://href.li/?http://www.java.com/en/about/"
#include "WinTB.iss"
#include "botva2.iss"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName={tmp}
DefaultGroupName={#MyAppName}
AllowNoIcons=true
OutputBaseFilename={#MyAppName} {#MyAppVersion} Final RePack by Xabib
SetupIconFile=ico.ico
Compression=lzma2/Ultra64
SolidCompression=true
InternalCompressLevel=Ultra64
DiskSpanning=false
DiskSliceSize=736000000
ShowLanguageDialog=yes
SlicesPerDisk=4
RawDataResource=Botva:botva2.dll|b2p:b2p.dll|Logo:logo.png|bPic:bPic.png|LiPic:LiPic.png|aPic:aPic.png
AppModifyPath={app}
VersionInfoProductName={#MyAppName}
DirExistsWarning=no
DisableReadyPage=true
AppID={#MyAppName} by Xabib
VersionInfoDescription={#MyAppName} RePack by Xabib
AppCopyright=Xabib © 2014
VersionInfoVersion={#MyAppVersion}
VersionInfoProductVersion={#MyAppVersion}
VersionInfoCopyright=Xabib © 2014
DisableFinishedPage=false
UninstallDisplayName={#MyAppName}
ComponentsListTVStyle=true
ShowComponentSizes=false
Uninstallable=false
DisableProgramGroupPage=yes
CreateAppDir=true
DisableDirPage=yes

[Languages]
Name: "Russian"; MessagesFile: "Russian.isl"

[Files]
;Файлы распаковываемые в папку с игрой. Необходимы для деинсталлятора;
Source: WinTB.dll; Flags: dontcopy;
; Примечание: Не используйте "Flags: ignoreversion" для системных файлов
Source: x86\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs uninsneveruninstall; Check: "not Is64BitInstallMode";
Source: x64\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs uninsneveruninstall; Check: Is64BitInstallMode;

[Run]
Filename: msiexec.exe; Parameters: /i jre1.7.0_65.msi; StatusMsg: "Установка {#MyAppName}...";

[Code]
#ifdef UNICODE
    #define A "W"
#else
    #define A "A"
#endif

const
///////////////////////////////////Относится к лого и изображениям мастера
  RT_RCDATA             = 10;
LOAD_LIBRARY_AS_DATAFILE = $2;

var
///////////////////////////////////Лого и изображения
 lPLogo, bPicHandle, bPicHandle2, lPicHandle: THandle;
 BtnImage: TBitmapImage;
///////////////////////////////////////////
 iInitialize: Boolean;


///////////////////////////////////Ресурсы(относится к лого и изображениям мастера)
function GetFromRes(const ResName, SaveFileName: String): Boolean;
var
  lResStream: TResourceStream;
begin
  lResStream := TResourceStream.Create(HInstance, ResName, RT_RCDATA);
  try
    lResStream.SaveToFile(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName);
  finally
  lResStream.Free;
  Result := FileExists(AddBackslash(ExpandConstant('{tmp}')) + SaveFileName);
  end;
end;

function OnShouldSkipPage(Sender: TWizardPage): Boolean;
begin
    if WizardForm.ComponentsList.Items.Count > 0 then WizardForm.Tag:= 1; // отображаются страницы выбора папки и компонентов
end;



procedure InitializeWizard;
begin
PageFromID(wpSelectDir).OnShouldSkipPage:= @OnShouldSkipPage
  with WizardForm do
  begin

///////////////////////////////////Логотип и изображения мастера
    iInitialize := True;
    if GetFromRes('_IS_BOTVA', 'botva2.dll') and GetFromRes('_IS_B2P', 'b2p.dll') and GetFromRes('_IS_LOGO', 'logo.png') and GetFromRes('_IS_BPIC', 'bPic.png') and GetFromRes('_IS_LIPIC', 'LiPic.png') and GetFromRes('_IS_APIC', 'aPic.png') then
    begin
///////////////////////////////////Изображения
      bPicHandle := ImgLoad(WelcomePage.Handle, ExpandConstant('{tmp}\aPic.png'), WizardBitmapImage.Left, WizardBitmapImage.Top, WizardBitmapImage.Width, WizardBitmapImage.Height, True, True);
      WizardBitmapImage.Hide;
      ImgSetVisibility(bPicHandle, True);
      ImgApplyChanges(WelcomePage.Handle);

      bPicHandle := ImgLoad(FinishedPage.Handle, ExpandConstant('{tmp}\bPic.png'), WizardBitmapImage2.Left, WizardBitmapImage2.Top, WizardBitmapImage2.Width, WizardBitmapImage2.Height, True, True);
      WizardBitmapImage2.Hide;
      ImgSetVisibility(bPicHandle, True);
      ImgApplyChanges(FinishedPage.Handle);

      lPicHandle := ImgLoad(MainPanel.Handle, ExpandConstant('{tmp}\LiPic.png'), WizardSmallBitmapImage.Left, WizardSmallBitmapImage.Top, WizardSmallBitmapImage.Width, WizardSmallBitmapImage.Height, True, True);
      WizardSmallBitmapImage.Hide;
      DiskSpaceLabel.Hide;
      ComponentsDiskSpaceLabel.Hide;
      ImgSetVisibility(lPicHandle, True);
      ImgApplyChanges(MainPanel.Handle);
////////////////////////////////////////////

///////////////////////////////////Логотип

      lPLogo:= ImgLoad(WizardForm.Handle, ExpandConstant('{tmp}\logo.png'), ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40), True, True);
      ImgApplyChanges(WizardForm.Handle);
    end;

///////////////////////////////////WinTB
    ExtractTemporaryFile('WinTB.dll');
    SetTaskBarProgressValue(0, 60);
    SetTaskBarProgressState(0, TBPF_ERROR);
    TaskBarV10(MainForm.Handle, WizardForm.Handle, false, false, 0, 0, _m_);
//////////////////////////////////////

    with TLabel.Create(WizardForm) do
    begin
      Parent:=WizardForm;
      AutoSize:=False;
      Transparent:= true;
      SetBounds(ScaleX(20), ScaleY(318), ScaleX(124), ScaleY(40));
    end;
  end;
end;

Procedure CurPageChanged(CurPageID: Integer);
Begin
  Case CurPageID of
  wpWelcome:
  begin
    WizardForm.NextButton.Caption:= SetupMessage(msgButtonInstall);
  end;
  end;
 end;

procedure DeinitializeSetup();
begin
  if iInitialize then
  begin
    gdipShutdown;
    TaskBarDestroy;
  end;
end;

-------
Помог? От "Полезное сообщение" не откажусь!!!


Отправлено: 17:38, 18-07-2014 | #1154


Аватара для Habetdin


Автор проектов


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

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


habib2302, msiexec не находит msi-файл. Если честно, то я тоже не вижу где он распаковывается в скрипте
Вот пример из базы знаний Inno Setup, в Run указан полный путь к файлу (с кавычками на случай наличия пробелов в пути) и распаковкой в секции Files:
Код: Выделить весь код
[Files]
Source: "Your-MSI-File.msi"; DestDir: "{tmp}"

[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\Your-MSI-File.msi"""

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 00:25, 19-07-2014 | #1155


Аватара для Dinvin4ester

Старожил


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

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


Ребята,подскажите чтоб инсталлятор ставил в стим что нужно прописать ?

Отправлено: 02:15, 19-07-2014 | #1156


Аватара для Habetdin


Автор проектов


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

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


Dinvin4ester, для большинства игр достаточно папки игры в папке %steamapps%\common и файла appmanifest_%GameID%.acf в папке %steamapps%.

Правда для облегчения первого запуска можно прописать компоненты в ветке реестра HKLM\SOFTWARE\Valve\Steam\Apps\%GameID% (как - зависит от игры, лучше экспортировать ветку) - например, DirectX и библиотеки Visual C++, которые и так почти с каждой игрой в стиме идут

%GameID% - ID игры в магазине стим. %steamapps% по умолчанию - параметр InstallPath из HKLM\SOFTWARE\Valve\Steam + "\steamapps".

-------
Рекомендую: $25 на тест виртуального сервера (VPS) за регистрацию по ссылке


Отправлено: 21:59, 19-07-2014 | #1157


Аватара для Dodakaedr

Ветеран


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

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


Можете кто-нибудь подсказать? В данном куске секции [Registry] есть чековые проверки RUPTracedRegExclExists, RUPJFCExcludeExists, RUPTracedProcInclExists, RUVerIs2. Как их можно реализовать? Спасибо!
Код: Выделить весь код
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Uninstaller\Traced\RegExclude"; ValueName: "HKEY_LOCAL_MACHINE\SYSTEM\*\services\Tcpip\Parameters"; ValueType: Dword; ValueData: "$C"; Check: "RUPTracedRegExclExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Uninstaller\Traced\RegExclude"; ValueName: "HKEY_USERS\*\Local Settings\MuiCache"; ValueType: Dword; ValueData: "$C"; Check: "RUPTracedRegExclExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Junk Files\Exclude"; ValueName: "%CommonProgramFiles(x86)%/"; ValueType: Dword; ValueData: "$1"; Check: "RUPJFCExcludeExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Junk Files\Exclude"; ValueName: "%ProgramFiles(x86)%/uninstall information/"; ValueType: Dword; ValueData: "$1"; Check: "RUPJFCExcludeExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Junk Files\General\Extensions"; ValueName: "*.??~"; ValueType: Dword; ValueData: "$1"; Check: "RUPJFCExtExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Uninstaller\Traced\ProcInclude"; ValueName: "%windir%\system32\rundll32.exe"; ValueType: Dword; ValueData: "$1"; Check: "RUPTracedProcInclExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\Uninstaller\Traced\ProcInclude"; ValueName: "%windir%\system32\svchost.exe"; ValueType: Dword; ValueData: "$1"; Check: "RUPTracedProcInclExists"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: createvalueifdoesntexist 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\ProfUIS\Profiles\Revo Uninstaller Pro\ControlBar"; Check: "RUVerIs2"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: deletekey 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\ProfUIS\Profiles\Revo Uninstaller Pro\ReportGrid\TracedProgramsReportGridSettings"; Check: "RUVerIs2"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: deletekey 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\ProfUIS\Profiles\Revo Uninstaller Pro\ReportGrid\AllProgramsReportGridSettings"; Check: "RUVerIs2"; MinVersion: 0.0,5.01.2600 Service Pack 1; Flags: deletekey 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\View"; ValueName: "Theme"; ValueType: Dword; ValueData: "$8"; Check: "RUVerIs2"; MinVersion: 0.0,5.01.2600 Service Pack 1; 
Root: HKCU; Subkey: "Software\VS Revo Group\Revo Uninstaller Pro\General"; ValueName: "Ver3"; ValueType: String; ValueData: "3"; MinVersion: 0.0,5.01.2600 Service Pack 1;

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


Отправлено: 17:23, 21-07-2014 | #1158


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

Ветеран


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

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


Цитата Dodakaedr:
есть чековые проверки RUPTracedRegExclExists... Как их можно реализовать? »
Код: Выделить весь код
[code]
Function RUPTracedRegExclExists () : boolean;
begin
 ...
 if ... then result:= true else result := false;
end;
после Check в секции Registry кавычки не нужны

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

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

Отправлено: 17:26, 21-07-2014 | #1159


Аватара для Dodakaedr

Ветеран


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

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


R.i.m.s.k.y., ну это как-бы понятно. "..." - что там нужно указывать? Вот что интересует.

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


Отправлено: 17:28, 21-07-2014 | #1160



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Скрипты 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
[архив] Скрипты Inno Setup. Помощь и советы [часть 2] Serega Автоматическая установка приложений 2651 08-11-2010 18:34




 
Переход