如何使用 nsis 获取多个显卡信息?

Posted

技术标签:

【中文标题】如何使用 nsis 获取多个显卡信息?【英文标题】:How to get multiple graphic cards information using nsis? 【发布时间】:2014-08-27 11:33:07 【问题描述】:

我正在尝试使用 NSIS 创建安装程序,并且有一个用于检查硬件要求的自定义页面。目前我使用的是HwInfo plug-in,但问题是即使桌面有多个显卡,GetVideoCardName函数也只返回1个显卡名称。

如何使用 NSIS 获取所有已安装的显卡名称?

更新:

我使用WMI header 来获取所有显卡名称。

如果有人有更好的选择,请告诉我。

【问题讨论】:

为什么需要知道?您是否正在安装游戏并想要验证一些性能要求? 只有在有 VGA 插件的情况下才能运行安装程序。但是,多个桌面可能有多个 VGA 插件。 【参考方案1】:

您可能需要编写自己的自定义插件或修改 HwInfo 插件。

如果您要安装游戏,您可能需要查看DirectDrawEnumerateEx 和类似功能,或者可能需要查看EnumDisplayDevices 以了解 GDI 级别的设备。

【讨论】:

【参考方案2】:

除了安德斯回答:我也是这么想的——适配HwInfo插件并没有那么难。你需要做什么?

    sourcecode 可在 HwInfo 页面找到 从源代码中可以看到GetVideoCardName()NSISFunctions.cpp)方法调用了HardwareInfo.cppGetVideoAdapterDescription()方法。 现在您需要迭代显卡并返回一个数组。有关如何执行此操作的一些灵感,请查看this。 编译并创建一个新的 DLL 版本 创建一个新版本并添加一个自述文件(包括描述、学分等) Register 或 login 到 nsis,并上传新版本并更新页面本身

值得贡献(我过去曾为 nsis 贡献过),因为每个人都会受益。

【讨论】:

以上是关于如何使用 nsis 获取多个显卡信息?的主要内容,如果未能解决你的问题,请参考以下文章

如何在运行时 (NSIS) 中获取 nsh 代码中丢失的 dll 文件错误回调

如何从 Electron-builder NSIS 获取选定的语言

如何在安装驱动程序之前在 C++ 中获取 GPU 信息

使用 NSIS 的 ExecDos 插件获取批处理脚本 exitCode

如何在nsis中获取其他应用程序的退出代码

在NSIS脚本中获取PATH变量