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

时间:2014-08-27 11:33:07

标签: nsis video-card

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

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

更新

我使用WMI header获取所有图形卡名称。

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

2 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

除了Anders回答:我也这么认为 - 调整HwInfo插件并不是那么困难。你需要做什么?

  1. sourcecode可在HwInfo页面
  2. 获得
  3. 从源代码中您可以看到方法GetVideoCardName()(在NSISFunctions.cpp中)调用GetVideoAdapterDescription()中的HardwareInfo.cpp方法。
  4. 现在您需要迭代图形卡并返回一个数组。有关如何检查this
  5. 的一些灵感
  6. 编译并创建新的DLL版本
  7. 创建新版本并添加自述文件(包含说明,信用等)
  8. Registerlogin到nsis,上传新版本并更新页面本身
  9. 由于每个人都受益,所以值得贡献(我在过去为nsis做出了贡献)。