Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Добрый день! Подскажите пожалуйста. Вот создала я установщик. Но мне нужно, чтобы этот установщик был в формате iso. Как это сделать попроще? Скачать любую программу для создания образов, закинуть туда файлы установщика и создать образ? А потом для установки нужно будет просто как то размонтировать этот образ и установить игру, как обычно? Или же я неправильно понимаю весь процесс? Если все верно, то какой программой лучше создавать этот образ iso? Спасибо :)
Dima2009
17-07-2014, 15:41
Всем доброго дня или вечера!
Подскажите пожалуйста как написать код деинсталлятора чтобы при удаление было так
какой программой лучше создавать этот образ iso? »
Irenis, Можно UltraISO например. :)
http://skesov.ru/kak-sozdat-obraz-s-pomoshhyu-programmyi-ultraiso/
Можно UltraISO например. »
Уже попробовала, как раз этой программкой :) Вроде бы все получилось. Спасибо :)
AlekseyPopovv
17-07-2014, 17:20
Ребята помогите со скриптом. Как всё таки сделать что бы путь указанный не менялся при выборе другой папки? Я имею в виду Installer и Portable в одном файле.
http://i.imgur.com/EYpTtjU.jpg
saneksanek
17-07-2014, 19:54
AlekseyPopovv, Если вас вообще правильно понял [Setup]
AppendDefaultDirName=false
habib2302
18-07-2014, 16:47
Всем привет. Помогите исправить тупую ошибку которая возникает не по каким причинам.
http://i.imgur.com/RBgT1zc.png (http://i.imgur.com/cuAMle8.png)
Проверил наличие файлов и они там есть. Параметры запуска тоже правильно ввел.
habib2302, Ботвой походу пользуешься да. :)
habib2302
18-07-2014, 17:04
Shift85, да. а что?
да. а что? »
habib2302, Походу с ботвой какие то проблемы у самого такая же ошибка.
Нужно без ботвы попробовать.
Habetdin
18-07-2014, 17:22
habib2302, нельзя напрямую запускать msi-файл, нужно запускать
msiexec.exe /i файл.msi
Либо использовать shellexec :)
Но мне нужно, чтобы этот установщик был в формате iso. Как это сделать попроще? »Так (http://forum.oszone.net/attachment.php?attachmentid=115302&d=1405689697).
habib2302, Либо использовать shellexec »
Пример
function InitializeSetup(): Boolean;
var ErrorCode : Integer;
begin
ShellExec('', ExpandConstant('{src}\Redist\PhysX.msi'),'/qn', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode);
Result:= True;
end;
habib2302
18-07-2014, 17:38
Habetdin, а сейчас что хочет
http://i.imgur.com/4xnWw8j.png (http://i.imgur.com/VAzYOrs.png)
; Скрипт создан через Мастер 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.p ng
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;
Habetdin
19-07-2014, 00:25
habib2302, msiexec не находит msi-файл. Если честно, то я тоже не вижу где он распаковывается в скрипте :)
Вот пример (http://www.jrsoftware.org/iskb.php?msi) из базы знаний Inno Setup, в Run указан полный путь к файлу (с кавычками на случай наличия пробелов в пути) и распаковкой в секции Files:
[Files]
Source: "Your-MSI-File.msi"; DestDir: "{tmp}"
[Run]
Filename: "msiexec.exe"; Parameters: "/i ""{tmp}\Your-MSI-File.msi"""
Dinvin4ester
19-07-2014, 02:15
Ребята,подскажите чтоб инсталлятор ставил в стим что нужно прописать ?
Habetdin
19-07-2014, 21:59
Dinvin4ester, для большинства игр достаточно папки игры в папке %steamapps%\common и файла appmanifest_%GameID%.acf в папке %steamapps%.
Правда для облегчения первого запуска можно прописать компоненты в ветке реестра HKLM\SOFTWARE\Valve\Steam\Apps\%GameID% (как - зависит от игры, лучше экспортировать ветку) - например, DirectX и библиотеки Visual C++, которые и так почти с каждой игрой в стиме идут :not-me:
[hr]%GameID% - ID игры в магазине стим. %steamapps% по умолчанию - параметр InstallPath из HKLM\SOFTWARE\Valve\Steam + "\steamapps".
Dodakaedr
21-07-2014, 17:23
Можете кто-нибудь подсказать? В данном куске секции [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;
R.i.m.s.k.y.
21-07-2014, 17:26
есть чековые проверки RUPTracedRegExclExists... Как их можно реализовать? »
[code]
Function RUPTracedRegExclExists () : boolean;
begin
...
if ... then result:= true else result := false;
end;
после Check в секции Registry кавычки не нужны
Dodakaedr
21-07-2014, 17:28
R.i.m.s.k.y., ну это как-бы понятно. "..." - что там нужно указывать? Вот что интересует.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC