1

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

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

更新:

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

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

4

2 回答 2

0

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

  1. 源代码可在 HwInfo 页面获得
  2. 从源代码中您可以看到GetVideoCardName()(in NSISFunctions.cpp) 方法调用GetVideoAdapterDescription()in 中的方法HardwareInfo.cpp
  3. 现在您需要迭代显卡并返回一个数组。有关如何执行此操作的一些灵感,请查看
  4. 编译并创建一个新的 DLL 版本
  5. 创建一个新版本并添加一个自述文件(带有描述、学分等)
  6. 注册登录nsis,并上传新版本并更新页面本身

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

于 2014-08-28T07:47:39.027 回答
0

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

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

于 2014-08-27T19:14:13.830 回答