Как мне найти «{game} .exe» из заданного списка папок?

Допустим, у меня есть папка «Игры». И все мои игры сохранены в этой папке.

Я хочу извлечь все двоичные файлы из всех тех папок, в которых запускаются мои игры. Здесь я не могу использовать никакие пусковые установки: например. Steam/origin и т. Д.

Пока мне удалось получить все двоичные файлы, существующие в этой папке. Но все это случайные двоичные файлы, смешанные с реальными двоичными файлами игры.

Есть ли способ извлечь только двоичные файлы игры?

  '' 'Поиск двоичных файлов для игр Удаление других типов двоичных файлов, например: uninstall.exe и т. д.  '' 'def getStandalone (filePath =' D: \ Games \ '): pattern = "* .exe" pattern2 = "unin *" для root, dir, файлов в os.walk (filePath): для файла в файлах  : if (fnmatch.fnmatch (файл, образец) и fnmatch.fnmatch (файл, образец)! = fnmatch.fnmatch (файл, образец2)): print (файл) # print (getStandalone ())  

Мне удалось удалить двоичные файлы «деинсталлировать», поскольку большинство из них начинается с unin—

Но это очень грязный способ сделать это, и я бы предпочел извлечь двоичные файлы игры, чем удалить все остальное.

Одна вещь всплыла у меня в голове. Реестр Windows. Но я понятия не имею, как в реестре пройти «Поиск игр». У меня есть куча старых игр, скопированных прямо с компакт-дисков. И они даже на самом деле не установлены . Они просто существуют на моем диске. Итак, как мне их найти?


Самый глупый подход — заранее определить список с известными именами исполняемых игр и использовать его для фильтрации результатов в файлах . Составление уважительного списка может занять больше времени, но ваши результаты будут очень точными.

Более разумным подходом было бы просмотреть каждый элемент в файлах , перечислить библиотеки DLL, загруженные этим приложением (и, возможно, перечислить библиотеки DLL этих DLL) и отказаться от элементов, которые не используют библиотеки DLL из DirectX или OpenGL. Однако такой подход может привести к некоторым ложноотрицательным результатам: приложения, которые на самом деле являются играми, но не загружают эти библиотеки напрямую, будут помечены как неигровые.

Я не думаю, что установщики оставляют специальный/ стандартный ключ в реестре. Формат PE также не имеет специального флага, который помог бы отличить игры от обычных двоичных файлов неигровых приложений.

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


0

Вы должны использовать список известных исполняемых файлов игры. Как уже говорилось, во многие игры можно встроить несколько исполняемых файлов. Затем просто проверьте, есть ли у вас какой-либо файл, соответствующий этому списку.

Ключи реестра не полностью надежны. Игры можно просто копировать портативным способом, как и любое другое портативное программное обеспечение..

ответил 02 февраля ’20 в 11:39
  • Есть ли список известных исполняемых файлов игры? Плаваете на гитхабе? и т. д. — Screx 03 фев. 20, 13:15
  • Я не знаю, есть ли что-нибудь актуальное и хорошо заполненное. Пытался выполнить поиск в Google, я только что закончил на Reddit сообщение, в котором кто-то пытался это сделать, но он кажется устаревшим и даже не содержит самых популярных. — VincentRG 03 фев. ’20 в 13:52
добавить комментарий |

Вам следует использовать список известных исполняемых файлов игры. Как уже говорилось, во многие игры можно встроить несколько исполняемых файлов. Затем просто проверьте, есть ли у вас какой-либо файл, соответствующий этому списку.

Ключи реестра не полностью надежны. Игры можно просто копировать портативным способом, как и любое другое портативное программное обеспечение.


0

Если вам просто нужны файлы .exe , вы можете сделать это, что должно быть достаточно быстрым и чистым.

Примечание . Нет гарантии, что в каталоге будет только один файл .exe . Это найдет все из них. Поскольку вы упомянули, что не хотите, чтобы uninstall.exe явно , вы определенно можете добавить условную проверку, чтобы удалить только это, но если вы хотите удалить дополнительные файлы .exe , вам потребуются дополнительные параметры.

  import os '' 'Поиск двоичных файлов для игр Устранение других типов двоичных файлов,  например: uninstall.exe и т. д. '' 'def getStandalone (filePath =' D: \ Games \ '): для каталога в os.listdir (filePath): если os.path.isdir (os.path.join (filePath,  dir)): bins = [файл для файла в os.listdir (os.path.join (filePath, dir)), если file.endswith ('. exe'), а не file.startswith ('unin')] print (bin  )  

Вы также можете просто все это объединить в один список —

  [файл для каталога в os.listdir (  os.getcwd ()), если os.path.isdir (os.path.join (os.getcwd (), dir)) для файла в os.listdir (os.path.join (os.getcwd (), dir))  если file.endswith ('. exe'), а не file.startswith ('unin')]  

ответил 02 февраля ’20 в 11:48
  • Спасибо за предложение! — Screx 3 февраля 2020 г., 13:18
добавить комментарий |

Если вы просто нужны файлы .exe , которые вы можете сделать, которые должны быть достаточно быстрыми и чистыми.

Примечание : нет гарантии, что в каталоге будет только один файл .exe . Это найдет все из них. Поскольку вы упомянули, что не Если вы не хотите, чтобы uninstall.exe явно , вы определенно можете добавить условную проверку, чтобы удалить только это, но если вы хотите удалить дополнительный .exe , вам потребуются дополнительные параметры.

  import os '' 'Поиск двоичных файлов для игр Удаление других типов двоичных файлов, например: uninstall.exe  etc '' 'def getStandalone (filePath =' D: \ Games \ '): для каталога в os.listdir (filePat  h): if os.path.isdir (os.path.join (filePath, dir)): bins = [файл для файла в os.listdir (os.path.join (filePath, dir)) if file.endswith ('  .exe '), а не file.startswith (' unin ')] print (bins)  

Вы также можете просто все это в едином понимании списка —

  [файл для каталога в os.listdir (os.getcwd ()), если os.path.isdir (os.path.join (os.getcwd (), dir)) для файла в ОС  .listdir (os.path.join (os.getcwd (), dir)), если file.endswith ('. exe'), а не file.startswith ('unin')]  


Есть ли в версии Steam традиционный исполняемый EXE-файл? просмотр

У меня есть профили клавиатуры и мыши, которые меняются в зависимости от того, какой EXE запущен. Из-за того, как работает Магазин Windows, у него нет EXE-файла, но есть версия Steam?
Я бы купил его снова, чтобы мне не приходилось вручную менять настройки мыши и клавиатуры каждый раз, когда я играю в игру.


Обе версии имеют EXE. Магазин Windows находится на вашем установочном диске в WindowsApps/Microsoft.SeaOfThieves_ {ИНФОРМАЦИЯ О ВЕРСИИ ЗДЕСЬ}/Athena/Binaries/UWP64/SoTGame.exe

Версия Steam находится в папке вашей библиотеки Steam в steamapps/common/Sea of ​​Thieves/Athena/Binaries/Win64/SoTGame.exe


@ d3adst1ck сказал в разделе Имеется ли в версии Steam традиционный исполняемый EXE-файл?:

Обе версии имеют EXE. Магазин Windows находится на вашем установочном диске в WindowsApps/Microsoft.SeaOfThieves_ {ИНФОРМАЦИЯ О ВЕРСИИ ЗДЕСЬ}/Athena/Binaries/UWP64/SoTGame.exe

Версия Steam находится в папке библиотеки Steam в steamapps/common/Sea of ​​Thieves/Athena/Binaries/Win64/SoTGame.exe

Да, но способ его выполнения в системе несколько отличается от приложения Win32, поэтому M&K приложение и/или диски могут не обнаружить его.

Что касается OP @StRoRo, да, версия Steam — это обычное приложение Win32.


@ d3adst1ck сказал в разделе Имеется ли в версии Steam традиционный исполняемый файл EXE ?:

Обе версии имеют EXE. Магазин Windows находится на вашем установочном диске в WindowsApps/Microsoft.SeaOfThieves_ {ИНФОРМАЦИЯ О ВЕРСИИ ЗДЕСЬ}/Athena/Binaries/UWP64/SoTGame.exe

Мне удалось связать приложения к SoT.exe из установки магазина Windows, но он все еще не работает. Насколько я понимаю, он фактически не загружает этот файл из этого места, когда вы играете в игру, поэтому он не работает. Просто меня это очень раздражает. 🙁

Я поставлю Steam-версию в состояние готовности, чтобы получить уведомление, когда она поступит в продажу.


@stroro сказал в Версия Steam имеет традиционный исполняемый файл EXE, который запускается ?:

@ d3adst1ck сказал в разделе Есть ли у версии Steam традиционный исполняемый файл EXE ?:

Обе версии имеют EXE. Магазин Windows находится на вашем установочном диске в WindowsApps/Microsoft.SeaOfThieves_ {ИНФОРМАЦИЯ О ВЕРСИИ ЗДЕСЬ}/Athena/Binaries/UWP64/SoTGame.exe

Мне удалось связать приложения с SoT.exe из установки магазина Windows, но он по-прежнему не работает. Насколько я понимаю, он фактически не загружает этот файл из этого места, когда вы играете в игру, вот почему она не работает. Меня это очень раздражает. 🙁

Я поставлю Steam-версию в состояние готовности, чтобы я получил уведомление, когда она поступит в продажу.

Если вы хотите создать ссылку на EXE, попробуйте это, нажмите Win + R и в диалоговом окне запуска введите:

Шел l: AppsFolder

Нажмите OK.

В открывшейся папке приложений найдите Sea of ​​Thieves .EXE, щелкните правой кнопкой мыши и создайте ярлык. Он спросит, хотите ли вы поместить его на рабочий стол — сделайте это. А затем переместите его с рабочего стола в более удобное место, на которое вы затем сделаете ссылку в своем приложении.

Мне пришлось использовать этот обходной путь для многих приложений MS Store, которые я хочу запустить из Stream Deck.


@realstyli сказал в разделе Есть ли в версии Steam традиционный исполняемый файл EXE ?:

@stroro сказал в разделе «Есть ли у версии Steam традиционный исполняемый файл EXE?»:

@ d3adst1ck сказал в разделе «Есть ли у версии Steam традиционный исполняемый файл EXE?»

Обе версии имеют EXE. Магазин Windows находится на вашем установочном диске под WindowsApps/Microsoft.SeaOfThieves_ {ИНФОРМАЦИЯ О ВЕРСИИ ЗДЕСЬ}/Athena/Binaries/UWP64/SoTGame.exe

Мне удалось связать приложения к SoT.exe из установки магазина Windows, но он все еще не работает. Насколько я понимаю, он фактически не загружает этот файл из этого места, когда вы играете в игру, поэтому он не работает. Просто меня это очень раздражает. 🙁

Я поставлю Steam-версию в состояние готовности, чтобы получить уведомление, когда она поступит в продажу.

Если вы хотите создать ссылку на EXE, попробуйте это, нажмите Win + R и в диалоговом окне запуска введите:

Оболочка: AppsFolder

Нажмите OK.

В открывшейся папке приложений найдите Sea of ​​Thieves .EXE, щелкните правой кнопкой мыши и создайте ярлык. . Он спросит, хотите ли вы поместить его на рабочий стол — сделайте это. А затем переместите его с рабочего стола в более удобное место, на которое вы затем сделаете ссылку в своем приложении.

Мне пришлось использовать этот обходной путь для многих приложений MS Store, которые я хочу запустить из Stream Deck.

О, как бы мне хотелось, чтобы это сработало для меня. Я сделал, как вы сказали, но программное обеспечение iCue и Logitech не может найти кратчайшие пути. : (
PITA!

Спасибо за ваше предложение.

Оцените статью
logicle.ru
Добавить комментарий