Войти

Показать полную графическую версию : Скрипты 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

sergey3695
01-10-2013, 11:04
Скрипт, думаю, ненадо выкладывать. »
В кой то веке,да!
Начну с того что там двигается не TPanel,а прозрачная картинка. (этого элемента там нет(TPanel))
Картинки в оригинальном скрипте там просто меняются на заднем фоне,походу ты решил что-то переделать.
В данном скрипте у тебя прикрутить IsSlideShow и т.д. для смены картинки не получится. Можно сделать затухание картинок используя Transparent,но это сильно грузит систему. (если учесть что должен будет распаковываться архив,да и ещё это,будет жесть). Что ты собрался сделать мне не понятно.
И да, панель запоминает предыдущую картинку? это как?

Nightwishh
01-10-2013, 15:01
sergey3695, Поясняю ситуацию. Используется обычное слайдшоу с картинками в формате .bmp (не IsSlideShow) и лежат слайды на WizardForm. Есть музыкальная кнопка с текстурами в формате .bmp, где как раз используеться панель размером 38*35 пикс. (на неё уже ложиться текстура и т.д. (это уже не важно!)) тоже на WizardForm. Так вот, при смене слайда в слайд шоу, на панеле (подчёркиваю на панели)отпечатывается кусок предыдущего слайда и при наведении на панель мышкой, она снова становиться прозрачной (Panel).

sergey3695
01-10-2013, 20:17
Nightwishh, так ведь используется .bmp (не прозрачно). (зачем через .bmp? с ботвой была бы прозрачность и весило бы меньше)
Кинь тогда скрипт (в пм (лс)) посмотрю,мне уже прям интересно как ты с кнопкой изгалился. (если честно лучше через ботву сделай,работать лучше будет)

vahe-91
01-10-2013, 21:49
:hi:
Если в скрипте написать так
[Files]
Source: "D:\12\*.*"; DestDir: "{app}\111"; Flags: ignoreversion;или

[Files]
Source: "D:\12\*"; DestDir: "{app}\111"; Flags: ignoreversion;то установщик принимает только файлы которые есть в папке D:\12\, а мне нужно чтобы он принимал подпапки D:\12\ тоже. Как сделать, чтобы он принимал и файлы и подпапки вместе, кроме указания подпапок вручную ?. Помогите новичку в inno setup.

nik1967
01-10-2013, 22:09
vahe-91, ну справка же...
Секция [Files]
Flags
recursesubdirs
Указывает компилятору или инсталлятору также искать файлы с указанным именем/маской в подпапках папки.

Nordek
01-10-2013, 22:59
то установщик принимает только файлы которые есть в папке D:\12\ »
Ну. Просто в "Inno Setup Compiler" создай демо скрипт, на третьей странице выбери "Добавить папку"
В созданном скрипте увидишь чем дополнился Flags
Source: D:\12\*; DestDir: {app}; Flags: ignoreversion recursesubdirs createallsubdirs

Можешь в ISTool перейти в "Файлы и каталоги"
Два раза кликаешь по элементу и выбираешь что тебе нужно
а именно
Обрабатывать подкаталоги - recursesubdirs
Создавать все подкаталоги - createallsubdirs

Либо в Inno Script Studio, переходишь в "Файлы"
Два раза кликаешь по элементу
переходишь в "Детали » (Де)Инсталл" и выбираешь что тебе нужно
а именно
recursesubdirs - Обрабатывать подкаталоги
createallsubdirs - Создавать все подкаталоги.

vahe-91
01-10-2013, 23:21
nik1967, Nordek, спасибо, в справке про секцию files все смотрел, кроме флагов :teeth:

Dinvin4ester
02-10-2013, 20:57
http://s14.directupload.net/images/131002/gsiei3lp.png
Вопрос снят .Прочел в справке что это лимит.

Alloc
05-10-2013, 15:26
Приветствую, уважаемые форумчане!
Поделитесь пожалуйста опытом и знаниями касательно скрипта ISDone. Вообщем проблема в следующем:

Пытаюсь сделать репак игры. Беру все файлы игры и запаковываю их в архив FreeArc'ом (без сжатия). Полученный файл обрабатываю "Precomp'ом". Далее созданный ".pcf" - файл обрабатываю "Srep'ом". И наконец Полученный ".srp" - файл упаковываю тем же FreeArc'ом, но уже на "Ультра". Как мне потом его распаковать используя скрипт ISDone более грамотно?

Буду вам очень признателен за помощь.
Заранее спасибо!

Gnom_aka_Lexander
05-10-2013, 15:30
Alloc, так-же, но в обратном порядке, в скрипте примере все есть. не забывать удалять промежуточные данные (в примере все это тоже есть)

Alloc
05-10-2013, 15:48
Gnom_aka_Lexander, спасибо за ответ. А одной строкой невозможно это сделать? И подскажите еще пожалуйста, как использовать "arc.ini"? для чего он нужен?

Gnom_aka_Lexander
05-10-2013, 15:55
А одной строкой невозможно это сделать? » Нет.как использовать "arc.ini" »Никак. это конфигурационный файл freeArc, просто нужно при компиляции подложить тот arc.ini, который был использован при сжатии.

Alloc
05-10-2013, 16:14
Gnom_aka_Lexander, подскажите тогда, как в строке "Извлечение файлов:" сделать так, что бы показывались только извлекаемые файлы игры а не архивы .arc; .srep... как например у "R.G. Origami"? Может в самих функциях "ISArcExtract", "ISPrecompExtract" это можно настроить?

заранее спасибо!

Gnom_aka_Lexander
05-10-2013, 16:36
Alloc, никак. при распаковке последнего архива так и будет. Да и при распаковке каждого, собственно, так и происходит - отображается имя именно того файла, который в данный момент извлекается.

Alloc
05-10-2013, 16:38
Gnom_aka_Lexander, спасибо за помощь)

Alloc
05-10-2013, 18:13
Gnom_aka_Lexander, подскажите, я правильно делаю?


if not ISArcExtract ( 0, 0, ExpandConstant('{src}\Data.bin'), ExpandConstant('{app}\Data.srp'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;
if not ISSRepExtract ( 0, 0, ExpandConstant('{app}\Data.srp'),ExpandConstant('{app}\Data.pcf'), false) then break;
if not ISPrecompExtract ( 0, 0, ExpandConstant('{app}\Data.pcf'), ExpandConstant('{app}\Data.arc'), false) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{app}\Data.arc'), ExpandConstant('{app}\'), '', false, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;

Gnom_aka_Lexander
05-10-2013, 18:21
Alloc, нет. Справка, описание функций. В первой все в порядке, вот в последующих -
function ISSrepExtract (CurComponent:Cardinal; PctOfTotal:double; InputFile, OutputFile:string; DeleteInFile:boolean):boolean;
тут нужно true. в остальных последующих тоже.
(Из справки - DeleteInFile - удаление исходного архива после распаковки.)

Alloc
05-10-2013, 18:24
Gnom_aka_Lexander, все, спасибо большое. я понял

nik1967
05-10-2013, 23:34
А одной строкой невозможно это сделать? »
Возможно, при использовании CLS: SrepInside, PrecompInside, MSC (media streams compressor) (http://krinkels.org/forumdisplay.php?f=141)
Естественно, что и запаковывать нужно с помощью этих CLS.

Alloc
06-10-2013, 14:24
nik1967, Спасибо за ответ. Пожалуйста, можете немного по подробнее об этом... я пробовал еще так:


if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\Arc.exe'), ExpandConstant('x -o+ "{src}\Data.bin" -dp"{app}"'), ExpandConstant('{tmp}'), '...',False) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\precomp.exe'), ExpandConstant('-r "{app}\Data.srp {app}\Data.pcf"'), ExpandConstant('{tmp}'), '...',False) then break;
if not ISExec ( 0, 0, 0, ExpandConstant('{tmp}\srep.exe'), ExpandConstant('-mem512b -d -s -r "{app}\Data.pcf {app}\Data.arc"'), ExpandConstant('{tmp}'), '...',False) then break;
if not ISArcExtract ( 0, 0, ExpandConstant('{app}\Data.arc'), ExpandConstant('{app}\data1'), '', true, '', '', ExpandConstant('{app}'), notPCFonFLY {PCFonFLY}) then break;


Но вылазит ошибка на втором архиве... Хотя по идее должно работать.. Вообщем цель - распаковать .srep -> .pcf - в скрытом режиме а конечный архив .arc уже что б был виден в инсталляторе...

Буду очень признателен за помощь. Спасибо заранее .




© OSzone.net 2001-2012