gpt4 book ai didi

python - 如何从给定的文件夹列表中找到 “{game}.exe”?

转载 作者:太空宇宙 更新时间:2023-11-03 19:47:42 24 4
gpt4 key购买 nike

假设我有一个名为“Games”的文件夹。我将所有游戏都保存在该特定文件夹中。

我想从启动我的游戏的所有文件夹中提取所有二进制文件。在这里我不能使用任何启动器:例如。 Steam /原产地等

到目前为止,我已成功获取该文件夹中存在的所有二进制文件。但这些都是随机二进制文件与实际游戏二进制文件的混合体。

有什么方法可以提取仅游戏的二进制文件吗?

    '''
Finding binaries for games
Eliminating other types of binaries, eg: uninstall.exe etc
'''
def getStandalone(filePath = 'D:\\Games\\'):
pattern = "*.exe"
pattern2 = "unin*"
for root, dir, files in os.walk(filePath):
for file in files:
if(
fnmatch.fnmatch(file, pattern) and
fnmatch.fnmatch(file, pattern) !=
fnmatch.fnmatch(file, pattern2)
):
print(file)

# print(getStandalone())

我能够删除“卸载”二进制文件,因为它们大多数都以 unin-- 开头

但这是一种非常肮脏的方式,我宁愿提取游戏二进制文件也不愿删除所有其他内容。

我的脑海里突然浮现出一件事。 Windows 注册表。但我不知道如何在注册表中进行“查找游戏”。我有一堆直接从 CD 复制的旧游戏。而且它们甚至还没有真正安装。它们只存在于我的驱动器上。那么我该如何找到这些呢?

最佳答案

最愚蠢的方法是预定义一个包含已知可执行游戏名称的列表,并使用它来过滤文件中的结果。建立一份受人尊敬的名单可能需要更长的时间,但你的结果将非常精确。

更聪明的方法是遍历files中的每个元素,list the DLLs loaded by that application (也许还列出这些 DLL 的 DLL)并丢弃不使用 DirectX 或 OpenGL 中的 DLL 的元素。但是,这种方法可能会产生一些误报:实际上是游戏但不直接加载这些库的应用程序将被标记为非游戏。

我认为安装程序不会在注册表中留下特殊/标准 key 。 PE format似乎也没有带有特殊的标志来帮助区分游戏和非游戏应用程序的常规二进制文件。

最后,我相信这个问题的一个好的解决方案可能会使用多种策略来过滤候选游戏。我只是提供一些东西供您开始。

关于python - 如何从给定的文件夹列表中找到 “{game}.exe”?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60025439/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com