installation - 检查 DirectX 最终用户运行时的注册表

标签 installation registry directx

我正在创建一个安装程序,它检查注册表中是否有未安装的软件/组件,并在需要时安装它们。我遇到的问题是,如果我在全新的 Windows (http://www.microsoft.com) 副本上从 DirectX 最终用户运行时 Web 安装程序安装最新的 DirectX 最终用户运行时,我需要运行的软件会正确启动/en-au/download/details.aspx?id=35)。

如果未安装,我收到的错误是“程序无法启动,因为您的计算机缺少 d3dx9_43.dll”。现在,即使在全新安装的 Windows 中,HKEY_LOCAL_MACHINE\Software\Microsoft\DirectX 中的 DirectX 注册表项也显示版本 key 为“4.09.00.0904”。

所以我的问题是,我应该在注册表中的何处查看以检查是否安装了 DirectX 最终用户运行时的所有组件。

非常感谢您的帮助。

最佳答案

您没有提及您使用的安装程序、脚本或编程语言。了解这一点会很有帮助。

如果您不担心下载大小,最简单的方法可能就是始终盲目安装 DirectX 运行时。如果它已经存在,那么安装它不会有什么坏处。

以下是您可以考虑的其他一些事项:

如果您使用的是 Vista 或更高版本(包括 Win7、Win8、Server 2K8),那么您可能不需要安装任何内容。因为这些操作系统可能预装了二进制文件。 XP SP2 及更高版本也是如此。您的“Windows 的全新副本”比 XP 更新吗?

另一个简单的想法是在 Windows\System32 或 Windows\SysWow64 目录中搜索 d3dx9_43.dll 是否存在。

以编程方式,您可以让安装程序代码检测 DLL 的安装,如下所示

#include <windows.h>
BOOL HasD3DX9()
{
    HMODULE hMod = LoadLibrary("d3dx9_43.dll");
    return (hMOD != NULL) ? TRUE : FALSE;
}

关于installation - 检查 DirectX 最终用户运行时的注册表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11627013/

相关文章:

installation - 向 Autoconf 生成的配置脚本添加自定义安装目录选项

eclipse - GPE for Eclipse Indigo 安装错误

windows - 根据安装程序处于用户模式还是管理员模式更改环境注册表项

windows - 如何读取/写入 Windows 7 库位置?

python - 如何使用 Squish QT 确定 Python 中的 Windows 版本?

c++ - 使用 C++ 的 Direct X,在我的 FX 文件中查找技术时收到访问冲突

python - Django 应用程序安装脚本 - 如何将应用程序添加到 INSTALLED_APPS 设置?

Python 找不到模块 h2o

c++ - 如何处理 DirectX 11 驱动程序崩溃

c++ - directX 创建交换链