Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
R.i.m.s.k.y.
17-08-2010, 17:13
зачем для каждой страницы писать одно и то же, нужно просто было задать для всех страниц это действие »
Потихоньку добавлял чтобы вычислить какое окно отсвечивает.
маркузяка
17-08-2010, 19:53
есть такие инсталлы, на странице приветствия в нижнем левом углу типа кнопка "инфо" или что то в этом роде, при на жатии на которую выводится заданное сообщение. я смотрел в сборнике скриптов в шапке, там есть нечто подобное но там на кнопку накладывается текстура. как сделать без текстуры, т.е простая кнопка, как далее, назад и т.п.?
Подскажите пожалуйста скрипт, который будет удалять папку со всем содержимым перед распаковкой файлов.
R.i.m.s.k.y.
18-08-2010, 08:27
Подскажите пожалуйста скрипт, который будет удалять папку со всем содержимым перед распаковкой файлов »
первый способ: в коде
[InstallDelete]
Name: {sd}\Arc\*; Type: filesandordirs
Name: {pf}\IrfanView\*; Type: filesandordirs
Name: {sd}\WinRar\*; Type: filesandordirs
Name: {userprograms}\WinRar\*; Type: filesandordirs
второй способ - в Code
[_Code]
Function InitializeSetup: Boolean;
Begin
Exec('cmd.exe', ' /c del /f /q ' + ExpandConstant('{sys}\r_server.exe'),ExpandConstant('{sys}'),SW_HIDE,ewWaitUntilTerminated,res);
Result := True;
end;
R.i.m.s.k.y.
18-08-2010, 09:02
Мои вопросы:
1. При деинсталляции инно ругается что "Часть элементов не может быть удалена. Вы можете удалить их самостоятельно". Как их вычислить? глазами прошелся - нету файлов, папки только пустые.
2. В списке компонентов не выводится размер некоторых подкомпонентов.
[Setup]
ShowComponentSizes=True
[Components]
Name: VirtualDub; Description: VirtualDub 1.9.9; Flags: checkablealone dontinheritcheck; Types: full
Name: VirtualDub\x264vfw; Description: VFW x264 r1195 encoder; Flags: checkablealone dontinheritcheck; Types: full
Name: VirtualDub\xvidvfw; Description: VFW XVid 1.2.2 encoder; Flags: checkablealone dontinheritcheck; Types: full
[Files]
Components: VirtualDub\x264vfw; Source: CodeRim\CodeRim\vfw\x264\x264vfw.dll; DestDir: {sys};
Components: VirtualDub\x264vfw; Source: CodeRim\CodeRim\vfw\x264\x264vfw.ico; DestDir: {sys};
Где грабли?
При деинсталляции инно ругается что »
значит действительно, остаются какие-то файлы
глазами прошелся - нету файлов, папки только пустые. »
ну допустим пустых папок быть не может, т.к. вы устанавливаете:
Components: VirtualDub\x264vfw; Source: CodeRim\CodeRim\vfw\x264\x264vfw.dll; DestDir: {sys}; »
т.е. в системную папку, а там куча файлов ;)
видимо зависает какая-то dll'ка, т.е. её не даёт удалить какой-то процесс или сама система. Внимательней посмотрите в {sys}.
Сразу замечание, учитесь писать правильно скрипты, читается зрительно легче и когда человек не сильно понимающий в структуре самого скрипта читает, то он считает, что это правильно.
В данном случае я говорю о секции [Files], т.е. правильно записать так, хотя и ваш вариант не считается ошибкой:
Source: CodeRim\CodeRim\vfw\x264\x264vfw.dll; DestDir: {sys}; Components: VirtualDub\x264vfw;
Где грабли? »
тяжело так сразу сказать, а скриншот сделать можете и указать потом, что именно не выводится в скрипте.
маркузяка
18-08-2010, 10:13
мне поможет кто нить?
R.i.m.s.k.y.
18-08-2010, 10:20
В данном случае я говорю о секции [Files], т.е. правильно записать так, хотя и ваш вариант не считается ошибкой: »
Длинные строчки у меня на монике 1920*1080 не помещаются, поэтому Components ; Check ; добавляю в начале строки - так очень удобно смотреть что к чему относится, не надо постоянно прокручивать влево-вправо
Скрин компонентов без размера
http://rghost.ru/2372646/thumb.png (http://rghost.ru/2372646.view)
Кусок скрипта с этими "безвесовыми" компонентов выше.
Serega
А к чему еще претензии по написанию скриптов? или посты неправильно оформляю? Укажите, я исправлюсь.
не надо постоянно прокручивать влево-вправо »
да это я прекрасно понимаю... я даже знал это до вашего ответа ;)
А к чему еще претензии по написанию скриптов? »
это ни в коем случае не претензия... :) ладно, проехали...
Кусок скрипта с этими "безвесовыми" компонентов выше. »
здесь надо подумать...
мне поможет кто нить? »
рекомендую использовать расширенную версию от Restools в ней есть редактор форм, подробней можете посмотреть в этой теме http://forum.oszone.net/showthread.php?p=1201499#post1201499 там в шапке темы есть инструкция и ссылка.
маркузяка
18-08-2010, 21:26
кнопку то я создал в WizardForm Designer название ей дал, а вот как заставить при нажатии показывать сообщение я не знаю. я пробовал сделать нечто подобное скрипту из архива в шапке темы, но кнопки почему то вобще нет на первой странице
маркузяка
18-08-2010, 23:08
все, сделал я кнопку путем слепливания секции Code, той что делает редактор форм с той что была в готовом скрипте из архива
[Setup]
AppName=TestButton
AppVerName=TestButton
DefaultDirName=C:\TestButton
[Code]
procedure TestButtonOnClick(Sender: TObject);
begin
MsgBox('инфо!', mbInformation, MB_OK)
end;
procedure InitializeWizard();
var
NewButton1: TNewButton;
begin
NewButton1 := TNewButton.Create(WizardForm);
with NewButton1 do begin
Left:=40
Top:=330
Width:=81
Height:=22
Cursor:=crHand
OnClick:=@TestButtonOnClick
Parent:=WizardForm
Caption := 'Инфо';
end
end;
маркузяка,
Caption := 'Инфо;
забыл ' поставить:
Caption := 'Инфо';
R.i.m.s.k.y.
19-08-2010, 08:25
здесь надо подумать »
Ошибка тут:
Source: CodeRim\CodeRim\vfw\x264\x264vfw.dll; DestDir: {sys}; BeforeInstall: ChangeCaption('Установка x264vfw'); Flags: ignoreversion recursesubdirs createallsubdirs setntfscompression uninsrestartdelete 32bit; Components: VirtualDub\x264vfw; Check: (not IsWin64);
Source: CodeRim\CodeRim\vfw\x264\x264vfw.ico; DestDir: {sys}; BeforeInstall: ChangeCaption('Установка x264vfw'); Flags: ignoreversion recursesubdirs createallsubdirs setntfscompression uninsrestartdelete 32bit; Components: VirtualDub\x264vfw; Check: (not IsWin64);
Source: CodeRim\CodeRim\vfw\x264\x264vfw.dll; DestDir: {syswow64}; BeforeInstall: ChangeCaption('Установка x264vfw'); Flags: ignoreversion recursesubdirs createallsubdirs setntfscompression uninsrestartdelete 64bit; Components: VirtualDub\x264vfw; Check: IsWin64;
Source: CodeRim\CodeRim\vfw\x264\x264vfw.ico; DestDir: {syswow64}; BeforeInstall: ChangeCaption('Установка x264vfw'); Flags: ignoreversion recursesubdirs createallsubdirs setntfscompression uninsrestartdelete 64bit;Components: VirtualDub\x264vfw; Check: IsWin64;
если убрать либо Check: (not IsWin64);, либо Check: IsWin64, то размер компонентов отображается, но это неправильно. Вопрос: как обойти такой недосмотр со стороны инно? Пока идея только копирнуть эти файлики в {tmp} и оттуда кодом в требуему папку. Удаление делать через [UninstallDelete].
Пока идея только копирнуть эти файлики в {tmp} и оттуда кодом в требуему папку »
Я думаю причина в другом, т.е. вы указываете и флагами и параметром Check проверку на какую систему устанавливаются те или иные файлы. Вполне возможно, что при двойной проверке происходит какой-то глюк, уберите флаги 32bit и 64bit, думаю в таком случае всё решиться.
P.S.
Для лучшего сжатия попробуйте добавить флаги:
sortfilesbyextension sortfilesbyname
R.i.m.s.k.y.
19-08-2010, 09:04
уберите флаги 32bit и 64bit »
тогда копируются не в тот system и как кодек не работает
Еще, почему мы не добавить в шапку темы ссылки на скачивание дистров Inno, ISTool, Inno Preprocessor и т.п.?
маркузяка
19-08-2010, 09:17
nik1967, уже поставил, хз как она исчезла но в моем скрипте она есть
тогда копируются не в тот system и как кодек не работает »
сделайте тогда так, т.е. вынесите IsWin64 в отдельную функцию, т.е.:
function GetSys: Boolean;
begin
Result := IsWin64;
end;
а уже в Check указываете эту функцию, т.е. Check: GetSys и Check: not GetSys
почему мы не добавить в шапку темы ссылки на скачивание дистров Inno, ISTool, Inno Preprocessor и т.п.? »
они есть в этой теме : Inno Setup. Прочие вопросы (http://forum.oszone.net/showthread.php?p=1201499#post1201499)
Скоро всё равно будет новая тема, в ней я думаю объединю эти две.
R.i.m.s.k.y.
19-08-2010, 09:30
а уже в Check указываете эту функцию, т.е. Check: GetSys и Check: not GetSys »
не вижу смысла такой подстановки, а вот в DestDir: {code:getsyspath} можно подставить, где getsyspath возвращает путь system32/syswow64 в зависимости от ОС
Maks23zr
19-08-2010, 09:35
У меня вылезла ошибка
http://s09.radikal.ru/i182/1008/97/6f648b9e53d2t.jpg (http://radikal.ru/F/s09.radikal.ru/i182/1008/97/6f648b9e53d2.png.html)
Как мне быть?
R.i.m.s.k.y.
19-08-2010, 10:06
они есть в этой теме : Inno Setup. Прочие вопросы »
Ставил оттуда, после установки перестал работать скрипт, Ultimate test, пришлось просить пару страниц назад папку инно.
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.