Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
Sotonisto
24-02-2010, 13:22
Омг :) Кароч, смотри.
Создадим рядом c готовым инсталлом, например, папку ZZZ - в ней лежит директ (куча архивов и файл запуска). Тебе необходимо указать путь к файлу запуска DirectX и рабочую папку, в которой он находится (у нас это ZZZ).
В скрипте это будет выгляеть так:
Filename: {src}\ZZZ\dxsetup.exe; WorkingDir: {src}\ZZZ; Parameters: /silent; StatusMsg: ExpandConstant('{cm:DirectXInstall}'); Check: InstallDirectX; Flags: waituntilterminated; BeforeInstall: ProgressExt2()
{src} - директория в которой находится инсталл (папка или диск), {src} заменять на что-либо другое не нужно.
ZZZ - название папки с директом
dxsetup.exe - файл запуска директа
Filename: {src}\ZZZ\dxsetup.exe - путь к файлу запуска DirectX
WorkingDir: {src}\ZZZ - папка в которой находится DirectX (кароч тож самое что и Filename, только без \dxsetup.exe :) )
Понял? :)
baikalchanen
24-02-2010, 14:09
Sotonisto, Спасибо,я просто до этого путь полностью указывал,а {src} оставлял!!!
Merlin_jr
24-02-2010, 15:13
Подскажите как правильно завершить работу установщика из любых сложностей логических конструкций.
Inno ISCmplr Setup (http://restools.hanzify.org/inno/Inno_ISCmplr_Setup100224(7zip).zip) 5.3.8 build 100224 от Restools (http://restools.hanzify.org/)
Доброго времени суток у меня несколько вопросов,начал пользоватся 7z,упаковал в архив папки из игры,при компиляции и установке все нормально архивы распаковываются,НО при удалении,эти папки не удаляются а так и остаются в папке,подскажите пожалуйса что сделать?И еще один вопросик можно ли интегрировать эту распаковку 7z архивов в скрипт от YURSHAT ?Заранее спасибо,буду весьма признателен
Вот скрипт 7z
AppVerName=My Program version 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
Compression=zip
[Languages]
Name: "rus"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
Source: c:\game\*; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
Source: is7z.dll; DestDir: {tmp}; Flags: dontcopy
[Icons]
Name: "{group}\Удалить"; IconFilename: "{app}\unins000.exe"; Filename: "{app}\unins000.exe"
[Code]
var
ProgressBar : TNewProgressBar;
ExtractFile:TNewStaticText;
Button1:TButton;
procedure Extract7z (hWnd, hpb, hst: THandle; fpath, extractPath, pass:pchar); external 'Extract7z@files:is7z.dll stdcall';
procedure CancelExtract; external 'CancelExtract@files:is7z.dll stdcall';
procedure InitializeWizard();
begin
ProgressBar := TNewProgressBar.Create(WizardForm);
ExtractFile:=TNewStaticText.Create(WizardForm);
with WizardForm.ProgressGauge do
begin
ProgressBar.Left := Left;
ProgressBar.Top := Top + ScaleX(55);
ProgressBar.Width := Width;
ProgressBar.Height := Height;
ProgressBar.Parent := WizardForm.InstallingPage;
ProgressBar.max := 100;
ProgressBar.Position := 0;
ExtractFile.parent:=WizardForm.InstallingPage;
ExtractFile.autosize:=false;
ExtractFile.Width := Width;
ExtractFile.top:=Top + ScaleX(35);
ExtractFile.caption:='Распаковка архива 7zip';
end;
end;
procedure Button1OnClick(Sender: TObject);
begin
CancelExtract;
end;
procedure CurStepChanged(CurStep: TSetupStep);
begin
If CurStep=ssPostInstall then
begin
Button1:=TButton.create(WizardForm);
Button1.parent:=WizardForm;
Button1.width:=135;
Button1.caption:='Отменить распаковку';
Button1.left:=260;
Button1.top:=WizardForm.cancelbutton.top;
Button1.OnClick:=@Button1OnClick;
try
Extract7z (wizardform.handle, progressbar.handle, ExtractFile.handle, ExpandConstant('{src}') + '\1.7z', ExpandConstant('{app}'), '');
Button1.visible:=false;
except
MsgBox('Неверный пароль!', mbInformation, MB_OK);
Button1.visible:=false;
end;
end;
end;
упаковал в архив папки из игры,при компиляции и установке все нормально архивы распаковываются,НО при удалении,эти папки не удаляются а так и остаются в папке,подскажите пожалуйса что сделать? »
[UninstallDelete]
Type: filesandordirs; Name: {app}
И еще один вопросик можно ли интегрировать эту распаковку 7z архивов в скрипт от YURSHAT ? »
Конечно можно
Jerichoman
25-02-2010, 09:30
Если я делаю антологию, как сделать так, чтобы каждая игра распаковалась в свою папку и была возможность выбора установки каждой игры по отдельности?
Если я делаю антологию, как сделать так, чтобы каждая игра распаковалась в свою папку и была возможность выбора установки каждой игры по отдельности? »
:read: Почитайте справку. Особенно обратите внимание на секцию [Components]
Jerichoman
25-02-2010, 16:09
YURSHAT, справку к Inno?
YURSHAT, справку к Inno? »
к микроволновке :lol:
Jerichoman
25-02-2010, 16:38
к микроволновке »
Да ну вас :tongue:
Jerichoman, извини, не удержался ;) :)
Jerichoman
25-02-2010, 17:04
A1EXXX, Да ладно, сам понял что тупо получилось :)
baikalchanen
25-02-2010, 17:06
При попытке удалить игру вылетает такая ошибка--http://s47.radikal.ru/i115/1002/db/52ba0c6f8545.png (http://www.radikal.ru)
Скрипт прикрепил ниже.
baikalchanen, вот так должно быть
Source: "Files\ISSkin.dll"; DestDir: "{app}"; Flags: ignoreversion;
Source: "Files\Tiger.cjstyles"; DestDir: "{app}"; Flags: ignoreversion;
а что вышла ошибка там есть уже старая версия
unins000.dat
unins000.exe
удали их
Sotonisto
25-02-2010, 18:40
Source: "Files\ISSkin.dll"; DestDir: "{app}"; Flags: ignoreversion;
Source: "Files\Tiger.cjstyles"; DestDir: "{app}"; Flags: ignoreversion;
http://i036.radikal.ru/1002/55/699ea11ac78f.gifhttp://i036.radikal.ru/1002/55/699ea11ac78f.gifhttp://i036.radikal.ru/1002/55/699ea11ac78f.gif
У baikalchanen'а и так все правильно было, для чего эти исправления?
-----
baikalchanen, ошибка из-за того что ты упаковал файлы для удаления от другого инсталла.
Установив оригинальную игру (Руссобит-М использует инсталлы Inno Setup) в папке с игрой создались unins000.dat и unins000.exe.
Когда ты собирал инсталл они тоже "вошли" в него, и после установки (естественно) новые файлы деинсталляции не создались а остались старые :)
Просто сделай инсталл заново, ток перед сборкой удали из папки с игрой unins000.dat и unins000.exe :)
P.S.: Вот как прописывается Vegas 2 в реестре (если версия от Руссобит-М). У тебя почему-то только 9 записей (хотя тебе виднее).
Root: HKLM; Subkey: "SOFTWARE\Ubisoft"; Flags: uninsdeletekeyifempty
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; ValueType: string; ValueName: "InstallDir"; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; ValueType: string; ValueName: "Language"; ValueData: "Russian"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; ValueType: string; ValueName: "MasterType"; ValueData: "DVD"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; ValueType: string; ValueName: "MasterLang"; ValueData: "RUS"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2"; ValueType: string; ValueName: "MasterComcast"; ValueData: "FALSE"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\Russian"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\1.00"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\1.02"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\GameUpdate"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\GameUpdate"; ValueType: string; ValueName: "execPath"; ValueData: "{app}\Binaries\R6Vegas2_Game.exe"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\GameUpdate"; ValueType: string; ValueName: "info"; ValueData: "f118a34d81976a20d530115cb076da0a"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\GameUpdate"; ValueType: string; ValueName: "installdir"; ValueData: "{app}"; Flags: uninsdeletekey
Root: HKLM; Subkey: "SOFTWARE\Ubisoft\Tom Clancy's Rainbow Six Vegas 2\GameUpdate"; ValueType: string; ValueName: "language"; ValueData: "us"; Flags: uninsdeletekey
Sotonisto, просто у многих выходила ошибка удаления
Sotonisto
25-02-2010, 20:07
Sotonisto, просто у многих выходила ошибка удаления »
Так при чем тут скин?
Он просто "впихнул" файлы старого инсталла вот и все.
А если исправлять, то - Flags: dontcopy ignoreversion (да и то только для dll) + скин в tmp.
mikrotok
26-02-2010, 01:54
народ помогите со скриптом, чтобы перед установкой программы появлялось ЛОГО проги, а затем уже начиналась сама установка, например как в переведённых модификациях от игромании, сначала появляется надпись ИГРОМАНИЯ, затем картинка самого мода, а уже после начинается процесс установки
Sotonisto
26-02-2010, 03:18
народ помогите со скриптом, чтобы перед установкой программы появлялось ЛОГО проги, а затем уже начиналась сама установка, например как в переведённых модификациях от игромании, сначала появляется надпись ИГРОМАНИЯ, затем картинка самого мода, а уже после начинается процесс установки »
mikrotok, это скорей всего сплэш (но утверждать не буду).
[Files]
Source: "isgsg.dll"; DestDir: {tmp}; Flags: dontcopy nocompression
Source: "splash.png"; DestDir: {tmp}; Flags: dontcopy nocompression
[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer); external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';
procedure InitializeWizard();
begin
ExtractTemporaryFile('splash.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\splash.png',1000,3000,1000,0,255,False, $FFFFFF,10);
end;
Размер картинки может быть любым.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC