Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 8]
R.i.m.s.k.y.
03-10-2017, 21:38
Вы же видите что ему в не догадку поменять »
я тоже сначала так думал пока vk_k14m@vk не поменял на AA2Decrypt_unpack
хотя наверное я слишком многого ждал
vk_k14m@vk
03-10-2017, 22:22
Вы же видите что ему в не догадку поменять »
Я бы поменял оба значения, если бы они были одинаковыми.
Function Уже_установленное_приложение():boolean;
begin
if это_приложение_уже_установлено then Result := True else Result := False;
end;
Я ж думал что Уже_установленное_приложение и это_приложение_уже_установлено должны называться по разному. Я даже думал что это_приложение_уже_установлено нужно заменить на название игры которую устанавливается.
Хватит об этой теме уже. Я надеялся что мне принесут все готовое, но сильно губу раскатал. С кем не бывает. Есть еще пара других вопросов. Я уже практически закончил свой установщик и скоро от вас отстану)
1) Для игры есть две версии русификатора, v1 для "чистой" игры, и v5 для игры с антицензором. И так же для v5 есть еще маленькая опция которой нет в v1.
http://i89.fastpic.ru/big/2017/1003/8c/5d72dad6e98b71c394e4dc5a82688b8c.png
И вот эта опция (ограничение/без ограничений) должна быть неактивна если не поставить галочку на антицензор.
[Components]
Name: "Main"; Description: "Artificial Academy 2"; Types: Main Main_Ru MKIII SVII custom;
Name: "Anticensor"; Description: "Антицензор"; Types: custom
Name: "Russification"; Description: "Русификатор"; Types: Main_Ru custom;
Name: "Russification\Hlimitation_yes"; Description: "Ограничение H-сцен"; Types: MKIII SVII custom; Flags: exclusive
Name: "Russification\Hlimitation_no"; Description: "Без аграничения"; Types: custom; Flags: exclusive
Можно ли это как-то устроить?
2) Вернемся к версии русификатора в секции [Files] добавлены две папки, в одной лежат файлы от v1 во второй от v5.
Source: "D:\Inno Setup\Installer\5a [AA2][Interface][Russian user interface v.1][AVA]\Artificial Academy 2\*"; DestDir: "{app}"; Components: Russification; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\5b [AA2][Interface][Russian user interface v.5][AVA]\Artificial Academy 2\*"; DestDir: "{app}"; Components: Russification and Anticensor; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
И вот v1 не должна устанавливаться если был выбран компонент "Anticensor". Хотел сделать Components: Russification not Anticensor; но так не работает.
З.Ы. То как я написал во второй строчке Components: Russification and Anticensor; это верно? Сам InnoSetup ошибку не показывал.
3) Опять влияние компонентов но уже на ярлыки. Нужно что б при выборе компонентов Russification и Anticensor менялся главный исполняемый файл игры. Тоесть менялся файл на который будут ссылаться созданные ярлыки. По умолчанию исполняемый файл {app}\AA2Play.exe, а с этими компонентами им должен стать {app}\illusion_locale_loader.exe.
Опять же спрашиваю, можно ли такое осуществить...
4) Если пункт 3 можно сделать, то можно ли будет добавить к создаваемому ярлыку аргументы? А если конкретнее
"...\illusion locale loader.exe" /MKIII - если был выбран компонент Anticensor\MKIII и
"...\illusion locale loader.exe" /CVII - если был выбран компонент Anticensor\SVII
http://i89.fastpic.ru/big/2017/1003/58/ea4979470402fdf2533025c43b0f8358.png
5) Снова ярлыки. Можно изменить иконку ярлыка?
6) Последнее. У меня почему-то при запуске установщика сразу открывается страница с выбором пути установки игры. Насколько я помню сначала должна открываться страница на которой слева отображается изображение WizardImageFile. У меня почему то это пропускается...
http://i91.fastpic.ru/big/2017/1003/d5/21cf3818466315bc614c298e7e17bed5.png
Последнее. У меня почему-то при запуске установщика сразу открывается страница с выбором пути установки игры.
У вас наверное версия INNO одна из последних.
[Setup]
DisableWelcomePage=no
В последних версиях страница приветствия по умолчанию отключена.
И вот эта опция (ограничение/без ограничений) должна быть неактивна если не поставить галочку на антицензор.
Эти компоненты надо объединить
Name: "Anticensor\Russification";
Name: "Anticensor\Russification\Hlimitation_yes";
Name: "Anticensor\Russification\Hlimitation_no";
как то так
vk_k14m@vk
03-10-2017, 23:03
У вас наверное версия INNO одна из последних.
[Setup]
DisableWelcomePage=no
В последних версиях страница приветствия по умолчанию отключена. »
5.5.8 у меня версия. Спасибо за ответ, теперь появилась)
Эти компоненты надо объединить
Name: "Anticensor\Russification";
Name: "Anticensor\Russification\Hlimitation_yes";
Name: "Anticensor\Russification\Hlimitation_no";
как то так »
Это не подходит. Ведь есть версия Русификатор которую можно поставить и без антицензора. Нужно что-то другое...
vk_k14m@vk
В первом коде и во втором вы противоречите себе
И вот эта опция (ограничение/без ограничений) должна быть неактивна если не поставить галочку на антицензор.
И вот v1 не должна устанавливаться если был выбран компонент "Anticensor".
Эти две строки противоречат друг другу
vk_k14m@vk
03-10-2017, 23:21
В первом коде и во втором вы противоречите себе
И вот эта опция (ограничение/без ограничений) должна быть неактивна если не поставить галочку на антицензор.
И вот v1 не должна устанавливаться если был выбран компонент "Anticensor".
Эти две строки противоречат друг другу »
Именно. Есть же два русификатора, один для антицензора другой для чистой игры. Вот и получается что если антицензор выбран, то должен ставится русификатор для него, а русификатор под чистую игру не должен ставится. Так же русификатор для чистой игры не имеет опций, и если будет выбрана одна из них (ограничение/без ограничений) то она либо поломает игру, либо не будет работать.
vk_k14m@vk
[Components]
Name: "Anticensor\Russification"; Description: "Русификатор"; Types: custom;
Name: "Anticensor\Russification\Hlimitation_yes"; Description: "Ограничение H-сцен"; Types: custom; Flags: exclusive
Name: "Anticensor\Russification\Hlimitation_no"; Description: "Без аграничения"; Types: custom; Flags: exclusive
[Files]
Source: "ru.png"; DestDir: "{app}"; Components: Anticensor\Russification\Hlimitation_yes; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "en.png"; DestDir: "{app}"; Components: Anticensor\Russification\Hlimitation_no; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
А так тоже не пойдет?
PS: Вы это делаете для себя, или для всех?
El Sanchez
04-10-2017, 15:23
А между двойкой и звездочкой должна стоять наклонная черта. Но я их специально по убирал что б протестировать работу установщика, и не ждать 8 часов пока все запакуется. »
vk_k14m@vk, ну и пакуйте для тестов несколько небольших pp-файлов и оставьте один компонент к ним относящийся, в [Setup] выставить Compression=none и вперед.
Сейчас у меня все выглядит так:
AA2Decrypt_unpack.bat - хотелось бы что б запускался только при повторной установке.
»
vk_k14m@vk, плохо все будет. Что при первой, что при повторной установках. Откройте консоль (Пуск - Выполнить - сmd), скопировать выделенное dir "D:\Inno Setup\Installer" /ad /s/b>"D:\Inno Setup\Installer\files.txt", вставить в консоли (ПКМ - Вставить), нажать Enter, полученный файл files.txt из D:\Inno Setup\Installer выкладываете сюда (прикрепить к сообщению).
vk_k14m@vk
04-10-2017, 16:55
А так тоже не пойдет? »
Это тоже самое. Говорю же, есть два русификатора. Первый можно ставить и без антицензора. Значит какой смысл запихивать русификатор под антицензор? Таким образом русификатор только для антицензора можно будет поставить.
PS: Вы это делаете для себя, или для всех? »
Парился бы я так. Для себя я бы сразу всю игра запаковал без этой возни с компонентами.
Неужели никак нельзя это устроить? Может дополнительные страницы создать, и на них некоторые компоненты выбирать. Например на главной странице оставить антицензор и русификатор, а вторая страница будет открываться только если на антицензоре и русификаторе поставили галочки, и уже на второй странице выбирать опцию ограничение/без ограничений.
в [Setup] выставить Compression=none и вперед. »
65 гигов для теста. Дорогое удовольствие
плохо все будет. Что при первой, что при повторной установках. Откройте консоль (Пуск - Выполнить - сmd), скопировать выделенное dir "D:\Inno Setup\Installer" /ad /s/b>"D:\Inno Setup\Installer\files.txt", вставить в консоли (ПКМ - Вставить), нажать Enter, полученный файл files.txt из D:\Inno Setup\Installer выкладываете сюда (прикрепить к сообщению). »
Это ты меня просишь список папок показать? Ладно держи (https://www.dropbox.com/s/rv4l5b0tdmvgahn/files.txt?dl=0). К слову в *.рр архивы будут запакованы все папки которые начинаются на data\jg2...
З.Ы. Ваш файл объемом 117.2 Kb превышает предел в 97.7 Kb, установленный на форуме для этого типа файлов.
R.i.m.s.k.y.
04-10-2017, 17:00
Дорогое удовольствие »даже если
ну и пакуйте для тестов несколько небольших pp-файлов »
?
Неужели никак нельзя это устроить? »
всё можно если осторожно
я вот уже вторую страницу не могу догнать краями чего всё-таки нужно сделать
распиши по пунктам
0. Установщик состоит из компонентов: ...
0.1 каждому компоненту соответствует папка ...
1. если программа не установлена
1.1 берем это файло
1.2 кладем сюда
1.3 запускаем это
2 если программа установлена
2.1 кладем это файло сюда
2.2 запускаем это
2.3 копируем остальное файло туда
даже лучше блоксхему нарисуй что в каких случаях ставится/запускается/распаковывается/закукоживается
самому проще будет
и это, я наверное первый буду, а каков критерий определения наличия уже установленной проги? это отсылка к if это_приложение_уже_установлено »
vk_k14m@vk
04-10-2017, 17:27
R.i.m.s.k.y., уже матом хочется сказать. Как ты узнаешь установлен у тебя на компе например Microsoft Visual C++ 2015 года. Если он уже установлен и ты снова попытаешься его установить, установщик скажет тебе что он уже установлен? Или как нивчем не бывало продолжит установку? Если ты поставил на комп игру Doom. А потом случайно снова запустил установщик. Ну забыл ты что игра у тебя уже есть, склероз старческий. Тебе игра предложит установиться в тоже самое место, где она уже стоит. Откуда она это знает? Может она в реестре прописываеться? Что б потом через программы и компоненты ее можно было удалить. Или как то иначе?
Как все должно работать, в очередной раз тебе объясняю. Ты первый раз запустил установщик. Установщик проверяет есть ли такая игры на ПК, или еще нету. Если нету. то файл AA2Decrypt_unpack.bat не должен запускаться перед установкой.
Если ты запускаешь установщик n-раз. Он проверяет установлена ли на компе эта игра или нет. Если игра установлена, то файл AA2Decrypt_unpack.bat запускается сразу после распаковки.
Все. Это ж элементарно. Не нужно быть гением что б это понять.
И вообще. Я же сказал закрыть эту тему. Если она для вас настолько сложная, не нужно в нее вникать. Просто забудь.
даже лучше блоксхему нарисуй что в каких случаях ставится/запускается/распаковывается/закукоживается
Супер! Я ЗА. 4 страница подходит к концу, результат нулевой. Видимо данному товарищу нужно на пальцах показывать или за спиной стоять.
Это ты меня просишь список папок показать? Ладно держи.
То что в текстовом файле, это список папок? или же и файлов?
vk_k14m@vk
04-10-2017, 17:42
R.i.m.s.k.y., еще раз тебе расскажу как все работает.
Вот смотри, внизу список которые распаковывает установщик. В каждой такой папке лежит 10-400 файлов. После их распаковки, в самом конце запускается файл AA2Decrypt.bat который запаковывает каждую эту папку в *.рр архив, а саму папку удаляет.
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e00_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e01_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e01_00_HEXAOC_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e01_00_HEXAOC_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e01_00_HEXAOC_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_04
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_05
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_00_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_01_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_01_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_01_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_01_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_01_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_04
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_05
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_02_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e02_03_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e03_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e04_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e05_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e05_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e05_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e05_00_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e06_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2e07_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_04
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_05
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_00_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_01_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_01_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_01_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_01_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_01_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_04
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_05
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_02_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_HEXA
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_HEXAOC
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p00_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p00_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p00_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p00_00_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p00_00_04
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_03
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_Q
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_R
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_S
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_T
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_HEXA_U
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_EXTRA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_H5_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_H5_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_H5_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p01_00_SVII_X
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_Q
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_R
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_S
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_T
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_HEXA_U
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_EXTRA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_H5_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_H5_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_H5_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p03_00_SVII_X
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_02
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_Q
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_R
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_S
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_T
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_HEXA_U
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_D
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_E
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_EXTRA_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_F
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_G
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_H
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_H5_A
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_H5_B
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_H5_C
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_I
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_J
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_K
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_L
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_M
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_O
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p04_00_SVII_P
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a01_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a02_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a03_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a04_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a05_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a06_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a07_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a08_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a09_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a10_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a11_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a12_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a13_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a14_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a15_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a16_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a17_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a18_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a19_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a20_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a21_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a22_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_a23_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s01_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s02_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s03_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s04_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p05_s05_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p06_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p07_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p07_00_01
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p08_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_00_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_01_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_02_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_03_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_04_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_05_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_06_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_07_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_08_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_09_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_10_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_11_00
D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2p09_12_00
А теперь представь что кто-то установил чистую игру, без дополнительных компонентов. А потом решил что-то добавить? Ему придется удалять игру полностью и устанавливать с нуля. По тому что AA2Decrypt.bat не умеет изменять уже запакованные архивы. Им можно либо полностью запаковать либо полностью распаковать. Если попробовать установить игру снова, то снова распакуются те папки сверху. И AA2Decrypt.bat снова их запакует, но получатся дубликаты например jg2e00_00_00.pp и jg2e00_00_00.bak0.pp. По тому что так работает AA2Decrypt_fix.exe который запускает AA2Decrypt.bat.
Вот и получается, что при повторной установке, что б все работало как надо. Все *.рр архивы нужно снова сделать папки, а сами архивы удалить. Это и делает AA2Decrypt_unpack.bat.
То что в текстовом файле, это список папок? или же и файлов? »
В видишь в конце каждого пути раширение? Например D:\Inno Setup\Installer\1 Artificial Academy 2\Artificial Academy 2\data\jg2el02_03_00.txt? Нет? Так может это папки? К чему вообще спрашивать если сам мне команду написал...
vk_k14m@vk
04-10-2017, 18:03
ZVSRus, вот держи список папок вместе с файлами
https://www.dropbox.com/s/rv4l5b0tdmvgahn/files_new.txt?dl=0
Но для этого я немного другую команду прописывал.
dir "D:\Inno Setup\Installer" /ad /s /a /b /-p /o:gen >"D:\Inno Setup\files.txt"
В видишь в конце каждого пути расширения?
Вот по этому и спросил, что расширения не вижу, вдруг забыл? 1151 папка это круто!
R.i.m.s.k.y., уже матом хочется сказать. Как ты узнаешь установлен у тебя на компе например Microsoft Visual C++ 2015 года. Если он уже установлен и ты снова попытаешься его установить, установщик скажет тебе что он уже установлен?
А что вы обижаетесь, как вы задаете вопросы, так вам и отвечают. Как проверить что установлено, элементарно, даже средствами INNO. Если в секции [Setup] поставить директиву DirExistsWarning=yes тогда установщик при повторной установке будет видеть путь установки что прописан в директиве DefaultDirName=C:\Games\{#MyAppName}, если по данному пути что установлено, установщик предложит вам продолжить установку или отказаться. Вот от этого и нужно было изначально плясать.
Не много стал понимать что к чему. Если ошибусь поправите.
Если при повторной установке установщик увидит что программа установлена, запустится батник на упаковку всего содержимого, а папки, файлы начнет удалять? Так (это называется сделать бекап)
Только я не понимаю одного, для чего делать бекап на 65 гигов? Предполагаю что 65 гигов будут бекапится не один час.
А не проще сделать так, при повторной установке снести за пару минут предыдущую установку, и установить снова с чистого листа.
Оба батника будут уже не нужны.
vk_k14m@vk
04-10-2017, 19:01
Если ошибусь поправите.
Если при повторной установке установщик увидит что программа установлена, запустится батник на упаковку всего содержимого, а папки, файлы начнет удалять? Так (это называется сделать бекап)»
Нет. Вы ошиблись. Этот батник РАСПАКОВЫВАЕТ и удаляет *.рр архивы, что б их содержимое можно было изменить. Потом установщик заменяет/дополняет распакованные папки, а в конце снова запаковывает обратно.
Оба батника будут уже не нужны. »
Батник который запускается в конце установки будет по прежнему нужен. Я же рассказывал. Компоненты. При выборе разных компонентов содержимое *.рр архивов будет меняется. Если взять архив размером 500 Мбайт. +при выборе разных компонентов этот архив будет менятся раза 4. То это уже 2500 Мбайт. При этот во всех вариантах этого архива некоторые файлы будут одинаковыми. Так зачем запаковывать готовые архивы. Зачем мне раздувать размер установщика? К тому же эти архивы практически не сжимаются. 65 гигов весят все компоненты игры, которые все вместе не смогут быть установлены. Если я начну запаковывать архивы, то размер может увеличится раз в 5.
vk_k14m@vk
Ну и последний вопрос, вы подумали о конечном пользователе!
То что у вас прописано в секции [Components] вам нужно писать руководство, что, куда, и зачем, думаю конечный пользователь заплутается в данном частоколе. Ну да ладно. Удачи!
vk_k14m@vk
04-10-2017, 19:16
Ну и последний вопрос, вы подумали о конечном пользователе!
То что у вас прописано в секции [Components] вам нужно писать руководство, что, куда, и зачем, думаю конечный пользователь заплутается в данном частоколе. Ну да ладно. Удачи! »
В раздаче на торренте будет все прописано.
R.i.m.s.k.y.
04-10-2017, 20:13
Как ты узнаешь установлен у тебя на компе например Microsoft Visual C++ 2015 года »
[code]
const
INSTALLSTATE_DEFAULT = 5;
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
function MsiQueryProductState(szProduct: String): Integer;
external 'MsiQueryProductState{#A}@msi.dll stdcall';
function IsMsiProductInstall(ProductCode: String): Boolean;
begin
Result := MsiQueryProductState(ProductCode) = INSTALLSTATE_DEFAULT;
end;
//к примеру определяем установлен ли Microsoft Visual C++ 2010 x86 Redistributable, ProductCode которого {196BB40D-1578-3D01-B289-BEFC77A11A1E}
procedure InitializeWizard();
begin
if IsMsiProductInstall('{196BB40D-1578-3D01-B289-BEFC77A11A1E}') then
MsgBox('vcredist 2010 installed for current user', mbInformation, MB_OK)
else
MsgBox('vcredist 2010 not installed', mbInformation, MB_OK);
end;
ProductCode можно посмотреть в msi-документе с помощью Orca (таблица Property, свойство ProductCode)
Более того, ProductCode индивидуален мало того что для каждого языка Microsoft Visual C++ 2015, так еще и для каждой его ревизии, получается целый паровоз вариантов
Если он уже установлен и ты снова попытаешься его установить, установщик скажет тебе что он уже установлен? Или как нивчем не бывало продолжит установку? »
это зависит от прописанной реакции на установленный экземпляр проги, иногда и версии установленного приходится кейсить
Если ты поставил на комп игру Doom. А потом случайно снова запустил установщик. Ну забыл ты что игра у тебя уже есть, склероз старческий. Тебе игра предложит установиться в тоже самое место, где она уже стоит. Откуда она это знает? »
плохой вариант по HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\GUID|AppName_is1
Хороший по ключу реестра, характерного для приложения, и наличия экзешника, например вот так определяется наличие проги и её версии
Function isSVPexist():boolean;
var moreOrEqual : boolean; s : string; VersionMS, VersionLS : cardinal;
begin
RegQueryStringValue(HKCU, 'Software\SVP','Path', s);
s := RemoveQuotes(s); s := RemoveBackslashUnlessRoot(s);
if (FileExists(s+'\SVPMgr.exe')) then begin
GetVersionNumbers(s+'\SVPMgr.exe', VersionMS, VersionLS);
moreOrEqual:=true;
if (VersionMS<$30000) then moreOrEqual:=false else begin
if ( (VersionMS=$30000) and (VersionLS<$FA) ) then moreOrEqual:=false
end;
Result := moreOrEqual;
end //(FileExists(s+'\SVPMgr.exe'))
else Result := False;
end;
А что вы обижаетесь, как вы задаете вопросы, так вам и отвечают. Как проверить что установлено, элементарно, даже средствами INNO. Если в секции [Setup] поставить директиву DirExistsWarning=yes тогда установщик при повторной установке будет видеть путь установки что прописан в директиве DefaultDirName=C:\Games\{#MyAppName}, если по данному пути что установлено, установщик предложит вам продолжить установку или отказаться. Вот от этого и нужно было изначально плясать. »
это плохой вариант
установщик тупо посмотрит в HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{#MyAppName}_is1 и если его нет поведет себя как будто проги нет в системе, а если ее ставили с другого установщика у которого другой GUID или {#MyAppName}?
Спорный способ
И вообще. Я же сказал закрыть эту тему. Если она для вас настолько сложная, не нужно в нее вникать. Просто забудь. »
как скажешь
vk_k14m@vk
04-10-2017, 20:21
R.i.m.s.k.y., забей уже. Меня вполне устраивает то что я сейчас имею. Не надо мне эти ваши сложные коды. Мне совсем немного осталось доделать...
Я уже практически закончил свой установщик и скоро от вас отстану)
1) Для игры есть две версии русификатора, v1 для "чистой" игры, и v5 для игры с антицензором. И так же для v5 есть еще маленькая опция которой нет в v1.
http://i89.fastpic.ru/big/2017/1003/8c/5d72dad6e98b71c394e4dc5a82688b8c.png
И вот эта опция (ограничение/без ограничений) должна быть неактивна если не поставить галочку на антицензор.
[Components]
Name: "Main"; Description: "Artificial Academy 2"; Types: Main Main_Ru MKIII SVII custom;
Name: "Anticensor"; Description: "Антицензор"; Types: custom
Name: "Russification"; Description: "Русификатор"; Types: Main_Ru custom;
Name: "Russification\Hlimitation_yes"; Description: "Ограничение H-сцен"; Types: MKIII SVII custom; Flags: exclusive
Name: "Russification\Hlimitation_no"; Description: "Без аграничения"; Types: custom; Flags: exclusive
Можно ли это как-то устроить?
2) Вернемся к версии русификатора в секции [Files] добавлены две папки, в одной лежат файлы от v1 во второй от v5.
Source: "D:\Inno Setup\Installer\5a [AA2][Interface][Russian user interface v.1][AVA]\Artificial Academy 2\*"; DestDir: "{app}"; Components: Russification; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
Source: "D:\Inno Setup\Installer\5b [AA2][Interface][Russian user interface v.5][AVA]\Artificial Academy 2\*"; DestDir: "{app}"; Components: Russification and Anticensor; Flags: ignoreversion recursesubdirs createallsubdirs sortfilesbyextension solidbreak
И вот v1 не должна устанавливаться если был выбран компонент "Anticensor". Хотел сделать Components: Russification not Anticensor; но так не работает.
З.Ы. То как я написал во второй строчке Components: Russification and Anticensor; это верно? Сам InnoSetup ошибку не показывал.»
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.