我正在尝试诊断某些可执行文件未从启动时运行的情况。
首先,我想检查filename.exe
磁盘上是否存在 of(即它没有被删除)。
我的输入是可执行文件的文件名及其 UUID。
问题:有了这些输入,我如何检查注册表是否已注册,如果已注册,可执行文件的路径是什么?
看起来您正在寻找Dependency Walker:
Dependency Walker 检测到许多常见的应用程序问题,例如缺少模块、无效模块、导入/导出不匹配、循环依赖错误、模块机器类型不匹配以及模块初始化失败。
您可以从http://www.dependencywalker.com/下载副本
Dependency Walker 完全免费使用。但是,您可能无法从其分发中获利,也不得将其与其他产品捆绑销售。
如果您在Dependency Walker.EXE
中打开文件,您将看到所有依赖模块 (DLL) 的层次结构树图。缺少的 DLL 以红色显示(我想,我上次使用该工具已经有好几年了)。
我认为最好的方法是运行 regedit 并通过注册表查找 dll 名称。只需 F3(查找下一个),直到找到作为路径的 dll 的值。它每次都有效
如果这是一个自动化组件,您应该能够在注册表项下找到文件路径,相关组件的 uuid 在HKEY_CLASSES_ROOT\CLSID\uuid\LocalServer32
哪里。uuid
如果组件位于 .dll 而不是 .exe 中,则它可能位于\InProcServer32
而不是\LocalServer32
键下。(有关更多详细信息,请参见此处)。