PDA

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


Страниц : 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

habib2302
12-06-2013, 00:10
есть ли вообще констант к папке LocalLow

El Sanchez
12-06-2013, 14:57
в справке я нашел Если требуется ввести "{", наберите ее два раза. (You do not need to double "}" characters.) »
habib2302, еще ниже читайте, где описание константы reg.
есть ли вообще констант к папке LocalLow »
habib2302, {userappdata}\LocalLow с проверкой на Vista и выше.

insombia
12-06-2013, 21:35
кому нужно забирайте http://rghost.ru/46708307 ,logo вставляйте(рисуйте свое)

saurn
13-06-2013, 13:53
помогите мне пожалуйста решить проблему »
Экранировать GUID символом "{" в шестнадцатеричной кодировке не пробовали?
APPID_BAD_PIGGIES = '%7B{9524C306-CC16-44A0-82AA-996409D1A059}';

habib2302
13-06-2013, 14:09
El Sanchez,
спасибо за код.он работает
RegQueryStringValue(HKLM, Format('SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%s_is1', [AppIds[i]]), 'UninstallString', Buff);
Buff := RemoveQuotes(Buff);
но появились еще проблемы.
после удаления моего репака выдает ошибку
http://img203.imageshack.us/img203/1652/thumbmhv.png (http://img221.imageshack.us/img221/4152/snagit00021306201312071.png)
и не удаляет оф игру,но понял почему не удаляет.инсталлятор пытается счита id у которого на конце написано _is1 {9524C306-CC16-44A0-82AA-996409D1A059}_is1,а id оф игры {9524C306-CC16-44A0-82AA-996409D1A059}
я взял в редакторе реестра в конце id дописал _is1 и оф игра стала удалятся

insombia
13-06-2013, 16:29
habib2302 секция UninstallDelete выглядит так?
Type: filesandordirs; Name: {app};

habib2302
13-06-2013, 16:43
insombia, у меня нету этой секции UninstallDelete

insombia
13-06-2013, 16:53
habib2302 ну так добавь!как ты собрался удалять файлы без этой секции?

saurn
13-06-2013, 17:22
habib2302, старый пример нормально работает
Buff := RemoveQuotes(ExpandConstant('{reg:HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\' + AppIds[i] + '_is1,UninstallString|}'));
Насчет удаления другой установки пока подсказать ничего не могу.
как ты собрался удалять файлы без этой секции? »
Эта секция требуется для удаления файлов неучтенных при установке. В остальных случаях нужды в ней нет.

semen77
14-06-2013, 18:54
Здравствуйте!
Есть игра, репак. Состав простой setup.exe и setup-1.bin.
Если оба файла лежат рядом - всё устанавливается как надо.
Теперь убираем setup.exe в другую папку,и... в процессе установки просит вставить диск.
-----------------------------------------------------------------------------------------------------------------------
- Как передать параметр месторасположения setup-1.bin в инсталятор setup.exe через батник или vbs?
- Что написать в [code] чтобы инсталятор параметр принял и правильно обработал?

insombia
14-06-2013, 18:57
semen77 со справки

[Setup]: DiskSpanning
Возможные значения:
yes или no
Значение по умолчанию:
no

Опмсание:
При значении yesбудет производиться разбиение на диски. Определяет, создавать ли компилятору один файл SETUP.EXE, или делить его на файлы (SETUP-*.BIN), которые помещаются на дискету, CD-ROM, DVD-ROM или другой носитель. Каждый файл в своем имени будет содержать номер, по которому можно будет определить на какой диск его следует скопировать. Скопируйте SETUP.EXE и SETUP-1.BIN на первый диск, SETUP-2.BIN на второй и т. д.

В этом случае размер каждого файла и число файлов, создаваемых для каждого диска диктуется директивой DiskSliceSize и SlicesPerDisk секции [Setup]. Другие директивы, отвечающие за разбиение на диски, которые вы захотите внедрить, должны включать директивы DiskClusterSize и ReserveBytes.

Обратите внимание, что нужно обязательно задать этим директивам значение yes, если размер сжатого файла инсталлятора превышает 2,100,000,000 байт, даже если вы не планируете разбивать инсталлятор на диски. (Инсталлятор будет работать правильно, даже если все SETUP-*.BIN файлы будут размещены на одном диске).

saurn
14-06-2013, 19:12
semen77, никак, насколько мне известно. setup-1.bin неотъемлимая часть инсталятора и должна находится рядом с загрузчиком *.exe

semen77
15-06-2013, 08:34
insombia, saurn, я почему спросил, есть же параметры
/DIR="x:\dirname"
Overrides the default directory name displayed on the Select Destination Location wizard page. A fully qualified pathname must be specified. May include an "expand:" prefix which instructs Setup to expand any constants in the name. For example: '/DIR=expand:{pf}\My Program'.

/GROUP="folder name"
Overrides the default folder name displayed on the Select Start Menu Folder wizard page. May include an "expand:" prefix, see '/DIR='. If the [Setup] section directive DisableProgramGroupPage was set to yes, this command line parameter is ignored.

но они меняют другое...

или с этим
Prototype:
function GetCmdTail: String;
Description:
Returns all command line parameters passed to Setup or Uninstall as a single string.
или с этим
/LOADINF="filename"
Instructs Setup to load the settings from the specified file after having checked the command line. This file can be prepared using the
Don't forget to use quotes if the filename contains spaces.
придумать что-нибудь....

saurn
15-06-2013, 13:35
/LOADINF="filename" »
Это всего лишь файл ответов инстала. Позволяет выполнять установку с заранее предустановленными параметрами установки.
function GetCmdTail: String; »
Функция возврата параметров ком.строки.
---------------------------------------------------------
По поводу указания ексишнику местоположения псевдо бинарников, знатоки скажут вам более точно. Я с таким никогда не сталкивался, и не думаю, что это возможно. Инсталлятор - *.exe, *.bin - по сути архив, разбитый на части. Все части архива должны располагатся в одной директории.

insombia
15-06-2013, 17:02
у кого-то есть батники для запаковки srep+precomp? а то свои потерял

volga163@vk
15-06-2013, 20:00
Здравствуйте, друзья!

Собственно, вот что я хотел у Вас спросить. Мне необходимо, чтобы во время установки загрузился файл из Интернета. Организовал я всё это дело через Inno Tools Downloader. Мне необходимо, чтобы этот загружаемый файлик сохранялся не в корневую папку установки, а в подпапку. Попытался написать вот так:

itd_addfile('http://u.to/8Su7Aw',expandconstant('{tmp}\subdir\file')); // Пишем ссылки на файлы тутЕстественно, не качает. Выдаёт ошибку Sorry, the files could not be downloaded. Click 'Retry' to try downloading the files again, or click 'Cancel' to terminate setup. Если просто написать expandconstant('{tmp}\file'), то всё прекрасно закачивается.

Как же можно это организовать? Спасибо.

vint56
15-06-2013, 20:46
volga163@vk попробуй так
CreateDir(ExpandConstant('{tmp}\subdir'));
itd_addfile('http://u.to/8Su7Aw',expandconstant('{tmp}\subdir\file')); // Пишем ссылки на файлы тут

volga163@vk
15-06-2013, 21:04
Цитата vint56:
volga163@vk попробуй так »
Спасибо огромное, помогло.

Ещё один вопрос. Я использую в коде Паскаля вместо {app} WizardDirValue, но он выдаёт только папку установки по умолчанию. А как можно сделать, чтобы файлы загружались в папку, которую выбирает пользователь при установке? Код:

procedure InitializeWizard();
begin
ITD_Init;
// Оглашаем создание папок Bukkit.
CreateDir(WizardDirValue()+'\1.5.2 Bukkit\');
CreateDir(WizardDirValue()+'\1.5.1 Bukkit\');
CreateDir(WizardDirValue()+'\1.5.0 Bukkit\');
CreateDir(WizardDirValue()+'\1.4.7 Bukkit\');
CreateDir(WizardDirValue()+'\1.4.6 Bukkit\');
// ЗАКОНЧИЛИ ОГЛАШАТЬ СОЗДАНИЕ ПАПОК
// -------------------------
// Загружаем следующие файлы
itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02161_1.5.2-R0.2/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.2 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.2
itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/02099_1.5.1-R0.3/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.1 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.1
itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01980_1.5-R0.1/craftbukkit-dev.jar',Wizarddirvalue()+'\1.5.0 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.5.0
itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01845_1.4.7-R1.0/craftbukkit.jar',Wizarddirvalue()+'\1.4.7 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.7
itd_addfile('http://dl.bukkit.org/downloads/craftbukkit/get/01800_1.4.6-R0.4/craftbukkit-dev.jar',Wizarddirvalue()+'\1.4.6 Bukkit\'+'craftbukkit-1.0.0-SNAPSHOT.jar'); // Bukkit 1.4.6
// ЗАКОНЧИЛИ ЗАГРУЖАТЬ ФАЙЛЫ
// -------------------------
itd_setoption('UI_DetailedMode', '1'); // Детализированный режим
itd_downloadafter(wpInstalling); // Загружаем файл после установки
end;

saurn
16-06-2013, 11:31
Я использую в коде Паскаля вместо {app} WizardDirValue, но он выдаёт только папку установки по умолчанию »
Так и будет, даже если использовать константу {app} ничего не изменится, список папок загрузки у вас создается на этапе инициализации формы мастера, соответственно, когда у пользователя появляется возможность выбрать папку для загрузки, папки уже созданы. Вызывайте процедуру создания папок после страницы выбора папки установки(wpSelectDir), ну или создайте свою страницу, или форму, с едитом для выбора папки и вызывайте ее в нужном вам месте.

CkauNui
16-06-2013, 14:16
Всем привет, когда то давно делал скрипт, работал на ура, сейчас пробую его и результат плачевный пишет про
Warning: Line 34, Column 1: [Hint] Variable 'WELCOMELABEL1' never used
Warning: Line 34, Column 1: [Hint] Variable 'FINISHEDHEADINGLABEL' never used
Посмотрите в чем может быть проблема?
Заранее большое спасибо.
Вот скрипт
[Setup]
AppName=AionRus3.7full
AppVerName=3.7
DefaultDirName=l10n
AppCopyright=© 2013 Ckau
WizardImageFile=Style\Background.bmp
WizardSmallImageFile=Style\smallbitmap.bmp
SetupIconFile=F:\Games\aion_na\aion\AionClient.ico
OutputDir=E:\МастерСкая\aion\SETUP\test
Compression=lzma/Ultra

[Languages]
Name: rus; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: E:\МастерСкая\aion\SETUP\Style\ISSkin.dll; DestDir: {app}; Flags: dontcopy
Source: E:\МастерСкая\aion\SETUP\Style\Concave_Dark.cjstyles; DestDir: {tmp}; Flags: dontcopy
Source: "E:\МастерСкая\aion\FULL\1\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
[code]
var
WelcomeLabel1, WelcomeLabel2, FinishedLabel, FinishedHeadingLabel: TLabel;
PageNameLabel, PageDescriptionLabel: TLabel; MouseLabel,SiteLabel: TLabel;


const
AW_BLEND = $00080000;
AW_HIDE = $00010000;

function AnimateWindow(hWnd: HWND; dwTime: DWORD; dwFlags: DWORD): Boolean;
external 'AnimateWindow@user32 stdcall';

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
if MsgBox(SetupMessage(msgExitSetupMessage), mbConfirmation, MB_OKCANCEL) = IDOK then
begin
Confirm := False;
AnimateWindow(WizardForm.Handle, 2500, AW_BLEND or AW_HIDE);
Cancel := True;
end else
Cancel := False;
end;



procedure LoadSkin(lpszPath: String; lpszIniFileName: String);
external 'LoadSkin@files:isskin.dll stdcall';

procedure UnloadSkin();
external 'UnloadSkin@files:isskin.dll stdcall';

function InitializeSetup(): Boolean;
begin
ExtractTemporaryFile('Concave_Dark.cjstyles');
LoadSkin(ExpandConstant('{tmp}\Concave_Dark.cjstyles'), '');
Result := True;
end;

procedure DeinitializeSetup();
begin
UnloadSkin();
end;


procedure SiteLabelOnClick(Sender: TObject);
var
ErrorCode: Integer;
begin
ShellExec('open', 'http://vk.com/aion_us', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;

procedure SiteLabelMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clRed
end;

procedure SiteLabelMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clBlue
end;

procedure SiteLabelMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clGreen
end;

procedure SiteLabelMouseMove2(Sender: TObject; Shift: TShiftState; X, Y: Integer);
begin
SiteLabel.Font.Color:=clYellow
end;

procedure InitializeWizard();
begin
WizardForm.WizardBitmapImage.Width:= ScaleX(497);
WizardForm.WizardBitmapImage2.Width:= ScaleX(497);

MouseLabel:=TLabel.Create(WizardForm)
MouseLabel.Width:=WizardForm.Width
MouseLabel.Height:=WizardForm.Height
MouseLabel.Autosize:=False
MouseLabel.Transparent:=True
MouseLabel.OnMouseMove:=@SiteLabelMouseMove2
MouseLabel.Parent:=WizardForm

SiteLabel:=TLabel.Create(WizardForm)
SiteLabel.Left:=10
SiteLabel.Top:=330
SiteLabel.Cursor:=crHand
SiteLabel.Font.Color:=clYellow
SiteLabel.Caption:='Вконтакте Aion US'
SiteLabel.OnClick:=@SiteLabelOnClick
SiteLabel.OnMouseDown:=@SiteLabelMouseDown
SiteLabel.OnMouseUp:=@SiteLabelMouseUp
SiteLabel.OnMouseMove:=@SiteLabelMouseMove
SiteLabel.Parent:=WizardForm



WelcomeLabel2:= TLabel.Create(WizardForm);
WelcomeLabel2.AutoSize:= False;
with WizardForm.WelcomeLabel2 do
WelcomeLabel2.SetBounds(230,130,340,90);
WelcomeLabel2.Font:= WizardForm.WelcomeLabel2.Font
WelcomeLabel2.Font.Color:= clWhite;
WelcomeLabel2.Transparent:= True;
WelcomeLabel2.WordWrap:= true;
WelcomeLabel2.Caption:='Добро пожаловать в установку «Русификатора» ' + #13#10#13#10 + 'Cделайте резервную копию папки «l10n»' + #13#10#13#10 + 'Незабывайте посещать «vk.com/aion_us»' ;
WelcomeLabel2.Parent:= WizardForm.WelcomePage;


WizardForm.WizardSmallBitmapImage.SetBounds(ScaleX (0), ScaleY(0), WizardForm.MainPanel.Width, WizardForm.MainPanel.Height);

PageNameLabel:= TLabel.Create(WizardForm)
with WizardForm.PageNameLabel do
PageNameLabel.SetBounds(Left, Top, Width, Height);
PageNameLabel.Transparent:= True;
PageNameLabel.Font:= WizardForm.PageNameLabel.Font;
PageNameLabel.Font.Color:= clYellow; //цвет надписи
PageNameLabel.Parent:= WizardForm.MainPanel;

PageDescriptionLabel:= TLabel.Create(WizardForm)
with WizardForm.PageDescriptionLabel do
PageDescriptionLabel.SetBounds(Left, Top, Width, Height);
PageDescriptionLabel.Transparent:= True;
PageDescriptionLabel.Font:= WizardForm.PageDescriptionLabel.Font;
PageDescriptionLabel.Font.Color:= clYellow; //цвет надписи
PageDescriptionLabel.Parent:= WizardForm.MainPanel;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;

FinishedLabel:= TLabel.Create(WizardForm);
FinishedLabel.AutoSize:= False;
with WizardForm.FinishedLabel do
FinishedLabel.SetBounds(230,130,340,90);
FinishedLabel.Font:= WizardForm.FinishedLabel.Font
FinishedLabel.Font.Color:= clWhite;
FinishedLabel.Transparent:= True;
FinishedLabel.WordWrap:= true;
FinishedLabel.Caption:= WizardForm.FinishedLabel.Caption;
FinishedLabel.Parent:= WizardForm.FinishedPage

WizardForm.WelcomeLabel1.Hide;
WizardForm.WelcomeLabel2.Hide;
WizardForm.FinishedLabel.Hide;
WizardForm.FinishedHeadingLabel.Hide;
end;

procedure CurPageChanged(CurPageID: Integer);
begin
FinishedLabel.Caption:='Русификатор успешно установлен' + #13#10#13#10#13#10#13#10 + 'Желаю Вам приятной игры и море фана';
PageNameLabel.Caption:='ВНИМАНИЕ';
PageDescriptionLabel.Caption:= 'Внимание: укажите вашу папку с игрой. Пример: D:\Aion';
WelcomeLabel2.Font.Name:='AsiaFontNHH-OutlineAllHinting.ttf';
WelcomeLabel2.Font.Size:= 8;
FinishedLabel.Font.Name:='AsiaFontNHH-OutlineAllHinting.ttf';
FinishedLabel.Font.Size:= 10;
end;




© OSzone.net 2001-2012