Войти

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


Страниц : 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 126 127 128 129 130 131 132 133

nik1967
03-08-2010, 09:03
R.i.m.s.k.y.,
А Inno ISCmplr Setup 5.3.10 build 100625 установил?

R.i.m.s.k.y.
03-08-2010, 09:10
А Inno ISCmplr Setup 5.3.10 build 100625 установил »
Йес оф кос!
Ставил сначала инно, потом ISTool, потом Inno_ISCmplr_Setup100625(7zip).zip и InnoCompiler100707(7zip).zip.
Ставил версии Unicode

Ну это не совсем то, что я хотел, но за неимением другого: подойдёт »
Пардон, а вы не haali splitter ставите? Если haali - там немного не так, простой регистрацией dll не прокатит

nik1967
03-08-2010, 09:25
Ставил версии Unicode »
Может быть здесь собака зарыта?

R.i.m.s.k.y.
03-08-2010, 09:30
Может быть здесь собака зарыта »
В ANSI версии тоже ругается. Поделитесь, плиз, версиями Инно в которых Ultimate Test работает.

Еще вопросик - надо чтобы софтинка ставилась и в х32 и в х64
в секции Setup достаточно прописать ArchitecturesInstallIn64BitMode=х64 и все будет работать и в 32 битной ОС и в 64 ОС? или как правильно

nik1967
03-08-2010, 13:24
R.i.m.s.k.y.,
У меня работает:
http://rghost.ru/2257493/thumb.png (http://rghost.ru/2257493.view)
Версия Inno на скриншоте, немного правленый Ultimate Test Black (http://rghost.ru/2257513)
Inno взят оттуда же.

R.i.m.s.k.y.
03-08-2010, 14:11
У меня работает »
Дык и у меня работал, чего теперь поставить надо штоп опять заработал?
Положите свой inno (можно папку с установленным инно, согласен на любую версию)

повторяю вопрос: надо чтобы софтинка ставилась и в х32 и в х64
в секции Setup достаточно прописать ArchitecturesInstallIn64BitMode=х64 и все будет работать и в 32 битной ОС и в 64 ОС? или как правильно

nik1967
03-08-2010, 14:59
R.i.m.s.k.y.,
Ну если это чем то поможет: Inno (http://rghost.ru/2258660) .

надо чтобы софтинка ставилась и в х32 и в х64 »
Ну в принципе Inno сам знает куда пихать в зависимости от разрядности винды. А если конкретно нужно что то установить в x64 или x32, то можно воспользоваться встроенной функцией IsWin64 (not IsWin64)
Конкретный пример:

[Run]
Filename: {src}\Redist\DirectX\DXSETUP.exe; WorkingDir: {src}\Redist\DirectX\; Parameters: /silent; Flags: waituntilterminated; Check: DirectX; BeforeInstall: DirectXProgress;
Filename: {src}\Redist\VisualC++\vcredist_x86.exe; WorkingDir: {src}\Redist\VisualC++\; Parameters: /q; Flags: waituntilterminated; Check: not IsWin64; BeforeInstall: visualcProgress;
Filename: {src}\Redist\VisualC++\vcredist_x64.exe; WorkingDir: {src}\Redist\VisualC++\; Parameters: /q; Flags: waituntilterminated; Check: IsWin64; BeforeInstall: visualcProgress;

R.i.m.s.k.y.
03-08-2010, 15:19
Ну в принципе Inno сам знает куда пихать в зависимости от разрядности винды »
Пасиб за архивчик, поставил иино, потом просто туда же распаковал архивчик - заработало!
IsWin64 уже порастыканы по скрипту, дело в том что если я не ставлю строчку ArchitecturesInstallIn64BitMode=x64 - то в реестр не заносятся некоторые ключи, ставлю эту сточку - сразу все заносится. Отсюда и вопрос - откомпиленный с этой строчкой проект на 32битной ОС сработает? Я пробовал - ругается че-то непотребное вылезает, типа "приложение потом не может деинсталлировано в среде не х64", хрень какая-то.

Diesel123denpda
03-08-2010, 22:28
Привет!!! Люди помогите как написать скрипт, чтобы, например при установке обновления, инсталлятор проверял версию программы, которую хочешь обновить, через реестр для 64-битной системы

[HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GSC Game World\STALKER-SHOC]
"InstallPath"="E:\\Program Files (x86)\\GSC World Publishing\\S.T.A.L.K.E.R"
"InstallLang"="ru"
"InstallSource"="stk-rus-pack-starforce-keydisk-r"
"InstallCDKEY"=""
"InstallUserName"=""
"BonusPack1"=dword:00000000
"BonusPack2"=dword:00000000
"UnInstConfirm"="Удалить сохраненные игры и профили?"
"InstallPatchID"=dword:0000054c
"InstallVers"="1.0004"

R.i.m.s.k.y.
04-08-2010, 09:41
проверял версию программы »
Ну проверил - а дальше что? распихать по папкам или как?
Пока могу предложить через Check:

[Files]
Source: stalker_update\*; DestDir: {app}; Check: Is64Stalker
[_Code]
function Is64Stalker(): Boolean;
Var vers: string;
begin
if not IsWin64 then Result := False;
if IsWin64 then begin
RegQueryStringValue(HKLM, 'SOFTWARE\Wow6432Node\GSC Game World\STALKER-SHOC','InstallVers', vers);
if vers = '1.0004' then Result := True else Result := False;
end;
end;

Если Is64Stalker возвращает True то файлы из папки stalker_update\* копируются в {app}. Такую проверку (Check: Is64Stalker) можно прикрутить к любой секции, скроме Code и Setup

Ставьте условие точнее - распишу поподробнее если смогу.

Еще нюанс - в секции Setup может придется прописать ArchitecturesInstallIn64BitMode=x64. Сам про него спрашиваю - камрады Серега и Хабетдин молчат, а здесь наверное больше никто не расскажет про что этот параметр. У меня без этой строчки в реестр не заносились данные в вин7-64. С нею - заносятся. Но вот назначение и смысл ее мне непонятны. Справку читал первым делом, яндексил.

R.i.m.s.k.y.
04-08-2010, 10:21
Еще вот хотел спросить - при выходе из сетапа инно он спрашивает "... Выйти из программы установки?"
Подскажите, пожалуйста, как отключить это сообщение что бы при нажатии кнопки Отмена/закрыть это сообщение не отсвечивало, чтобы сетап закрылся сразу без предупреждений

R.i.m.s.k.y.
04-08-2010, 11:18
чтобы сетап закрылся сразу без предупреждений »
Отвечаю сам себе (может кому то пригодится)

procedure CancelButtonClick(CurPageID: Integer; var Cancel, Confirm: Boolean);
begin
Confirm:=False;
Cancel:=True;
end;

Ответ был в шапке темы.

Но вопрос про ArchitecturesInstallIn64BitMode=x64 и ArchitecturesAllowed остался - что они означают, для чего нужны, как ведут себя в 32битных ОС. Справку читал - не понял.

Habetdin
04-08-2010, 13:11
R.i.m.s.k.y., ArchitecturesAllowed - для каких архитектур разрешен запуск инсталлятора
При ArchitecturesAllowed=x64 ia64 на x86 инсталлятор выдаст ошибку

ArchitecturesInstallIn64BitMode - на какой архитектуре установить программу в x64-режиме (x64 ia64)
По умолчанию программа из инсталлятора ставится как 32-битная (в %ProgramFiles(x86)% например)

R.i.m.s.k.y.
04-08-2010, 13:16
программу в x64-режиме (x64 ia64 »
Что инно понимает под x64/ia64? win-64/itanium соответсвенно?
Если инсталлер ArchitecturesInstallIn64BitMode=х64 запустить на 32битной ОС он отработает в 32битном режиме?

Habetdin
04-08-2010, 13:17
R.i.m.s.k.y., X86-64 (http://ru.wikipedia.org/wiki/X86-64) и IA-64 (http://ru.wikipedia.org/wiki/IA-64) соответственно

R.i.m.s.k.y.
04-08-2010, 13:22
X86-64 и IA-64 соответственно »
Если инсталлер ArchitecturesInstallIn64BitMode=х64 запустить к примеру на трипне, который про х86-64 отродясь не слыхивал - инсталлер выдаст ошибку или отработает на 32битном режиме?

Habetdin
04-08-2010, 13:26
R.i.m.s.k.y., если вы не трогали ArchitecturesAllowed
отработает на 32битном режиме »

R.i.m.s.k.y.
04-08-2010, 13:29
Ну это смотря что вы запакуете »
ffdshow x86, x64, haali, kmp/gom/svp
в скрипте уже везде порасставлены IsWin64
Rimpack в общем http://rimsky.name

Serega
04-08-2010, 16:01
если я не ставлю строчку ArchitecturesInstallIn64BitMode=x64 - то в реестр не заносятся некоторые ключи, ставлю эту сточку - сразу все заносится. »
Интересно, но честно сказать с реестром не проверял, да 64-х битной системы нет под рукой чтоб проверить. На самом деле, эта команда говорит компилятору, что в инсталляторе присутствуют файлы работающие только на 64-х битной системе и по умолчанию эта директива не заполнена, т.е. пустая и как уже сказал Habetdin:
По умолчанию программа из инсталлятора ставится как 32-битная »
т.е. если не заполняем эту директиву, то компилятор будет считать, что инсталлятор рассчитан на 32-х битную систему...
откомпиленный с этой строчкой проект на 32битной ОС сработает? Я пробовал - ругается че-то непотребное вылезает, типа "приложение потом не может деинсталлировано в среде не х64 »
специально попробовал, у меня XP SP2, всё прекрасно установилось и деинсталлировалось

R.i.m.s.k.y.
04-08-2010, 16:56
если не заполняем эту директиву, то компилятор будет считать, что инсталлятор рассчитан на 32-х битную систему »
На вин7-64 если не стоит директива ArchitecturesInstallIn64BitMode=x64 - не заносятся параметры в реестр

к примеру
Root: HKLM; SubKey: SOFTWARE\Wow6432Node\GNU\ffdshow; ValueType: string; ValueName: pth; ValueData: {app}\FFDShow; Flags: uninsdeletevalue deletevalue; Check: IsWin64; Components: ffd
Root: HKLM; SubKey: SOFTWARE\GNU\ffdshow64; ValueType: string; ValueName: pth; ValueData: {app}\FFDShow64; Flags: uninsdeletevalue deletevalue; Check: IsWin64; Components: ffd
причем не срабатывает даже
Check: IsWin64; Filename: {syswow64}\reg.exe; Parameters: /f add SOFTWARE\Wow6432Node\GNU\ffdshow /v pth /t REG_SZ /d {app}\FFDShow; StatusMsg: Регистрация RimPack; Components: ffd; Flags: runhidden waituntilterminated
Check: IsWin64; Filename: {syswow64}\reg.exe; Parameters: /f add HKLM\SOFTWARE\GNU\ffdshow64 /v pth /t REG_SZ /d {app}\FFDShow64; StatusMsg: Регистрация RimPack; Components: ffd; Flags: runhidden waituntilterminated
ключей

ставлю ArchitecturesInstallIn64BitMode=x64 - заносятся и без reg import
Отсюда и вопрос возник - как с такой директивой дистр чувствует себя на 32битных ОС. Habetdin уже ответил - нормально.
Ибо без нее на 64 битной ОС весьма хреново.




© OSzone.net 2001-2012