Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 7]
Farser21
25-01-2015, 19:35
Добрый вечер.
В моем установщике используется большое количество картинок в формате bmp, из-за этого установщик подвисает, возможно ли как-то вместо bmp использовать картинки в формате png?
Okta_333, Пробуйте:
if not ISArcExtract ( 0, 0, ExpandConstant('{src}\D-3.arc'), ExpandConstant('{app}\'), '', false, 'пароль', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
Добрый вечер.
В моем установщике используется большое количество картинок в формате bmp, из-за этого установщик подвисает, возможно ли как-то вместо bmp использовать картинки в формате png? »
Farser21, Конечно можно с помощью ботвы.
Пример:http://rghost.ru/60554844
Okta_333
25-01-2015, 19:47
Shift85
Та же ошибка.
Та же ошибка. »
Okta_333, У вас какая версия инно (анси или юнникод)
Okta_333
25-01-2015, 19:56
Inno Setup 5.4.2.ee2 (a) (build 110319)
А вот Анси или Юникод, я не знаю.
Inno Setup 5.4.2.ee2 (a) (build 110319)
А вот Анси или Юникод, я не знаю. »
Анси.
Установите расширенную версию Inno Setup
Okta_333
25-01-2015, 20:13
Shift85
У меня и есть расширенная. Inno Ultra, зелёненькая.
Farser21
25-01-2015, 20:17
Shift85, можно ли подправить этот код, чтобы он мог использовать png картинки?
procedure ShowCompDescription(Sender: TObject; X, Y, Index: Integer; Area: TItemArea);
var
i: Integer;
begin
if Index = LastIndex then Exit;
CompIndex := -1;
for i := 0 to GetArrayLength(CompDescs) -1 do
begin
if (CompDescs[i].Index = Index) then
begin
CompIndex := i;
Break;
end;
end;
if (CompIndex >= 0) and (Area = iaItem) then
begin
if not FileExists(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName) then
ExtractTemporaryFile(CompDescs[CompIndex].ImageName);
CompDescImg.Bitmap.LoadFromFile(ExpandConstant('{tmp}\') + CompDescs[CompIndex].ImageName);
CompDescImg.Show;
BitmapImage.Hide;
CompDescText.Caption := CompDescs[CompIndex].Description;
CompDescText.Enabled := True;
end else
begin
CompDescText.Caption := CustomMessage('ComponentsInfo');
CompDescText.Enabled := False;
CompDescImg.Hide;
BitmapImage.Show;
end;
LastIndex := Index;
end;
procedure CompListMouseLeave(Sender: TObject);
begin
CompDescImg.Hide;
CompDescText.Caption := CustomMessage('ComponentsInfo');
CompDescText.Enabled := False;
LastIndex := -1;
BitmapImage.Show;
end;
procedure AddCompDescription(AIndex: Integer; ADescription: String; AImageName: String);
var
i: Integer;
begin
i := GetArrayLength(CompDescs);
SetArrayLength(CompDescs, i + 1);
CompDescs[i].Description := ADescription;
CompDescs[i].ImageName := AImageName;
CompDescs[i].Index := AIndex - 1
end;
У меня и есть расширенная. Inno Ultra, зелёненькая. »
Okta_333, Давайте скрипт с файлами гляну че да как.
Залейте куда нибудь на файлообменик.
Farser21, Весь скрипт с нуля придется переписывать.
SBalykov
25-01-2015, 21:11
Добрый день!
Имеется вопрос. Как можно убрать средствами IS последнюю папку в стринге "Dir":
function GetInstallDir(Dir:string):string;
begin
RegQueryStringValue(HKLM,'SOFTWARE\Maxis\Programs','Install Dir',Dir);
Result:=Dir; //Dir - C:\Games\Maxis\Programs
end;
Заранее спасибо...
Inno Setup 5.4.2.ee2 (a) (build 110319) »
Да ладно? Последняя расширенная - Inno Setup 5.5.1.ee2 (a) (build 121216)/Inno Setup 5.5.1.ee2 (u) (build 121216)
Gnom_aka_Lexander
25-01-2015, 21:49
SBalykov, Result:=ExtractFilePath(Dir) // Dir - C:\Games\Maxis\Programs Result - C:\Games\Maxis\
Да ладно? Последняя расширенная - Inno Setup 5.5.1.ee2 (a) (build 121216)/Inno Setup 5.5.1.ee2 (u) (build 121002) »
nik1967, Inno Setup 5.5.1.ee2 (a) (build 121002)/Inno Setup 5.5.1.ee2 (u) (build 121216)
http://s50.radikal.ru/i130/1501/5a/a634791d8068t.jpg (http://radikal.ru/fp/84b5b07a99904ccdabcc04c8eb78436c)
SBalykov
25-01-2015, 22:16
Gnom_aka_Lexander
Вы меня не совсем поняли.
#define Dir "{code:GetInstallDir|{pf32}\My Prog}"
function GetInstallDir(Dir:string):string;
begin
RegQueryStringValue(HKLM,'SOFTWARE\Maxis\Programs','Install Dir',Dir);
Result:=Dir; // Директория может быть любой, но необходимо убрать последнюю папку этой директории.
end; // н.п. x:\xxx\Programs
Gnom_aka_Lexander
25-01-2015, 22:21
SBalykov, Именно это и делает функция ExtractFilePath. То, что в имени функции присутствует слово File, говорит лишь о том, что используется она для того, чтоб из полного пути к файлу, вернуть только путь, без имени файла. Я-же вполне успешно использую ее для того, чтоб шагнуть на папку назад. Или как Вы выразились - убрать последнюю папку из пути.
SBalykov
25-01-2015, 22:23
Gnom_aka_Lexander
Спасибо.
Сейчас попробую...
P.S.
Еще раз, спасибо. Все работает.
Просто голова уже не соображает...
Shift85, вроде бы выкладывали уже build 121216 (https://yadi.sk/d/OdAcphPfeEMXb)
http://i63.fastpic.ru/thumb/2015/0125/5c/0edb79a54c010885bbe0c9018392a55c.jpeg (http://fastpic.ru/view/63/2015/0125/0edb79a54c010885bbe0c9018392a55c.png.html)
вроде бы выкладывали уже »В первом сообщении (http://forum.oszone.net/post-1201499-1.html) соседней темы (http://forum.oszone.net/thread-148707.html).
Inno Setup Compiler build 121216 (http://restools.hanzify.org/article.asp?id=47)
Поддерживаемые версии: 5.5.0 - 5.5.2
Ссылка: Загрузить (http://restools.hanzify.org/inno/InnoCompiler121216(7zip).zip) (Архив "InnoCompiler121216(7zip).zip" переименовать в "InnoCompiler121216.7z".)
Inno ISCmplr Setup build 121002 (http://restools.hanzify.org/article.asp?id=89)
Поддерживаемые версии: 5.5.1
Ссылка: Загрузить (http://restools.hanzify.org/inno/Inno_ISCmplr_Setup121002(7zip).zip) (Архив "Inno_ISCmplr_Setup121002(7zip).zip" переименовать в "Inno_ISCmplr_Setup121002.7z".)
Готовые варианты прикреплены ниже: Достаточно из папки "Inno_Setup_5" выделить все файлы и скопировать в папку с программой.
El Sanchez
26-01-2015, 09:38
В моем установщике используется большое количество картинок в формате bmp, из-за этого установщик подвисает, возможно ли как-то вместо bmp использовать картинки в формате png? »
Farser21, если картинок много, то стОит выставить SolidCompression=no, а смена формата мало поможет.
Я-же вполне успешно использую ее для того, чтоб шагнуть на папку назад. Или как Вы выразились - убрать последнюю папку из пути. »
Gnom_aka_Lexander, успешно до тех пор пока в реестре не встретится путь с завершающим слешем. Такое указание пути к папке является правильным и однозначно дает понять системе, что перед ней путь именно к папке, а не к файлу без расширения. Поэтому нужно отсекать слеш в любом случае, даже если его там нет:
Result := ExtractFilePath(RemoveBackslash(Dir));
demon_000
26-01-2015, 13:19
Ребят, не поможете вшить исдан 06 финал в этот инсталятор http://dfiles.ru/files/syle5r9i0
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC