Дело о зависшем запуске игры
Конечно, мне очень нравится, когда приходят истории о том, как пользователи с помощью инструментов Sysinternals успешно разреш
ают сложные проблемы, но нет ничего приятнее, чем, используя все тот же инструментарий, решать свои собственные проблемы. В частности, этот случай оказался забавным, потому что его решение позволило мне вернуться к забавам.
Когда есть время, я время от времени играю в компьютерные игры, чтобы выпустить пар (вот такой вот каламбур - Mark). Несколько крайних лет моя любимая игрушка – Portal. Мне очень понравился первый Portal, затем я
заказал второй Portal от команды Valve’s, и, когда он стал доступен, я играл в него уже через несколько часов после выхода. С того времени я играю картах, которые создают любители игры. В прошлую субботу я засел за карту фаната, победителя с community map contest, но не хватило время, пройти ее за одни присест.
Следующим утром я перезагрузил свою машину, кликнул по ярлычку Portal 2, получив стандартный диалог запуска Steam. Обычно игра грузилась за пару секунд, но на этот раз диалог Steam остановился здесь:
Я закрыл этот Steam и открыл его снова, и снова диалог завис.
Я отрыл снимок активности Process Monitor’а и принялся искать в Process Explorer’е стек процессов Steam’а, но не обнаружил никаких ключей. Подумав, что конфигурация или установка Portal 2 повредилась, я удал игрушку, снова скачал ее и переустановил. Это не исправило проблемы, хотя Portal 2 был «чистым», что означало, что проблемы либо в Steam’е, либо еще в каком месте в Windows. Следующим шагом была переустановка Steam’а.
Первым делом я открыл «Удаление или изменение программ» из Панели управления, но двойной клик по Steam вызвал диалог, запрашивающий подтверждение удаления и предупреждающий, что удалится и весь контент. Не хотелось мне потерять настройки игры или же потом переустанавливать игры вообще, поэтому не стал я удалять Steam. У большинства установщиков Microsoft Installer Service (MSI – сервис установки Microsoft) есть опция «восстановить», она переустанавливает приложение без удаления данных пользователя или его конфигурации,
поэтому я зашел на домашнюю страничку Steam’а, скачал инстолятор и запустил его. Конечно же, мастер установки предложил мне опцию «восстановить» (repair option):
Нажав на кнопку «Далее» (Next button), я оказался ошарашен странным сообщением об ошибке. Появлялась сетевая ошибка! Это при попытке чтения файла, находящегося на жестком диске:
Следующая подсказка оказалась несколькими операциями позже, когда инстолятор пытался прочитать данные из файла и выводил их в сообщение об ошибке:
Инстолятр считывал имя файла с существующего ключа реестра, а место расположения файла оказался кэш Internet Explorer’а (IE’а). Сразу же возникло предположение, что инстолятор пытается запустить свою же копию со времен первого скачивания. Первоначальный файл установки запускался из папки IE с сайта Valve, точно так же, как это было сделано и сейчас, файл располагался в КЭШе IE’а, но с первой установки уже прошло время, и файл должен был бы давно удалиться.
Process Monitor показывал, что инстолятор обращается к первоначальному файлу установки, указанному в реестре, поэтому, укажи я установщику расположение только что скаченного файла, я бы смог его запустить, а не искать, где когда-то располагались старые файлы. Я просмотрел лог, ища, где располагается Steaminstall.msi, и нашел его в другом месте КЭШа:
Затем я вернулся к очереди входов реестра, кликнул правой кнопкой по нему, выбрал Jump To (перейти) из контекстного меню. Process Monitor запустил Regedit, открытый на нужном мне ключе, в котором я обновил значения LastUsedSource и PackageName на нужные мне:
После я закрыл диалог с ошибкой, который я оставлял открытым, и нажал на копку Далее (Next), пробуя исправить программу снова. На этот раз, Steam переустановился, и мастер выдал сообщение об успешной установке:
Я запустил Portal 2. на секунду вылетел диалог Steams’а «Preparing to Launch» (подготовка к запуску), и заставка Portal 2 появилась на экране. Дело распутано. Удаление и переустановка Steams’а и всех игр дали бы аналогичный результат, но Process Monitor дал возможность сэкономить время и сохранить все позиции и настройки игр. И спустя несколько минут, я вернулся к решению игровых задач разных видов.
Комментариев нет:
Отправить комментарий