PDA

Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]


Страниц : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 [58] 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125

Irenis
17-07-2014, 13:30
Добрый день! Подскажите пожалуйста. Вот создала я установщик. Но мне нужно, чтобы этот установщик был в формате iso. Как это сделать попроще? Скачать любую программу для создания образов, закинуть туда файлы установщика и создать образ? А потом для установки нужно будет просто как то размонтировать этот образ и установить игру, как обычно? Или же я неправильно понимаю весь процесс? Если все верно, то какой программой лучше создавать этот образ iso? Спасибо :)

Dima2009
17-07-2014, 15:41
Всем доброго дня или вечера!
Подскажите пожалуйста как написать код деинсталлятора чтобы при удаление было так

Shift85
17-07-2014, 16:13
какой программой лучше создавать этот образ iso? »
Irenis, Можно UltraISO например. :)

http://skesov.ru/kak-sozdat-obraz-s-pomoshhyu-programmyi-ultraiso/

Irenis
17-07-2014, 16:30
Можно 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)
Проверил наличие файлов и они там есть. Параметры запуска тоже правильно ввел.

Shift85
18-07-2014, 17:02
habib2302, Ботвой походу пользуешься да. :)

habib2302
18-07-2014, 17:04
Shift85, да. а что?

Shift85
18-07-2014, 17:19
да. а что? »
habib2302, Походу с ботвой какие то проблемы у самого такая же ошибка.
Нужно без ботвы попробовать.

Habetdin
18-07-2014, 17:22
habib2302, нельзя напрямую запускать msi-файл, нужно запускать
msiexec.exe /i файл.msi
Либо использовать shellexec :)

Nordek
18-07-2014, 17:23
Но мне нужно, чтобы этот установщик был в формате iso. Как это сделать попроще? »Так (http://forum.oszone.net/attachment.php?attachmentid=115302&d=1405689697).

Shift85
18-07-2014, 17:31
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