Войти

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


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

krutx
12-11-2011, 10:26
Ну а может ктонибудь в мой скрипт вписать использование прекомп и создание бекапа (с удалением всех файлов из папки установки)

Vista-w
12-11-2011, 14:32
krutx,
В справке ISDon'а все подробно расписано.
Бекап то для чего?

krutx
12-11-2011, 18:12
krutx,
В справке ISDon'а все подробно расписано.
Бекап то для чего? »
ну если юзер выбирает папку где уже есть файлы, файлы переместятся в папку бекапа.

insombia
12-11-2011, 23:13
VASYAKRN,пожалуйста, удали мой скрипт с твоего сайта, я буду очень благодарен. Если же ты не удалишь, то мне придётся написать в тех. поддержку ucoz.ru. Твой сайт удалят, а тебя же забанят по физическому адресу.
P.S. Цитата: Друзья сайта
oszone.ru и ruboard.ru не соглашались быть партнёрами твоего сайта, ты нарушаешь этим правила.

VASYAKRN
13-11-2011, 00:24
insombia, Хорошо

LinkOFF
13-11-2011, 17:37
Что нужно прописать в скрипте чтоб удалялись папки с файлами?

ARS_23
13-11-2011, 18:06
Что нужно прописать в скрипте чтоб удалялись папки с файлами? »
ну поидее [UninstallDelete]
Name: {app}; Type: filesandordirs

LinkOFF
13-11-2011, 18:07
ну поидее »
Нет...во время установки

No4noylis
13-11-2011, 18:30
LinkOFF, хм... тогда может так???

[InstallDelete]
Name: {app}; Type: filesandordirs

LinkOFF
13-11-2011, 18:39
хм... тогда может так??? »
попробую
А через [code] как нибудь можно.У меня скрипт ISDone, я использую PackZIP и после упаковки папки в архив папка не удаляется

No4noylis
13-11-2011, 18:50
У меня скрипт ISDone, я использую PackZIP »
LinkOFF, с этого надо было начинать, здесь исправь:

if not ISPackZIP ( 0, 0, ExpandConstant('{app}\1a1\*'), ExpandConstant('{app}\1a1.pak'), 2, true ) then break;

Vista-w
13-11-2011, 18:59
LinkOFF,
[UninstallDelete]
Name: {app}\*.*; Type: filesandordirs // маска
Type: filesandordirs; Name: {app}

Belial4444
14-11-2011, 15:02
Здравствуйте, я изучаю инно сетап 2 день и мне нужна помощь, я использую модуль IsDone 0.5 final для распаковки архива 7з который лежит рядом с установочным файлом. Вопрос заключается в следующем: как можно сделать так, чтобы распаковка тех или иных архивов зависела от выбора компонентов, иными словами как засунуть архив в компонент без секции [Files], то есть например если я не поставлю галочку на "Основные файлы" то архив не будет извлекаться.
В справке вроде описано как подключить файлы в компоненты с помощью секции [Files], например:
[Components]
name: "RevEmu"; Description: "Эмулятор для игры по сети";
[Files]
Source: "C:\Project\repacks\rev_emu\*"; Components: RevEmu; DestDir: "{app}\"; Flags: external recursesubdirs skipifsourcedoesntexist
а мне надо без этого(без указания архива в секции файлов), мне надо чтобы архив который лежит рядом с установщиком распаковывался только когда отмечен нужный компонент, даже если он не прописан в секции файлов.
Благодарю за внимание.

FolDer98
14-11-2011, 16:05
Доброго времени)кто подскажет код добавления иконок папок через ботву?

Rikill
14-11-2011, 23:00
FolDer98, там есть примеры как подгрузить картинку. Иконка папки это и есть картинка. Просто стандарт прячешь, потом суёшь туда картинку.

Belial4444,
[Components]
name: "RevEmu"; Description: "Эмулятор для игры по сети";
[_code]
Comps1:=0;
TmpValue:=1;
if IsComponentSelected('RevEmu') then Comps1:=Comps1+TmpValue; //твой компонент
TmpValue:=TmpValue*2;

if not IS7ZipExtract ( 1, 0, ExpandConstant('{src}\архив.7z'), ExpandConstant('{app}'), false, '' ) then break; //единичка означает номер компонента

Belial4444
15-11-2011, 01:49
Rikill, спасибо но мне не помогло, наверное что-то я не так делаю:
[Кусок секции компонентов]
Name: "GameCore"; Description: "Файлы игры"; Types: polnaya viborochnaya; ExtraDiskSpaceRequired: 16106127360
Name: "RevEmu"; Description: "Эмулятор для игры по сети"; Types: polnaya viborochnaya
[Кусок секции код]
Comps1:=0;
TmpValue:=1;
if IsComponentSelected('GameCore') then Comps1:=Comps1+TmpValue;
TmpValue:=TmpValue*2;
repeat
MyError:=true;
if not ISDoneInitialize(ExpandConstant('{src}\records.inf'), $F777, Comps1,Comps2,Comps3, PCFVer, false, MainForm.Handle, {#NeedMem}, @ProgressCallback) then break;
repeat
if not IS7ZipExtract (1, 0, ExpandConstant('{src}\setup.bin'), ExpandConstant('{app}\'), false, '123') then break;

Всё равно извлекается всегда архив, даже если я сниму галки со всех компонентов, кстати параллельно вопрос, как сделать компонент по умолчанию выбранным если он не находится в группе, в справке не нашел такого флага, мне просто нужно чтобы компонент был выбран по умолчанию и пользователь не мог это изменить.И ещё есть вопрос, по нему не нашел ничего, как можно сделать кликабельный текст в файле ридми и просто в окне инсталлятора, например копирайт значок копирайта и сайт и при щелчке переходилось на сайт, заранее спасибо

Raf-9600
15-11-2011, 12:29
Ктонить может написать скрипт, который бы при распаковке файлов, если обнаруживает в устанавливаемой папке, файл с тем же именем и расширением что сейчас должен распаковаться, то сначала проверил CRC32 файла в папке, и если он совпал с тем CRC32 что я задал для этого файла, файл бы не распаковывался?

Gugle
15-11-2011, 12:42
Доброго времени суток!

В секции [Files] прописана папка с файлами, которую надо инсталить:

[Files]
Source: "C:\MyFolder\*"; DestDir: "{app}\MyFolder.0\";


При инсталяции в одном из окон указывается число этих папок. Сейчас я делаю копирование этих папок руками в секции code и в итоге получаю:
{app}\MyFolder.0\
{app}\MyFolder.1\
{app}\MyFolder.2\
...
{app}\MyFolder.N\

Можно как нибуть в секции files указать число папок, в которые надо проинсталить, а не писать свою функцию? Мне надо сохранить флаги при установке. Например, если папка такая есть и в ней есть этот файл, то проверить версии и заменить только, если у пользователя стоит младшая версия файла.

FolDer98
15-11-2011, 18:56
Добрый вечер)как сделать такие чекбоксы без ботвы

El Sanchez
16-11-2011, 14:54
Добрый вечер)как сделать такие чекбоксы без ботвы »
FolDer98,

Использовать ISSkin.dll и свой скин.
Извратиться и вместо чекбокса использовать TNewCheckListBox с одним элементом и использовать LoadBtnBmpFromBitmap/LoadBtnBmpFromFile.
Хук на события отрисовки и рисовать самому, что сложнее.




© OSzone.net 2001-2012