Snake193
Newbie | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Еще вопросы: Перешел на ЗЫ 3 и ГРОБ360 и инсталляторы не делал почти год. Пока просматривал 70 страниц форума, нашел скрипты для библиотеки GameInstallHelper.dll. Тупой вопрос - что это за библиотека такая, для чего она нужна, для какой Винды, что где регистрирует, есть ли еще какие-либо аналогичные библиотеки и, если игра в оригинальном инсталляторе использовала её, то чем грозит её отсутствие в моем? И еще вопрос, т.к. Виста Г.ВНО (с большой буквы), сижу на 32-битной XP. Может ли что-нибудь в моем инсталляторе некорректно работать в Висте, хотя у меня всё идеально? Может стоит сделать виртуальную машину с Вистой для тестов? Просьба, напишите на основе какой-либо современной игры (Assassin's Creed, BioShock etc) подробный текстовик с описанием работы библиотеки, парой примеров и т.п. и выложите его. Victor_Dobrov, serg_aka_lain, Genri и другие неупомянутые здесь (надеюсь не обидел никого отсутствием ника) ОЧЕНЬ ПРОШУ ПОПОДРОБНЕЙ!!! Добавлено: Кстати, где-то выше спрашивали как стелать MsgBox как в STALKER'е, где при повторном запуске инсталлятора вылетал вопрос о запуске игры. Когда-то давно уж я придумал себе такой скрипт. Недавно его усовершенствовал - теперь вылетает сообщение с кнопками Да (запускается игра, инсталлятор закрывается), Нет (игра не запускается, запускается инсталлятор), Отмена (ничего не делается, закрывается инсталлятор). Запуск самой установки нужен если, например, пользователь удалил папку с игрой, а данные в реестре остались. И чтобы самому не лазать по реестру и сделал такой код: Цитата: [Code_] var AppDir: string; ResultCode: Integer; procedure ReadEntries(); begin RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\GFI\Ghost Recon', 'InstallPath', AppDir); end; function InitializeSetup(): Boolean; var Exe: string; begin Exe:='GhostRecon.exe'; if (RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\GFI\Ghost Recon', 'InstallPath')) then begin ReadEntries; case (MsgBox('Игра ' + ExpandConstant('{cm:ProductName}') + ' уже найдена на Вашем компьютере. Запустить игру?', mbConfirmation, MB_YESNOCANCEL or MB_DEFBUTTON3)) of IDYES: begin if (FileExists(AddBackslash(AppDir) + Exe)) then begin Exec(AddBackslash(AppDir) + Exe, '', ExtractFilePath(AddBackslash(AppDir) + Exe), SW_SHOW, ewNoWait, ResultCode); end else begin MsgBox('Невозможно запустить ' + ExpandConstant('{cm:ProductName}') + ', т.к. исполняемый файл программы не найден.', mbCriticalError, MB_OK or MB_DEFBUTTON1); end Result:=False; end IDNO: begin Result:=True; end IDCANCEL: begin Result:=False; end end end else begin Result:=True; end end; | Не ругайтесь на лишние begin end, это для того, чтобы удобней было читать код. |