Убийца проводника Windows для игроков Xbox
Оказалось (спасибо комментаторам), что проблема вылетов была в том, что я играл в Starfield через шеринговый аккаунт Xbox Game Pass. Для тех, кто не в курсе — это когда ты покупаешь доступ к чужому аккаунту с активным геймпассом за копейки, входишь через него в Microsoft Store, а в приложении Xbox заходишь под своим аккаунтом — в итоге ты можешь играть практически во все игры доступные в геймпассе.
И вот когда ты играешь через шеринговый аккаунт, то игры стабильно закрываются без ошибок через разные промежутки времени. На данный момент решить эту проблему достаточно просто, нужно лишь закрыть на время игры процесс Проводника (explorer. exe). Правда запускать его потом придется через диспетчер задач.
Люди по своей природе ленивы и мне захотелось это дело автоматизировать.
Сначала я всё настроил через планировщик заданий, сделав вызов соответствующих команд cmd для «убийства» и запуска процесса проводника, когда запускался\закрывался процесс Starfield. В целом — всё прекрасно работало, но я решил пойти дальше и написать свою программу для этого.
В подробности создания смысла углубляться не вижу, т. к. программа супер простая. Скажу лишь, что сначала пытался сделать всё на Python, где в итоге плевался от Tkinter и многих неочевидных вещей, а когда возникли проблемы со сборкой exe-файла через Nuitka, то перешёл на C# + WPF, где сначала реализовал проект на Net Framework, но был вынужден перенести его на Net Core, иначе exe файл создавался жутким и не очевидным для меня образом.
Предисловие немного затянулось, но наконец-то переходим к самой программе.
Как я и говорил — она очень простая. С помощью кнопки Add нужно добавить имена .exe процессов (инструкция как узнать имя ниже), запуск и закрытие которых необходимо отслеживать, и нажать кнопку Start. Теперь при запуске одного из процессов в списке Проводник будет «убиваться», а после закрытия этого процесса — запускаться вновь.
Важный момент — иногда процессы игр закрываются далеко не сразу, пример тому Atomic Heart, из-за чего может казаться, что программа не работает, хотя достаточно немного подождать. Но на этот случай (если не хочется ждать) есть кнопка Stop и ручное закрытие/открытие проводника через кнопки Kill и Restart.
Кто-то знает зачем Starfield в главном меню жрёт 4.5 гбайта оперативы???
Скачать программу можно по ссылке ниже. Установки она не требует, лишних файлов не создает (в отличии от варианта на Python):
Немного советов:
Если вы закрыли программу в тот момент, когда Проводник был «убит», то откройте диспетчер задач сочетанием клавиш Ctrl + Shift + Esc, найдите там кнопку «Запустить новую задачу», в открывшемся окне введите explorer.exe и нажмите Enter — процесс проводника запустится вновь.
Если вы не доверяете программе, то её исходный код доступен в том же репозитории. Или вы можете, например, по инструкции ниже настроить планировщик задач. Работает лучше, но настраивается всё подольше.
Или если у вас Windows 11 (не знаю, может есть и для Windows 10), вы можете воспользоваться очень крутой штукой — Power Automate, где из блоков макросов накодить ту же логику, что и у меня и запустить скрипт в фоне. Опять же менее удобно, зато своё.
Там где блок PowerShell скрипта — в первом случае вызывается команда закрытия проводника, а во втором повторного запуска, а именно:
taskkill /f /im explorer.exe
start explorer.exe
Несмотря на свою простоту — программа не идеальна, т.к. писал её для себя. Если у вас что-то сломалось, или есть какие-то идеи по улучшению, то напишите об этом в комментариях. А я буду надеяться, что этот пост увидит хотя бы полтора землекопа.
А. Так вот откуда столько воя про вылеты игр в пассе...
За гайд спасибо)
Ага, про Lies of P тоже разные люди жаловались на вылеты, у меня не было ни одного, а после оказывалось, что они покупали общий аккаунт. Как-то несправедливо даже выглядит, когда обвиняют в таких случаях разработчиков игры. Другое дело, что система не сообщает пользователю причину закрытия игры, это упущение.
kek
вспоминается, как десяток лет в зад тоже нужно было прибивать explorer до игры
всё вернулось по кругу
кроме молодости, конечно
Я кстати так и не понял в чём связь вылетов и запущенной игры, т.к. многие игры не вылетают в принципе (старые якудзы 0-5 гарантированно, 6 не играл пока, 7 не вылетала тоже, монхан райз, соул хакерс, персоны 3-5), онлайновые вылетают стабильно - F76, FH5, ОДНАКО та же FH4 уже не имеет вылетов, несмотря на полноценную игру в онлайне. Помимо этого вылетают и оффлайновые игры, особенно новые - Sea of Stars, Starfield указанный в статье, Yakuza Ishin!
Это конечно не такая большая проблема, убивать проводник после запуска, но всё равно не понятно по какому избирательному принципу вылетает
У меня теория в том, что в некоторых играх есть, что-то типа защиты от одновременной игры нескольких пользователей и когда на шеринговый аккаунт кто-то заходит, то всех играющих в такие игры - просто выкидывает.
Похоже на новые игры стали делать защиту
Я конечно не поклонник геймпасса, но он же стоит 10 евро в месяц, это два бокала пива в баре, а тут столько геморроя, чтобы его зашарить :|