понедельник, 15 октября 2018 г.

Вариант решения проблемы с клиентом Battle.net

Добрый день! С вами снова мастер костыльно-велосипедных решений. И сегодня я предлагаю альтернативный имевшимся в сети на момент моего поиска (а дело было в августе 2018 года; как видите, я некоторое время потратил на тестирование) способ вернуть работоспособность клиента Battle.net. По крайней мере, у меня на паре машин с различными конфигурациями это работает. Возможно, кому-то будет полезным, но, как это часто происходит в интернете, гарантий никаких дать не могу, все действия на своём компьютере вы выполняете на свой страх и риск. Если не понимаете, о чём тут идёт речь, то воздержитесь, пожалуйста, от выполнения нижеприведённых инструкций.


Итак, если вы наблюдаете похожую картину в окне запущенной программы (текст: "Попытка вывести агент обновления Blizzard из режима сна…"), и она продолжает висеть до тех пор, пока вы не закроете клиент, возможно, мой совет поможет и вам.

TL;DR: Смысл моего решения в том, чтобы в каталоге, хранящем настройки клиента, удалить всё содержимое за исключением файла product.db, в котором содержится информация об установленных у вас играх Blizzard (если они ранее были указаны в клиенте, конечно же). При повторном запуске файлы и директории будут пересозданы, но если файл product.db не удалять, то указывать пути к играм повторно не придётся.
Наиболее вероятным местом размещения искомого каталога у вас может быть что-то вроде C:\ProgramData\Battle.net\Agent (каталог ProgramData может быть скрытым, но попасть в него можно прописав путь в адресной строке Проводника). Можете не удалять, а переместить имеющиеся внутри файлы и подкаталоги в другое расположение (или сделать копию всей директории Agent), чтобы вернуть в исходное состояние в случае если это решение не поможет.

Важно: После выполнения этих действий при запуске клиента Battle.net также может на несколько секунд (до 10) появиться уже знакомое сообщение о попытке вывода из режима сна, но довольно быстро всё должно "ожить". Если же вы прождали полминуты, а сообщение всё ещё осталось, похоже, у вас проблема не разрешилась, к сожалению. Вы всегда можете обратиться за поддержкой в компанию Blizzard: сайт техподдержки.

В принципе, это всё. Если не считать того, что ситуация может постоянно повторяться, и лазить удалять одно и то же десятки раз быстро надоедает.

Поэтому для себя я сделал мини-скрипт на Python, который производит эти операции за меня. Я запускаю его… Даже не так. Этот скрипт запускается на выполнение каждый раз перед запуском клиента Battle.net. Ниже я приведу сам скрипт:

#!/usr/bin/python3
#coding: utf-8

import os, shutil

# Путь к каталогу (должен быть указан/скорректирован)
programdata_bn_directory = <Укажите здесь в одинарных или двойных кавычках путь к директории ProgramData\Battle.net\Agent>

for each_file in os.listdir(programdata_bn_directory):
    full_path = os.path.join(programdata_bn_directory, each_file)
    try:
        if os.path.isfile(full_path):
            if each_file == 'product.db':
                continue
            os.unlink(full_path)
        elif os.path.isdir(full_path):
            shutil.rmtree(full_path)
    except Exception as error:
        print(error)

Если способ с удалением файлов из каталога сработал у вас, то вы также можете использовать скрипт для автоматизации этого процесса, а следом запускать клиент Battle.net. Возможно, после очередного обновления клиента такие обходные решения будут не нужны, но пока приходится выкручиваться по-всякому.

9 комментариев:

  1. спаасибо выручил, два дня тупил

    ОтветитьУдалить
    Ответы
    1. Пожалуйста. :)
      И забавно, что спустя 1.5 года эта статья ещё актуальна. :D

      Удалить
  2. Хоспади! напиши проще, для тупых! какая програмдата? програмфайлс?

    ОтветитьУдалить
    Ответы
    1. Это стандартные каталоги в операционной системе Windows. Куда их упростить?

      Удалить
  3. Привет из 07.2022, решение актуальное.

    ОтветитьУдалить
    Ответы
    1. Рад, что кому-то помогает до сих пор.
      Мне посчастливилось больше не сталкиваться с проблемой спустя несколько обновлений клиента Battle.net, и теперь я (уже давно), конечно же, не использую предварительный запуск скрипта, упомянутого в конце (пусть этот комментарий будет чем-то типа апдейта к основному тексту).

      Удалить
  4. Привет из 10.2022. Все еще актуально. Перед каждым запуском чищу эти папки, иначе висит агент.

    ОтветитьУдалить
    Ответы
    1. Спасибо за ваш комментарий. Рад, что кому-то помогает до сих пор.

      Удалить
  5. Бро, спасибо ))))

    ОтветитьУдалить

Если у вас есть что сказать и/или вы не согласны с изложенным в посте – оставьте комментарий. Регистрации не требуется.

If you think I'm wrong and/or you have to say something – fill free to write comment. No sign up required.