Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
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 не прокатит
Ставил версии Unicode »
Может быть здесь собака зарыта?
R.i.m.s.k.y.
03-08-2010, 09:30
Может быть здесь собака зарыта »
В ANSI версии тоже ругается. Поделитесь, плиз, версиями Инно в которых Ultimate Test работает.
Еще вопросик - надо чтобы софтинка ставилась и в х32 и в х64
в секции Setup достаточно прописать ArchitecturesInstallIn64BitMode=х64 и все будет работать и в 32 битной ОС и в 64 ОС? или как правильно
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 ОС? или как правильно
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
если я не ставлю строчку 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
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.